a
    oÝEb]Ò  ã                   @   s  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	 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 dlm   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 )é    )ÚdatetimeÚ	timedeltaN)ÚiNaT)ÚInvalidIndexError)Ú
is_integer)
ÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚisnaÚnotnazBslice indices must be integers or None or have an __index__ methodc                   @   sL  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
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/d0„ Zejd1d2„ ƒZd3d4„ Zd5d6„ Zd7d8„ Z ejd9d:„ ƒZ!d;d<„ Z"ejd=d>„ ƒZ#d?d@„ Z$dAdB„ Z%dCdD„ Z&dEdF„ Z'dGdH„ Z(dIdJ„ Z)dKdL„ Z*dMdN„ Z+dOdP„ Z,dQdR„ Z-dSdT„ Z.dUdV„ Z/dWdX„ Z0dYdZ„ Z1d[d\„ Z2e3j4 5d]d^d_g¡d`da„ ƒZ6dbdc„ Z7ddde„ Z8dfdg„ Z9dhdi„ Z:djdk„ Z;dldm„ Z<dndo„ Z=dpdq„ Z>drds„ Z?dtdu„ Z@dvdw„ ZAdxdy„ ZBejCdzd{„ ƒZDe3j4 5d|eEjFeEjF Gd}¡eEjF Gd~¡g¡dd€„ ƒZHd�d‚„ ZIdƒS )„ÚTestDataFrameIndexingc                 C   sÀ   |d d… }t |jƒdksJ ‚| ¡ D ].\}}t |jƒdks@J ‚t |j|j¡s&J ‚q&|j ¡ D ]\}}|| d us`J ‚q`d|vs†J ‚tjtdd�� |d  W d   ƒ n1 s²0    Y  d S )Né   Úrandom©Úmatch)	ÚlenÚindexÚitemsÚtmZequalContentsZ_seriesÚpytestÚraisesÚKeyError)ÚselfÚfloat_frameÚslÚ_ÚseriesÚkey© r#   úi/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/frame/indexing/test_indexing.pyÚtest_getitem%   s    z"TestDataFrameIndexing.test_getitemc                 C   sŒ   |  ¡ }tj t|ƒ¡|d< tj t|ƒ¡}||d< tjtt 	d¡d�� | 
d¡ W d   ƒ n1 sh0    Y  |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_getitem26   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 d   ƒ n1 sŠ0    Y  tt|jƒd	 ƒ}d
t|ƒ› dt|ƒ› d�}tjt|d�� ||d< W d   ƒ n1 sì0    Y  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_listD   s    0ÿÿ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Údtyper6   é   )r?   ÚnameÚ0Ú1Ú2©rA   )
r   r9   r'   Úint_Úlocr   r   r>   r   r7   ©r   r-   ÚresultÚexpectedr#   r#   r$   Útest_setitem_list2X   s    z(TestDataFrameIndexing.test_setitem_list2c                    s  |j d }|j |k}| t¡}|j | }|| }t ||j ¡ tjtdd��  ||d d…   W d   ƒ n1 sr0    Y  || }	t |	|¡ tjtdd�� ||  W d   ƒ n1 s¼0    Y  t	||j ƒ}|| }	t |	|¡ t 
t¡�: | |j d d d… ¡}|| }	t |	|¡ W d   ƒ n1 �s20    Y  |||fD ]¼}
|
 ¡ ‰ |
|
dk }t‡ fdd„ˆ jD ƒˆ j ˆ jd	�}|
jD ]}||v�r†|
| ||< �q†|j|
jd
�}tj||dd� |
jD ]6}|| j|| jk�rÈ|| j|
| jk�sÈJ ‚�qÈ�qFd 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>“   ó    z>TestDataFrameIndexing.test_getitem_boolean.<locals>.<dictcomp>©r   r>   ©r>   F)Zcheck_dtype)r   ÚastypeÚobjectr   Zassert_index_equalr   r   r8   Úassert_frame_equalr   Úassert_produces_warningÚUserWarningÚreindexZ_get_numeric_datar   r>   r?   )r   Zmixed_float_frameZmixed_int_frameÚdatetime_frameÚdÚindexerZindexer_objZsubindexZsubframeZsubframe_objr-   ZbifZbifwrQ   r#   rR   r$   Útest_getitem_booleang   sL    



.&,ýý


