U
    ¾mœd°ø  ã                   @   s  d dl mZ d dlmZmZ d dlmZ d dlZd dlZd dl	Z	d dl
mZ d dlmZmZmZ d dlm  mZ d dlmZ d dl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" d dl#m$Z% d	Z&G d
d„ dƒZ'G dd„ dƒZ(dd„ Z)dZ*dZ+G dd„ dƒZ,G dd„ dƒZ-dS )é    )Ú
namedtuple)ÚdatetimeÚ	timedelta©ÚDecimalN)ÚiNaT)ÚInvalidIndexErrorÚPerformanceWarningÚSettingWithCopyError)Ú
is_integer)ÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚisnaÚnotnaÚto_datetimezBslice indices must be integers or None or have an __index__ methodc                   @   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	dd„ Z
ej ddddgdddgdddgg¡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&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Ze j!d8d9„ ƒZ"d:d;„ Z#d<d=„ Z$d>d?„ Z%e j!d@dA„ ƒZ&dBdC„ Z'e j!dDdE„ ƒZ(dFdG„ Z)dHdI„ Z*dJdK„ Z+dLdM„ Z,dNdO„ Z-dPdQ„ Z.dRdS„ Z/dTdU„ Z0dVdW„ Z1dXdY„ Z2dZd[„ Z3d\d]„ Z4d^d_„ Z5d`da„ Z6dbdc„ Z7ej ddddg¡dedf„ ƒZ8dgdh„ Z9didj„ Z:dkdl„ Z;dmdn„ Z<dodp„ Z=dqdr„ Z>dsdt„ Z?dudv„ Z@dwdx„ ZAdydz„ ZBd{d|„ ZCd}d~„ ZDdd€„ ZEd�d‚„ ZFej dƒeGjHeGjH Id„¡eGjH Id…¡g¡d†d‡„ ƒZJdˆd‰„ ZKdŠd‹„ ZLej dŒd�dŽg¡ej d�d�d�gg¡d‘d’„ ƒƒZMe j!d“d”„ ƒZNd•d–„ ZOej dŒd—d—geGjPeGjPgg¡d˜d™„ ƒZQej dŒd—eGjPg¡dšd›„ ƒZRej dœeSeTeUjVg¡d�dž„ ƒZWdŸd „ ZXej d¡d�gd�g¡ej d¢i d£dŽig¡d¤d¥„ ƒƒZYej d¢i d¦d�ig¡d§d¨„ ƒZZd©dª„ Z[d«d¬„ Z\d­d®„ Z]ej d¡dd¯g¡ej d°e^d±g¡d²d³„ ƒƒZ_ej d´ddg¡ej d¡dµdµgg¡d¶d·„ ƒƒZ`ej d¸eajbdŽfeajcd¹fg¡dºd»„ ƒZdd—S )¼ÚTestDataFrameIndexingc              	   C   s¬   |d d… }t |jƒdkst‚| ¡ D ].\}}t |jƒdks@t‚t |j|j¡s&t‚q&|j ¡ D ]\}}|| d k	s`t‚q`d|ks†t‚tjt	dd�� |d  W 5 Q R X d S )Né   Úrandom©Úmatch)
ÚlenÚindexÚAssertionErrorÚitemsÚtmZequalContentsZ_seriesÚpytestÚraisesÚKeyError)ÚselfÚfloat_frameÚslÚ_ÚseriesÚkey© r*   úb/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/frame/indexing/test_indexing.pyÚtest_getitem+   s    z"TestDataFrameIndexing.test_getitemc                 C   sr   |}t dddg|d�}tdddgdddgg|d	�}|d }tddgddggt ddg|d�d	�}tj||d
d� d S )Né   r   ©Údtypeé   é   é   é   é   ©ÚcolumnsT©Zcheck_exact©r   r   r    Úassert_frame_equal)r$   Úany_numeric_dtyper/   ÚidxÚdfÚresultÚexpectedr*   r*   r+   Ú6test_getitem_numeric_should_not_fallback_to_positional<   s    $zLTestDataFrameIndexing.test_getitem_numeric_should_not_fallback_to_positionalc              	   C   sx   |  ¡ }tj t|ƒ¡|d< tj t|ƒ¡}||d< tjtt 	d¡d�� | 
d¡ W 5 Q R X |d }t ||j¡ d S )Nz$10z@awesome_domainz'df["$10"]'r   z	df["$10"])ÚcopyÚnpr   Úrandnr   r!   r"   r#   ÚreÚescapeÚ__getitem__r    Zassert_numpy_array_equalÚvalues)r$   r%   r<   ÚadÚresr*   r*   r+   Útest_getitem2E   s    z#TestDataFrameIndexing.test_getitem2c                 C   sj   |}t dddg|d�}tdddgdddgg|d	�}d
|d< td
dd
gd
dd
gg|d	�}tj||dd� d S )Nr-   r   r.   r0   r1   r2   r3   r4   r5   é
   Tr7   r8   )r$   r:   r/   r;   r<   r>   r*   r*   r+   Ú6test_setitem_numeric_should_not_fallback_to_positionalR   s    zLTestDataFrameIndexing.test_setitem_numeric_should_not_fallback_to_positionalc              	   C   sÒ   d|d< |ddg }||ddg< t j|d |d dd� t j|d |d dd� d}tjt|d�� |ddg |dg< W 5 Q R X tt|jƒd	 ƒ}d
t|ƒ› dt|ƒ› d�}tjt|d�� ||d< W 5 Q R X d S )NÚfooÚEÚAÚBF©Zcheck_namesz"Columns must be same length as keyr   r-   zLength of values \(z$\) does not match length of index \(z\))r    Úassert_series_equalr!   r"   Ú
ValueErrorÚranger   r   )r$   r%   ÚdataÚmsgZnewcolumndatar*   r*   r+   Útest_setitem_list[   s    ÿz'TestDataFrameIndexing.test_setitem_listc                 C   sÔ   t dtdƒddgtjd�}ddg|jdddgf< |j|jd ddgf }tddg|jtjdd�}t 	||¡ d	 |d< |d< d
dg|j|jd ddgf< |j|jd ddgf }td
dg|jdd�}t 	||¡ d S )Nr   r1   Ztt1Ztt2)r   r6   r/   r-   r0   )r/   ÚnameÚ0Ú1Ú2©rW   )
r   rS   rA   Úint_Úlocr   r   r6   r    rQ   ©r$   r<   r=   r>   r*   r*   r+   Útest_setitem_list2n   s    z(TestDataFrameIndexing.test_setitem_list2c              	      sÊ  |j d }|j |k}| t¡}|j | }|| }t ||j ¡ tjtdd�� ||d d…   W 5 Q R X || }	t |	|¡ tjtdd�� ||  W 5 Q R X t	||j ƒ}|| }	t |	|¡ t 
t¡�0 | |j d d d… ¡}|| }	t |	|¡ W 5 Q R X |||fD ]¼}
|
 ¡ ‰ |
|
dk }t‡ fdd„ˆ jD ƒˆ j ˆ jd	�}|
jD ]}||k�rH|
| ||< �qH|j|
jd
�}tj||dd� |
jD ]6}|| j|| jk�rŠ|| j|
| jk�sŠt‚�qŠ�qd S )NrJ   zItem wrong lengthr   éÿÿÿÿzBoolean array expectedr   c                    s*   i | ]"}|t  ˆ | d kˆ | t j¡“qS )r   )rA   ÚwhereÚnan)Ú.0Úc©rT   r*   r+   Ú
<dictcomp>§   s      z>TestDataFrameIndexing.test_getitem_boolean.<locals>.<dictcomp>©r   r6   r5   F)Zcheck_dtype)r   ÚastypeÚobjectr    Zassert_index_equalr!   r"   rR   r9   r   Úassert_produces_warningÚUserWarningÚreindexZ_get_numeric_datar   r6   r/   r   )r$   Zmixed_float_frameZmixed_int_frameÚdatetime_frameÚdÚindexerZindexer_objZsubindexZsubframeZsubframe_objr<   ZbifZbifwrd   r*   re   r+   Útest_getitem_boolean|   sL    



ýý


