U
    `»{jÍ  ã                   @   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~�e4f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)   úh/var/www/html/bwave/python/venv/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   r{   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   rz   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_seriesry   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   s¸   t tj d¡ddddddddgd	�}d
}tjt|d�� d|d d…< W 5 Q R X tjt|dd�� |d d… dk ¡ sxt‚W 5 Q R X tjt|d�� |dd … dk 	¡ rªt‚W 5 Q R X d S )Né   r/   r    r"   r   é   é   é   r0   zEIn a future version, this will be treated as \*label-based\* indexingrs   r   F)rt   Zcheck_stacklevel)
r   r$   ÚrandomÚrandnr5   Úassert_produces_warningÚFutureWarningrg   r#   Úanyrx   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_shiftedry   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·   Úorderedr3   r9   r)   r)   r*   Ú$test_setitem_boolean_different_order=  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_listH  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_typesQ  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_lengtha  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_boolj  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_upcastq  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‚|jjj|jjjk	sDt‚|jdksRt‚t|jd< |jjd kslt‚|j|k	szt‚|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#   Ú_dataÚbaserK   r   rD   ©r'   Ú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‚|jjj|jjjk	sDt‚|jjd |k	sXt‚|jjd jj|jjjk	svt‚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Õ   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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_naN)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â   Ó  s4   	

ýþ
	


úþrâ   c               
   C   sf   t  d¡} d| j_t| ƒ}tt|ƒƒD ]:}d}tjt	|d�� d||< W 5 Q R X | | dks&t
‚q&d S )Nr   Fú#assignment destination is read-onlyrs   r-   r   )r$   ÚzerosÚflagsÚ	writeabler   r‡   Úlenro   rv   Ú
ValueErrorr#   )r   r(   Únry   r)   r)   r*   Ú.test_setitem_scalar_into_readonly_backing_data6  s    
rú   c               	   C   sT   t  d¡} d| j_t| ƒ}d}tjt|d�� d|dd…< W 5 Q R X |  ¡ rPt	‚d S )Nr   Fró   rs   r-   r   )
r$   rô   rõ   rö   r   ro   rv   rø   r’   r#   )r   r(   ry   r)   r)   r*   Ú-test_setitem_slice_into_readonly_backing_dataE  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_opsS  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_categoricalp  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_booly  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  x  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   ÚkindZ_ndarrayrÓ   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‡   r÷   r$   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«   ry   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«   ry   rV   rE   rË   r)   r)   r*   Útest_series_where  s    z+SetitemCastingEquivalents.test_series_wherec                 C   sD   t j|jtd�}d||< t|ƒ | |¡}t |t||jd�¡ d S ©Nr\   T)	r$   rô   r  r  r
   rÈ   r5   Úassert_index_equalrT   ©r'   r	  r‚   r9   r  r«   rË   r)   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)   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  _  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  n  s    z%TestSetitemTimedelta64IntoNumeric.valr(  c                 C   s   |j S r_   r*  r,  r)   r)   r*   rT   t  s    z'TestSetitemTimedelta64IntoNumeric.dtypec                 C   s   t  d¡ |¡}t|ƒ}|S )Nr   )r$   r›   r•   r   ©r'   rT   rE   r?   r)   r)   r*   r	  x  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   r0  rh   r1  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.  j  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/  r5  )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'   r6  r9   r)   r)   r*   r9   ™  s    zTestSetitemDT64IntoInt.expectedc                 C   s   t dddgƒS )Nr-   r/   r   ©r   r2  r)   r)   r*   r	  Ÿ  s    zTestSetitemDT64IntoInt.objc                 C   s
   t d dƒS )Nr¢   ©r  r2  r)   r)   r*   r‚   £  s    zTestSetitemDT64IntoInt.keyNc                 C   s   |j }|d kr|S |||gƒS r_   r*  )r'   r6  r-  Úboxr)   r)   r*   r  §  s    zTestSetitemDT64IntoInt.val)rl   rm   rn   ro   r$  rT   r6  r9   r	  r‚   rˆ   r$   r   r  r)   r)   r)   r*   r4  ‹  s   




r4  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   rj   rÓ   Úviewrg   r#   )r'   r‚   rW   r)   r)   r*   r9   ²  s    &z!TestSetitemNAPeriodDtype.expectedc                 C   s   t tdddd�ƒS )Nr;  r   rÒ   r<  )r   r   r2  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*   r:  ¯  s   


r:  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 )ÚTestSetitemNADatetimeLikeDtyper5  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)   r2  r)   r)   r*   r‚   ò  s    z"TestSetitemNADatetimeLikeDtype.key)rl   rm   rn   ro   r$  rT   r	  r$   r%   r   r0  ra   r  r
  r9   r‚   r)   r)   r)   r*   r?  Æ  s*   
ÿ



ûÿ	


r?  c                   @   sX   e Z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	d
�dd„ ƒZ	dS )Ú$TestSetitemMismatchedTZCastsToObjectc                 C   s   t tdddd�ƒS )NÚ2000r/   ú
US/CentralrB   ©r   r   r2  r)   r)   r*   r	  ù  s    z(TestSetitemMismatchedTZCastsToObject.objc                 C   s   t ddd�S )NrA  rA   rN   )r   r2  r)   r)   r*   r  ý  s    z(TestSetitemMismatchedTZCastsToObject.valc                 C   s   dS r£   r)   r2  r)   r)   r*   r‚     s    z(TestSetitemMismatchedTZCastsToObject.keyc                 C   s$   t tddd�tddd�gtd�}|S )Nz2000-01-01 00:00:00-05:00rA   rN   z2000-01-02 00:00:00-06:00rB  r\   )r   r   rf   )r'   r9   r)   r)   r*   r9     s    

þûz-TestSetitemMismatchedTZCastsToObject.expectedT©Zautousec              	   c   sN   |j jdkr*| d¡}t|tƒs&d V  d S tjtdd�� d V  W 5 Q R X d S )Nr  r‚   úmismatched timezoners   )Úfunctionrl   Úgetfixturevaluer`   r  r5   r�   r‘   )r'   r-  r‚   r)   r)   r*   Úassert_warns  s    

