U
    ¾mœdÙÉ  ã                   @   sŽ  d dl mZm Z  d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dl m!Z! G dd„ dƒZ"G d	d
„ d
ƒZ#G dd„ dƒZ$G dd„ dƒZ%G dd„ dƒZ&G dd„ dƒZ'G dd„ dƒZ(dd„ Z)dd„ Z*dd„ Z+dd„ Z,G dd„ dƒZ-G dd „ d ƒZ.ej/ 0d!ej1eed"d#ƒƒeed"d$ƒej2ed%d&ƒed&d#ƒgd'd(�d"d)d*�ej1ed$d%d&d#d+d,d-d.d/g	ƒeej2d%ej2d#ej2d,ej2d.ej2g	ƒe3ddd$ƒd0d*�ej1ed1d1d2d2gƒeej2d1ej2d2ge4d(�e3ddd$ƒd3d*�ej1ee 5d/¡ƒeej2ej2ej2ej2ej2d#d+d,d-d.g
ƒe3dd#ƒd4d*�ej1ed"d$d%gƒeej2d$d%gƒd d5d*�ej1ed2gƒeej2ge4d(�d d6d*�ej1ed2d1gƒeej2d1ge4d(�d d7d*�g¡G d8d9„ d9e.ƒƒZ6G d:d;„ d;e.ƒZ7G d<d=„ d=e.ƒZ8G d>d?„ d?e.ƒZ9G d@dA„ dAe.ƒZ:G dBdC„ dCe.ƒZ;ej/ 0dDed"d$d%gƒeej2d$d%gƒfedEdFdGgƒeej2dFdGgƒfee dHd"d"ƒe dHd"d$ƒe dHd"d%ƒgƒeee dHd"d$ƒe dHd"d%ƒgƒfedIdJdKgƒeddJdKgƒfg¡G dLdM„ dMe.ƒƒZ<G dNdO„ dOe.ƒZ=G dPdQ„ dQe.ƒZ>ej/ 0dRe dFdGg¡e dSdTg¡ejd$dU d$dU d" gej?d(�g¡G dVdW„ dWe.ƒƒZ@ej/ 0dRdXe AdX¡g¡G dYdZ„ dZe.ƒƒZBej/ 0dRd[d\d]g¡G d^d_„ d_e.ƒƒZCG d`da„ dae.ƒZDej/ 0dbe Ed"¡ejFfe AdX¡ejAfg¡G dcdd„ ddeDƒƒZGej/ 0dRd"dedfd1g¡ej/ 0dge4g¡G dhdi„ dieDƒƒƒZHej/ 0dbd"ejIfdeejIfdfejIfd1e4fg¡G djdk„ dkeDƒƒZJej/ 0dbd"e4fdle4fd%e4fdee4fdfe4fd1eKfg¡G dmdn„ dneDƒƒZLej/ 0dbd"ejMfdeej?fdfejIfd1e4fg¡G dodp„ dpeDƒƒZNej/ 0dbd"ej?fdeej?fdfejIfd1e4fg¡G dqdr„ dreDƒƒZOej/ 0dbd"ejPfej1deejPej/jQdsdt�du�dfejIfd1e4fe Rd$¡ejPfe Sd$¡ejPfe Se TejS¡jU¡ej?fe Vd$¡ejPfe Md$¡ejPfg	¡G dvdw„ dweDƒƒZWej/ 0dbedxƒdyfd"e4fdze4fg¡G d{d|„ d|eDƒƒZXej/ 0dbedxd}d~�dfedxd€d~�dfedxƒe4fd"e4fg¡G d�d‚„ d‚eDƒƒZYej/ 0dbedƒƒd„fd"e4fdze4fg¡G d…d†„ d†eDƒƒZZej/ 0dRdIed‡dˆd‰�ed"d$dŠd‹�g¡ej/ 0dge4g¡G dŒd�„ d�eDƒƒƒZ[dŽd�„ Z\d�d‘„ Z]d’d“„ Z^d”d•„ Z_d–d—„ Z`d˜d™„ Zadšd›„ Zbdœd�„ ZcdždŸ„ Zdd d¡„ Zed¢d£„ Zfej/ 0d¤egd$d+ƒ¡ej/ 0d¥d1d2d2d2d2gd1d2gd2gg¡ej/ 0d¦dFej2e hei¡jUe hei¡jjg¡ej/ 0d§d¨d©„ dªd©„ d«d©„ g¡d¬d­„ ƒƒƒƒZkd®d¯„ ZldS )°é    )ÚdateÚdatetimeN)ÚIndexingError)Úis_list_like)ÚNAÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalÚIntervalIndexÚ
MultiIndexÚNaTÚPeriodÚSeriesÚ	TimedeltaÚ	TimestampÚarrayÚconcatÚ
date_rangeÚinterval_rangeÚperiod_rangeÚtimedelta_range)ÚBDayc                   @   sX   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
ddg¡dd„ ƒZ
dd„ Zdd„ ZdS )ÚTestSetitemDT64Valuesc                 C   s€   t tddd�ƒ}d |d< |d tks(t‚d |dd…< |d tksDt‚tj|d< |d tks^t‚tj|dd…< |d tks|t‚d S )	Nz1/1/2000é
   ©Úperiodsé   é   é   é   é   )r   r   r   ÚAssertionErrorÚnpÚnan©ÚselfÚseries© r)   úb/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/series/indexing/test_setitem.pyÚtest_setitem_none_nan(   s    
z+TestSetitemDT64Values.test_setitem_none_nanc                 C   s@   t  ddg¡}tddg|d�}| ¡ }d|jg < t ||¡ d S )N)Úaé   )Úbé   r-   r/   ©Úindexr   )r   Úfrom_tuplesr   ÚcopyÚlocÚtmÚassert_series_equal)r'   ÚidxÚresultÚexpectedr)   r)   r*   Ú#test_setitem_multiindex_empty_slice6   s
    
z9TestSetitemDT64Values.test_setitem_multiindex_empty_slicec                 C   sN   t dddgdddgd�}t ¡ |d< |jt ¡ ks6t‚|d t ¡ ksJt‚d S )Nr-   r/   r   ÚDater.   Úotherr0   )r   r   Útodayr;   r#   ©r'   Úserr)   r)   r*   Útest_setitem_with_string_index>   s    z4TestSetitemDT64Values.test_setitem_with_string_indexc                 C   sT   t dddd�}ddddg}t||d	�}| ¡ }tj|d< tj|jd
< t ||¡ d S )NZ2017r    ú
US/Eastern©r   Útz)r   r-   )r   r/   )r   r   )r   r    r0   r   )r   r   r3   r$   r%   Úilocr5   r6   )r'   Úarrr1   r8   r9   r)   r)   r*   Ú)test_setitem_tuple_with_datetimetz_valuesE   s    
z?TestSetitemDT64Values.test_setitem_tuple_with_datetimetz_valuesrC   rA   ÚUTCz
Asia/Tokyoc                 C   s   t tddd|d�ƒ}|jd|› d�ks*t‚t td|d�td	|d�td
|d�gƒ}| ¡ }td|d�||ƒd< t ||¡ t td|d�td|d�gddgd�}|jd|› d�ks²t‚t td|d�td	|d�td|d�gƒ}| ¡ }|||ƒddg< t ||¡ d S )Nú
2016-01-01ÚHr   ©Úfreqr   rC   údatetime64[ns, ú]z2016-01-01 00:00©rC   ú2011-01-01 00:00z2016-01-01 02:00ú
2011-01-01r-   ú
2012-01-01r/   r0   ú2012-01-01 00:00©r   r   Údtyper#   r   r3   r5   r6   )r'   rC   Úindexer_sliÚorigÚexpr?   Úvalsr)   r)   r*   Útest_setitem_with_tzO   s2    


ýÿ	þ