z*TestDataFrameIndexing.test_getitem_booleanc              
   C   sX  |  ¡ }d|d< |d  d¡|d< |d   ¡ |d< d|d< |d  d¡|d< |d   ¡ |d< ||dk }|j}tt d	¡gd
 t d¡gd  t d¡gd  ddddddddgd�}t ||¡ d|j|j	dd… ddgf< ||dk }|j}tt d	¡gd
 t d¡g t d	¡g t d¡g t d	¡g ddddddddgd�}t ||¡ d S )Nr-   rM   Zint32ZE1ÚFÚint64ZF1r   Úfloat64r2   r0   rN   rO   ÚCÚD©r   r1   )
r@   rh   Údtypesr   rA   r/   r    rQ   r]   r   )r$   rm   r<   Zcastedr=   r>   r*   r*   r+   Útest_getitem_boolean_casting·   sD    ÿþü
ÿ
þ
ý
üúz2TestDataFrameIndexing.test_getitem_boolean_castingÚlstTFc                 C   s>   t t d¡ dd¡ƒ}|| }|j|j|  }t ||¡ d S )Né   r1   r2   )r   rA   ÚarangeZreshaper]   r   r    r9   )r$   ry   r<   r=   r>   r*   r*   r+   Útest_getitem_boolean_listÙ   s    z/TestDataFrameIndexing.test_getitem_boolean_listc                 C   sb   t j dd¡}t| ¡ dddddgd�}||dk   d	7  < ||dk   d	7  < t |j|¡ d S )
Nr3   rN   rO   rt   ru   rM   r5   r   r-   )rA   r   rB   r   r@   r    Úassert_almost_equalrF   )r$   Úarrr<   r*   r*   r+   Útest_getitem_boolean_iaddâ   s
    z/TestDataFrameIndexing.test_getitem_boolean_iaddc                 C   s>   t t ddg¡dgtg ƒd�}t g t¡}||  d||< d S )Nr   r-   rN   ©r6   r   )r   rA   Úemptyr   ÚarrayÚbool)r$   ZblahÚkr*   r*   r+   Útest_boolean_index_empty_cornerì   s    z5TestDataFrameIndexing.test_boolean_index_empty_cornerc                 C   s„   t tj dd¡ddddgdddgd�}|jd d	… }|j|jd d	…  }t ||¡ |jddg }|jt	ddgƒ }t ||¡ d S )