z*TestDataFrameIndexing.test_getitem_booleanc                 C   s@  |  ¡ }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  g d¢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 g d¢d�}t ||¡ d S )Nr6   r2   Zint32ÚE1ÚFÚint64ÚF1r   Úfloat64é   r@   )r3   r4   ÚCÚDr2   ra   rb   rd   ©r   r=   )
r&   rW   Údtypesr   r'   r?   r   r7   rG   r   )r   r]   r-   ZcastedrI   rJ   r#   r#   r$   Útest_getitem_boolean_casting£   sD    ÿþü
ÿ
þ
ý
üúz2TestDataFrameIndexing.test_getitem_boolean_castingc                    sJ   t t d¡ dd¡ƒ‰ ‡ fdd„}|g d¢ƒ |g d¢ƒ |g d¢ƒ d S )	Né   r=   rf   c                    s(   ˆ |  }ˆ j ˆ j|   }t ||¡ d S )N)rG   r   r   rY   )ÚlstrI   rJ   ©r-   r#   r$   Ú_checkitÉ   s    zATestDataFrameIndexing.test_getitem_boolean_list.<locals>._checkit©TFT)TTT)FFF)r   r'   ÚarangeZreshape)r   ro   r#   rn   r$   Útest_getitem_boolean_listÆ   s
    z/TestDataFrameIndexing.test_getitem_boolean_listc                 C   s\   t j dd¡}t| ¡ g d¢d�}||dk   d7  < ||dk   d7  < t |j|¡ d S )Né   )r3   r4   rg   rh   r2   rV   r   r6   )r'   r   r(   r   r&   r   Úassert_almost_equalr,   )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   r6   r3   ©r>   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¡g d¢g d¢d�}|jd d… }|j|jd d…  }t ||¡ |jddg }|jt	ddgƒ }t ||¡ d S )	Nrf   r=   )r6   rL   rg   r2   ©r6   r@   r=   rU   rM   r6   rL   )
r   r'   r   r(   ÚilocrG   r   r   rY   r
   rH   r#   r#   r$   Útest_getitem_ix_mixed_integeræ   s    ÿz3TestDataFrameIndexing.test_getitem_ix_mixed_integerc                 C   s~   t dg d¢g d¢g d¢dœg d¢d�}|dg }|jd d …dgf }t ||¡ |d	g }|jd d …d
gf }t ||¡ d S )N)ç      ø?gš™™™™™@gš™™™™™	@ç      @)é   é   é$   é(   )rL   é   é+   é"   )r   rL   r   é   )Zrnaéüÿÿr   éè  rV   r‹   r=   rŠ   r6   )r   r~   r   rY   rH   r#   r#   r$   Útest_getitem_ix_mixed_integer2ó   s    üù	

z4TestDataFrameIndexing.test_getitem_ix_mixed_integer2c                 C   sN   t  |j|d ¡ d}tjt|d�� |j W d   ƒ n1 s@0    Y  d S )Nr3   z6'DataFrame' object has no attribute 'NONEXISTENT_NAME'r   )r   r7   r3   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,J ‚d S )NÚfoobarr6   rL   ri   rs   )r   r9   r�   Úall)r   r-   r#   r#   r$   Útest_setattr_column  s    z)TestDataFrameIndexing.test_setattr_columnc                 C   s®  |d d d d… }||d< d|v s&J ‚t |ƒdks6J ‚t |ƒdksFJ ‚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ÔJ ‚d|d< |d dk ¡ sðJ ‚d|d< |d dk ¡ �sJ ‚d|d< |d dk ¡ �s,J ‚|d d… }d}tjtj|d�� ddg|d< W d   ƒ n1 �sp0    Y  |d jtjk�s�J ‚|d ddgk ¡ �sªJ ‚d S )Nr3   r@   Zcol5é   r‰   ©r   rA   Zcol6Fr5   Zcol9rs   Zcol7g…ëQ¸	@Zcol0r1   Zcol8úC\nA value is trying to be set on a copy of a slice from a DataFramer   rC   rD   Zcol10)r   r'   ZravelZcolumn_stackr,   rO   r   r   r   r7   r   r(   r�   r   r   ÚcomÚSettingWithCopyErrorr?   Úobject_)r   r   r!   Úexpru   Zsmallerr;   r#   r#   r$   Útest_setitem  s4    ,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'   rO   r~   r   rY   rG   ©r   r-   rJ   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 d   ƒ n1 �sŠ0    Y  |t |¡k}|  ¡ }tj||t |¡k< tj|j|j< t ||¡ |  ¡ }|d ||t |¡k< t |j|j|jd ¡ t ||¡ d S )Nrf   r3   r   rM   r6   rs   r@   r=   z;Must pass DataFrame or 2-d ndarray with boolean values onlyr   )r&   r,   r   rt   r\   r   r'   Zputmaskr   r   Ú	TypeErrorÚabsrO   rY   )r   r   r-   r,   r!   r;   ÚmaskrJ   r#   r#   r$   Útest_setitem_booleanF  sD    ",z*TestDataFrameIndexing.test_setitem_booleanc                 C   s  |d   d¡|d< |d jtjks&J ‚d|d< |d jtjksBJ ‚t t|ƒ¡|d< t|d jjtjƒslJ ‚d|d< d|d< |d jtjks�J ‚d|d< d|d< |d jtj	ks´J ‚d|d< |d jtjksÐJ ‚d	|d< |d jtjksìJ ‚d|d< |d jtj	k�s
J ‚d S )
Nrh   Úi8r   r4   Úbarr1   ç      @Z	somethingr@   )
rW   r?   r'   rc   rq   r   Ú
issubclassÚtypeÚintegerre   ©r   r   r#   r#   r$   Útest_setitem_castx  s$    z'TestDataFrameIndexing.test_setitem_castc                 C   s€  t g d¢g d¢dœt d¡d�}|d= g d¢|d< d|v s>J ‚t|jƒdksPJ ‚d|d	< d
|d< d|d< d|t ¡ < d|t ¡ < t |jd�}d
|d	< d|d< t|jƒdks®J ‚|jj	tj
ksÀJ ‚d|d< |d j	tjksÜJ ‚d|d< |d j	tjksøJ ‚d|d	< d|d	 d k�sJ ‚t t d¡d�}d|d	< d|d
< |d
= d|d
< |d
 j	tj
