U
    `»{jåå  ã                   @   s  d dl mZ d dlmZ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 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 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Ú	timedeltaN)ÚiNaT)ÚInvalidIndexErrorÚSettingWithCopyError)Ú
is_integer)
ÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚisnaÚnotnazBslice 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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d,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zejd4d5„ ƒZ d6d7„ Z!d8d9„ Z"d:d;„ Z#ejd<d=„ ƒZ$d>d?„ Z%ejd@dA„ ƒZ&dBdC„ Z'dDdE„ Z(dFdG„ Z)dHdI„ Z*dJdK„ Z+dLdM„ Z,dNdO„ Z-dPdQ„ Z.dRdS„ Z/dTdU„ Z0dVdW„ Z1dXdY„ Z2dZd[„ Z3d\d]„ Z4d^d_„ Z5e	j
 d`ddg¡dadb„ ƒZ6dcdd„ Z7dedf„ Z8dgdh„ Z9didj„ Z:dkdl„ Z;dmdn„ Z<dodp„ Z=dqdr„ Z>dsdt„ Z?dudv„ Z@dwdx„ ZAdydz„ ZBd{d|„ ZCd}d~„ ZDe	j
 deEjFeEjF Gd€¡eEjF Gd�¡g¡d‚dƒ„ ƒZHd„d…„ ZId†d‡„ ZJe	j
 dˆd‰dŠg¡e	j
 d‹dŒdŒgg¡d�dŽ„ ƒƒZKejd�d�„ ƒZLd‘d’„ ZMe	j
 dˆd“d“geEjNeEjNgg¡d”d•„ ƒZOe	j
 dˆd“eEjNg¡d–d—„ ƒZPe	j
 d˜eQeReSjTg¡d™dš„ ƒZUd›dœ„ ZVd“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&   úh/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/frame/indexing/test_indexing.pyÚtest_getitem(   s    z"TestDataFrameIndexing.test_getitemc              	   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!   ÚdfÚadÚresr&   r&   r'   Útest_getitem29   s    z#TestDataFrameIndexing.test_getitem2c              	   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   é   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_listG   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   é   Ztt1Ztt2)r   ÚcolumnsÚdtyper9   é   )rB   ÚnameÚ0Ú1Ú2©rD   )
r
   r<   r*   Úint_Úlocr   r   rA   r   r:   ©r    r0   ÚresultÚexpectedr&   r&   r'   Útest_setitem_list2[   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 )Né
   zItem wrong lengthr   éÿÿÿÿzBoolean array expectedr   c                    s*   i | ]"}|t  ˆ | d kˆ | t j¡“qS )r   )r*   ÚwhereÚnan)Ú.0Úc©r=   r&   r'   Ú
<dictcomp>–   s      z>TestDataFrameIndexing.test_getitem_boolean.<locals>.<dictcomp>©r   rA   ©rA   F)Zcheck_dtype)r   ÚastypeÚobjectr   Zassert_index_equalr   r   r;   Úassert_frame_equalr   Úassert_produces_warningÚUserWarningÚreindexZ_get_numeric_datar
   rA   rB   r   )r    Zmixed_float_frameZmixed_int_frameÚdatetime_frameÚdÚindexerZindexer_objZsubindexZsubframeZsubframe_objr0   ZbifZbifwrT   r&   rU   r'   Útest_getitem_booleanj   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 )Nr9   r5   Zint32ZE1ÚFÚint64ZF1r   Úfloat64é   rC   r6   r7   ÚCÚD©r   r@   )
r)   rY   Údtypesr   r*   rB   r   r:   rJ   r   )r    r_   r0   ZcastedrL   rM   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é   r@   rf   )r
   r*   ÚarangeZreshaperJ   r   r   r[   )r    rl   r0   rL   rM   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 )
Né   r6   r7   rg   rh   r5   rX   r   r9   )r*   r   r+   r
   r)   r   Úassert_almost_equalr/   )r    Úarrr0   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   r9   r6   ©rA   r   )r
   r*   Ú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 )