ýÿz*TestSetitemDT64Values.test_setitem_with_tzc                 C   s  d}t tddd|d�ƒ}|jd|› d�ks.t‚t td|d	�td
|d	�td|d	�gƒ}| ¡ }td|d	�||ƒd< t ||¡ t td|d	�td|d	�gddgd�}|jd|› d�ks¶t‚t td|d	�td|d	�td|d	�gƒ}| ¡ }|||ƒddg< t ||¡ d S )NrA   z
2016-11-06rI   r   rJ   rL   rM   z2016-11-06 00:00-04:00rN   z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00rP   r-   rQ   r/   r0   z2016-11-06 00:00rO   rR   rS   )r'   rU   rC   rV   rW   r?   rX   r)   r)   r*   Útest_setitem_with_tz_dstt   s4    


ýÿ	þ


ýÿz.TestSetitemDT64Values.test_setitem_with_tz_dstc                 C   sp   t dtjitd�}dg}tjdgdd�}||j|< t |d gdgtd�}tdd	„ |jD ƒƒs`t‚t	 
||¡ d S )
NÚX©rT   Tr    úM8[ns]r   ©r1   rT   c                 s   s   | ]}t |tjƒV  qd S ©N)Ú
isinstancer$   Ú
datetime64©Ú.0Úxr)   r)   r*   Ú	<genexpr>¨   s     zYTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_match.<locals>.<genexpr>)r   r$   r%   Úobjectr   rD   ÚallÚvaluesr#   r5   r6   )r'   r?   ÚindexerÚvaluer9   r)   r)   r*   Ú0test_object_series_setitem_dt64array_exact_matchš   s    
zFTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_matchN)Ú__name__Ú
__module__Ú__qualname__r+   r:   r@   rF   ÚpytestÚmarkÚparametrizerY   rZ   rk   r)   r)   r)   r*   r   '   s   

$&r   c                   @   sd   e Zd Zdd„ Zej dejej	g¡ej dddg¡dd„ ƒƒZ
ej d	d
dejfg¡dd„ ƒZdS )ÚTestSetitemScalarIndexerc              	   C   sF   t t dd¡t dd¡d�}d}tjt|d�� d|d< W 5 Q R X d S )Nr   r   r0   z2index -11 is out of bounds for axis 0 with size 10©ÚmatchÚfooiõÿÿÿ)r   r5   Zrands_arrayro   ÚraisesÚ
IndexError)r'   r?   Úmsgr)   r)   r*   Ú#test_setitem_negative_out_of_bounds®   s    z<TestSetitemScalarIndexer.test_setitem_negative_out_of_boundsri   Ú	ser_indexr   r-   c                 C   sX   t ddgdd�}||ƒ}t dg|gd�|d< t t dg|gd�dgdd�}t ||¡ d S )Nr   rf   r\   é*   r0   ©r   r5   r6   )r'   ri   rz   r?   Zidxrr9   r)   r)   r*   Ú test_setitem_series_object_dtypeµ   s
    z9TestSetitemScalarIndexer.test_setitem_series_object_dtypezindex, exp_value)r   r{   c                 C   s>   t ddgƒ}t dg|gd�|jd< t |dgƒ}t ||¡ d S )Nr   r{   r0   )r   r4   r5   r6   )r'   r1   Z	exp_valuer?   r9   r)   r)   r*   Útest_setitem_series¿   s    z,TestSetitemScalarIndexer.test_setitem_seriesN)rl   rm   rn   ry   ro   rp   rq   r5   r4   Úatr}   r$   r%   r~   r)   r)   r)   r*   rr   ­   s   rr   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestSetitemSlicesc              	   C   sd   d}t jt|jdd�d�� d|dd…< W 5 Q R X t jt|jdd�d�� d|d	d…< W 5 Q R X d S )
NzUcannot do slice indexing on DatetimeIndex with these indexers \[{key}\] of type floatz4\.0)Úkeyrs   r   g      @g      $@z4\.5g      @)ro   rv   Ú	TypeErrorÚformat)r'   Údatetime_seriesrx   r)   r)   r*   Útest_setitem_slice_float_raisesÉ   s    ÿz1TestSetitemSlices.test_setitem_slice_float_raisesc                 C   sT   t tdƒttdƒƒd�}d|dd …< |dk ¡ s4t‚d|d d…< |dk ¡ sPt‚d S )Nr   r0   r   iôÿÿÿr   )r   ÚrangeÚlistrg   r#   r>   r)   r)   r*   Útest_setitem_sliceÔ   s
    z$TestSetitemSlices.test_setitem_slicec              
   C   sd   t tj d¡ddddddddgd	�}d
|d d…< |d d… d
k ¡ sHt‚|dd … d
k ¡ r`t‚d S )Né   r/   r    r"   r   é   é   é   r0   r   )r   r$   ÚrandomÚrandnrg   r#   Úanyr>   r)   r)   r*   Útest_setitem_slice_integersÜ   s    $z-TestSetitemSlices.test_setitem_slice_integersc                 C   sJ   t t d¡ t¡t d¡d�}d|d d d…< |d d d… dk ¡ sFt‚d S )Né   r0   r   r/   )r   r5   ZmakeIntIndexÚastypeÚfloatrg   r#   r&   r)   r)   r*   Útest_setitem_slicestepã   s    z(TestSetitemSlices.test_setitem_slicestepc                 C   sl   t  ddgtdƒf¡}ttjdtjd�|ƒ}d||ƒd d d…< tdddd	dd
ddddg
|ƒ}t ||¡ d S )Nr   r-   Zabcder   r\   éd   r    r/   r   r   r"   r!   é	   )	r   Úfrom_productr‡   r   r$   ÚarangeÚint64r5   r6   )r'   rU   Úmir8   r9   r)   r)   r*   Útest_setitem_multiindex_sliceê   s
    z/TestSetitemSlices.test_setitem_multiindex_sliceN)rl   rm   rn   r…   rˆ   r�   r”   r›   r)   r)   r)   r*   r€   È   s
   r€   c                   @   sŠ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j deejeg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestSetitemBooleanMaskc                 C   sV   t ddgddgdd�}t dgdgdd�|ddg< t ddgddgdd�}t ||¡ d S )Nr-   r/   r™   r^   r   TFr|   ©r'   r?   r9   r)   r)   r*   Útest_setitem_mask_castô   s    z-TestSetitemBooleanMask.test_setitem_mask_castc                 C   sl   t tj d¡t ddd¡d� d¡}|dk}| ¡ }||  ¡  t¡}|||< | dd„ ¡}t	 