k�sZJ ‚g d¢|d< |d j	tj
k�s|J ‚d S )N)ç      ð?ç       @ç      @©ÚaÚbrQ   )r4   rg   r=   ri   r4   r@   Z	beginningr3   r1   r2   r¡   rh   Údateç      @r6   rg   r¨   r   ©rC   rD   Ú3Z	coercible)r   r'   rq   r   r>   r   Únowr   r,   r?   r—   rc   re   )r   r   r-   Údmr#   r#   r$   Útest_setitem_corner•  s:     z)TestDataFrameIndexing.test_setitem_cornerc                 C   s‚   g d¢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slJ ‚|jd dks~J ‚d S )N)r�   r¡   r�   r�   é   r   )ÚtitleÚcruftr¶   r¡   r   r·   )r6   r¶   )r6   r·   )r'   r   r   r   rG   )r   r:   r-   Ú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g d¢tdƒd�}t d¡|d< t|jƒdksvJ ‚||d	< t|jƒdks�J ‚||d
< t|jƒdksªJ ‚|d
 j	tj
ks¾J ‚d S )Nr   ©ÚDecimalr=   rU   c                    s   g | ]}ˆ d ƒ‘qS )r6   r#   )rP   r    rº   r#   r$   Ú
<listcomp>Õ  rT   z<TestDataFrameIndexing.test_setitem_ambig.<locals>.<listcomp>ri   )r1   ÚbzrÚbazr6   r@   )Údecimalr»   r   r9   r   r'   Úonesr   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 )Nr3   rM   Fr5   )r   r7   r~   rG   Úreprr¦   r#   r#   r$   Útest_setitem_Noneâ  s    ÿÿz'TestDataFrameIndexing.test_setitem_Nonec                 C   sJ   t g d¢g d¢g d¢dœƒ}| ¡ }|j|j|j ¡ df< t ||¡ d S )Nr°   )Z11Z22Z33)Z111Z222Z333r«   r¬   )r   r&   r¬   rG   r­   r   r   rY   ©r   r-   rI   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 ¡ sRJ ‚d S )NrL   rs   é   r@   )	r   r'   r   r(   r~   rO   r   r,   r�   rÄ   r#   r#   r$   Ú&test_getitem_fancy_slice_integers_stepø  s    z<TestDataFrameIndexing.test_getitem_fancy_slice_integers_stepc                 C   sn  t tj dd¡tdddƒd�}| ¡ }d|jdd…< |jdd… dkj ¡ sPJ ‚| ¡ }d|jdd	…< |jdd	… dkj ¡ s‚J ‚|jdd
… }|j	dd	… }| 
g d¢¡}t ||¡ t ||¡ |jttdƒƒttddƒƒd d d…   }tjtdd�� |j	dd	…  W d   ƒ n1 �s"0    Y  tjtdd�� d|j	dd	…< W d   ƒ n1 �s`0    Y  d S )NrL   rs   r   r   r@   ri   rf   r=   r‚   é   )rf   rÈ   rÆ   rL   rM   z^3$r   )r   r'   r   r(   r9   r&   r~   r,   r�   rG   r\   r   rY   Úlistr   r   r   )r   r-   ÚcprI   Úresult2rJ   Ú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*J ‚|j d d …dd …f }t |d j|d j¡s\J ‚d}tjtj	|d��" d|j
d d …df< W d   ƒ n1 s˜0    Y  |d dk ¡ s¶J ‚d S )Néýÿÿÿrh   rg   r”   r   ç      @rf   )r~   r?   r'   re   Úshares_memoryÚ_valuesr   r   r•   r–   rG   r�   )r   r   Úfloat_string_frameZslicedr;   r#   r#   r$   Útest_fancy_getitem_slice_mixed  s    0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 )Nrs   rL   r‚   r   )r   ZmakeTimeDataFramer   rG   rY   r&   )r   r-   ÚstartÚendrI   rË   rJ   r#   r#   r$   Ú"test_getitem_setitem_non_ix_labels-  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=   r@   r   r6   rU   )
r   r'   r   r(   rG   r   r\   r   rY   r>   )r   r-   ÚrsZxpr#   r#   r$   Útest_ix_multi_takeA  s    z(TestDataFrameIndexing.test_ix_multi_takec                 C   sP   |}|j }|jD ]:}|| }|jd d d… D ]}|||f || ks,J ‚q,qd S ©Nrs   )rG   r>   r   )r   r   Úfr¸   ÚcolÚtsÚidxr#   r#   r$   Útest_getitem_fancy_scalarM  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&   rG   Ú	enumerater>   r   Zget_locr'   r   r(   r,   r   rY   )r   r   rÚ   rJ   r¸   ÚjrÛ   rÜ   rÝ   ÚiÚvalr#   r#   r$   Útest_setitem_fancy_scalarW  s    
z/TestDataFrameIndexing.test_setitem_fancy_scalarc                 C   s  |}|j }|jddgd�}|d d …g d¢f }t ||¡ |j|jdd… ddgd�}||jdd… g d¢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 )Nr4   rh   rV   )FTFTrs   rL   rU   é   ri   r@   rg   )rG   r\   r   rY   r   r>   )r   r   rÚ   r¸   rJ   rI   Zboolvecr#   r#   r$   Útest_getitem_fancy_booleanh  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 )Nr3   r   ç        r4   r@   )r&   rG   r,   r   rY   )r   r   ÚframerJ   rž   r#   r#   r$   Útest_setitem_fancy_boolean  s    
z0TestDataFrameIndexing.test_setitem_fancy_booleanc                 C   sp   |j g d¢ }|j|jg d¢  }t ||¡ |j d d …g d¢f }|jd d …|jg d¢ f }t ||¡ d S )N)r6   rf   rä   )r@   r   r6   )r~   rG   r   r   rY   r>   )r   r   rI   rJ   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 )Nr3   rM   r6   r   )rG   r   rY   r&   )r   r   rž   rI   rJ   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 g d¢¡}t ddg¡}|j||f }|jddgdgf }t ||¡ | ¡ }d|jt g d¢¡t ddg¡f< d|jddgdgf< t ||¡ d S )	Nr=   r@   rp   FTr   r6   rs   )	r   r'   r   r(   ry   rG   r   rY   r&   )r   r-   Zk1Zk2rI   rJ   r#   r#   r$   Ú"test_getitem_setitem_boolean_multi§  s    "z8TestDataFrameIndexing.test_getitem_setitem_boolean_multic                 C   sö  t g d¢ƒ}ttj dd¡|d�}|jdd… }| g d¢¡}t ||¡ t	|ƒdksZJ ‚|jdd… }| ddg¡}tj||dd� t	|ƒd	ks–J ‚|jdd… }| d
dg¡}t ||¡ t	|ƒd	ksÎJ ‚|jdd	… }|j
dd	… }t ||¡ d|jdd	…< |dd	… }|dk ¡  ¡ �s&J ‚t g d¢ƒ}ttj dd¡|d�}d}tjt|d�� |j
dd…  W d   ƒ n1 �s€0    Y  |j
dd… }| dg¡}t ||¡ t	|ƒdk�sÂJ ‚| ¡ }tjttd�� d|j
dd…< W d   ƒ n1 �sþ0    Y  tjt|d��" |j
dd… dk}W d   ƒ n1 �s@0    Y  |j ¡ �sZJ ‚|j
dd… |j
dd… kj ¡ �s‚J ‚| ¡ }d|j
dd…< |j
dd… dkj ¡ �s¶J ‚|j
dd… |j
dd… kj ¡ �sÞJ ‚|jdd… }|}t ||¡ t	|ƒdk�sJ ‚|jdd… }| g d¢¡}t ||¡ t	|ƒdk�sHJ ‚|jdd… }| dg¡}t ||¡ t	|ƒdk�s€J ‚|jdd… }| g d¢¡}t ||¡ t	|ƒdk�sºJ ‚| ¡ }d|jdd…< |jdd… }|dkj ¡ �sòJ ‚d S )N)r€   r@   r=   rf   rs   rs   ri   r€   rf   )r€   r@   r=   rf   F)Zcheck_index_typer@   rÏ   r¯   r6   r   )r¨   r¢   ç      @r�   r¯   zWcannot do positional indexing on Float64Index with these indexers \[1.0\] of type floatr   r¨   gš™™™™™ñ?)r¢   rì   r�   r¯   g
×£p=
@)r
   r   r'   r   r(   rG   r\   r   rY   r   r~   r�   r   r   rœ   r&   Ú