Nrf   r@   r9   rO   rg   r5   rC   rW   rP   )
r
   r*   r   r+   ÚilocrJ   r   r   r[   r   rK   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š™™™™™	@ç      @é   é   é$   é(   rO   é   é+   é"   r   r   é   )Úrnaéüÿÿr   éè  r†   r‡   rˆ   rX   r@   r9   ©r
   rz   r   r[   rK   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 )Nr6   z6'DataFrame' object has no attribute 'NONEXISTENT_NAME'r   )r   r:   r6   r   r   ÚAttributeErrorZNONEXISTENT_NAME)r    r!   r>   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Úfoobarr9   rO   ri   rp   )r
   r<   r�   Úallr   ©r    r0   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 )Nr6   rC   Zcol5é   r…   ©r   rD   Zcol6Fr8   Zcol9rp   Zcol7g…ëQ¸	@Zcol0r4   Zcol8úC\nA value is trying to be set on a copy of a slice from a DataFramerF   rG   Zcol10r   )r   r   r*   ZravelZcolumn_stackr/   rR   r   r   r   r:   r   r+   rŽ   r   r   r   rB   Úobject_)r    r!   Úusing_copy_on_writer$   Úexprr   Zsmallerr>   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
   r*   rR   rz   r   r[   rJ   ©r    r0   rM   r&   r&   r'   Útest_setitem2?  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< tj|j|j< t ||¡ |  ¡ }|d ||t |¡k< t |j|j|jd ¡ t ||¡ d S )Nrf   r6   r   rP   r9   rp   rC   r@   z;Must pass DataFrame or 2-d ndarray with boolean values onlyr   )r)   r/   r   rq   r^   r   r*   Zputmaskr   r   Ú	TypeErrorÚabsrR   r[   )r    r!   r0   r/   r$   r>   ÚmaskrM   r&   r&   r'   Útest_setitem_booleanJ  sD    "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 )
Nrh   Úi8r   r7   Úbarr4   ç      @Z	somethingrC   )rY   rB   r*   rd   r   rn   r   Ú
issubclassÚtypeÚintegerre   ©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ÚbrT   )r7   rg   r@   ri   r7   rC   Z	beginningr6   r4   r5   rŸ   rh   Údateç      @r9   rg   r   rF   rG   Ú3Z	coercible)r
   r*   rn   r   r   rA   r   Únowr   r/   rB   r”   rd   re   )r    r!   r0   Ú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³   )r9   r²   )r9   r³   )r*   r   r
   r   rJ   r   )r    r=   r0   Úixr&   r&   r'   Útest_setitem_corner2Ã  s    
þz*TestDataFrameIndexing.test_setitem_corner2c                    sÄ   ddl m‰  ttdƒtdƒd�}t‡ fdd„tdƒD ƒtdƒd�}tdd	d
gtdƒd�}t d¡|d< t|jƒdksxt	‚||d< t|jƒdks’t	‚||d< t|jƒdks¬t	‚|d j
tjksÀt	‚d S )Nr   ©ÚDecimalr@   rW   c                    s   g | ]}ˆ d ƒ‘qS )r9   r&   )rS   r#   r¶   r&   r'   Ú
<listcomp>Ù  s     z<TestDataFrameIndexing.test_setitem_ambig.<locals>.<listcomp>ri   r4   ÚbzrÚbazr9   rC   )Údecimalr·   r
   r<   r   r*   Úonesr   rA   r   rB   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 )Nr6   rP   Fr8   )r   r:   rz   rJ   Ú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 )NrF   rG   r­   Z11Z22Z33Z111Z222Z333)r©   rª   rT   r©   )r
   r)   r©   rJ   rª   r   r   r[   ©r    r0   rL   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 )NrO   rp   é   rC   )
r
   r*   r   r+   rz   rR   r   r/   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 )NrO   rp   r   r   rC   ri   rf   r@   r~   é   rÂ   rP   z^3$r   )r
   r*   r   r+   r<   r)   rz   r/   rŽ   r   rJ   r^   r   r[   Úlistr   r   r   )r    r0   ÚcprL   Úresult2rM   Ú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}|s®tj	t