||¡ d S )Nr•   r   éÿÿÿÿr0   r   c                 S   s   | dkrt | ƒS | S ©Nr   )Ústr)Útr)   r)   r*   Ú<lambda>  ó    zLTestSetitemBooleanMask.test_setitem_mask_align_and_promote.<locals>.<lambda>)r   r$   r�   rŽ   r˜   Úroundr3   Úmapr¡   r5   r6   )r'   ÚtsÚmaskÚleftÚrightr9   r)   r)   r*   Ú#test_setitem_mask_align_and_promoteý   s    $z:TestSetitemBooleanMask.test_setitem_mask_align_and_promotec                 C   sN   t ddddgƒ}|dk}||  t¡}|||< t ddddgƒ}t ||¡ d S )Nr   r-   r/   Ú1Ú2)r   r¦   r¡   r5   r6   ©r'   r?   r¨   Úser2r9   r)   r)   r*   Útest_setitem_mask_promote_strs  s    z5TestSetitemBooleanMask.test_setitem_mask_promote_strsc                 C   sP   t ddddgƒ}t ddddgƒ}|| }|||< t ddddgƒ}t ||¡ d S )Nr   ru   ÚbarFTr|   r®   r)   r)   r*   Útest_setitem_mask_promote  s    z0TestSetitemBooleanMask.test_setitem_mask_promotec                 C   s”   ||  ¡ k}| ¡ }|d ||< |d }t || || ¡ | ¡ }|d dd… ||< |d dd…  |¡}|| || < t || || ¡ d S )Nr/   r   r   )Úmedianr3   r5   r6   Zreindex_like)r'   Ústring_seriesr¨   r8   r9   r)   r)   r*   Útest_setitem_boolean  s    z+TestSetitemBooleanMask.test_setitem_booleanc              	   C   sj   |}|j dtƒ d�| ¡ k}d}tjt|d�� d||< W 5 Q R X tjt|d�� d|j|< W 5 Q R X d S )Nr-   ©rK   zsUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchrs   )Úshiftr   r³   ro   rv   r   r4   )r'   r„   r§   Zmask_shiftedrx   r)   r)   r*   Útest_setitem_boolean_corner)  s    ÿz2TestSetitemBooleanMask.test_setitem_boolean_cornerc                 C   s@   |  ¡ }| ¡ }d||dk< | ¡ }d||dk< t ||¡ d S r    )Zsort_valuesr3   r5   r6   )r'   r´   Zorderedr3   r9   r)   r)   r*   Ú$test_setitem_boolean_different_order7  s    z;TestSetitemBooleanMask.test_setitem_boolean_different_orderÚfuncc                 C   sF   t d dd gƒ}|dddgƒ}ddg||< t dddgƒ}t ||¡ d S )Nr.   TFr,   Úcr|   )r'   rº   r?   r¨   r9   r)   r)   r*   Ú test_setitem_boolean_python_listB  s
    z7TestSetitemBooleanMask.test_setitem_boolean_python_listc                 C   sÒ   t ddddg|d�}t tdƒ|d�||dk< t ddddg|d�}t ||¡ t ddddg|d�}t tdƒ|d�|j|dk< t ||¡ t ddddg|d�}t tdƒ|d�}|j|d	k |j|dk< t ||¡ d S )
Nr   r"   r!   r‰   r\   r    r/   r   r-   )r   r†   r5   r6   r4   )r'   Úany_numeric_ea_dtyper?   r9   Zloc_serr)   r)   r*   Ú'test_setitem_boolean_nullable_int_typesK  s    z>TestSetitemBooleanMask.test_setitem_boolean_nullable_int_typesc                 C   sv   t d gd ƒ}dgd dgd  dgd  }tdƒ||< |}t d gd ttdƒƒ d gd  ƒ d¡}t ||¡ d S )Nr   Fr   Tr   r/   rf   )r   r†   r‡   r’   r5   r6   )r'   r?   r¨   r8   r9   r)   r)   r*   ÚAtest_setitem_with_bool_mask_and_values_matching_n_trues_in_length[  s    *zXTestSetitemBooleanMask.test_setitem_with_bool_mask_and_values_matching_n_trues_in_lengthc                 C   s<   t dddgƒ}tj|d< t tjddgtd�}t ||¡ d S )NTFr   r\   )r   r$   r%   rf   r5   r6   )r'   r8   r9   r)   r)   r*   Útest_setitem_nan_with_boold  s    
z1TestSetitemBooleanMask.test_setitem_nan_with_boolc           	      C   s´   t dddgdd�}tjdddgtjd�}t d	d
d	g¡}| ¡ }t |ƒ||< t dddgƒ}t ||¡ | ¡ }|j||d	d� t ||¡ | ¡ }| | t |ƒ¡}t ||¡ d S )Nr-   r/   r   Úint8r\   iç  éè  ié  TF©Zinplace)	r   r$   r   r™   r3   r5   r6   r¨   Úwhere)	r'   rV   Úaltr¨   r?   r9   r¯   Úser3Úresr)   r)   r*   Ú!test_setitem_mask_smallint_upcastk  s    z8TestSetitemBooleanMask.test_setitem_mask_smallint_upcastc                 C   sŒ   t dddgdd�}t dddgtjd�}t d	d
d	g¡}| ¡ }|||< t dddgdd�}t ||¡ | ¡ }|j||d	d� t ||¡ d S )Nr-   r/   r   Úuint8r\   éõ   rÂ   éö   TFrÃ   )r   r$   r™   r   r3   r5   r6   r¨   )r'   rV   rÅ   r¨   r?   r9   r¯   r)   r)   r*   Ú$test_setitem_mask_smallint_no_upcast~  s    z;TestSetitemBooleanMask.test_setitem_mask_smallint_no_upcastN)rl   rm   rn   rž   r«   r°   r²   rµ   r¸   r¹   ro   rp   rq   r‡   r$   r   r   r¼   r¾   r¿   rÀ   rÈ   rÌ   r)   r)   r)   r*   rœ   ó   s   	
		
	rœ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestSetitemViewCopySemanticsc                 C   sÒ   t dddd�}|d }t|ƒ}|j|k	s,t‚|rJ|jjj|jjjksbt‚n|jjj|jjjk	sbt‚|jdkspt‚t|j	d< |jjd ksŠt‚|j|k	s˜t‚|jjj|jjjk	s°t‚|d |ksÀt‚|jdksÎt‚d S )NZ20130101r   rA   rB   r-   ÚD)
r   r   Ú_valuesr#   Ú_ndarrayÚbaseÚ_datarK   r   rD   ©r'   Zusing_copy_on_writeÚdtir§   r?   r)   r)   r*   Ú,test_setitem_invalidates_datetime_index_freq—  s    
zITestSetitemViewCopySemantics.test_setitem_invalidates_datetime_index_freqc                 C   sä   t dddd�}|d }t|ƒ}|j|k	s,t‚|rh|jjj|jjjksHt‚|jjd jj|jjjksžt‚n6|jjj|jjjk	s€t‚|jjd jj|jjjk	sžt‚|jjd |k	s²t‚t	|d d d…< |d t	ksÐt‚|d |ksàt‚d S )NrH   r   ú
US/PacificrB   r   r   )
r   r   rÏ   r#   rÐ   rÑ   rÒ   Z_mgrZarraysr   rÓ   r)   r)   r*   Ú'test_dt64tz_setitem_does_not_mutate_dti­  s     zDTestSetitemViewCopySemantics.test_dt64tz_setitem_does_not_mutate_dtiN)rl   rm   rn   rÕ   r×   r)   r)   r)   r*   rÍ   –  s   rÍ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestSetitemCallablec                 C   sL   t ddddgtdƒd�}d|dd	„ < t ddddgtdƒd�}t ||¡ d S )
Nr-   r/   r   r    ZABCDr0   rŸ   c                 S   s   dS )NÚAr)   ©rd   r)   r)   r*   r£   Å  r¤   z?TestSetitemCallable.test_setitem_callable_key.<locals>.<lambda>)r   r‡   r5   r6   r�   r)   r)   r*   Útest_setitem_callable_keyÂ  s    z-TestSetitemCallable.test_setitem_callable_keyc                 C   sD   dd„ }t ddddgƒ}|||dk < t dd|dgƒ}t ||¡ d S )Nc                 S   s   | d S ©Nr-   r)   rÚ   r)   r)   r*   r£   Ì  r¤   zATestSetitemCallable.test_setitem_callable_other.<locals>.<lambda>r-   r/   rŸ   r    r   r|   )r'   Úincr?   r9   r)   r)   r*   Útest_setitem_callable_otherÊ  s
    z/TestSetitemCallable.test_setitem_callable_otherN)rl   rm   rn   rÛ   rÞ   r)   r)   r)   r*   rØ   Á  s   rØ   c                   @   sâ   e Zd Zdd„ Zdd„ Zdd„ Zej de	dƒe	dƒ 