Nr2   r1   r-   rJ   rt   rM   r0   rg   r`   )
r   rA   r   rB   Úilocr]   r   r    r9   r   r^   r*   r*   r+   Útest_getitem_ix_mixed_integerö   s     
 ÿz3TestDataFrameIndexing.test_getitem_ix_mixed_integerc                 C   sŽ   t dddddgdddd	gd
dddgdœddd
dgd�}|dg }|jd d …dgf }t ||¡ |dg }|jd d …dgf }t ||¡ d S )N)ç      ø?gš™™™™™@gš™™™™™	@ç      @é   é   é$   é(   rJ   é   é+   é"   r   r   é   )Úrnaéüÿÿr   éè  r’   r“   r”   r5   r1   r-   ©r   r†   r    r9   r^   r*   r*   r+   Útest_getitem_ix_mixed_integer2  s    


ü
ù	

z4TestDataFrameIndexing.test_getitem_ix_mixed_integer2c              	   C   s:   t  |j|d ¡ d}tjt|d�� |j W 5 Q R X d S )NrN   z6'DataFrame' object has no attribute 'NONEXISTENT_NAME'r   )r    rQ   rN   r!   r"   ÚAttributeErrorZNONEXISTENT_NAME)r$   r%   rU   r*   r*   r+   Útest_getattr  s    z"TestDataFrameIndexing.test_getattrc                 C   s0   t dditdƒd�}d|_|jdk ¡ s,t‚d S )NÚfoobarr-   rJ   rv   r3   )r   rS   r™   Úallr   ©r$   r<   r*   r*   r+   Útest_setattr_column  s    z)TestDataFrameIndexing.test_setattr_columnc              	   C   sª  |d d d d… }||d< d|ks&t ‚t|ƒdks6t ‚t|ƒdksFt ‚t t |jtjgd f¡¡}t||jdd�}t	 
|d |¡ |d }||d< t	j
||d dd	� tj t|ƒ¡}||d
< |d
 |k ¡ sÔt ‚d|d< |d dk ¡ sðt ‚d|d< |d dk ¡ �st ‚d|d< |d dk ¡ �s,t ‚|d d… }d}|�rPddg|d< n&tjt|d�� ddg|d< W 5 Q R X |d jtjk�sŒt ‚|d ddgk ¡ �s¦t ‚d S )NrN   r0   Zcol5é   r‘   ©r   rW   Zcol6FrP   Zcol9r3   Zcol7g…ëQ¸	@Zcol0rL   Zcol8zC\nA value is trying to be set on a copy of a slice from a DataFramerY   rZ   Zcol10r   )r   r   rA   ZravelZcolumn_stackrF   rb   r   r   r    rQ   r   rB   rš   r!   r"   r
   r/   Úobject_)r$   r%   Úusing_copy_on_writer(   Úexpr~   ZsmallerrU   r*   r*   r+   Útest_setitem!  s8    z"TestDataFrameIndexing.test_setitemc                 C   sb   t ddggƒ}tj|jd< t tjtjggƒ}t ||¡ t ddggƒ}tj|jd< t ||¡ d S )Nr   )r   rA   rb   r†   r    r9   r]   ©r$   r<   r>   r*   r*   r+   Útest_setitem2O  s    z#TestDataFrameIndexing.test_setitem2c           	   	   C   s.  |  ¡ }|j  ¡ }d||d dk< d||d d …df dk< t |j|¡ |d dk}| |jd d d… ¡}d||< d||d d …df dk< t |j|¡ d||dk< d||dk< t |j|¡ d||dk< d||dk< t |j|¡ d||d d… dk < t |d d… |d d… dk d¡ t |j|¡ d||d d d… dk< d||dk< t |j|¡ d	}tj	t
|d
�� d||d < W 5 Q R X |  ¡ }|t |¡k}tj||t |¡k< |j  ¡ }tj||j< t||j|jd�}t ||¡ |d ||t |¡k< t ||j|jd ¡ t||j|jd�}t ||¡ d S )Nr2   rN   r   r`   r-   r3   r0   r1   z;Must pass DataFrame or 2-d ndarray with boolean values onlyr   rg   )r@   rF   r    r}   rl   r   rA   Zputmaskr!   r"   Ú	TypeErrorÚabsrb   r   r6   r9   )	r$   r%   r<   rF   r(   rU   Zdf_origÚmaskr>   r*   r*   r+   Útest_setitem_booleanZ  sH    
"
z*TestDataFrameIndexing.test_setitem_booleanc                 C   s  |d   d¡|d< |d jtjks&t‚d|d< |d jtjksBt‚t t|ƒ¡|d< t|d jjtj	ƒslt‚d|d< d|d< |d jtjks�t‚d|d< d|d< |d jtj
ks´t‚d|d< |d jtjksÐt‚d	|d< |d jtjksìt‚d|d< |d jtj
k�s
t‚d S )
Nru   Úi8r   rO   ÚbarrL   ç      @Z	somethingr0   )rh   r/   rA   rr   r   r{   r   Ú
issubclassÚtypeÚintegerrs   ©r$   r%   r*   r*   r+   Útest_setitem_castŽ  s$    z'TestDataFrameIndexing.test_setitem_castc                 C   sˆ  t dddgdddgdœt d¡d	�}|d
= dddg|d
< d
|ksDt‚t|jƒdksVt‚d|d< d|d< d|d< d|t ¡ < d|t ¡ < t |jd	�}d|d< d|d
< t|jƒdks´t‚|j	j
tjksÆt‚d|d< |d j
tjksât‚d|d< |d j
tjksþt‚d|d< d|d d k�st‚t t d¡d	�}d|d< d|d< |d= d|d< |d j
tjk�s`t‚dddg|d< |d j
tjk�s„t‚d S )Nç      ð?ç       @ç      @ÚaÚbrd   )rO   rt   r1   rv   rO   r0   Z	beginningrN   rL   rM   rª   ru   Údateç      @r-   rt   r   rY   rZ   Ú3Z	coercible)r   rA   r{   r   r   r6   r   Únowr   rF   r/   rŸ   rr   rs   )r$   r%   r<   Údmr*   r*   r+   Útest_setitem_corner«  s:    $z)TestDataFrameIndexing.test_setitem_cornerc                 C   s„   dddgdgd  t j d¡dœ}t|ƒ}||d dk j}d|j|dgf< d|j|dgf< |jd	 dksnt‚|jd
 dks€t‚d S )Nr™   rª   é   r   )ÚtitleÚcruftr½   r   r¾   )r-   r½   )r-   r¾   )rA   r   r   r   r]   r   )r$   rT   r<   Úixr*   r*   r+   Útest_setitem_corner2Õ  s    
þz*TestDataFrameIndexing.test_setitem_corner2c                 C   s´   t tdƒtdƒd�}tdd„ tdƒD ƒtdƒd�}tdddgtdƒd�}t d¡|d	< t|jƒdksht‚||d
< t|jƒdks‚t‚||d< t|jƒdksœt‚|d jtj	ks°t‚d S )Nr1   rg   c                 S   s   g | ]}t d ƒ‘qS )r-   r   )rc   r'   r*   r*   r+   Ú
<listcomp>é  s     z<TestDataFrameIndexing.test_setitem_ambig.<locals>.<listcomp>rv   rL   ÚbzrÚbazr   r-   r0   )
r   rS   r   rA   Úonesr   r6   r   r/   rŸ   )r$   rº   Zcoercable_seriesZuncoercable_seriesr*   r*   r+   Útest_setitem_ambigä  s    z(TestDataFrameIndexing.test_setitem_ambigc                 C   st   |d |d < t j|jd d …df |d dd� t j|jd d …d f |d dd� t j|d  |d dd� t|ƒ d S )NrN   r`   FrP   )r    rQ   r†   r]   Úreprr¯   r*   r*   r+   Útest_setitem_Noneö  s      ÿ  ÿz'TestDataFrameIndexing.test_setitem_Nonec                 C   sP   t dddgdddgddd	gd
œƒ}| ¡ }|j|j|j ¡ df< t ||¡ d S )NrY   rZ   r¸   Z11Z22Z33Z111Z222Z333)r´   rµ   rd   r´   )r   r@   r´   r]   rµ   r   r    r9   ©r$   r<   r=   r*   r*   r+   Ú&test_loc_setitem_boolean_mask_allfalse  s    ÿz<TestDataFrameIndexing.test_loc_setitem_boolean_mask_allfalsec                 C   sV   t tj dd¡ƒ}|jd dd… }tj|jd dd…< t|jd dd… ƒj ¡ sRt	‚d S )NrJ   r3   é   r0   )
r   rA   r   rB   r†   rb   r   rF   rš   r   rÈ   r*   r*   r+   Ú&test_getitem_fancy_slice_integers_step  s    z<TestDataFrameIndexing.test_getitem_fancy_slice_integers_stepc              	   C   sF  t tj dd¡tdddƒd�}| ¡ }d|jdd…< |jdd… dkj ¡ sPt	‚| ¡ }d|jdd	…< |jdd	… dkj ¡ s‚t	‚|jdd
… }|j
dd	… }| dd
ddg¡}t ||¡ t ||¡ |jttdƒƒttddƒƒd d d…   }tjtdd�� |j
dd	…  W 5 Q R X tjtdd�� d|j
dd	…< W 5 Q R X d S )NrJ   r3   r   r   r0   rv   r2   r1   rŠ   r4   rÊ   r`   z^3$r   )r   rA   r   rB   rS   r@   r†   rF   rš   r   r]   rl   r    r9   Úlistr!   r"   r#   )r$   r<   Úcpr=   Úresult2r>   Údf2r*   r*   r+   Ú,test_getitem_setitem_integer_slice_keyerrors  s"    *zBTestDataFrameIndexing.test_getitem_setitem_integer_slice_keyerrorsc                 C   s¸   |j d d …dd …f }|d jtjks*t‚| ¡ }|j d d …dd …f }t |d j|d j¡sdt‚d|jd d …df< |s¨|d dk 	¡ sŽt‚t |d j|d j¡ nt
 ||¡ d S )Néýÿÿÿru   rt   ç      @r2   )r†   r/   rA   rs   r   r@   Úshares_memoryÚ_valuesr]   rš   r    r9   )r$   r%   Úfloat_string_framer    ZslicedÚoriginalr*   r*   r+   Útest_fancy_getitem_slice_mixed/  s    z4TestDataFrameIndexing.test_fancy_getitem_slice_mixedc                 C   s²   t  ¡ }|jddg \}}|j||… }|||… }|dd… }t  ||¡ t  ||¡ | ¡ }d|j||…< | ¡ }d|||…< | ¡ }d|dd…< t  ||¡ t  ||¡ d S )Nr3   rJ   rŠ   r   )r    ZmakeTimeDataFramer   r]   r9   r@   )r$   r<   ÚstartÚendr=   rÎ   r>   r*   r*   r+   Ú"test_getitem_setitem_non_ix_labelsF  s    z8TestDataFrameIndexing.test_getitem_setitem_non_ix_labelsc                 C   s�   t tj dd¡ƒ}|j|jdkd d …f }| dg¡}t ||¡ t tj dd¡ƒ}|j|jdk|j	dkf }|jdgdgd�}t ||¡ d S )Nr1   r0   r   r-   rg   )
r   rA   r   rB   r]   r   rl   r    r9   r6   )r$   r<   ÚrsZxpr*   r*   r+   Útest_ix_multi_takeZ  s    z(TestDataFrameIndexing.test_ix_multi_takec                 C   sP   |}|j }|jD ]:}|| }|jd d d… D ]}|||f || ks,t‚q,qd S ©Nr3   )r]   r6   r   r   )r$   r%   Úfr¿   ÚcolÚtsr;   r*   r*   r+   Útest_getitem_fancy_scalarf  s    
z/TestDataFrameIndexing.test_getitem_fancy_scalarc                 C   s„   |}|  ¡ }|j}t|jƒD ]b\}}|| }|jd d d… D ]@}|j |¡}	tj ¡ }
|
|j	|	|f< |
|||f< t
 ||¡ q<qd S rÝ   )r@   r]   Ú	enumerater6   r   Zget_locrA   r   rB   r†   r    r9   )r$   r%   rÞ   r>   r¿   Újrß   rà   r;   ÚiÚvalr*   r*   r+   Útest_setitem_fancy_scalarp  s    
z/TestDataFrameIndexing.test_setitem_fancy_scalarc                 C   s  |}|j }|jddgd�}|d d …ddddgf }t ||¡ |j|jdd… ddgd�}||jdd… ddddgf }t ||¡ |j|jd	 k}|j|j| d
�}|| }t ||¡ ||d d …f }t ||¡ |||jdd … f }|j|j| ddgd�}t ||¡ d S )NrO   ru   r5   FTr3   rJ   rg   é   rv   r0   rt   )r]   rl   r    r9   r   r6   )r$   r%   rÞ   r¿   r>   r=   Zboolvecr*   r*   r+   Útest_getitem_fancy_boolean�  s"    z0TestDataFrameIndexing.test_getitem_fancy_booleanc                 C   s¸   |  ¡ }|  ¡ }|j  ¡ }|d dk}d|j|< d||j< t||j|jd�}t ||¡ |  ¡ }|  ¡ }|j  ¡ }d|j|ddgf< d||jd d…f< t||j|jd�}t ||¡ d S )NrN   r   ç        rg   rO   r0   )r@   rF   r]   r   r   r6   r    r9   )r$   r%   Úframer>   rF   r§   r*   r*   r+   Útest_setitem_fancy_boolean˜  s    



z0TestDataFrameIndexing.test_setitem_fancy_booleanc                 C   sx   |j dddg }|j|jdddg  }t ||¡ |j d d …dddgf }|jd d …|jdddg f }t ||¡ d S )Nr-   r2   rç   r0   r   )r†   r]   r   r    r9   r6   )r$   r%   r=   r>   r*   r*   r+   Útest_getitem_fancy_ints­  s    z-TestDataFrameIndexing.test_getitem_fancy_intsc                 C   st   |d d d d… dk}|j | }|j |d d d…  }t ||¡ | ¡ }| ¡ }d|j |< d|j |< t ||¡ d S )NrN   r`   r-   r   )r]   r    r9   r@   )r$   r%   r§   r=   r>   rÍ   r*   r*   r+   Ú'test_getitem_setitem_boolean_misaligned¶  s    