|d�� d|jd d …df< W 5 Q R X |d dk ¡ sÌt‚nd|jd d …df< t ||¡ d S )Néýÿÿÿrh   rg   r“   r   ç      @rf   )rz   rB   r*   re   r   r)   Úshares_memoryÚ_valuesr   r   r   rJ   rŽ   r   r[   )r    r!   Úfloat_string_framer•   ZslicedÚoriginalr>   r&   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 )Nrp   rO   r~   r   )r   ZmakeTimeDataFramer   rJ   r[   r)   )r    r0   ÚstartÚendrL   rÇ   rM   r&   r&   r'   Ú"test_getitem_setitem_non_ix_labels8  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 )Nr@   rC   r   r9   rW   )
r
   r*   r   r+   rJ   r   r^   r   r[   rA   )r    r0   ÚrsZxpr&   r&   r'   Útest_ix_multi_takeL  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 ©Nrp   )rJ   rA   r   r   )r    r!   Úfr´   ÚcolÚtsÚidxr&   r&   r'   Útest_getitem_fancy_scalarX  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)   rJ   Ú	enumeraterA   r   Zget_locr*   r   r+   r/   r   r[   )r    r!   r×   rM   r´   ÚjrØ   rÙ   rÚ   ÚiÚvalr&   r&   r'   Útest_setitem_fancy_scalarb  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 )Nr7   rh   rX   FTrp   rO   rW   é   ri   rC   rg   )rJ   r^   r   r[   r   rA   )r    r!   r×   r´   rM   rL   Zboolvecr&   r&   r'   Útest_getitem_fancy_booleans  s"    z0TestDataFrameIndexing.test_getitem_fancy_booleanc                 C   s„   |  ¡ }|  ¡ }|d dk}d|j|< d|j|j< t ||¡ |  ¡ }|  ¡ }d|j|ddgf< d|j|jd d…f< t ||¡ d S )Nr6   r   ç        r7   rC   )r)   rJ   r/   r   r[   )r    r!   ÚframerM   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 )Nr9   rf   rá   rC   r   )rz   rJ   r   r   r[   rA   )r    r!   rL   rM   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 )Nr6   rP   r9   r   )rJ   r   r[   r)   )r    r!   rœ   rL   rM   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 )Nr@   rC   TFr   r9   rp   )	r
   r*   r   r+   rv   rJ   r   r[   r)   )r    r0   Zk1Zk2rL   rM   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
‚| ¡ }|�r¤tnd }d}tj||d�� d|jdd
…< W 5 Q R X |jdd
… }|dkj ¡ �söt
‚d S )Nr|   rC   r@   rf   rp   ri   F)Zcheck_index_typerË   r¬   r9   r   r¦   r    g      @r}   zWcannot do positional indexing on Float64Index with these indexers \[1.0\] of type floatr   gš™™™™™ñ?g
×£p=
@z&will attempt to set the values inplace)r   r
   r*   r   r+   rJ   r^   r   r[   r   r   rz   rŽ   r   r   rš   r)   Ú
_slice_msgr/   ÚFutureWarningr\   )	r    Úusing_array_managerr   r0   rL   rM   r>   rÆ   Úwarnr&   r&   r'   Ú!test_getitem_setitem_float_labelsÁ  s€    ÿ((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 )Nrp   r@   r©   rª   rT   r`   Úer4   rŸ   rº   rW   Z20010102Ú	timestampre   údatetime64[ns]ri   )rª   rï   )rT   rï   )r
   r*   r   r+   r   rj   r   rB   r   r:   r   rJ   r   r   r”   rR   rŽ   rK   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Ü  r9   ÚxÚyiÝ  iÞ  ©r©   rª   ÚabrÄ   rt   rª   ©r   rª   )r9   rª   )rô   rõ   rC   r@   z2013-01-01T00:00:00z2014-01-01T00:00:00rf   rp   r©   )r
   r   rÅ   r<   ÚpdÚNaTrJ   r*   rv   Ú
datetime64r   r[   )r    rM   r0   r6   r&   r&   r'   Útest_setitem_mixed_datetime:  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 ©NrC   r6   r7   éþÿÿÿ)rJ   r   r/   r   rq   ©r    r!   ÚpiecerL   rM   r&   r&   r'   Útest_setitem_frame_floatW  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   rC   r6   r7   rW   )r)   r
   r   ÚslicerJ   r   rq   r/   ©r    rÎ   r×   r   r%   r&   r&   r'   Útest_setitem_frame_mixed^  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   rC   r4   rŸ   r6   r7   rW   )	r)   r
   rÅ   r   r  rJ   r   rq   r/   r  r&   r&   r'   Ú'test_setitem_frame_mixed_rows_unalignedj  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 )NrC   r6   rþ   r7   )	r)   rJ   r   r  r*   rR   r   rq   r/   r  r&   r&   r'   Ú&test_setitem_frame_mixed_key_unalignedx  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)   rJ   r   r  r/   r   rq   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 )Nr9   rC   r4   r@   rf   rŸ   r6   r7   rg   rX   ç      à?)r
   r)   rJ   r^   r   r[   )r    r0   rÈ   rM   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ý   )rJ   r   rA   r/   r   rq   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 )	Nrp   r@   r4   rŸ   rº   ri   rC   rf   )	r
   r*   r   r+   rJ   r   r[   rz   r:   rK   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 )Nrp   r@   r4   rŸ   rº   ri   rC   rf   r9   r   )r
   r*   r   r+   rJ   rz   r   r[   )r    r0   rL   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©   r9   rC   r@   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   rJ   )r    r  r0   Úmessager>   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 )Nr9   r5   rp   r©   g®Gáz®ó?iš  rª   rø   r   rH   )r¡   rB   r¢   Úintr*   r£   r   rJ   r   r   r
   r   r   r:   )r    r!   rL   r0   rM   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 )NrO   rf   r   r   rC   ri   r9   rÂ   ró   rÄ   )r
   r*   r   r+   r<   rz   rJ   r   r:   r  r[   r^   r   ©r    r0   rL   r–   rM   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}|rvd	|j