¡ e	dƒ ¡ g¡d	d
„ ƒZdd„ Zdd„ Zdd„ Zej dddg¡ej deeddfeejddfeeddfejeddfejeddfejejddfg¡dd„ ƒƒZdd„ ZdS )ÚTestSetitemWithExpansionc                 C   s6   t dƒ}ttd�}d||< td|gƒ}t ||¡ d S )NrQ   r\   é/   )r   r   rf   r5   r6   )r'   r�   r(   r9   r)   r)   r*   Útest_setitem_empty_seriesÖ  s
    
z2TestSetitemWithExpansion.test_setitem_empty_seriesc                 C   s^   t g tg dd�td�}tdƒ}d||< t dt|gdd�ƒ}t ||¡ |jj|jjksZt‚d S )NrÎ   r¶   r\   rQ   rà   )	r   r	   rf   r   r5   r6   r1   rK   r#   )r'   r(   r�   r9   r)   r)   r*   Ú6test_setitem_empty_series_datetimeindex_preserves_freqÞ  s    zOTestSetitemWithExpansion.test_setitem_empty_series_datetimeindex_preserves_freqc                 C   sV   t dƒ}t|gdgtd�}|d }tg td�}d|d< ||d< |d }||ksRt‚d S )Nl    P”iÕ5Ò Ú	timestampr^   r\   g     Àr@Zanything)r   r   rf   r#   )r'   rã   r(   r9   r8   r)   r)   r*   Ú3test_setitem_empty_series_timestamp_preserves_dtypeç  s    zLTestSetitemWithExpansion.test_setitem_empty_series_timestamp_preserves_dtypeÚtdú9 daysc                 C   s€   t d|gddgtd�}t dgƒ}||d< t ||¡ t|d tƒsFt‚t dgƒ}tdƒ|jd< t ||¡ t|d tƒs|t‚d S )Nrd   r   rå   r^   ræ   )r   rf   r5   r6   r`   r   r#   r4   )r'   rå   r9   r?   r)   r)   r*   Ú#test_append_timedelta_does_not_castó  s    


z<TestSetitemWithExpansion.test_append_timedelta_does_not_castc                 C   sR   t td�}tdƒ|d< d|d< d|d< t tdƒddgdddgd�}t ||¡ d S )	Nr\   rH   r,   ç      @r.   ru   r»   r0   )r   rf   r   r5   r6   r�   r)   r)   r*   Ú*test_setitem_with_expansion_type_promotion	  s    
zCTestSetitemWithExpansion.test_setitem_with_expansion_type_promotionc                 C   sL   |  ¡ }d|jkst‚d|d< tdgdgdd�}t||gƒ}t ||¡ d S )NZfoobarr-   r(   )r1   Úname)r3   r1   r#   r   r   r5   r6   )r'   r´   r?   Zappr9   r)   r)   r*   Útest_setitem_not_contained  s    z3TestSetitemWithExpansion.test_setitem_not_containedc                 C   s:   t ddg|d�}d|d< t dddg|d�}t ||¡ d S )Nr-   r/   r\   r   r|   )r'   r½   r?   r9   r)   r)   r*   Útest_setitem_keep_precision  s    z4TestSetitemWithExpansion.test_setitem_keep_precisionri   r-   r/   z"na, target_na, dtype, target_dtypeZInt64r™   Úfloat64rf   ZFloat64c           	      C   sN   t ddg|d�}|||< |dkr(d|gndd|g}t ||d�}t ||¡ d S )Nr-   r/   r\   r|   )	r'   ÚnaZ	target_narT   Ztarget_dtyperi   r?   Zexpected_valuesr9   r)   r)   r*   Útest_setitem_enlarge_with_na#  s
    z5TestSetitemWithExpansion.test_setitem_enlarge_with_nac                 C   sL   t ddgƒ}||d< t dd|gdddgd�}t ||¡ |d |ksHt‚d S )Nr,   r.   r   r   r-   r0   )r   r5   r6   r#   )r'   Znulls_fixturer?   r9   r)   r)   r*   Ú$test_setitem_enlargement_object_none7  s
    z=TestSetitemWithExpansion.test_setitem_enlargement_object_noneN)rl   rm   rn   rá   râ   rä   ro   rp   rq   r   Zto_timedelta64Zto_pytimedeltarç   ré   rë   rì   r   r$   r%   r   rï   rð   r)   r)   r)   r*   rß   Õ  s6   	

ýþ
	


úþrß   c               
   C   sd   t  d¡} d| j_t| dd�}|jD ]:}d}tjt|d�� d||< W 5 Q R X | | dks$t	‚q$d S )Nr   F©r3   ú#assignment destination is read-onlyrs   r-   r   )
r$   ÚzerosÚflagsÚ	writeabler   r1   ro   rv   Ú
ValueErrorr#   )r   r(   Únrx   r)   r)   r*   Ú.test_setitem_scalar_into_readonly_backing_data@  s    

rø   c               	   C   sX   t  d¡} d| j_t| dd�}d}tjt|d�� d|dd…< W 5 Q R X |  ¡ rTt	‚d S )Nr   Frñ   rò   rs   r-   r   )
r$   ró   rô   rõ   r   ro   rv   rö   r�   r#   )r   r(   rx   r)   r)   r*   Ú-test_setitem_slice_into_readonly_backing_dataO  s    
rù   c                  C   s@  t tddgddgd�ƒ} |  ¡ }d|d d …< t tddgddgd�ƒ}t ||¡ |  ¡ }d|d< t tddgddgd�ƒ}t ||¡ |  ¡ }d||jdk< t tddgddgd�ƒ}t ||¡ |  ¡ }d|ddg< t tddgddgd�ƒ}t ||¡ |  ¡ }dd	g|_d|d	< t tddgddgd�dd	gd
�}t ||¡ d S )Nr.   r,   ©Ú
categoriesr-   r   FTrd   Úyr0   )r   r   r3   r5   r6   r1   )rV   r?   rW   r)   r)   r*   Ú&test_setitem_categorical_assigning_ops]  s,    
 rý   c                  C   sJ   t tdddgƒƒ} t tdtjdgdddgd�ƒ}tj| d< t | |¡ d S )Nr-   r/   r   rú   )r   r   r$   r%   r5   r6   )r?   rW   r)   r)   r*   Ú!test_setitem_nan_into_categoricalz  s    
rþ   c                   @   sF   e Zd Zej dddg¡ejjddddged�d	d
„ ƒƒZdd„ ZdS )ÚTestSetitemCastingÚuniqueTFÚvalr   rè   Ú3)Zidsc                 C   sˆ   t ddgƒ}|sddg|_|||ƒd< t|jd ƒt|ƒks@t‚t d|gt|jd�}|sx|tjk	rxt ||gtddgd�}t ||¡ d S )NTFr-   )rT   r1   )r   r1   ÚtyperD   r#   rf   r5   r6   )r'   r  rU   r   r?   r9   r)   r)   r*   Útest_setitem_non_bool_into_boolƒ  s    
z2TestSetitemCasting.test_setitem_non_bool_into_boolc                 C   sp   t dddgƒ}|j}tddd gƒ}|d d… |d d…< |j|ksDt‚|dd … |dd …< t |ƒ}t ||¡ d S )NTFr/   r-   )r   rÏ   r   r#   r5   r6   )r'   r?   rh   rE   r9   r)   r)   r*   Ú&test_setitem_boolean_array_into_npbool“  s    z9TestSetitemCasting.test_setitem_boolean_array_into_npboolN)	rl   rm   rn   ro   rp   rq   r  r  r  r)   r)   r)   r*   rÿ   ‚  s   rÿ   c                   @   s^   e Zd ZdZejdd„ ƒZdd„ Zdd„ Zdd	„ Z	d
d„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚSetitemCastingEquivalentszÓ
    Check each of several methods that _should_ be equivalent to `obj[key] = val`

    We assume that
        - obj.index is the default Index(range(len(obj)))
        - the setitem does not expand the obj
    c                 C   s*   z|j |j kW S  tk