z=TestDataFrameIndexing.test_getitem_setitem_boolean_misalignedc                 C   s®   t tj dd¡ƒ}t dddg¡}t ddg¡}|j||f }|jddgdgf }t ||¡ | ¡ }d|jt dddg¡t ddg¡f< d|jddgdgf< t ||¡ d S )Nr1   r0   TFr   r-   r3   )	r   rA   r   rB   r‚   r]   r    r9   r@   )r$   r<   Zk1Zk2r=   r>   r*   r*   r+   Ú"test_getitem_setitem_boolean_multiÄ  s    $z8TestDataFrameIndexing.test_getitem_setitem_boolean_multic              	   C   sÎ  t dddddgƒ}ttj dd¡|d�}|jdd… }| ddddg¡}t ||¡ t	|ƒdksdt
‚|jdd… }| ddg¡}tj||dd� t	|ƒdks t
‚|jdd… }| d	d
g¡}t ||¡ t	|ƒdksØt
‚|jdd… }|jdd… }t ||¡ d|jdd…< |dd… }|dk ¡  ¡ �s0t
‚t ddddd
gƒ}ttj dd¡|d�}d}tjt|d�� |jdd…  W 5 Q R X |jdd… }| d
g¡}t ||¡ t	|ƒdk�s¼t
‚| ¡ }tjttd�� d|jdd…< W 5 Q R X tjt|d�� |jdd… dk}W 5 Q R X |j ¡ �s(t
‚|jdd… |jdd… kj ¡ �sPt
‚| ¡ }d|jdd…< |jdd… dkj ¡ �s„t
‚|jdd… |jdd… kj ¡ �s¬t
‚|jdd… }|}t ||¡ t	|ƒdk�sÜt
‚|jdd… }| dddd
g¡}t ||¡ t	|ƒdk�st
‚|jdd… }| d
g¡}t ||¡ t	|ƒdk�sRt
‚|jdd
… }| ddddd
g¡}t ||¡ t	|ƒdk�s’t
‚| ¡ }d|jdd
…< |jdd
… }|dkj ¡ �sÊt
‚d S )Nrˆ   r0   r1   r2   r3   rv   F)Zcheck_index_typerÒ   r·   r-   r   r±   r«   g      @r‰   zPcannot do positional indexing on Index with these indexers \[1.0\] of type floatr   gš™™™™™ñ?g
×£p=
@)r   r   rA   r   rB   r]   rl   r    r9   r   r   r†   rš   r!   r"   r¥   r@   Ú
_slice_msgrF   )r$   Úusing_array_managerr   r<   r=   r>   rU   rÍ   r*   r*   r+   Ú!test_getitem_setitem_float_labelsÓ  sz    ÿ((z7TestDataFrameIndexing.test_getitem_setitem_float_labelsc                 C   s
  t tj dd¡dddddgdd	d
gd�}tdƒ|d< |j}tt d¡gd t d¡g dd	d
dgd�}t 	||¡ t
|jd< t|jd ƒrŽt‚|d jtjks¢t‚|jd t
ks´t‚tj|jd< t|jd ƒsÒt‚tj|jdd d …f< t|jdd d …f ƒ ¡ �rt‚d S )Nr3   r1   r´   rµ   rd   rn   ÚerL   rª   rÃ   rg   Z20010102Ú	timestamprs   údatetime64[ns]rv   )rµ   ró   )rd   ró   )r   rA   r   rB   r   rw   r   r/   r    rQ   r   r]   r   r   rŸ   rb   rš   r^   r*   r*   r+   Ú)test_setitem_single_column_mixed_datetime*  s(    ý
þ
z?TestDataFrameIndexing.test_setitem_single_column_mixed_datetimec                 C   sÔ   t ddddddgtdddƒdddtdddƒtd	ddƒgd
œƒ}t dtdƒtdƒd�}tj|d< tdddƒ|jd< d|jd< d|jddgdf< t dt 	d¡gdt 	d¡gg¡}||jddgddgf< t
 ||¡ d S )Nr   é   é   iÜ  r-   ÚxÚyiÝ  iÞ  ©r´   rµ   Úabr4   r€   rµ   ©r   rµ   )r-   rµ   ©rø   rù   r0   r1   z2013-01-01T00:00:00z2014-01-01T00:00:00r2   r3   r´   )r   r   rÌ   rS   ÚpdÚNaTr]   rA   r‚   Ú
datetime64r    r9   )r$   r>   r<   rN   r*   r*   r+   Útest_setitem_mixed_datetimeI  s.    


úþÿ

þÿz1TestDataFrameIndexing.test_setitem_mixed_datetimec                 C   sn   |j |jd d… ddgf }|j|j |jd d …ddgf< |j |jdd … ddgf j}|j}t ||¡ d S ©Nr0   rN   rO   éþÿÿÿ)r]   r   rF   r    r}   ©r$   r%   Úpiecer=   r>   r*   r*   r+   Útest_setitem_frame_floatf  s
    z.TestDataFrameIndexing.test_setitem_frame_floatc                 C   s~   |  ¡ }tddgddgg|jdd… ddgd	�}|jtd dƒ ddgf}||j|< t |j|jdd… ddgf j|j¡ d S )
Nr±   r²   r³   rÒ   r   r0   rN   rO   rg   )r@   r   r   Úslicer]   r    r}   rF   ©r$   rÕ   rÞ   r  r)   r*   r*   r+   Útest_setitem_frame_mixedm  s      ÿ
z.TestDataFrameIndexing.test_setitem_frame_mixedc                 C   sž   |  ¡ }tddgddgddgddggt|jd	d
… ƒddg ddgd�}|jtd d
ƒ ddgf}||j|< t |j|jd	d
… ddgf j|jd	d
… ¡ d S )Nr±   r²   r³   rÒ   r·   g      @g      @g       @r   r0   rL   rª   rN   rO   rg   )	r@   r   rÌ   r   r  r]   r    r}   rF   r  r*   r*   r+   Ú'test_setitem_frame_mixed_rows_unalignedy  s    ý
 ÿz=TestDataFrameIndexing.test_setitem_frame_mixed_rows_unalignedc                 C   sŠ   |  ¡ }|j|jd d… dgf }|jdd … |_|jtdd ƒ ddgf}||j|< tj|d< t |j|jdd … ddgf j|j¡ d S )Nr0   rN   r  rO   )	r@   r]   r   r  rA   rb   r    r}   rF   r  r*   r*   r+   Ú&test_setitem_frame_mixed_key_unaligned‡  s    

z<TestDataFrameIndexing.test_setitem_frame_mixed_key_unalignedc                 C   st   |  ¡ }|j|jd d… ddgf }|jtdd ƒ ddgf}|j|j|< t |j|jdd … ddgf j|j¡ d S r  )r@   r]   r   r  rF   r    r}   r  r*   r*   r+   Ú test_setitem_frame_mixed_ndarray‘  s
    z6TestDataFrameIndexing.test_setitem_frame_mixed_ndarrayc                 C   sŠ   t dddgdddggddd	gd
�}| ¡ }|jd d …ddgf d |jd d …ddgf< |jddgd
�}|d7 }|d	 |d	< t ||¡ d S )Nr-   r0   rL   r1   r2   rª   rN   rO   rt   r5   ç      à?)r   r@   r]   rl   r    r9   )r$   r<   rÏ   r>   r*   r*   r+   Útest_setitem_frame_upcast™  s    ",z/TestDataFrameIndexing.test_setitem_frame_upcastc                 C   s†   |j |jd d… ddgf }|jdd … |_ddg|_||j |jdd … ddgf< |j |jdd … ddgf j}|j}t ||¡ d S r  )r]   r   r6   rF   r    r}   r  r*   r*   r+   Útest_setitem_frame_align£  s    
z.TestDataFrameIndexing.test_setitem_frame_alignc                 C   sŠ   t tj dd¡dddddgd�}|jd }|d d… }t ||¡ |jd }|jddg }t ||¡ |jd }|jd }t ||¡ d S )	Nr3   r1   rL   rª   rÃ   rv   r0   r2   )	r   rA   r   rB   r]   r    r9   r†   rQ   r^   r*   r*   r+   Ú"test_getitem_setitem_ix_duplicates¬  s     



z8TestDataFrameIndexing.test_getitem_setitem_ix_duplicatesc                 C   s¦   t tj dd¡dddddgd�}|jdg }|jddg }t ||¡ |j|d	 d
k }||d	 d
k }t ||¡ |j|d
 d