z1TestSetitemMismatchedTZCastsToObject.assert_warnsN)
rl   rm   rn   ro   r$  r	  r  r‚   r9   rH  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)   r2  r)   r)   r*   r‚   -  s    zTestSeriesNoneCoercion.keyc                 C   s   d S r_   r)   r2  r)   r)   r*   r  1  s    zTestSeriesNoneCoercion.valN)rl   rm   rn   ro   r$  r‚   r  r)   r)   r)   r*   rJ    s   
rJ  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_example9  s
    
zBTestSetitemFloatIntervalWithIntIntervalValues.test_setitem_examplec                 C   s   t  tdƒ¡}t|ƒS )Nr    )r   rN  r‡   r   )r'   r7   r)   r)   r*   r	  B  s    z1TestSetitemFloatIntervalWithIntIntervalValues.objc                 C   s
   t ddƒS )NrL  rM  )r   r2  r)   r)   r*   r  G  s    z1TestSetitemFloatIntervalWithIntIntervalValues.valc                 C   s   dS r£   r)   r2  r)   r)   r*   r‚   K  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   O  s    z6TestSetitemFloatIntervalWithIntIntervalValues.expectedN)
rl   rm   rn   rO  ro   r$  r	  r  r‚   r9   r)   r)   r)   r*   rK  6  s   	


rK  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	  Z  s    
z%TestSetitemRangeIntoIntegerSeries.objc                 C   s
   t ddƒS )Nr/   r    )r‡   r2  r)   r)   r*   r  `  s    z%TestSetitemRangeIntoIntegerSeries.valc                 C   s
   t ddƒS ©Nr   r/   r8  r2  r)   r)   r*   r‚   d  s    z%TestSetitemRangeIntoIntegerSeries.keyc                 C   s$   t  |¡}tdddddg|d�}|S )Nr/   r   r    r\   )r$   rT   r   )r'   rS  rT   rW   r)   r)   r*   r9   h  s    
z*TestSetitemRangeIntoIntegerSeries.expectedN)	rl   rm   rn   ro   r$  r	  r  r‚   r9   r)   r)   r)   r*   rQ  V  s   


rQ  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 rR  )r   r‡   r$   rœ   r2  r)   r)   r*   r	  x  s    z,TestSetitemFloatNDarrayIntoIntegerSeries.objc                 C   s
   t ddƒS rT  r8  r2  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*   rW  o  s   	

rW  é   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Å   r2  r)   r)   r*   r	  Ž  s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.objc                 C   s   dS rß   r)   r2  r)   r)   r*   r‚   ’  s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.keyc                 C   s   t dddgtjd�S )Nr-   rY  r   r\   )r   r$   Úint16r2  r)   r)   r*   r9   –  s    z0TestSetitemIntoIntegerSeriesNeedsUpcast.expectedNrX  r)   r)   r)   r*   rZ  Œ  s   

rZ  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\   r7  r2  r)   r)   r*   r	  ž  s    z!TestSmallIntegerSetitemUpcast.objc                 C   s   dS r£   r)   r2  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\   r7  )r'   r  rT   r)   r)   r*   r9   ¦  s    z&TestSmallIntegerSetitemUpcast.expectedNrX  r)   r)   r)   r*   r]  ›  s   

r]  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)   r2  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*   r_  ¯  s   
r_  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\   r[  r2  r)   r)   r*   r	  Â  s    zTestCoercionInt8.objN©rl   rm   rn   ro   r$  r	  r)   r)   r)   r*   ra  ½  s   ra  çš™™™™™ñ?ù      ð?      ð?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   r2  r)   r)   r*   r	  Ë  s    zTestCoercionObject.objNrb  r)   r)   r)   r*   re  Ç  s   re  c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionComplexc                 C   s   t ddddgƒS )Nrd  y       @       @y      @      @y      @      @r7  r2  r)   r)   r*   r	  Ö  s    zTestCoercionComplex.objNrb  r)   r)   r)   r*   rg  Ð  s   rg  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  r2  r)   r)   r*   r	  è  s    zTestCoercionBool.objNrb  r)   r)   r)   r*   rh  Û  s   rh  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    r7  r2  r)   r)   r*   r	  ó  s    zTestCoercionInt64.objNrb  r)   r)   r)   r*   ri  í  s   ri  c                   @   s   e Zd Zejdd„ ƒZdS )ÚTestCoercionFloat64c                 C   s   t ddddgƒS )Nrc  çš™™™™™@çffffff
@çš™™™™™@r7  r2  r)   r)   r*   r	  þ  s    zTestCoercionFloat64.objNrb  r)   r)   r)   r*   rj  ø  s   rj  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 )Nrc  rk  rl  rm  r\   )r   r$   Úfloat32r2  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)   rr  r*   ro    s   
ro  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   rC  r2  r)   r)   r*   r	  /  s    zTestCoercionDatetime64.objNrb  r)   r)   r)   r*   ru  (  s   ru  rA   rN   zdatetime64[ns, US/Eastern]rÙ   c                   @   s.   e Zd Zejdd„ ƒZejdd�dd„ ƒZdS )ÚTestCoercionDatetime64TZc                 C   s   d}t tddd|d�ƒS )NrA   rP   rÒ   r    rJ   rC  )r'   rC   r)   r)   r*   r	  ?  s    zTestCoercionDatetime64TZ.objTrD  c              	   c   s†   |j jdkr*| d¡}t|tƒs&d V  d S | d¡}| d¡}|tkr|t|tƒr||jd k	r|tj	t
dd�� d V  W 5 Q R X nd V  d S )Nr  r‚   r`  r  rE  rs   )rF  rl   rG  r`   r  rf   r   rC   r5   r�   r‘   )r'   r-  r‚   r`  r  r)   r)   r*   rH  D  s    