d d …df< n>tjt|d
�� d	|j
d d …df< W 5 Q R X |s´d	|jdd…< t |d |¡ d S )NrO   rf   r   r   rC   ri   rÂ   r“   rã   r   )r
   r*   r   r+   r<   r)   rz   r  rÌ   r   rJ   r   r   r   rÍ   r   r:   )r    rë   r•   r0   rÏ   ÚsubsetZexp_colr>   r&   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 )Nrf   rO   r   r   rC   rX   r9   rÂ   ró   rÄ   )r
   r*   r   r+   r<   rz   rJ   r   r:   r  r[   r^   rA   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}tjt|d	�� d
|jd d …df< W 5 Q R X |d dk ¡ sðt
‚nH|rÈt |d j	|d j	¡sÈt
‚d
|d< |d dk ¡ sät
‚t ||¡ d S )Nrf   rO   r   r   rC   rX   rÂ   r“   r   rã   )r
   r*   r   r+   r<   r)   rz   r  rÌ   rÍ   r   r   r   r   rJ   rŽ   r   r[   )r    rë   r•   r0   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á  r9   )ÚyearÚmonthÚdayrp   )rÑ   rÒ   )rJ   Úitemr   r6   r7   rW   FTrÄ   )r6   r7   ri   )	r   r   Úinsertr
   r*   rv   rJ   r   r[   )r    Ztranger0   Zbool_idxrM   r&   r&   r'   Útest_loc_duplicates7  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-01r@   Úutc)ÚperiodsÚtzÚdatesrH   r9   r   rC   )r   r   r
   r   r:   rJ   )r    Úcolumnr0   r&   r&   r'   Ú4test_setitem_with_unaligned_tz_aware_datetime_columnR  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 )Nr9   )ÚhoursZ20130101rf   ©r  ri   úm8[ns]©rB   r6   rC   r7   r@   rg   rh   rp   r5   rú   rc   rÄ   rP   rÊ   ÚGÚHztimedelta64[ns]rð   ZABCDEFGH)r   r
   r   r*   rv   rJ   r   Ztimedelta64rû   rj   r   rB   rÅ   r   r:   )r    Zone_hourr0   rL   rM   r&   r&   r'   Ú,test_loc_setitem_datetimelike_with_inference_  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   r9   )r   r9   rC   r@   rf   rõ   g333333Ó?)r�   r9   )r,  r9   )r-  r9   )r+  rf   Útestr4   z1not supported between instances|unorderable typesr   )
r
   r*   rR   r)   rJ   r   r[   r   r   rš   )r    r0   rÈ   rM   r>   r&   r&   r'   Ú#test_getitem_boolean_indexing_mixedu  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   r9   rT   ©ÚnamesrC   r@   rf   rÞ   rH   rt   r  r   )ZlevelsÚcodesr1  )rô   r   r’   )r   Úfrom_productr
   r   r   r   r   r<   rJ   r  r   r[   r   r:   )r    ÚmiÚdgr   rA   rM   rL   rD   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©r@   rf   rp   rX   r   r  )r
   r*   r¼   rù   ZIntervalIndexZfrom_breaksrn   rz   r   r:   rJ   )r    r0   rM   r2   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ª   )rA   rB   )rC   )rC   rC   rö   r   )r
   rZ   r*   ZzerosrJ   r   r[   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 )Nr6   r9   rC   r@   ÚInt64r'  rP   )r
   r)   r/   rJ   r   r[   rù   ÚcoreZarraysZPandasArrayrz   )r    r0   Ú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©r9   r9   r'  r   )r
   r*   ru   rZ   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 )Nr6   r9   rC   r@   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   r7   )r
   rÍ   Újoinr   r   rš   rz   r)   )r    r@  Zany_numeric_ea_dtyper0   Úserrr   r>   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©   rH   rt   r9   r   ri   )r
   r   rJ   r   r[   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 )