k }||d
 d
k }t ||¡ d S )Nr3   r1   rL   rª   rÃ   rv   r0   r2   r-   r   )r   rA   r   rB   r]   r†   r    r9   )r$   r<   r=   r¡   r*   r*   r+   Ú+test_getitem_ix_boolean_duplicates_multiple¼  s     zATestDataFrameIndexing.test_getitem_ix_boolean_duplicates_multipleÚ
bool_valuec              	   C   sl   t ddddgiƒ}|› d�}tjt|d�� |j|  W 5 Q R X d}tjt|d�� d|j|< W 5 Q R X d S )	Nr´   r-   r0   r1   z7: boolean label can not be used without a boolean indexr   z.cannot use a single bool to index into setitemr   )r   r!   r"   r#   r]   )r$   r  r<   ÚmessagerU   r*   r*   r+   Ú%test_getitem_setitem_ix_bool_keyerrorÌ  s    
z;TestDataFrameIndexing.test_getitem_setitem_ix_bool_keyerrorc                 C   s¢   d|d< t |d jjttjfƒs$t‚|j|jd df }t	|ƒsDt‚t
ddgiƒ}d|d< |jd }t	|ƒspt‚tdgd	gdd
�}|jd	gdf }t ||¡ d S )Nr-   rM   r3   r´   g®Gáz®ó?iš  rµ   rü   r   r[   )r¬   r/   r­   ÚintrA   r®   r   r]   r   r   r   r   r    rQ   )r$   r%   r=   r<   r>   r*   r*   r+   Ú"test_single_element_ix_dont_upcastÙ  s    
z8TestDataFrameIndexing.test_single_element_ix_dont_upcastc                 C   sÂ   t tj dd¡tdddƒd�}|jd }|jd }t ||¡ |jd }|jd }t ||¡ |jt	ddƒ }|jdd	… }t 
||¡ |jdddd
g }| |jdddd
g ¡}t 
||¡ d S )NrJ   r2   r   r   r0   rv   r-   rÊ   r÷   r4   )r   rA   r   rB   rS   r†   r]   r    rQ   r  r9   rl   r   ©r$   r<   r=   r¡   r>   r*   r*   r+   Útest_iloc_rowë  s    



z#TestDataFrameIndexing.test_iloc_rowc                 C   s¼   t tj dd¡tdddƒd�}| ¡ }|jtddƒ }t |d |d ¡sNt	‚|d  ¡ }d|j
d d …df< |s¨d|j
d d …df< d|jdd…< t |d |d ¡s¨t	‚t |d |¡ d S )	NrJ   r2   r   r   r0   rv   rÊ   ré   )r   rA   r   rB   rS   r@   r†   r  rÓ   r   r]   rÔ   r    rQ   )r$   r    Úrequestr<   rÖ   ÚsubsetZexp_colr*   r*   r+   Útest_iloc_row_slice_view   s    z.TestDataFrameIndexing.test_iloc_row_slice_viewc                 C   sü   t tj dd¡tdddƒd�}|jd d …df }|jd d …df }t ||¡ |jd d …df }|jd d …df }t ||¡ |jd d …t	ddƒf }|jd d …dd	…f }t 
||¡ |jd d …dddd
gf }|j|jdddd
g d�}t 
||¡ d S )Nr2   rJ   r   r   r0   r5   r-   rÊ   r÷   r4   )r   rA   r   rB   rS   r†   r]   r    rQ   r  r9   rl   r6   r  r*   r*   r+   Útest_iloc_col  s    z#TestDataFrameIndexing.test_iloc_colc                 C   sò   t tj dd¡tdddƒd�}| ¡ }|jd d …tddƒf }|s¦|s¦t |d j	|d j	¡sbt
‚d|jd d …df< |d dk ¡ sˆt
‚t |d j	|d j	¡sît
‚nH|rÆt |d j	|d j	¡sÆt
‚d|d< |d dk ¡ sât
‚t ||¡ d S )	Nr2   rJ   r   r   r0   r5   rÊ   ré   )r   rA   r   rB   rS   r@   r†   r  rÓ   rÔ   r   r]   rš   r    r9   )r$   rð   r    r<   rÖ   r  r*   r*   r+   Útest_iloc_col_slice_view)  s    z.TestDataFrameIndexing.test_iloc_col_slice_viewc                 C   sä   t tdddd�tdddd�d�}|jdtdddd�d�}td|dd	gd
�}t ddddddg¡}d|j|| df< tddddddgddddddgdœ|d�}t ||¡ td|dd	gd
�}|j|| df  d7  < t ||¡ d S )Niá  r-   )ÚyearÚmonthÚdayr3   )rØ   rÙ   )r]   Úitemr   rN   rO   rg   FTr4   )rN   rO   rv   )	r   r   Úinsertr   rA   r‚   r]   r    r9   )r$   Ztranger<   Zbool_idxr>   r*   r*   r+   Útest_loc_duplicatesB  s     þ  ÿz)TestDataFrameIndexing.test_loc_duplicatesc                 C   s‚   t tdddd�dd�}td|iƒ}|ddd	g |d< t |d |¡ td|iƒ}|ddd	g |jddd	gdf< t |d |¡ d S )
Nz
2015-01-01r1   Úutc)ÚperiodsÚtzÚdatesr[   r-   r   r0   )r   r   r   r    rQ   r]   )r$   Úcolumnr<   r*   r*   r+   Ú4test_setitem_with_unaligned_tz_aware_datetime_column]  s    zJTestDataFrameIndexing.test_setitem_with_unaligned_tz_aware_datetime_columnc                 C   s†  t dd�}ttddd�d�}tjd| gd dd�|d	< tjd
| gd dd�|jd d …df< tjd| gd dd�|j|jd d… df< tjd| gd dd�|jd d …df< tjd| gd dd�|j|jd d… df< t d¡|d< tjd| gd dd�|j|jd d… df< tddd�|j|jd d …df< t d¡|d< |j	}t
t d¡gd t d¡gd
  tdƒd�}t ||¡ d S )Nr-   )ÚhoursZ20130101r2   ©r%  rv   úm8[ns]r.   rN   r0   rO   r1   rt   ru   r3   rM   rÿ   rq   r4   r`   rÑ   ÚGÚHztimedelta64[ns]rô   ZABCDEFGH)r   r   r   rA   r‚   r]   r   Ztimedelta64r   rw   r   r/   rÌ   r    rQ   )r$   Zone_hourr<   r=   r>   r*   r*   r+   Ú,test_loc_setitem_datetimelike_with_inferencej  s"    
&,&,, þzBTestDataFrameIndexing.test_loc_setitem_datetimelike_with_inferencec                 C   s  t tjtjtjtjtjdœtjdtjdddœtjtjdtjtjdœtjtjtjtjtjdœdtjtjtjtjdœddddddœdœƒ}| ¡ }d||d	k< | ¡ }d|jd
< d|jd< d|jd< d|jd< t ||¡ d|d< d}tjt	|d�� d||d	k< W 5 Q R X d S )N)é#   r�   r�   é1   é2   gj”B’zâÔ?g% tŽÙ?gÂ’Øk‘Ò?gŠ†øãÖåÕ?r   r-   )r   r-   r0   r1   r2   rù   g333333Ó?)r�   r-   )r1  r-   )r2  r-   )r0  r2   ÚtestrL   z1not supported between instances|unorderable typesr   )
r   rA   rb   r@   r]   r    r9   r!   r"   r¥   )r$   r<   rÏ   r>   rU   r*   r*   r+   Ú#test_getitem_boolean_indexing_mixed€  sH    ûûûèÿ



z9TestDataFrameIndexing.test_getitem_boolean_indexing_mixedc              	   C   s.  t jddgddggd dgd�}tddddgddd	d	gg|tddgd
d�d�}tjtdd�� |d d …df  W 5 Q R X ttdƒd
d�}t ddgddggddgddggd dgd�}tddgdd	gg||d�}|jd d …t	d ƒdff }t
 ||¡ d}ttdƒd
d�}tddg||d�}|d }t
 ||¡ d S )Nrø   rù   r   r-   rd   ©Únamesr0   r1   r2   rä   r[   r€   r  r   )ZlevelsÚcodesr6  )rø   r   rž   )r   Úfrom_productr   r   r!   r"   r   rS   r]   r  r    r9   r   rQ   )r$   ÚmiÚdgr   r6   r>   r=   rW   r*   r*   r+   Útest_type_error_multiindex®  s,      ÿ  ÿz0TestDataFrameIndexing.test_type_error_multiindexc                 C   sh   t t d¡tj t d¡¡d�}|jd d …df }|d }t 	||¡ |j
d d …df }t 	||¡ d S )N©r1   r2   r3   r5   r   r  )r   rA   rÄ   rþ   ZIntervalIndexZfrom_breaksr{   r†   r    rQ   r]   )r$   r<   r>   rH   r*   r*   r+   Ú,test_getitem_interval_index_partial_indexingÇ  s     ÿzBTestDataFrameIndexing.test_getitem_interval_index_partial_indexingc                 C   sZ   t ddgtd�}t d¡t d¡dœ|jd< t t d¡gt d¡gdœƒ}t ||¡ d S )Nr´   rµ   )r6   r/   )r0   )r0   r0   rú   r   )r   ri   rA   Zzerosr]   r    r9   r£   r*   r*   r+   Ú test_setitem_array_as_cell_valueÕ  s    z6TestDataFrameIndexing.test_setitem_array_as_cell_valuec                 C   s´   t ddddgidd�}| ¡ }|jd d …d d d…f |jd d …< t ||¡ tjj 	|jd d …d d d…f ¡|jd d …< t ||¡ |j
d d …d d …f |j
d d …< t ||¡ d S )NrN   r-   r0   r1   ÚInt64r.   r`   )r   r@   rF   r]   r    r9   rþ   ÚcoreZarraysZPandasArrayr†   )r$   r<   Úorigr*   r*   r+   Ú$test_iloc_setitem_nullable_2d_valuesÜ  s    ", z:TestDataFrameIndexing.test_iloc_setitem_nullable_2d_valuesc                 C   s2   t tjdtd�ƒ}t |d ¡|d< |dg  d S )N©r-   r-   r.   r   )r   rA   r�   ri   Z
empty_liker›   r*   r*   r+   Ú,test_getitem_segfault_with_empty_like_objecté  s    zBTestDataFrameIndexing.test_getitem_segfault_with_empty_like_objectÚnullúM8[ns]r,  c              	   C   sÞ  t ddddgi|d�}|d }|j}d ddd	d
g¡}tjt|d�� ||d< W 5 Q R X tjt|d�� ||g|d d…< W 5 Q R X tjt|d�� ||d< W 5 Q R X tjt|d�� ||g|d d…< W 5 Q R X tjt|d�� ||jd< W 5 Q R X tjt|d�� ||g|jd d…< W 5 Q R X tjt|d�� ||jd< W 5 Q R X tjt|d�� ||g|jd d…df< W 5 Q R X | ¡ }| ¡ |d< tjt|d�� ||jd< W 5 Q R X tjt|d�� ||g|jd d…df< W 5 Q R X d S )NrN   r-   r0   r1   r.   ú|z@timedelta64\[ns\] cannot be converted to (Floating|Integer)Dtypez?datetime64\[ns\] cannot be converted to (Floating|Integer)Dtypez 'values' contains non-numeric NAz1Invalid value '.*' for dtype (U?Int|Float)\d{1,2}r   r   ©r   r   rO   )r   rÔ   Újoinr!   r"   r¥   r†   r@   )r$   rE  Zany_numeric_ea_dtyper<   Úserr~   rU   rÏ   r*   r*   r+   Ú.test_setting_mismatched_na_into_nullable_failsð  s@    üÿ zDTestDataFrameIndexing.test_setting_mismatched_na_into_nullable_failsc                 C   sL   t dgtg dd�d�}d|jd< t ddgitdgdd�d�}t ||¡ d S )Nrµ   r´   r[   r€   r-   r   rv   )r   r   r]   r    r9   r£   r*   r*   r+   Ú+test_loc_expand_empty_frame_keep_index_name$  s    
zATestDataFrameIndexing.test_loc_expand_empty_frame_keep_index_namec                 C   s\   t dgtjg dddgd�d�}d|jd< t ddgitjdgdddgd�d	�}t ||¡ d S )
Nrn   r´   rµ   rd   r5  r€   rL   )r-   r0   r1   rv   ©r   r   Úfrom_tuplesr]   r    r9   r£   r*   r*   r+   Ú+test_loc_expand_empty_frame_keep_midx_names+  s     ÿ
þzATestDataFrameIndexing.test_loc_expand_empty_frame_keep_midx_namesrå   rø   r-   Úidxrr´   c              	   C   sn   t dddgiƒ}t d ¡�, t d|dgiddgd�|jd d …|f< W 5 Q R X t dtj|giƒ}t ||¡ d S )Nr´   r-   r0   rŠ   rv   )r   r    rj   r]   rA   rb   r9   )r$   rP  rå   r<   r>   r*   r*   r+   Útest_loc_setitem_rhs_frame7  s
    0z0TestDataFrameIndexing.test_loc_setitem_rhs_framec              	   C   sj   t ddgd�}| ¡ }|d d … }t d ¡�( tjddgtjd�|jd d …df< W 5 Q R X t ||¡ d S )Nr´   rµ   r5   r-   r0   r.   r   )	r   r@   r    rj   rA   r‚   rs   r†   r9   )r$   r<   r>   Úviewr*   r*   r+   Ú$test_iloc_setitem_enlarge_no_warningA  s    ,z:TestDataFrameIndexing.test_iloc_setitem_enlarge_no_warningc                 C   s¾   t ddddœtjddgddggddgd�d	�}d