r$   Y dS X dS )zF
        Whether we expect the setting to be in-place or not.
        FN)rT   r‚   )r'   Úobjr9   r)   r)   r*   Ú
is_inplaceª  s    z$SetitemCastingEquivalents.is_inplacec           	      C   s>   |}|  ¡ }|j}|||ƒ|< t ||¡ |  ||||¡ d S r_   )r3   rÏ   r5   r6   Ú_check_inplace)	r'   r  r�   r9   r  ri   r  rV   rE   r)   r)   r*   Úcheck_indexerµ  s    z'SetitemCastingEquivalents.check_indexerc                 C   sP   |d kr
nB|r>|j jdkr.|j|jjks<t‚qL|j|ksLt‚nt ||j¡ d S )N)ÚmÚM)rT   ÚkindrÐ   rÏ   r#   r5   Zassert_equal)r'   r  rV   rE   r  r)   r)   r*   r	  ¿  s    z(SetitemCastingEquivalents._check_inplacec                 C   s  t |tƒsd S |  ||||||¡ |tjkrD|  ||||tj|¡ n |tjkrd|  ||||tj|¡ t||d ƒ}|  ||||||¡ |tjk	r²t	||d ƒ}|  ||||||¡ |g}	|  ||	||||¡ t
 |	¡}
|  ||
||||¡ dd„ |fD ƒ}|  ||||||¡ d S )Nr-   c                 s   s   | ]
}|V  qd S r_   r)   rb   r)   r)   r*   re   ç  s     z9SetitemCastingEquivalents.test_int_key.<locals>.<genexpr>)r`   Úintr
  r5   r4   r   rD   Úiatr†   Úslicer$   r   )r'   r  r�   r9   r  rU   r  ÚrngZslcÚilkeyÚindkeyÚgenkeyr)   r)   r*   Útest_int_keyÎ  s$    




z&SetitemCastingEquivalents.test_int_keyc           
      C   s˜   t |tƒsd S |tjk	r,|  ||||||¡ ttt|ƒƒƒ| }|  ||||||¡ t 	|¡}|  ||||||¡ dd„ |D ƒ}	|  ||	||||¡ d S )Nc                 s   s   | ]
}|V  qd S r_   r)   rb   r)   r)   r*   re   ø  s     z;SetitemCastingEquivalents.test_slice_key.<locals>.<genexpr>)
r`   r  r5   r4   r
  r‡   r†   Úlenr$   r   )
r'   r  r�   r9   r  rU   r  r  r  r  r)   r)   r*   Útest_slice_keyê  s    


z(SetitemCastingEquivalents.test_slice_keyc              	   C   s‚   t j|jtd�}d||< | ¡ }t|ƒrft|ƒ| ¡ k rfd}tj	t
|d�� |||ƒ|< W 5 Q R X d S |||ƒ|< t ||¡ d S )Nr\   Tz9boolean index did not match indexed array along dimensionrs   )r$   ró   ÚshapeÚboolr3   r   r  Úsumro   rv   rw   r5   r6   )r'   r  r�   r9   r  rU   r¨   rx   r)   r)   r*   Útest_mask_keyû  s    z'SetitemCastingEquivalents.test_mask_keyc              	   C   s    t j|jtd�}d||< t|ƒr`t|ƒt|ƒk r`d}tjt|d�� | 	| |¡ W 5 Q R X d S |}| 
¡ }|j}	| 	| |¡}
t |
|¡ |  |||	|¡ d S )Nr\   Tz4operands could not be broadcast together with shapesrs   )r$   ró   r  r  r   r  ro   rv   rö   rÄ   r3   rÏ   r5   r6   r	  )r'   r  r�   r9   r  r  r¨   rx   rV   rE   rÇ   r)   r)   r*   Útest_series_where  s    z+SetitemCastingEquivalents.test_series_wherec                 C   sH   t j|jtd�}d||< t|ƒ | |¡}t||jd�}t ||¡ d S ©Nr\   T)	r$   ró   r  r  r
   rÄ   rT   r5   Úassert_index_equal)r'   r  r�   r9   r  r¨   rÇ   Zexpected_idxr)   r)   r*   Útest_index_where  s
    z*SetitemCastingEquivalents.test_index_wherec                 C   sB   t j|jtd�}d||< t|ƒ ||¡}t |t||jd�¡ d S r  )	r$   ró   r  r  r
   Zputmaskr5   r  rT   )r'   r  r�   r9   r  r¨   rÇ   r)   r)   r*   Útest_index_putmask'  s    z,SetitemCastingEquivalents.test_index_putmaskN)rl   rm   rn   Ú__doc__ro   Úfixturer  r
  r	  r  r  r  r  r  r   r)   r)   r)   r*   r  ¡  s   


r  zobj,expected,keyr-   r   r/   r   r    zinterval[float64]r\   Zinterval_int_na_value)Úidr"   r!   r‰   r–   r   Zint_series_slice_key_stepTFZbool_series_slice_key_stepZint_series_slice_keyZint_series_int_keyZbool_series_int_key_change_allZbool_series_int_keyc                   @   s0   e Zd Zejeje d¡degd�dd„ ƒZ	dS )ÚTestSetitemCastingEquivalentsÚNaNN©Úparamsc                 C   s   |j S )z·
        NA values that should generally be valid_na for *all* dtypes.

        Include both python float NaN and np.float64; only np.float64 has a
        `dtype` attribute.
        ©Úparam©r'   Úrequestr)   r)   r*   r  j  s    z!TestSetitemCastingEquivalents.val)
rl   rm   rn   ro   r"  r$   r%   rí   r   r  r)   r)   r)   r*   r$  /  s   ;r$  c                   @   s^   e Zd Zejdd„ ƒZejeeegd�dd„ ƒZ	ejdd„ ƒZ
ejdd	„ ƒZejd
d„ ƒZdS )Ú!TestSetitemTimedelta64IntoNumericc                 C   s   t  dd¡}|S )Nr    Úns)r$   Útimedelta64)r'   rå   r)   r)   r*   r  y  s    z%TestSetitemTimedelta64IntoNumeric.valr&  c                 C   s   |j S r_   r(  r*  r)   r)   r*   rT     s    z'TestSetitemTimedelta64IntoNumeric.dtypec                 C   s   t  d¡ |¡}t|ƒ}|S )Nr   )r$   r˜   r’   r   ©r'   rT   rE   r?   r)   r)   r*   r  ƒ  s    z%TestSetitemTimedelta64IntoNumeric.objc                 C   s8   t  d¡ |¡}t|ƒ}| t¡}t  dd¡|jd< |S )Nr   r    r-  r   )r$   r˜   r’   r   rf   r.  rD   r/  r)   r)   r*   r9   ‰  s
    
z*TestSetitemTimedelta64IntoNumeric.expectedc                 C   s   dS r    r)   ©r'   r)   r)   r*   r�   ‘  s    z%TestSetitemTimedelta64IntoNumeric.keyN)rl   rm   rn   ro   r"  r  Úcomplexr  r“   rT   r  r9   r�   r)   r)   r)   r*   r,  u  s   