Nr`   r©   rª   rT   r0  rt   r4   )r9   rC   r@   ri   ©r
   r   Úfrom_tuplesrJ   r   r[   r˜   r&   r&   r'   Ú+test_loc_expand_empty_frame_keep_midx_names   s     ÿ
þzATestDataFrameIndexing.test_loc_expand_empty_frame_keep_midx_namesrß   rô   r9   Ú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©   r9   rC   r~   ri   )r
   r   r\   rJ   r*   rR   r[   )r    rK  rß   r0   rM   r&   r&   r'   Útest_loc_setitem_rhs_frame,  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ª   rX   r9   rC   r'  r   )	r
   r)   r   r\   r*   rv   re   rz   r[   )r    r0   rM   Úviewr&   r&   r'   Ú$test_iloc_setitem_enlarge_no_warning6  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 )NTr9   r    )Zbool_colr©   rª   rC   Úidx1Úidx2r0  ri   r>  r@   rT   r   r©   rª   r‘   r’   )r
   r   Zfrom_arraysrJ   r   r   r:   )r    r0   rÚ   rL   rM   r&   r&   r'   Ú(test_loc_internals_not_updated_correctly@  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ª   rT   Ústringr'  r   ©r
   rz   rù   ÚNAr   r[   ©r    rß   r0   rM   r&   r&   r'   Ú test_iloc_setitem_string_list_naW  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 rR  rT  rV  r&   r&   r'   Útest_iloc_setitem_string_na_  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©   r9   rC   r@   r:  r'  rp   r   r‰   )r    rY  r0   rM   r&   r&   r'   Ú/test_iloc_setitem_ea_null_slice_length_one_listg  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 )Nr6   r7   r©   rª   rT   ÚfirstÚsecondr0  ri   ZIndexer)r[  r\  )r6   r©   )r6   rª   )
r
   r   r3  r   r   r1  rJ   rI  r   r[   )r    r0   Zindexer_tuplerK  rL   rM   r&   r&   r'   Útest_loc_named_tuple_for_midxo  s      ÿÿ ÿÿz3TestDataFrameIndexing.test_loc_named_tuple_for_midx)WÚ__name__Ú
__module__Ú__qualname__r(   r3   r?   rN   rb   rk   r   ÚmarkÚparametrizero   rs   ry   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*  r/  r6  r8  r9  r=  r?  rù   rú   Zto_numpyrF  rG  rJ  rL  rN  rQ  rU  rW  rX  rÅ   r   r*   rv   rZ  r]  r&   r&   r&   r'   r   '   s²   <# ÿ


.2*




	Z

	
. ÿ
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 )Nr6   r4   rg   rH   rh   r>  ©r9   rC   r7   TFZuint64ÚOri   )ÚrenamerA   r   r   r:   r   r)   rù   rú   rz   r   rj   r*   rB   )r    Zuint64_framer0   rÚ   rÈ   rL   r&   r&   r'   r—   ‚  s,    þþz(TestDataFrameIndexingUInt64.test_setitemN)r^  r_  r`  r—   r&   r&   r&   r'   rd  �  s   rd  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 )Nr9   rC   Ú2000r%  z1 Day)r6   r7   rg   r   )ZaxisrA  rC  r&  )r
   r   rù   Ztimedelta_rangerJ   Ú
isinstancer/   r   r   Z	Timedeltarz   ZxsZ_mgrZ_rebuild_blknos_and_blklocsZfast_xsrv   ÚblocksZblknosrB   Úiget)rë   r0   rE  Zmgrrr   Zblkrß   r&   r&   r'   Ú/test_object_casting_indexing_wraps_datetimelike¢  s<    
ýÿ