g}d|d< d|j|df< |j|df  |j|ddgf  d|j|df< |j|df }tdtjdgdggddgd�dd� }}t ||¡ d S )NTr-   r«   )Zbool_colr´   rµ   r0   Úidx1Úidx2r5  rv   rC  r1   rd   r   r´   rµ   r�   rž   )r   r   Úfrom_arraysr]   r   r    rQ   )r$   r<   r;   r=   r>   r*   r*   r+   Ú(test_loc_internals_not_updated_correctlyK  s"    
þý
z>TestDataFrameIndexing.test_loc_internals_not_updated_correctlyNc                 C   sR   t ddddgidd�}||jdgd d …f< t dtjddgidd�}t ||¡ d S ©Nr´   rµ   rd   Ústringr.   r   ©r   r†   rþ   ÚNAr    r9   ©r$   rå   r<   r>   r*   r*   r+   Ú test_iloc_setitem_string_list_nab  s    z6TestDataFrameIndexing.test_iloc_setitem_string_list_nac                 C   sP   t ddddgidd�}||jdd d …f< t dtjddgidd�}t ||¡ d S rX  rZ  r\  r*   r*   r+   Útest_iloc_setitem_string_naj  s    z1TestDataFrameIndexing.test_iloc_setitem_string_naÚfuncc                 C   sT   t ddddgidd�}d|jd d …|dgƒf< t ddddgidd�}t ||¡ d S )	Nr´   r-   r0   r1   r?  r.   r3   r   r•   )r$   r_  r<   r>   r*   r*   r+   Ú/test_iloc_setitem_ea_null_slice_length_one_listr  s    zETestDataFrameIndexing.test_iloc_setitem_ea_null_slice_length_one_listc                 C   s‚   t tjddgdddggddgd�d	�}td
|jjƒ}|dddgd�}|j|d d …f }t tjddgddgd�d	�}t 	||¡ d S )NrN   rO   r´   rµ   rd   ÚfirstÚsecondr5  rv   ZIndexer)ra  rb  )rN   r´   )rN   rµ   )
r   r   r8  r   r   r6  r]   rN  r    r9   )r$   r<   Zindexer_tuplerP  r=   r>   r*   r*   r+   Útest_loc_named_tuple_for_midxz  s      ÿÿ ÿÿz3TestDataFrameIndexing.test_loc_named_tuple_for_midxro   rß   rµ   c                 C   sh   t dtdƒtdƒgi|–ƒ}|d tjdd� |jdg|f< t dtdƒtdƒgi|–ƒ}t ||¡ d S )Nr´   z
2022-12-29z
2022-12-30r-   )Údaysz
2022-12-31)r   r   rþ   Ú	Timedeltar]   r    r9   )r$   rß   ro   r<   r>   r*   r*   r+   Útest_set_2d_casting_date_to_int‹  s    ÿ ÿz5TestDataFrameIndexing.test_set_2d_casting_date_to_intrW   c                 C   sV   d}t |t|ƒt|ƒdœ–ƒ}| ¡ }|ddg |j|dg ddgf< t ||¡ d S )Nr¼   rý   rø   rù   T)r   rS   r@   r]   r    r9   )r$   rß   Únr<   r>   r*   r*   r+   Ú1test_loc_setitem_reordering_with_all_true_indexer˜  s
     zGTestDataFrameIndexing.test_loc_setitem_reordering_with_all_true_indexerc              	   C   sZ   t ddgd�}| ¡ }t dgd�}t d ¡� ||jd d …df< W 5 Q R X t ||¡ d S )Nr´   rµ   r5   )r   r@   r    rj   r]   r9   )r$   r<   r>   Úrhsr*   r*   r+   Útest_loc_rhs_empty_warning¡  s    z0TestDataFrameIndexing.test_loc_rhs_empty_warningc                 C   sŽ   t dddddgdddd	d