r,  c                   @   sx   e Zd Zejddgd�dd„ ƒZejdd„ ƒZejdd	„ ƒZejd
d„ ƒZejdd„ ƒZ	ejde
ejgd�dd„ ƒZdS )ÚTestSetitemDT64IntoIntr]   úm8[ns]r&  c                 C   s   |j S r_   r(  r*  r)   r)   r*   rT   ™  s    zTestSetitemDT64IntoInt.dtypec                 C   s    t  dd¡}|dkr|| }|S )Nz2021-01-18 13:25:00r-  r3  )r$   ra   )r'   rT   r  r)   r)   r*   Úscalar�  s    zTestSetitemDT64IntoInt.scalarc                 C   s,   t ||dgtd�}t|d t|ƒƒs(t‚|S )Nr   r\   r   )r   rf   r`   r  r#   )r'   r4  r9   r)   r)   r*   r9   ¤  s    zTestSetitemDT64IntoInt.expectedc                 C   s   t dddgƒS )Nr-   r/   r   ©r   r0  r)   r)   r*   r  ª  s    zTestSetitemDT64IntoInt.objc                 C   s
   t d dƒS )NrŸ   ©r  r0  r)   r)   r*   r�   ®  s    zTestSetitemDT64IntoInt.keyNc                 C   s   |j }|d kr|S |||gƒS r_   r(  )r'   r4  r+  Úboxr)   r)   r*   r  ²  s    zTestSetitemDT64IntoInt.val)rl   rm   rn   ro   r"  rT   r4  r9   r  r�   r‡   r$   r   r  r)   r)   r)   r*   r2  –  s   