_slice_msgr,   )r   r   r-   rI   rJ   r;   rÊ   r#   r#   r$   Ú!test_getitem_setitem_float_labels¶  sz    ÿ..2((z7TestDataFrameIndexing.test_getitem_setitem_float_labelsc                 C   sü   t tj dd¡g d¢g d¢d�}tdƒ|d< |j}tt d¡gd t d	¡g g d
¢d�}t 	||¡ t
|jd< t|jd ƒr‚J ‚|d jtjks–J ‚|jd t
ks¨J ‚tj|jd< t|jd ƒsÆJ ‚tj|jdd d …f< t|jdd d …f ƒ ¡ røJ ‚d S )Nrs   r=   )r¬   r­   rQ   r^   Úe)r1   r¡   r¾   rU   Z20010102Ú	timestampre   údatetime64[ns])r1   r¡   r¾   rð   ri   )r­   rð   )rQ   rð   r^   rQ   )r   r'   r   r(   r   rj   r   r?   r   r7   r   rG   r   r—   rO   r�   rH   r#   r#   r$   Ú)test_setitem_single_column_mixed_datetime  s(    ýþ
z?TestDataFrameIndexing.test_setitem_single_column_mixed_datetimec                 C   sÌ   t g d¢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 )N)r   r   r   r   é   é   iÜ  r6   ÚxÚyiÝ  iÞ  ©r¬   r­   r   ÚabrÈ   rw   r­   ©r   r­   )r6   r­   )rõ   rö   r@   r=   ró   z2013-01-01T00:00:00rô   z2014-01-01T00:00:00rf   rs   r¬   )r   r   rÉ   r9   ÚpdÚNaTrG   r'   ry   Ú
datetime64r   rY   )r   rJ   r-   r3   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 ©Nr@   r3   r4   éþÿÿÿ)rG   r   r,   r   rt   ©r   r   ÚpiecerI   rJ   r#   r#   r$   Útest_setitem_frame_floatI  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   r@   r3   r4   rU   )r&   r   r   ÚslicerG   r   rt   r,   ©r   rÒ   rÚ   r  r"   r#   r#   r$   Útest_setitem_frame_mixedP  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   r@   r1   r¡   r3   r4   rU   )	r&   r   rÉ   r   r  rG   r   rt   r,   r  r#   r#   r$   Ú'test_setitem_frame_mixed_rows_unaligned\  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 )Nr@   r3   rÿ   r4   )	r&   rG   r   r  r'   rO   r   rt   r,   r  r#   r#   r$   Ú&test_setitem_frame_mixed_key_unalignedj  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&   rG   r   r  r,   r   rt   r  r#   r#   r$   Ú test_setitem_frame_mixed_ndarrayt  s
    z6TestDataFrameIndexing.test_setitem_frame_mixed_ndarrayc                 C   s„   t g d¢g d¢gg d¢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 )	N)r6   r@   r1   )r=   rf   r¡   ©r3   r4   rg   rV   r3   r4   ç      à?rg   )r   r&   rG   r\   r   rY   )r   r-   rÌ   rJ   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þ   )rG   r   r>   r,   r   rt   r   r#   r#   r$   Útest_setitem_frame_align†  s    