ggƒ}tddgdd�}tdgdd�}|j||f }t ddggdgd�}t ||¡ |j|j|jf }t ||¡ d S )Nr   r-   r0   r1   r2   r3   r4   rç   rÊ   é	   r?  r.   rv   )r   r   r†   r    r9   rF   )r$   r<   ro   Zrow_indexerr=   r>   r*   r*   r+   Útest_iloc_ea_series_indexerª  s     z1TestDataFrameIndexing.test_iloc_ea_series_indexerc              	   C   s”   t dddddgdddd	d
ggƒ}tdtjgdd�}d}tjt|d�� |jd d …|f  W 5 Q R X tjt|d�� |jd d …|jf  W 5 Q R X d S )Nr   r-   r0   r1   r2   r3   r4   rç   rÊ   rk  r?  r.   zcannot convertr   )	r   r   rþ   r[  r!   r"   rR   r†   rF   )r$   r<   ro   rU   r*   r*   r+   Ú#test_iloc_ea_series_indexer_with_na¶  s     z9TestDataFrameIndexing.test_iloc_ea_series_indexer_with_na)Tr/   Úbooleanc              	   C   s¨   t jtddddg|d�tddddg|d�gddgd�}tddd	d
dgi|d�}t tt|tƒ¡� |j	| }W 5 Q R X tddd	git
ddgd|d�d�}t ||¡ d S )NTFr.   r´   rµ   r5  rd   r-   r0   r1   r2   rv   )rW   r/   )r   rV  r   r   r    Zmaybe_produces_warningr	   Ú
isinstanceÚtupler]   r   r9   )r$   r/   ro   Zmidxr<   r=   r>   r*   r*   r+   Útest_loc_bool_multiindexÀ  s    þû
 ÿz.TestDataFrameIndexing.test_loc_bool_multiindexr$  r¶   c                 C   sl   t ttdddƒtdddƒg|d�ddgdœƒ}|jdd	�}||d
  }|d |j|d
 |f< t ||¡ d S )Niæ  r-   r   rŽ   )r$  TF)r¶   Úupdate)Údeeprr  r¶   )r   r   r   r@   r]   r    r9   )r$   r$  ro   r<   r>   Z	update_dfr*   r*   r+   Ú2test_loc_datetime_assignment_dtype_does_not_changeÓ  s     ÿüÿzHTestDataFrameIndexing.test_loc_datetime_assignment_dtype_does_not_changezindexer, idxr0   c                 C   sˆ   t dtjgdtjgdtjggtd�}t dtjgdtjggƒ}|||ƒd |…d d …f< t dtjgdtjgdtjggtd�}t ||¡ d S )NrY   rZ   r¸   r.   r-   r0   )r   rA   rb   ri   r    r9   )r$   ro   r;   r<   ri  r>   r*   r*   r+   Ú"test_setitem_value_coercing_dtypesç  s
    $$z8TestDataFrameIndexing.test_setitem_value_coercing_dtypes)eÚ__name__Ú
__module__Ú__qualname__r,   r?   rI   rK   rV   r_   rp   rx   r!   ÚmarkÚparametrizer|   r   r…   r‡   r–   r˜   rœ   r¢   r¤   r¨   r°   r»   rÀ   rÅ   rÇ   rÉ   rË   rÐ   ÚtdZskip_array_manager_invalid_testr×   rÚ   rÜ   rá   ræ   rè   rë   rì   rí   rî   rñ   rõ   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r#  r)  r/  r4  r;  r=  r>  rB  rD  rþ   rÿ   Zto_numpyrK  rL  rO  rQ  rS  rW  r[  r]  r^  rÌ   r   rA   r‚   r`  rc  rf  rh  rj  rl  rm  rƒ   rq  rt  r    r]   r†   ru  r*   r*   r*   r+   r   *   sÖ   		;" ÿ


.4*




	W

	
. ÿ
1
	



	
r   c                   @   s   e Zd Zdd„ ZdS )ÚTestDataFrameIndexingUInt64c              	   C   sú   |}|d   d¡}d|jks t‚||d< t |d t|dd�¡ d|jksNt‚d|d< ||d< t |d t|dd�¡ |d= | ¡ }tj|j	d< tj|j	d< |d }t t
|ƒtd	d
d	gdd�¡ t |jtt d¡t d¡t d¡gdddgd�¡ d S )NrN   rL   rt   r[   ru   rC  ©r-   r0   rO   TFZuint64ÚOrv   )Úrenamer6   r   r    rQ   r   r@   rþ   rÿ   r†   r   rw   rA   r/   )r$   Zuint64_framer<   r;   rÏ   r=   r*   r*   r+   r¢   ò  s,    þþz(TestDataFrameIndexingUInt64.test_setitemN)rv  rw  rx  r¢   r*   r*   r*   r+   r|  ñ  s   r|  c                 C   sŠ  t ddgtddd�tjddd�dœƒ}|jd }t|jd tƒsDt‚t|jd tj	ƒsZt‚|j
d }t|jd tƒsxt‚t|jd tj	ƒsŽt‚|jddd�}t|jd tƒs°t‚t|jd tj	ƒsÆt‚| rÎd S |j}| ¡  | d¡j}t|d tƒsút‚t|d tj	ƒ�st‚|j|jd  }|jd	k�s0t‚| d
¡}t|tƒ�sJt‚|j|jd  }|jdk�sjt‚| d
¡}t|tj	ƒ�s†t‚d S )Nr-   r0   Ú2000r+  z1 Day)rN   rO   rt   r   )ZaxisrF  rH  r,  )r   r   rþ   Ztimedelta_ranger]   ro  rF   r   r   re  r†   ZxsZ_mgrZ_rebuild_blknos_and_blklocsZfast_xsr‚   ÚblocksZblknosr/   Úiget)rð   r<   rJ  Zmgrr~   Zblkrå   r*   r*   r+   Ú/test_object_casting_indexing_wraps_datetimelike  s<    
ýÿ



rƒ  zFCannot setitem on a Categorical with a new category( \(.*\))?, set thezCCannot set a Categorical with another, without identical categoriesc                   @   s8  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
„ ƒZ	ej
 dejejg¡dd„ ƒZej
 dejejejejg¡dd„ ƒZej
 dejejg¡dd„ ƒZej
 dejejg¡dd„ ƒZej
 dejejg¡dd„ ƒZej
 dejejg¡dd„ ƒZej
 dejejejg¡dd„ ƒZdd„ ZdS )ÚTestLocILocDataFrameCategoricalc                 C   s\   t dddddddgddgd�}tdddddd	d
gƒ}dddddddg}t||dœ|d�}|S ©Nr´   rµ   ©Ú
categoriesÚhrä   rã   r„   ÚlÚmrg  r-   ©ÚcatsrF   rv   ©r   r   r   )r$   rŒ  r;   rF   rA  r*   r*   r+   rA  A  s
    z$TestLocILocDataFrameCategorical.origc                 C   s\   t dddddddgddgd�}tdddddd	d
gƒ}dddddddg}t||dœ|d�}|S ©Nr´   rµ   r†  rˆ  rä   rã   r„   r‰  rŠ  rg  r-   r0   r‹  rv   r�  )r$   Zcats1rT  Zvalues1Úexp_single_rowr*   r*   r+   r�  I  s
    z.TestLocILocDataFrameCategorical.exp_single_rowc                 C   s\   t dddddddgddgd�}tdddddd	d