z%TestCoercionDatetime64TZ.assert_warnsN)rl   rm   rn   ro   r$  r	  rH  r)   r)   r)   r*   rv  4  s   

rv  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   r2  r)   r)   r*   r	  ]  s    zTestCoercionTimedelta64.objNrb  r)   r)   r)   r*   rw  W  s   rw  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	  h  s    zTestPeriodIntervalCoercion.objN)rl   rm   rn   ro   r$  r   r   r	  r)   r)   r)   r*   rz  b  s   þÿrz  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_20643r  s>    









r}  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    

r~  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   rL  rU  )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   r^  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-   rI  )	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ˆ  r  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   rM  r   r}   r  r)   r)   r*   Ú.test_setitem_positional_float_into_int_coerces  s    rŒ  c            	   
   C   s€  t ddddgddddgd	�} | jjr(t‚t d ¡� d
| d< W 5 Q R X t ddd
dg| jd	�}t | |¡ d}tjt|d��( tj	t
dd�� d| d< W 5 Q R X W 5 Q R X t td
ƒ¡d d d… }t tt|ƒƒ|d	�}| ¡ }d|jd< tjt|d�� d|d< W 5 Q R X t ||¡ t | jddgg¡}t tt|ƒƒ|d	�}| ¡ }d|jd< tjt|d�� d|d< W 5 Q R X t ||¡ d S )Nr-   r/   r   r    rc  gÍÌÌÌÌÌ @rë   gffffff@r0   r   z5Treating integers as positional in Series.__setitem__rs   zindex 5 is out of boundsr   r™   r¢   rÜ   ÚBéc   )r   r1   Z_should_fallback_to_positionalr#   r5   r�   r6   r‘   ro   rv   rw   r   rN  r‡   r÷   r3   rD   r   rš   )	r?   r9   ry   Úiir²   Z	expected2r�   rÊ   Z	expected3r)   r)   r*   Ú3test_setitem_int_as_positional_fallback_deprecation  s0    

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)rP  rí   r   r,   )r   Úpopr   r5   r6   r4   r{  )r|  r8   r9   r)   r)   r*   Útest_setitem_with_bool_indexer<  s    
r’  Úsizer«   Úitemr9  c                 C   s   t  | g¡S r_   )r$   r   rÝ   r)   r)   r*   r¦   T  r§   r¦   c                 C   s   | gS r_   r)   rÝ   r)   r)   r*   r¦   T  r§   c                 C   s   | fS r_   r)   rÝ   r)   r)   r*   r¦   T  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”  r9  Z	selectionrP  r?   ry   r9   r)   r)   r*   Ú7test_setitem_bool_indexer_dont_broadcast_length1_valuesJ  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_dt64r  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.  r4  r:  r?  r@  rJ  rK  rQ  rð   rW  r\  rZ  r]  r_  Zint32rÅ   ra  re  Z
complex128rg  r  rh  rœ   ri  rj  rp  ZxfailrÍ   Zuint32r�  r‚  Zuint64ro  ru  rv  rw  rz  r}  r~  r€  r„  r†  r‰  rŠ  r‹  rŒ  r�  r’  r‡   r…  r–   Úminr–  r—  r)   r)   r)   r*   Ú<module>   s¢  T 1 $#c þ÷"
û
ü$ûûú
ûÑþ:!$1&$þöþ
 ýþ ÿ þúþ þ þÿýíþþ
üþ	þ ÿ.

	& ÿ ÿ ÿ