z.TestDataFrameIndexing.test_setitem_frame_alignc                 C   s„   t tj dd¡g d¢d�}|jd }|d d… }t ||¡ |jd }|jddg }t ||¡ |jd	 }|jd }t ||¡ d S )
Nrs   r=   ©r1   r1   r¡   r¾   r¡   ri   r1   r@   r¡   rf   r¾   )	r   r'   r   r(   rG   r   rY   r~   r7   rH   r#   r#   r$   Ú"test_getitem_setitem_ix_duplicates�  s    



z8TestDataFrameIndexing.test_getitem_setitem_ix_duplicatesc                 C   s    t tj dd¡g d¢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 )
Nrs   r=   r  ri   r¡   r@   rf   r6   r   )r   r'   r   r(   rG   r~   r   rY   )r   r-   rI   r˜   r#   r#   r$   Ú+test_getitem_ix_boolean_duplicates_multipleŸ  s    zATestDataFrameIndexing.test_getitem_ix_boolean_duplicates_multipleÚ
bool_valueTFc                 C   s’   t dg d¢iƒ}|› d�}tjt|d�� |j|  W d   ƒ n1 sH0    Y  d}tjt|d�� d|j|< W d   ƒ n1 s„0    Y  d S )Nr¬   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   rG   )r   r  r-   Ú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$J ‚|j|jd df }t|ƒsDJ ‚t	ddgiƒ}d|d< |jd }t|ƒspJ ‚t
dgd	gdd
�}|jd	gdf }t ||¡ d S )Nr6   r2   rs   r¬   g®Gáz®ó?iš  r­   rù   r   rE   )r£   r?   r¤   Úintr'   r¥   rG   r   r   r   r   r   r7   )r   r   rI   r-   rJ   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g d
¢ }| |jg d
¢ ¡}t 
||¡ d S )NrL   rf   r   r   r@   ri   r6   rÆ   rô   ©r6   r@   rf   rÈ   )r   r'   r   r(   r9   r~   rG   r   r7   r  rY   r\   r   ©r   r-   rI   r˜   rJ   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 ¡sNJ ‚d}t	j
tj|d	��" d
|jd d …df< W d   ƒ n1 sŠ0    Y  |d  ¡ }|s°d
|dd…< t |d |¡ d S )NrL   rf   r   r   r@   ri   rÆ   r”   r   ræ   )r   r'   r   r(   r9   r&   r~   r  rÐ   r   r   r•   r–   rG   r   r7   )r   Úusing_array_managerr-   ÚoriginalÚsubsetr;   Zexp_colr#   r#   r$   Útest_iloc_row_slice_viewã  s    0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 …g d
¢f }|j|jg d
¢ d�}t 
||¡ d S )Nrf   rL   r   r   r@   rV   r6   rÆ   rô   r  )r   r'   r   r(   r9   r~   rG   r   r7   r  rY   r\   r>   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ºt |d j	|d j	¡s^J ‚d}t
jtj|d	��" d
|jd d …df< W d   ƒ n1 sš0    Y  |d dk ¡ sâJ ‚n(d
|d< |d dk ¡ sÖJ ‚t ||¡ d S )Nrf   rL   r   r   r@   rV   rÆ   r”   r   ræ   )r   r'   r   r(   r9   r&   r~   r  rÐ   rÑ   r   r   r•   r–   rG   r�   r   rY   )r   r  r-   r  r  r;   r#   r#   r$   Útest_iloc_col_slice_view  s    0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 g d¢¡}d|j|| df< tg d¢g d¢dœ|d�}t ||¡ td|dd	gd
�}|j|| df  d7  < t ||¡ d S )Niá  r6   )ÚyearÚmonthÚdayrs   )rÔ   rÕ   )rG   Úitemr   r3   r4   rU   )FFFFFTrÈ   )r   r   r   r   rÈ   rÈ   )r   r   r   r   r   r   )r3   r4   ri   )	r   r   Úinsertr   r'   ry   rG   r   rY   )r   Ztranger-   Zbool_idxrJ   r#   r#   r$   Útest_loc_duplicates%  s    þÿz)TestDataFrameIndexing.test_loc_duplicatesc                 C   s|   t tdddd�dd�}td|iƒ}|g d¢ |d< t |d |¡ td|iƒ}|g d¢ |jg d¢df< t |d |¡ d S )	Nz
2015-01-01r=   Úutc)ÚperiodsÚtzÚdatesrE   )r6   r   r@   )r   r6   r@   )r   r   r   r   r7   rG   )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 )Nr6   )ÚhoursZ20130101rf   ©r%  ri   úm8[ns]©r?   r3   r@   r4   r=   rg   rh   rs   r2   rû   rb   rÈ   rM   rÎ   ÚGÚHztimedelta64[ns]rñ   ZABCDEFGH)r   r   r   r'   ry   rG   r   Ztimedelta64rü   rj   r   r?   rÉ   r   r7   )r   Zone_hourr-   rI   rJ   r#   r#   r$   Ú,test_loc_setitem_datetimelike_with_inferenceM  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 d   ƒ n1 �s0    Y  d S )N)é#   r…   r‡   é1   é2   gj”B’zâÔ?g% tŽÙ?gÂ’Øk‘Ò?gŠ†øãÖåÕ?r   r6   )r   r6   r@   r=   rf   rö   g333333Ó?)r…   r6   )r2  r6   )r3  r6   )r1  rf   Útestr1   z1not supported between instances|unorderable typesr   )
r   r'   rO   r&   rG   r   rY   r   r   rœ   )r   r-   rÌ   rJ   r;   r#   r#   r$   Ú#test_getitem_boolean_indexing_mixedc  sH    ûûûèÿ