r2  c                   @   s`   e Zd Zejdd„ ƒZejdd„ ƒZejdeddƒgd�dd	„ ƒZejd
e	j
gd�dd„ ƒZd
S )ÚTestSetitemNAPeriodDtypec                 C   sN   t tdddd�ƒ}tj|j d¡|< || tksJtdd„ || D ƒƒsJt‚|S )Nú
2000-01-01r   rÎ   ©r   rK   Úi8c                 s   s   | ]}|t kV  qd S r_   )r   rb   r)   r)   r*   re   Á  s     z4TestSetitemNAPeriodDtype.expected.<locals>.<genexpr>)r   r   r   Ú_valuerÏ   Úviewrg   r#   )r'   r�   rW   r)   r)   r*   r9   ½  s    &z!TestSetitemNAPeriodDtype.expectedc                 C   s   t tdddd�ƒS )Nr9  r   rÎ   r:  )r   r   r0  r)   r)   r*   r  Ä  s    zTestSetitemNAPeriodDtype.objr   r   r&  c                 C   s   |j S r_   r(  r*  r)   r)   r*   r�   È  s    zTestSetitemNAPeriodDtype.keyNc                 C   s   |j S r_   r(  r*  r)   r)   r*   r  Ì  s    zTestSetitemNAPeriodDtype.val)rl   rm   rn   ro   r"  r9   r  r  r�   r$   r%   r  r)   r)   r)   r*   r8  º  s   


r8  c                	   @   s�   e Zd Zejddddgd�dd„ ƒZejdd	„ ƒZejd
eje	e 
dd¡e dd¡gd�dd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZd
S )ÚTestSetitemNADatetimeLikeDtyper3  r]   zdatetime64[ns, UTC]zdatetime64[ns, US/Central]r&  c                 C   s   |j S r_   r(  r*  r)   r)   r*   rT   ×  s    z$TestSetitemNADatetimeLikeDtype.dtypec                 C   s0   t ddd�j}t||d�}|j|ks(t‚t|ƒS )NrH   r   r   r\   )r   Zasi8r
   rT   r#   r   )r'   rT   Zi8valsr7   r)   r)   r*   r  Ý  s    z"TestSetitemNADatetimeLikeDtype.objNr   r-  c                 C   s   |j S r_   r(  r*  r)   r)   r*   r  ä  s    
z"TestSetitemNADatetimeLikeDtype.valc                 C   s&   |t kp$|d kp$|tjkp$|j|jkS r_   )r   r$   r%   rT   )r'   r  r  r)   r)   r*   r  ð  s    z)TestSetitemNADatetimeLikeDtype.is_inplacec                 C   s0   |r
|j nt}t|gt|dd … ƒ |d�}|S )Nr-   r\   )rT   rf   r   r‡   )r'   r  r  r  rT   r9   r)   r)   r*   r9   ÷  s    z'TestSetitemNADatetimeLikeDtype.expectedc                 C   s   dS r    r)   r0  r)   r)   r*   r�   ý  s    z"TestSetitemNADatetimeLikeDtype.key)rl   rm   rn   ro   r"  rT   r  r$   r%   r   r.  ra   r  r  r9   r�   r)   r)   r)   r*   r>  Ñ  s*   
ÿ



ûÿ	


r>  c                   @   sD   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZd	S )
Ú$TestSetitemMismatchedTZCastsToObjectc                 C   s   t tdddd�ƒS )NÚ2000r/   ú
US/CentralrB   ©r   r   r0  r)   r)   r*   r    s    z(TestSetitemMismatchedTZCastsToObject.objc                 C   s   t ddd�S )Nr@  rA   rN   )r   r0  r)   r)   r*   r    s    z(TestSetitemMismatchedTZCastsToObject.valc                 C   s   dS r    r)   r0  r)   r)   r*   r�     s    z(TestSetitemMismatchedTZCastsToObject.keyc                 C   s$   t | d¡tddd�g|jd�}|S )NrA  z2000-01-02 00:00:00-06:00rN   r\   )r   Z
tz_convertr   rT   )r'   r  r  r9   r)   r)   r*   r9     s    
þûz-TestSetitemMismatchedTZCastsToObject.expectedN©	rl   rm   rn   ro   r"  r  r  r�   r9   r)   r)   r)   r*   r?    s   


r?  zobj,expectedç      ð?g       @rè   iÐ  ru   r±   Zbazc                   @   s(   e Zd Zejdd„ ƒZejdd„ ƒZdS )ÚTestSeriesNoneCoercionc                 C   s   dS r    r)   r0  r)   r)   r*   r�   .  s    zTestSeriesNoneCoercion.keyc                 C   s   d S r_   r)   r0  r)   r)   r*   r  2  s    zTestSeriesNoneCoercion.valN)rl   rm   rn   ro   r"  r�   r  r)   r)   r)   r*   rE    s   
rE  c                   @   sL   e Zd Zdd„ Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejd	d
„ ƒZ	dS )Ú-TestSetitemFloatIntervalWithIntIntervalValuesc                 C   s:   t  tdƒ¡}t|ƒ}tddƒ}||d< |jdks6t‚d S )Nr    ç      à?ç      ø?r   zInterval[float64, right])r   Úfrom_breaksr†   r   r   rT   r#   )r'   r7   r  r  r)   r)   r*   Útest_setitem_example:  s
    
zBTestSetitemFloatIntervalWithIntIntervalValues.test_setitem_examplec                 C   s   t  tdƒ¡}t|ƒS )Nr    )r   rI  r†   r   )r'   r7   r)   r)   r*   r  C  s    z1TestSetitemFloatIntervalWithIntIntervalValues.objc                 C   s
   t ddƒS )NrG  rH  )r   r0  r)   r)   r*   r  H  s    z1TestSetitemFloatIntervalWithIntIntervalValues.valc                 C   s   dS r    r)   r0  r)   r)   r*   r�   L  s    z1TestSetitemFloatIntervalWithIntIntervalValues.keyc                 C   s*   |gt |dd … ƒ }t|dd�}t|ƒS )Nr-   zInterval[float64]r\   )r‡   r   r   )r'   r  r  Údatar7   r)   r)   r*   r9   P  s    z6TestSetitemFloatIntervalWithIntIntervalValues.expectedN)
rl   rm   rn   rJ  ro   r"  r  r  r�   r9   r)   r)   r)   r*   rF  7  s   	


rF  c                   @   sD   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZd	S )
Ú!TestSetitemRangeIntoIntegerSeriesc                 C   s   t  |¡}ttdƒ|d�}|S ©Nr   r\   )r$   rT   r   r†   )r'   Úany_int_numpy_dtyperT   r?   r)   r)   r*   r  [  s    
z%TestSetitemRangeIntoIntegerSeries.objc                 C   s
   t ddƒS )Nr/   r    )r†   r0  r)   r)   r*   r  a  s    z%TestSetitemRangeIntoIntegerSeries.valc                 C   s
   t ddƒS ©Nr   r/   r6  r0  r)   r)   r*   r�   e  s    z%TestSetitemRangeIntoIntegerSeries.keyc                 C   s$   t  |¡}tdddddg|d�}|S )Nr/   r   r    r\   )r$   rT   r   )r'   rN  rT   rW   r)   r)   r*   r9   i  s    
z*TestSetitemRangeIntoIntegerSeries.expectedNrC  r)   r)   r)   r*   rL  W  s   


rL  r  ç      @g      @éA   c                   @   s6   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZdS )Ú(TestSetitemFloatNDarrayIntoIntegerSeriesc                 C   s   t tdƒtjd�S rM  )r   r†   r$   r™   r0  r)   r)   r*   r  y  s    z,TestSetitemFloatNDarrayIntoIntegerSeries.objc                 C   s
   t ddƒS rO  r6  r0  r)   r)   r*   r�   }  s    z,TestSetitemFloatNDarrayIntoIntegerSeries.keyc                 C   s@   |d dkrt j}nt j}t jtdƒ|d�}||d d…< t|ƒS )Nr   r/   r   r\   )r$   r™   rí   r   r†   r   )r'   r  rT   Z
res_valuesr)   r)   r*   r9   �  s    z1TestSetitemFloatNDarrayIntoIntegerSeries.expectedN©rl   rm   rn   ro   r"  r  r�   r9   r)   r)   r)   r*   rR  p  s   	

rR  é   c                   @   s6   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZdS )Ú'TestSetitemIntoIntegerSeriesNeedsUpcastc                 C   s   t dddgtjd�S )Nr-   r/   r   r\   ©r   r$   rÁ   r0  r)   r)   r*   r  �  s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.objc                 C   s   dS rÜ   r)   r0  r)   r)   r*   r�   “  s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.keyc                 C   s   t dddgtjd�S )Nr-   rT  r   r\   )r   r$   Úint16r0  r)   r)   r*   r9   —  s    z0TestSetitemIntoIntegerSeriesNeedsUpcast.expectedNrS  r)   r)   r)   r*   rU  �  s   

rU  g      BgÍÌ    Bl            c                   @   s6   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZdS )ÚTestSmallIntegerSetitemUpcastc                 C   s   t dddgdd�S )Nr-   r/   r   Úi4r\   r5  r0  r)   r)   r*   r  Ÿ  s    z!TestSmallIntegerSetitemUpcast.objc                 C   s   dS r    r)   r0  r)   r)   r*   r�   £  s    z!TestSmallIntegerSetitemUpcast.keyc                 C   s(   |d dkrd}nd}t |ddg|d�S )Nr-   r   Zf8r;  r/   r   r\   r5  )r'   r  rT   r)   r)   r*   r9   §  s    z&TestSmallIntegerSetitemUpcast.expectedNrS  r)   r)   r)   r*   rX  œ  s   

rX  c                   @   s(   e Zd Zejdd„ ƒZejdd„ ƒZdS )ÚCoercionTestc                 C   s   dS rÜ   r)   r0  r)   r)   r*   r�   ³  s    zCoercionTest.keyc                 C   s   t |ƒ}|||< t||d�S )Nr\   )r‡   r   )r'   r  r�   r  Ú	exp_dtyperX   r)   r)   r*   r9   ·  s    zCoercionTest.expectedN)rl   rm   rn   ro   r"  r�   r9   r)   r)   r)   r*   rZ  °  s   
rZ  zval,exp_dtypec                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionInt8c                 C   s   t ddddgtjd�S )Nr-   r/   r   r    r\   rV  r0  r)   r)   r*   r  Ã  s    zTestCoercionInt8.objN©rl   rm   rn   ro   r"  r  r)   r)   r)   r*   r\  ¾  s   r\  çš™™™™™ñ?ù      ð?      ð?r[  c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionObjectc                 C   s   t ddddgtd�S )Nr,   r.   r»   Údr\   )r   rf   r0  r)   r)   r*   r  Ì  s    zTestCoercionObject.objNr]  r)   r)   r)   r*   r`  È  s   r`  c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionComplexc                 C   s   t ddddgƒS )Nr_  y       @       @y      @      @y      @      @r5  r0  r)   r)   r*   r  ×  s    zTestCoercionComplex.objNr]  r)   r)   r)   r*   rb  Ñ  s   rb  r  c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionBoolc                 C   s   t ddddgtd�S )NTFr\   )r   r  r0  r)   r)   r*   r  é  s    zTestCoercionBool.objNr]  r)   r)   r)   r*   rc  Ü  s   rc  c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionInt64c                 C   s   t ddddgƒS )Nr-   r/   r   r    r5  r0  r)   r)   r*   r  ô  s    zTestCoercionInt64.objNr]  r)   r)   r)   r*   rd  î  s   rd  c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionFloat64c                 C   s   t ddddgƒS )Nr^  çš™™™™™@çffffff
@çš™™™™™@r5  r0  r)   r)   r*   r  ÿ  s    zTestCoercionFloat64.objNr]  r)   r)   r)   r*   re  ù  s   re  zbnp.float32(1.1) ends up as 1.100000023841858, so np_can_hold_element raises and we cast to float64)Úreason)Zmarksc                       s*   e Zd Zejdd„ ƒZ‡ fdd„Z‡  ZS )ÚTestCoercionFloat32c                 C   s   t ddddgtjd�S )Nr^  rf  rg  rh  r\   )r   r$   Úfloat32r0  r)   r)   r*   r    s    zTestCoercionFloat32.objc                    s.   t ƒ  ||||||¡ t|ƒtkr*tdƒ‚d S )Nz!xfail not relevant for this test.)Úsuperr  r  r“   r#   )r'   r  r�   r9   r  rU   r  ©Ú	__class__r)   r*   r  !  s    z"TestCoercionFloat32.test_slice_key)rl   rm   rn   ro   r"  r  r  Ú__classcell__r)   r)   rm  r*   rj    s   
rj  rQ   zdatetime64[ns]rd   c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionDatetime64c                 C   s   t tdddd�ƒS )NrP   rÎ   r    )rK   r   rB  r0  r)   r)   r*   r  0  s    zTestCoercionDatetime64.objNr]  r)   r)   r)   r*   rp  )  s   rp  rA   rN   zdatetime64[ns, US/Eastern]rÖ   c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionDatetime64TZc                 C   s   d}t tddd|d�ƒS )NrA   rP   rÎ   r    rJ   rB  )r'   rC   r)   r)   r*   r  A  s    zTestCoercionDatetime64TZ.objNr]  r)   r)   r)   r*   rq  5  s   rq  z12 dayztimedelta64[ns]c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionTimedelta64c                 C   s   t tddd�ƒS )Nz1 dayr    r   )r   r   r0  r)   r)   r*   r  M  s    zTestCoercionTimedelta64.objNr]  r)   r)   r)   r*   rr  G  s   rr  Z2016ÚYr¶   Zboth)Úclosedc                   @   s4   e Zd Zejedddd�eddƒgd�dd	„ ƒZd
S )ÚTestPeriodIntervalCoercionrH   r   rÎ   r:  r-   r   r&  c                 C   s
   t |jƒS r_   )r   r)  r*  r)   r)   r*   r  X  s    zTestPeriodIntervalCoercion.objN)rl   rm   rn   ro   r"  r   r   r  r)   r)   r)   r*   ru  R  s   þÿru  c                  C   sT  t dddgdddgd�} t dddgdddgd�}|  ¡ }d|jd< t ||¡ |  ¡ }d|jd< t ||¡ |  ¡ }d|d< t ||¡ |  ¡ }d|jd< t ||¡ |  ¡ }d|jd< t ||¡ |  d	¡}| d	¡}| ¡ }d|jd
< t 	||¡ | ¡ }d|jd
< t 	||¡ | ¡ }d|jd< t 	||¡ | ¡ }d|jd< t 	||¡ d S )Nr   r-   r/   r,   r.   r»   r0   gš™™™™™@rÙ   )r.   rÙ   )r-   r   )
r   r3   r   r5   r6   r4   r  rD   Zto_frameÚassert_frame_equal)rV   r9   r?   Zorig_dfZexpected_dfÚdfr)   r)   r*   Ú
test_20643b  s>    









rx  c                  C   sr   t dddgdddgd�} t tjddgdddgd�}|  ¡ }d |jd< t ||¡ |  ¡ }d |jd< t ||¡ d S )Nr   r-   r/   r,   r.   r»   r0   )r   r$   r%   r3   r  r5   r6   rD   )rV   r9   r?   r)   r)   r*   Útest_20643_comment�  s    

ry  c                  C   s  t dddgƒ} | | dk  d7  < t dddgƒ}t | |¡ t dddgƒ} | d  d7  < t | |¡ t dddgƒ} | jd  d7  < t | |¡ t dddgƒ} | jd  d7  < t | |¡ t dddgƒ} | jd  d7  < t | |¡ t dddgƒ} | jd  d7  < t | |¡ d S )Nr-   r/   r   rG  rP  )r   r5   r6   r4   rD   r  r   ©r?   r9   r)   r)   r*   Ú
test_15413Ÿ  s&    r{  c                  C   s\   t  d¡ d¡} t| ƒ}t  t  t j¡j¡}||d< t|ddddgt jd�}t ||¡ d S )	Nr   rY  r   r-   r/   r   r    r\   )	r$   r˜   r’   r   r™   ÚiinfoÚmaxr5   r6   ©rE   r?   r  r9   r)   r)   r*   Útest_32878_int_itemsize¼  s    r  c                  C   sn   t  d¡ d¡} t| ƒ}t  t j¡j}| d¡}||d< |d |ksHt‚t|ddddgdd	�}t 	||¡ d S )
Nr   Zc8Zc16r   r-   r/   r   r    r\   )
r$   r˜   r’   r   Úfinforí   r}  r#   r5   r6   r~  r)   r)   r*   Útest_32878_complex_itemsizeÆ  s    
r�  c                 C   sN   t dddgdddgd�}d| |ƒd< t dddgdddgtd	�}t ||¡ d S )
Nr-   r/   r   r,   r.   r»   r0   Útestr^   ©r   rf   r5   r6   )Z
indexer_alr?   r9   r)   r)   r*   Ú
test_37692Ó  s    r„  c                 C   sÊ   t jt jfD ]\}tdtdƒ|d�}d| |ƒd< |jtks<t‚tdtdƒtd�}|dƒ|d< |jtkst‚qtdtdƒt jd�}t  d¡| |ƒd< |jt jks t‚tdtdƒt jd�}t  d¡| |ƒd< d S )Nr   r   r^   Tr-   rD  )	r$   rí   r™   r   r†   rT   rf   r#   r  )rU   rT   r?   r)   r)   r*   Ú'test_setitem_bool_int_float_consistencyÛ  s    r…  c                  C   sJ   t dddgdddgd�} d| d	< t dddgdddgtd
�}t | |¡ d S )Nr-   r/   r   r,   r.   r»   r0   r[   r   r^   rƒ  rz  r)   r)   r*   Ú$test_setitem_positional_with_castingó  s    r†  c                  C   sH   t dddgdddgd�} d| d	< t dddgdddgd�}t | |¡ d S )
Nr-   r/   r   r,   r.   r»   r0   rH  r   r|   rz  r)   r)   r*   Ú.test_setitem_positional_float_into_int_coercesý  s    r‡  c            	      C   sF  t ddddgddddgd	�} | jjr(t‚d
| d< t ddd
dg| jd	�}t | |¡ d| d< t ddd
ddgdddddgd	�}t | |¡ t td
ƒ¡d d d… }t tt	|ƒƒ|d	�}| 
t¡ tdgƒ¡}t ddddddg|d	�}d|d< t ||¡ t | jddgg¡}t tt	|ƒƒ|d	�}| ¡ }d|jd< d|d< t ||¡ d S )Nr-   r/   r   r    r^  gÍÌÌÌÌÌ @rè   gffffff@r0   r   r   g      @r   r–   rÙ   ÚBéc   )r   r1   Z_should_fallback_to_positionalr#   r5   r6   r   rI  r†   r  r’   rf   Úappendr
   r   r—   r3   r4   )	r?   r9   Úiir¯   Z	exp_indexZ	expected2rš   rÆ   Z	expected3r)   r)   r*   Útest_setitem_int_not_positional  s(     
rŒ  c                  C   s†   t dddgdddgdœƒ} |  d¡}d	|d
ddg< td	ddgdd�}t ||¡ d| jd
ddgdf< t ddddgiƒ}t | |¡ d S )Nr-   r/   r   r    r   r"   )r,   r.   r.   r–   TF)rK  rê   r   r,   )r   Úpopr   r5   r6   r4   rv  )rw  r8   r9   r)   r)   r*   Útest_setitem_with_bool_indexer(  s    
rŽ  Úsizer¨   Úitemr7  c                 C   s   t  | g¡S r_   )r$   r   rÚ   r)   r)   r*   r£   @  r¤   r£   c                 C   s   | gS r_   r)   rÚ   r)   r)   r*   r£   @  r¤   c                 C   s   | fS r_   r)   rÚ   r)   r)   r*   r£   @  r¤   c           	   	   C   s�   t  || ¡}t j| td�}t|ƒ}| ¡ dkrZd}tjt|d�� ||ƒ||< W 5 Q R X n2||ƒ||< tt j| td�ƒ}|||< t	 
||¡ d S )Nr\   r-   zKcannot set using a list-like indexer with a different length than the valuers   )r$   Úresizer˜   r“   r   r  ro   rv   rö   r5   r6   )	r�  r¨   r�  r7  Z	selectionrK  r?   rx   r9   r)   r)   r*   Ú7test_setitem_bool_indexer_dont_broadcast_length1_values6  s    ÿr’  c                  C   s~   t ddd�} t| ƒ}| ¡ }tjdtd�}d||< |j| jksBt‚t 	||¡ |j
|ddd� |j| jksnt‚t 	||¡ d S )NrH   r   r   r\   ru   TrÃ   )r   r   r3   r$   ró   r  rT   r#   r5   r6   r¨   )rÔ   r?   rV   r¨   r)   r)   r*   Ú(test_setitem_empty_mask_dont_upcast_dt64^  s    r“  )mr   r   Únumpyr$   ro   Zpandas.errorsr   Zpandas.core.dtypes.commonr   Zpandasr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr5   Zpandas.tseries.offsetsr   r   rr   r€   rœ   rÍ   rØ   rß   rø   rù   rý   rþ   rÿ   r  rp   rq   r)  r%   r  rf   r˜   r$  r,  r2  r8  r>  r?  rE  rF  rL  rí   rR  rW  rU  rX  rZ  Zint32rÁ   r\  r`  Z
complex128rb  r  rc  r™   rd  re  rk  ZxfailrÉ   Zuint32r|  r}  Zuint64rj  rp  rq  rr  ru  rx  ry  r{  r  r�  r„  r…  r†  r‡  rŒ  rŽ  r†   r€  r“   Úminr’  r“  r)   r)   r)   r*   Ú<module>   s¢  T + $+k þ÷"
û
ü$ûûú
ûÑþ:!$1$þöþ
 ýþ ÿ þúþ þ þÿýíþþ
ûþ
þ ÿ.

	" ÿ ÿ ÿ