rl  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Ý   rx   ÚlÚmÚnr9   ©Úcatsr/   ri   ©r	   r   r
   )r    rv  rÚ   r/   r<  r&   r&   r'   r<  Ò  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ª   ro  rq  rÞ   rÝ   rx   rr  rs  rt  r9   rC   ru  ri   rw  )r    Zcats1rO  Zvalues1Úexp_single_rowr&   r&   r'   ry  Ú  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 rx  rw  )r    Zcats2rP  Zvalues2Úexp_multi_rowr&   r&   r'   rz  ã  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 rn  rw  )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 rn  rw  )r    Zcats4Zidx4Zvalues4Úexp_single_cats_valuer&   r&   r'   r|  ö  s     ÿz5TestLocILocDataFrameCategorical.exp_single_cats_valuera   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 )NrC   rf   rÝ   rx   rª   r   rT   )	r)   r  r   rJ   r[   r   r   rš   Úmsg1)r    r<  rz  ra   r0   r%   r&   r&   r'   Ú#test_loc_iloc_setitem_list_of_lists  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)rC   r   rC   r   rª   r   rT   )r)   r   rJ   Úatr   rA   r[   r   r   rš   r}  )r    r<  r|  ra   r0   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   rJ   rA   r[   )r    r<  r|  ra   r0   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 )NrC   rª   r   rT   )	r)   r   rJ   r   r[   r   r   rš   r}  )r    r<  ry  ra   r0   r%   r&   r&   r'   Ú2test_loc_iloc_setitem_full_row_non_categorical_rhs3  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 )NrC   rf   r   rÝ   rx   rª   r©   ro  ZbbÚabcr   Úcc)r)   r  r   rJ   rA   r	   r[   rÅ   r   r   rš   Úmsg2)	r    r<  r{  ra   r0   r%   ÚcompatZsemi_compatZincompatr&   r&   r'   Ú1test_loc_iloc_setitem_partial_col_categorical_rhsF  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 )	NrC   rf   r   rÝ   rx   rª   r   rT   )
r)   r  r   rJ   rA   r[   r   r   rš   r}  )r    r<  r{  ra   r0   r%   r&   r&   r'   Ú)test_loc_iloc_setitem_non_categorical_rhsd  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2012r@   r%  r   r9   rC   ri   )	r   rY   rZ   r
   r   rB   r   r   Úgetitem)r    ra   rÚ   r0   rE  r&   r&   r'   Ú-test_getitem_preserve_object_index_with_datesw  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   r9   )r©   )rª   r[  r0  )r=   r   r©   rH  )r    r0   rM   rL   r&   r&   r'   Ú test_loc_on_multiindex_one_level†  s    
þ ÿ
z@TestLocILocDataFrameCategorical.test_loc_on_multiindex_one_levelN)r^  r_  r`  r   Zfixturer<  ry  rz  r{  r|  ra  rb  r   rJ   rz   r~  r  Ziatr€  r�  r‚  r‡  rˆ  r‰  rŠ  r‹  r&   r&   r&   r'   rm  Ñ  s2   


	









rm  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 )ÚTestDepreactedIndexersr%   r9   r©   c              	   C   s@   t ddgddggddgd�}t t¡� |j|  W 5 Q R X d S ©Nr9   rC   r@   rf   r©   rª   rX   ©r
   r   r\   rê   rJ   ©r    r%   r0   r&   r&   r'   Ú$test_getitem_dict_and_set_deprecated”  s    z;TestDepreactedIndexers.test_getitem_dict_and_set_deprecatedrC   re  c              	   C   sL   t ddgddggddgt ddg¡d	�}t t¡� |j|  W 5 Q R X d S ©
Nr9   rC   r@   rf   r©   rª   re  r7  rt   ©r
   r   rI  r   r\   rê   rJ   r�  r&   r&   r'   Ú/test_getitem_dict_and_set_deprecated_multiindex�  s    ýzFTestDepreactedIndexers.test_getitem_dict_and_set_deprecated_multiindexc              	   C   s@   t ddgddggddgd�}t t¡� d|j|< W 5 Q R X d S r�  rŽ  r�  r&   r&   r'   Ú$test_setitem_dict_and_set_deprecated²  s    z;TestDepreactedIndexers.test_setitem_dict_and_set_deprecatedc              	   C   sL   t ddgddggddgt ddg¡d	�}t t¡� d|j|< W 5 Q R X d S r‘  r’  r�  r&   r&   r'   Ú/test_setitem_dict_and_set_deprecated_multiindex»  s    ýzFTestDepreactedIndexers.test_setitem_dict_and_set_deprecated_multiindexN)
r^  r_  r`  r   ra  rb  r�  r“  r”  r•  r&   r&   r&   r'   rŒ  “  s@    0ÿ

úþ

 0ÿ

úþrŒ  )*Úcollectionsr   r   r   r,   Únumpyr*   r   Zpandas._libsr   Zpandas.errorsr   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrc  Zpandas.core.dtypes.commonr   Zpandasrù   r	   r
   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr   ré   r   rd  rl  r}  r…  rm  rŒ  r&   r&   r&   r'   Ú<module>   s<   0          d!+ C