z9TestDataFrameIndexing.test_getitem_boolean_indexing_mixedc                 C   s:  t jddgddggd dgd�}tg d¢g d¢g|tddgd	d
�d�}tjtdd��  |d d …df  W d   ƒ n1 sx0    Y  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   r6   rQ   ©Únames)r6   r6   r@   r@   )r=   r=   rf   rf   rá   rE   rw   r  r   r@   )ZlevelsÚcodesr7  r=   rf   )rõ   r   r“   )r   Zfrom_productr   r
   r   r   r   r9   rG   r  r   rY   r   r7   )r   ÚmiÚdgr   r>   rJ   rI   rA   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   rs   rV   r   r
  )r   r'   rÀ   rú   ZIntervalIndexZfrom_breaksrq   r~   r   r7   rG   )r   r-   rJ   r/   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­   )r>   r?   )r@   )r@   r@   r÷   r   )r   rX   r'   ZzerosrG   r   rY   rš   r#   r#   r$   Ú test_setitem_array_as_cell_value¸  s    z6TestDataFrameIndexing.test_setitem_array_as_cell_valuec                 C   s²   t dg d¢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 )Nr3   r}   ZInt64r-  rM   )r   r&   r,   rG   r   rY   rú   ÚcoreZarraysZPandasArrayr~   )r   r-   Úorigr#   r#   r$   Ú$test_iloc_setitem_nullable_2d_valuesÀ  s    ", z:TestDataFrameIndexing.test_iloc_setitem_nullable_2d_valuesÚnullúM8[ns]r,  c                 C   s®  t dg d¢i|d�}|d }|j}d g d¢¡}tjt|d�� ||d< W d   ƒ n1 s\0    Y  tjt|d��  ||g|d d…< W d   ƒ n1 sš0    Y  tjt|d�� ||d< W d   ƒ n1 sÐ0    Y  tjt|d��  ||g|d d…< W d   ƒ n1 �s0    Y  tjt|d�� ||jd< W d   ƒ n1 �sJ0    Y  tjt|d��" ||g|jd d…< W d   ƒ n1 �sŒ0    Y  tjt|d�� ||jd	< W d   ƒ n1 �sÆ0    Y  tjt|d��& ||g|jd d…df< W d   ƒ n1 �s0    Y  | ¡ }| ¡ |d
< tjt|d�� ||jd	< W d   ƒ n1 �sZ0    Y  tjt|d��& ||g|jd d…df< W d   ƒ n1 �s 0    Y  d S )Nr3   r}   r-  ú|)zYint\(\) argument must be a string, a bytes-like object or a (real )?number, not 'NaTType'zDtimedelta64\[ns\] cannot be converted to an? (Floating|Integer)DtypezCdatetime64\[ns\] cannot be converted to an? (Floating|Integer)Dtypez-object cannot be converted to a FloatingDtypez 'values' contains non-numeric NAr   r   r@   ©r   r   r4   )r   rÑ   Újoinr   r   rœ   r~   r&   )r   rB  Zany_numeric_ea_dtyper-   Úserru   r;   rÌ   r#   r#   r$   Ú.test_setting_mismatched_na_into_nullable_failsÎ  s8    ÿ
&.&0*2*6*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¬   rE   rw   r6   r   ri   )r   r
   rG   r   rY   rš   r#   r#   r$   Ú+test_loc_expand_empty_frame_keep_index_name  s    