gƒ}dddddddg}t||dœ|d�}|S rŽ  r�  )r$   Zcats2rU  Zvalues2Úexp_multi_rowr*   r*   r+   r�  R  s
    z-TestLocILocDataFrameCategorical.exp_multi_rowc                 C   s\   t dddddddgddgd�}tdddddd	d
gƒ}dddddddg}t||dœ|d�}|S r…  r�  )r$   Zcats3Zidx3Zvalues3Úexp_parts_cats_colr*   r*   r+   r‘  \  s
    z2TestLocILocDataFrameCategorical.exp_parts_cats_colc                 C   s\   t dddddddgddgd�}tdddddd	d
gƒ}dddddddg}t||dœ|d�}|S r…  r�  )r$   Zcats4Zidx4Zvalues4Úexp_single_cats_valuer*   r*   r+   r’  e  s     ÿz5TestLocILocDataFrameCategorical.exp_single_cats_valuero   c              	   C   s˜   |  ¡ }tddƒ}|tjkr&tddƒ}ddgddgg||ƒ|d d …f< t ||¡ |  ¡ }tjttd��& ddgddgg||ƒ|d d …f< W 5 Q R X d S )Nr0   r2   rã   r„   rµ   r   rd   )	r@   r  r    r]   r9   r!   r"   r¥   Úmsg1)r$   rA  r�  ro   r<   r)   r*   r*   r+   Ú#test_loc_iloc_setitem_list_of_listsp  s    


 zCTestLocILocDataFrameCategorical.test_loc_iloc_setitem_list_of_listsc              	   C   sr   |  ¡ }d}|tjtjfkr0|jd |jd f}d||ƒ|< t ||¡ tjt	t
d�� d||ƒ|< W 5 Q R X d S )N)r0   r   r0   r   rµ   r   rd   )r@   r    r]   Úatr   r6   r9   r!   r"   r¥   r“  )r$   rA  r’  ro   r<   r)   r*   r*   r+   Ú7test_loc_iloc_at_iat_setitem_single_value_in_categories€  s    zWTestLocILocDataFrameCategorical.test_loc_iloc_at_iat_setitem_single_value_in_categoriesc                 C   sJ   |  ¡ }|jdk}d}|tjkr*|j| }d||ƒ||f< t ||¡ d S )Nrã   r   rµ   )r@   r   r    r]   r6   r9   )r$   rA  r’  ro   r<   r§   r)   r*   r*   r+   Ú5test_loc_iloc_setitem_mask_single_value_in_categories“  s    


zUTestLocILocDataFrameCategorical.test_loc_iloc_setitem_mask_single_value_in_categoriesc              	   C   sz   |  ¡ }d}|tjkr |jd }ddg||ƒ|d d …f< t ||¡ tjttd�� ddg||ƒ|d d …f< W 5 Q R X d S )Nr0   rµ   r   rd   )	r@   r    r]   r   r9   r!   r"   r¥   r“  )r$   rA  r�  ro   r<   r)   r*   r*   r+   Ú2test_loc_iloc_setitem_full_row_non_categorical_rhs¢  s    

zRTestLocILocDataFrameCategorical.test_loc_iloc_setitem_full_row_non_categorical_rhsc           	   	   C   sØ   |  ¡ }tddƒdf}|tjkr4tddƒ|jd f}tddgddgd�}|||ƒ|< t ||¡ ttd	ƒtd
ƒd�}tj	t
td�� |||ƒ|< W 5 Q R X ttdƒtd
ƒd�}tj	t
td�� |||ƒ|< W 5 Q R X d S )Nr0   r2   r   rã   r„   rµ   r´   r†  ZbbÚabcr   Úcc)r@   r  r    r]   r6   r   r9   rÌ   r!   r"   r¥   Úmsg2)	r$   rA  r‘  ro   r<   r)   ÚcompatZsemi_compatZincompatr*   r*   r+   Ú1test_loc_iloc_setitem_partial_col_categorical_rhsµ  s    
zQTestLocILocDataFrameCategorical.test_loc_iloc_setitem_partial_col_categorical_rhsc              	   C   s~   |  ¡ }tddƒdf}|tjkr4tddƒ|jd f}ddg||ƒ|< t ||¡ tjtt	d�� ddg||ƒ|< W 5 Q R X d S )	Nr0   r2   r   rã   r„   rµ   r   rd   )
r@   r  r    r]   r6   r9   r!   r"   r¥   r“  )r$   rA  r‘  ro   r<   r)   r*   r*   r+   Ú)test_loc_iloc_setitem_non_categorical_rhsÓ  s    
zITestLocILocDataFrameCategorical.test_loc_iloc_setitem_non_categorical_rhsc                 C   sx   t ddd� t¡}tddddgi|d�}|jjtks8t‚|tjkrP||ƒd }n||ƒd d …df }|jjtkstt‚d S )NZ2012r1   r+  r   r-   r0   rv   )	r   rh   ri   r   r   r/   r   r    Úgetitem)r$   ro   r;   r<   rJ  r*   r*   r+   Ú-test_getitem_preserve_object_index_with_datesæ  s    
zMTestLocILocDataFrameCategorical.test_getitem_preserve_object_index_with_datesc                 C   s\   t dgdggtjddgdgd�d�}t dggtjdgdgd�d�}|jd }t ||¡ d S )	Nr   r-   )r´   )rµ   ra  r5  )rT   r   r´   rM  )r$   r<   r>   r=   r*   r*   r+   Ú test_loc_on_multiindex_one_levelõ  s    
þ ÿ
z@TestLocILocDataFrameCategorical.test_loc_on_multiindex_one_levelN)rv  rw  rx  r!   ZfixturerA  r�  r�  r‘  r’  ry  rz  r    r]   r†   r”  r•  Ziatr–  r—  r˜  r�  rž  rŸ  r   r¡  r*   r*   r*   r+   r„  @  s2   


	









r„  c                   @   s,  e Zd Zej ddhddidhdfddidfddhfdddifg¡dd„ ƒZej ddhddidhdfdfddidfdfddhfdddifg¡dd	„ ƒZej ddhddidhdfddidfddhfdddifg¡d
d„ ƒZej ddhddidhdfdfddidfdfddhfdddifg¡dd„ ƒZ	dS )ÚTestDeprecatedIndexersr)   r-   r´   c              	   C   sD   t ddgddggddgd�}tjtdd	�� |j|  W 5 Q R X d S ©
Nr-   r0   r1   r2   r´   rµ   r5   úas an indexer is not supportedr   ©r   r!   r"   r¥   r]   ©r$   r)   r<   r*   r*   r+   Ú$test_getitem_dict_and_set_deprecated  s    z;TestDeprecatedIndexers.test_getitem_dict_and_set_deprecatedr0   r}  c              	   C   sP   t ddgddggddgt ddg¡d	�}tjtd
d�� |j|  W 5 Q R X d S ©Nr-   r0   r1   r2   r´   rµ   r}  r<  r€   r¤  r   ©r   r   rN  r!   r"   r¥   r]   r¦  r*   r*   r+   Ú/test_getitem_dict_and_set_deprecated_multiindex  s    ýzFTestDeprecatedIndexers.test_getitem_dict_and_set_deprecated_multiindexc              	   C   sD   t ddgddggddgd�}tjtdd	�� d|j|< W 5 Q R X d S r£  r¥  r¦  r*   r*   r+   Ú$test_setitem_dict_and_set_disallowed!  s    z;TestDeprecatedIndexers.test_setitem_dict_and_set_disallowedc              	   C   sP   t ddgddggddgt ddg¡d	�}tjtd
d�� d|j|< W 5 Q R X d S r¨  r©  r¦  r*   r*   r+   Ú/test_setitem_dict_and_set_disallowed_multiindex*  s    ýzFTestDeprecatedIndexers.test_setitem_dict_and_set_disallowed_multiindexN)
rv  rw  rx  r!   ry  rz  r§  rª  r«  r¬  r*   r*   r*   r+   r¢    s@    0ÿ

úþ

 0ÿ

úþr¢  ).Úcollectionsr   r   r   Údecimalr   rC   ÚnumpyrA   r!   Zpandas._libsr   Zpandas.errorsr   r	   r
   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr{  Zpandas.core.dtypes.commonr   Zpandasrþ   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr    rï   r   r|  rƒ  r“  r›  r„  r¢  r*   r*   r*   r+   Ú<module>   s@   4           R + C