zATestDataFrameIndexing.test_loc_expand_empty_frame_keep_index_nameN)JÚ__name__Ú
__module__Ú__qualname__r%   r0   r<   rK   r`   rk   rr   rv   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   ÚmarkÚparametrizer  r  r  r  r  r  r#  r)  r0  r5  r;  r=  r>  Z&skip_array_manager_not_yet_implementedrA  rú   rû   Zto_numpyrH  rI  r#   r#   r#   r$   r   $   sŒ   <#

*2*




	W

	
.
ÿ
3r   c                   @   s   e Zd Zdd„ ZdS )ÚTestDataFrameIndexingUInt64c              	   C   sö   |}|d   d¡}d|jvs J ‚||d< t |d t|dd�¡ d|jvsNJ ‚d|d< ||d< t |d t|dd�¡ |d= | ¡ }tj|jd< tj|jd< |d }t t	|ƒtg d	¢dd�¡ t |j
tt d
¡t d¡t d¡gg d¢d�¡ d S )Nr3   r1   rg   rE   rh   )r6   r6   ©r6   r@   r4   rp   Zuint64ÚOr	  ri   )Úrenamer>   r   r7   r   r&   rú   rû   r~   r   rj   r'   r?   )r   Zuint64_framer-   rÝ   rÌ   rI   r#   r#   r$   r™     s,    þþz(TestDataFrameIndexingUInt64.test_setitemN)rJ  rK  rL  r™   r#   r#   r#   r$   rP    s   rP  c                 C   sˆ  t ddgtddd�tjddd�dœƒ}|jd }t|jd tƒsDJ ‚t|jd tjƒsZJ ‚|j	d }t|jd tƒsxJ ‚t|jd tjƒsŽJ ‚|j
ddd�}t|jd tƒs°J ‚t|jd tjƒsÆJ ‚| rÎd S |j}| ¡  | d¡}t|d tƒsøJ ‚t|d tjƒ�sJ ‚|j|jd  }|jd	k�s.J ‚| d
¡}t|tƒ�sHJ ‚|j|jd  }|jdk�shJ ‚| d
¡}t|tjƒ�s„J ‚d S )Nr6   r@   Ú2000r+  z1 Dayr	  r   )ZaxisrC  rE  r,  )r   r   rú   Ztimedelta_rangerG   Ú
isinstancer,   r   Z	Timedeltar~   ÚxsZ_mgrZ_rebuild_blknos_and_blklocsZfast_xsÚblocksZblknosr?   Úiget)r  r-   rG  Zmgrru   Zblkrâ   r#   r#   r$   Ú/test_object_casting_indexing_wraps_datetimelike-  s<    
ýÿ




rY  zFCannot setitem on a Categorical with a new category( \(.*\))?, set thezCCannot set a Categorical with another, without identical categoriesc                   @   s  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dd„ ZdS )ÚTestLocILocDataFrameCategoricalc                 C   s>   t g d¢ddgd�}tg d¢ƒ}g d¢}t||dœ|d�}|S )	N)r¬   r¬   r¬   r¬   r¬   r¬   r¬   r¬   r­   ©Ú
categories©Úhrá   rà   r{   ÚlÚmÚn©r6   r6   r6   r6   r6   r6   r6   ©Úcatsr,   ri   ©r   r
   r   )r   rd  rÝ   r,   r@  r#   r#   r$   r@  ]  s
    z$TestLocILocDataFrameCategorical.origc                 C   s>   t g d¢ddgd�}tg d¢ƒ}g d¢}t||dœ|d�}|S )	N©r¬   r¬   r­   r¬   r¬   r¬   r¬   r¬   r­   r[  r]  )r6   r6   r@   r6   r6   r6   r6   rc  ri   re  )r   Zcats1Zidx1Zvalues1Úexp_single_rowr#   r#   r$   rg  e  s
    z.TestLocILocDataFrameCategorical.exp_single_rowc                 C   s>   t g d¢ddgd�}tg d¢ƒ}g d¢}t||dœ|d�}|S )	N©r¬   r¬   r­   r­   r¬   r¬   r¬   r¬   r­   r[  r]  )r6   r6   r@   r@   r6   r6   r6   rc  ri   re  )r   Zcats2Zidx2Zvalues2Úexp_multi_rowr#   r#   r$   ri  n  s
    z-TestLocILocDataFrameCategorical.exp_multi_rowc                 C   s>   t g d¢ddgd�}tg d¢ƒ}g d¢}t||dœ|d�}|S )	Nrh  r¬   r­   r[  r]  rb  rc  ri   re  )r   Zcats3Zidx3Zvalues3Úexp_parts_cats_colr#   r#   r$   rj  x  s
    z2TestLocILocDataFrameCategorical.exp_parts_cats_colc                 C   s>   t g d¢ddgd�}tg d¢ƒ}g d¢}t||dœ|d�}|S )	Nrf  r¬   r­   r[  r]  rb  rc  ri   re  )r   Zcats4Zidx4Zvalues4Úexp_single_cats_valuer#   r#   r$   rk  �  s    
ÿz5TestLocILocDataFrameCategorical.exp_single_cats_valuer_   c                 C   s¬   |  ¡ }tddƒ}|tju r&tddƒ}ddgddgg||ƒ|d d …f< t ||¡ |  ¡ }tjttd��0 ddgddgg||ƒ|d d …f< W d   ƒ n1 sž0    Y  d S )Nr@   rf   rà   r{   r­   r   rQ   )	r&   r  r   rG   rY   r   r   rœ   Úmsg1)r   r@  ri  r_   r-   r"   r#   r#   r$   Ú#test_loc_iloc_setitem_list_of_listsŒ  s    


 zCTestLocILocDataFrameCategorical.test_loc_iloc_setitem_list_of_listsc                 C   s†   |  ¡ }d}|tjtjfv r0|jd |jd f}d||ƒ|< t ||¡ tjt	t
d�� d||ƒ|< W d   ƒ n1 sx0    Y  d S )N)r@   r   r@   r   r­   r   rQ   )r&   r   rG   Úatr   r>   rY   r   r   rœ   rl  )r   r@  rk  r_   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u r*|j| }d||ƒ||f< t ||¡ d S )Nrà   r   r­   )r&   r   r   rG   r>   rY   )r   r@  rk  r_   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   sŽ   |  ¡ }d}|tju r |jd }ddg||ƒ|d d …f< t ||¡ tjttd��( ddg||ƒ|d d …f< W d   ƒ n1 s€0    Y  d S )Nr@   r­   r   rQ   )	r&   r   rG   r   rY   r   r   rœ   rl  )r   r@  rg  r_   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u 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 d   ƒ n1 s¤0    Y  ttdƒtd
ƒd�}tj	t
td�� |||ƒ|< W d   ƒ n1 sò0    Y  d S )Nr@   rf   r   rà   r{   r­   r¬   r[  ZbbÚabcr   Úcc)r&   r  r   rG   r>   r   rY   rÉ   r   r   rœ   Úmsg2)	r   r@  rj  r_   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u r4tddƒ|jd f}ddg||ƒ|< t ||¡ tjtt	d��  ddg||ƒ|< W d   ƒ n1 s„0    Y  d S )	Nr@   rf   r   rà   r{   r­   r   rQ   )
r&   r  r   rG   r>   rY   r   r   rœ   rl  )r   r@  rj  r_   r-   r"   r#   r#   r$   Ú)test_loc_iloc_setitem_non_categorical_rhsï  s    
zITestLocILocDataFrameCategorical.test_loc_iloc_setitem_non_categorical_rhsc                 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   r6   )r¬   )r­   Úfirstr6  )r:   r   r¬   )r   r   Úfrom_tuplesrG   r   rY   )r   r-   rJ   rI   r#   r#   r$   Ú test_loc_on_multiindex_one_level  s    
þÿ
z@TestLocILocDataFrameCategorical.test_loc_on_multiindex_one_levelN)rJ  rK  rL  r   Zfixturer@  rg  ri  rj  rk  rN  rO  r   rG   r~   rm  rn  Ziatro  rp  rq  rv  rw  rz  r#   r#   r#   r$   rZ  \  s.   


	








rZ  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"   r6   r¬   c                 C   sT   t ddgddggddgd�}t t¡� |j|  W d   ƒ n1 sF0    Y  d S ©Nr6   r@   r=   rf   r¬   r­   rV   ©r   r   rZ   ÚFutureWarningrG   ©r   r"   r-   r#   r#   r$   Ú$test_getitem_dict_and_set_deprecated  s    z;TestDepreactedIndexers.test_getitem_dict_and_set_deprecatedr@   rQ  c                 C   s`   t ddgddggddgt ddg¡d	�}t t¡� |j|  W d   ƒ n1 sR0    Y  d S ©
Nr6   r@   r=   rf   r¬   r­   rQ  r<  rw   ©r   r   ry  r   rZ   r~  rG   r  r#   r#   r$   Ú/test_getitem_dict_and_set_deprecated_multiindex  s    ýzFTestDepreactedIndexers.test_getitem_dict_and_set_deprecated_multiindexc                 C   sT   t ddgddggddgd�}t t¡� d|j|< W d   ƒ n1 sF0    Y  d S r|  r}  r  r#   r#   r$   Ú$test_setitem_dict_and_set_deprecated.  s    z;TestDepreactedIndexers.test_setitem_dict_and_set_deprecatedc                 C   s`   t ddgddggddgt ddg¡d	�}t t¡� d|j|< W d   ƒ n1 sR0    Y  d S r�  r‚  r  r#   r#   r$   Ú/test_setitem_dict_and_set_deprecated_multiindex7  s    ýzFTestDepreactedIndexers.test_setitem_dict_and_set_deprecated_multiindexN)
rJ  rK  rL  r   rN  rO  r€  rƒ  r„  r…  r#   r#   r#   r$   r{    s<   2ÿ

úþ

2ÿ

úþr{  )+r   r   r)   Únumpyr'   r   Zpandas._libsr   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrM  Zpandas.core.dtypes.commonr   Zpandasrú   r   r   r	   r
   r   r   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.commonr?  Úcommonr•   rí   r   rP  rY  rl  rt  rZ  r{  r#   r#   r#   r$   Ú<module>   s:   0         q!+ 4