a
    é´«j³Ù ã                	   @   sH  d Z ddlmZ ddlZddlmZmZmZmZ ddlZddl	m
Z
 ddlZddlZddlmZ ddlmZ ddlmZ dd	lmZ ddlm  mZ ddlZdd
lmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ej8 9dej:ej:dgdej:ej:gg d¢gej:dgdej:gddggg¡dd„ ƒZ;G dd„ dƒZ<G dd„ dƒZ=G dd„ dƒZ>G dd„ dƒZ?G dd„ dƒZ@G d d!„ d!ƒZAG d"d#„ d#ƒZBG d$d%„ d%ƒZCG d&d'„ d'ƒZDG d(d)„ d)ƒZEG d*d+„ d+ƒZFej8 9d,g d-¢d.d/gdd0gfg d1¢d.d/gdd0gfg d1¢d.d2gdd3gfg¡d4d5„ ƒZGd6d7„ ZHd8d9„ ZId:d;„ ZJd<d=„ ZKd>d?„ ZLd@dA„ ZMdBdC„ ZNdDdE„ ZOdFdG„ ZPdHdI„ ZQdJdK„ ZRej8 9dLdMe SdM¡e TdM¡g¡dNdO„ ƒZUej8 9dPe*dQƒdRfe*dSdTdU�dVfg¡dWdX„ ƒZVdYdZ„ ZWej8 Xd[¡ej8 Xd\¡d]d^„ ƒƒZYd_d`„ ZZG dadb„ dbƒZ[dS )cz$ test label based indexing with loc é    )Ú
namedtupleN)ÚdateÚdatetimeÚtimeÚ	timedelta)Úgettz)Úusing_string_dtype©Úindex)Únp_version_gt2)ÚIndexingError)ÚCategoricalÚCategoricalDtypeÚCategoricalIndexÚ	DataFrameÚDatetimeIndexÚIndexÚ
IndexSliceÚ
MultiIndexÚPeriodÚPeriodIndexÚSeriesÚSparseDtypeÚ	TimedeltaÚ	TimestampÚ
date_rangeÚtimedelta_rangeÚto_datetimeÚto_timedelta)Ú	is_scalar)Ú_one_ellipsis_message)Ú"check_indexing_smoketest_or_raisesz series, new_series, expected_serÚbÚa)FTTFTc                 C   sP   t d| iƒ}||jd d …df< t d|iƒ}t | ¡ |¡ t | ¡ | ¡ d S ©NÚA)r   ÚlocÚtmÚassert_frame_equalÚisnaZnotna)ÚseriesZ
new_seriesZexpected_serÚdfÚexpected© r-   ú]/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/indexing/test_loc.pyÚtest_not_change_nan_loc2   s
    	r/   c                   @   sÀ  e Zd Zdd„ Zej dddg¡dd„ ƒZej dddg¡dd	„ ƒZej d
dg d¢dgddgdgdg d¢dgddgdgddgdgddgdgg¡ej dddg¡dd„ ƒƒZ	ej dg d¢g d¢gg d¢g d¢gg¡ej dddg¡dd„ ƒƒZ
ej d
g d¢dgdgg d¢g d¢dgg d¢g d¢dgg d ¢d!gdgg¡ej dddg¡d"d#„ ƒƒZej d$d%d&g¡ej dddg¡d'd(„ ƒƒZd)d*„ Zej dddg¡d+d,„ ƒZej d-edd.ƒg d/¢deged0d1ƒdgdeged2d3ƒd4gdeged2d3ƒd4gdeged2d5d2ƒd4gdegg¡ej dddg¡d6d7„ ƒƒZd8d9„ Zd:d;„ Zej d<edgged=gƒd>�edd…d=f edgd=d?�fedged=gƒd@�d=dgfedgged=gƒd@�d=edgd=d?�fg¡dAdB„ ƒZdS )CÚTestLocc                 C   sj   t g d¢dgtd�}|jd d u s&J ‚t g d¢dgdd�}|rTt |jd ¡sfJ ‚n|jd d u sfJ ‚d S )N)Ú1Ú2Nr#   ©ÚcolumnsÚdtype)é   r#   Ústr)r   Úobjectr&   ÚnpÚisnan)ÚselfÚusing_infer_stringr+   r-   r-   r.   Ú"test_none_values_on_string_columnsC   s    z*TestLoc.test_none_values_on_string_columnsÚkindr*   Úframec                 C   s$   |  |› d�¡}t|ddtd� d S )NZ_labelsr&   r6   ©Úfails©Úgetfixturevaluer!   ÚKeyError©r;   r>   ÚrequestÚobjr-   r-   r.   Útest_loc_getitem_intN   s    zTestLoc.test_loc_getitem_intc                 C   s$   |  |› d�¡}t|ddtd� d S )NÚ_emptyr&   Úcr@   rB   rE   r-   r-   r.   Útest_loc_getitem_labelT   s    zTestLoc.test_loc_getitem_labelzkey, typs, axesÚf)ÚintsÚuintsÚlabelsÚmixedÚtsNÚfloatsé   )rM   rN   rP   rO   rQ   r   c                 C   s4   |D ]*}|  |› d|› �¡}t|d||td� qd S ©NÚ_r&   ©ÚaxesrA   rB   ©r;   ÚkeyÚtypsrW   r>   rF   ÚtyprG   r-   r-   r.   Ú#test_loc_getitem_label_out_of_rangeZ   s
    
ÿz+TestLoc.test_loc_getitem_label_out_of_rangez	key, typs©r   é   r6   )rM   rN   rR   )r^   ç      @r%   c                 C   s2   |D ](}|  |› d|› �¡}t|d|td� qd S )NrU   r&   r@   rB   )r;   rY   rZ   r>   rF   r[   rG   r-   r-   r.   Útest_loc_getitem_label_listn   s    	z#TestLoc.test_loc_getitem_label_listÚempty)r   r6   é
   )é   é   é   r^   ))r^   rc   )r^   é   )r6   é   Zmultic                 C   s4   |D ]*}|  |› d|› �¡}t|d||td� qd S rT   rB   rX   r-   r-   r.   Ú(test_loc_getitem_label_list_with_missing|   s
    
ÿz0TestLoc.test_loc_getitem_label_list_with_missingrZ   rM   rN   c                 C   s.   |  |› d|› �¡}t|dg d¢dtd� d S )NrU   r&   )rS   é   é(   r^   rV   rB   )r;   rZ   r>   rF   rG   r-   r-   r.   Ú!test_loc_getitem_label_list_failsŽ   s    ÿz)TestLoc.test_loc_getitem_label_list_failsc                 C   s   d S ©Nr-   ©r;   r-   r-   r.   Ú!test_loc_getitem_label_array_like—   s    z)TestLoc.test_loc_getitem_label_array_likec                 C   s,   |  |› d�¡}g d¢}t|d|td� d S )NrI   ©TFTFr&   r@   )rC   r!   Ú
IndexError)r;   r>   rF   rG   r"   r-   r-   r.   Útest_loc_getitem_boolœ   s    zTestLoc.test_loc_getitem_boolzslc, typs, axes, failsrc   )rO   rP   ra   rQ   rR   Z20130102Z20130104r6   é   rP   rf   c           	      C   s4   |D ]*}|  |› d|› �¡}t|d|||d� qd S rT   )rC   r!   )	r;   ZslcrZ   rW   rA   r>   rF   r[   rG   r-   r-   r.   Útest_loc_getitem_label_slice¤   s    ûz$TestLoc.test_loc_getitem_label_slicec                 C   sp   t ddgddgddggddgg d¢d�}t d¡|jd	< t ddgd
dgddggddgg d¢d�}t ||¡ d S )NrS   r#   éÈ   Úcol1Úcol2)rb   r^   r^   ©r4   r
   r6   )r^   ru   r   r^   )r   r9   Úaranger&   r'   r(   ©r;   r+   r,   r-   r-   r.   Ú test_setitem_from_duplicate_axisÄ   s    ý ÿz(TestLoc.test_setitem_from_duplicate_axisc                 C   sž   t g d¢dtjdgtdƒtjtdƒgdœd�}t dgtdƒgd	œd�}|j|j|d
  ¡ d
dgf< t g d¢g d¢tdƒtdƒtdƒgdœd�}t	 
||¡ d S )N©r^   r6   rc   úString 1úString 2z2019-06-11 11:00:00z2019-06-11 12:00:00)Zchannelr%   ÚB)ÚdataúString 3©r%   r~   r%   r~   )r|   r€   r}   )r   r9   Únanr   ÚpdÚNaTÚvaluesr&   r)   r'   r(   )r;   r+   Údf2r,   r-   r-   r.   Útest_column_types_consistentÑ   s.    
ýýÿÿýýÿz$TestLoc.test_column_types_consistentzobj, key, expF©r4   ©Únamer	   c                 C   s6   |j | }t|ttfƒr&t ||¡ n||ks2J ‚d S rl   )r&   Ú
isinstancer   r   r'   Úassert_equal)r;   rG   rY   ÚexpÚresr-   r-   r.   Ú#test_loc_getitem_single_boolean_argð   s    
z+TestLoc.test_loc_getitem_single_boolean_arg)Ú__name__Ú
__module__Ú__qualname__r=   ÚpytestÚmarkÚparametrizerH   rK   r\   r`   rh   rk   rn   rq   ÚsliceÚ	TypeErrorrD   rs   rz   r‡   r   r   r   r   r�   r-   r-   r-   r.   r0   B   sŠ   





úþþþûþ

üöþý$ùþr0   c                   @   s<  e Zd Zdd„ Zej ddedƒddffdedƒd	dffd
edƒddffdedƒedƒdffdedƒdd	ffdedƒdedƒffdedƒddff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ej d$d%d&gg d'¢g¡d(d)„ ƒZd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zejd8d9„ ƒZej d:d;ejd;ejd<�ejg d=¢ejd<�g¡d>d?„ ƒZd@dA„ ZdBdC„ ZdDdE„ Z dFdG„ Z!ejj"e#ƒ dHdI�dJdK„ ƒZ$ej dLg dM¢¡dNdO„ ƒZ%dPdQ„ Z&ej 'dR¡ej dSd%d&g¡dTdU„ ƒƒZ(dVdW„ Z)dXdY„ Z*ej 'dR¡ej dSd%d&g¡dZd[„ ƒƒZ+ej 'dR¡ej dSd%d&g¡d\d]„ ƒƒZ,d^d_„ Z-d`da„ Z.ej 'dR¡dbdc„ ƒZ/ej dddege0dfdedfƒe deg¡g¡ej dgdhge dhg¡g¡didj„ ƒƒZ1ej dkd;dlgg dm¢fdne2g do¢dpdqej3ej3gg do¢gg dm¢dr�fdsdtdugfdndvge2dsdlej3ej3gg dw¢dxdyej3ej3ggg dm¢dr�fdsg dz¢fejg d{¢ejd<�e2dsdlej3gg d{¢dxdyej3ggg dz¢dr�fe0dsdpdfƒg d|¢fg d{¢g d}¢ge2dsdlej3ej3gg d~¢g d¢gg dm¢dr�fe0dsdpdfƒg d€¢fejg d{¢g d}¢gejd<�e2dsdlej3ej3gg d�¢g d‚¢gg dm¢dr�fe0dfdfdfƒdedtgfe2dndvgdƒd„gd…d†ggdedtgdr�e2g d‡¢g dˆ¢g d‰¢gg dz¢dr�fg¡dŠd‹„ ƒZ4dŒd�„ Z5dŽd�„ Z6d�d‘„ Z7d’d“„ Z8d”d•„ Z9ejj:ej d–d—d˜gd™dšgg¡d›dœ„ ƒƒZ;d�dž„ Z<dŸd „ Z=d¡d¢„ Z>d£d¤„ Z?d¥d¦„ Z@d§d¨„ ZAd©dª„ ZBd«d¬„ ZCd­d®„ ZDd¯d°„ ZEd±d²„ ZFd³d´„ ZGdµd¶„ ZHd·d¸„ ZId¹dº„ ZJej d»g d¼¢¡ej d½ejejKeLg¡d¾d¿„ ƒƒZMdÀdÁ„ ZNdÂdÃ„ ZOdÄdÅ„ ZPej dddÆdÇg¡dÈdÉ„ ƒZQej dÊeRejeSeTg¡dËdÌ„ ƒZUdÍdÎ„ ZVej dÏdÐeSdsgƒfdÑeSdlgƒfg¡dÒdÓ„ ƒZWdÔdÕ„ ZXej dÖd;g d×¢fe0dqdvƒg dØ¢fdpdxgg dÙ¢fg¡dÚdÛ„ ƒZYdÜdÝ„ ZZdÞdß„ Z[dàdá„ Z\ej dâdãdãgg¡dädå„ ƒZ]dædç„ Z^ej dèdedegdee0dfƒfg¡dédê„ ƒZ_dëdì„ Z`dídî„ Zadïdð„ Zbdñdò„ Zcdódô„ Zdej dõdöd÷g¡dødù„ ƒZedúdû„ Zfdüdý„ Zgdþdÿ„ Zh�d �d„ Zi�d�d„ Zj�d�d„ ZkdfS (  ÚTestLocBaseIndependentc                 C   sH   t tddƒd�}|jt dg¡d d … }|jdd … }t ||¡ d S )NZ2021Ú2022r	   z2021/6/1r   é—   )r   r   r&   r9   ÚarrayÚilocr'   r(   ©r;   r+   Úresultr,   r-   r-   r.   Útest_loc_npstr  s    z%TestLocBaseIndependent.test_loc_npstrzmsg, keyz'Period\('2019', 'Y-DEC'\), 'foo', 'bar'éã  ÚfooÚbarz&Period\('2019', 'Y-DEC'\), 'y1', 'bar'Úy1z&Period\('2019', 'Y-DEC'\), 'foo', 'z1'Úz1z;Period\('2018', 'Y-DEC'\), Period\('2016', 'Y-DEC'\), 'bar'éâ  éà  z&Period\('2018', 'Y-DEC'\), 'foo', 'y1'z;Period\('2017', 'Y-DEC'\), 'foo', Period\('2015', 'Y-DEC'\)éá  éß  z&Period\('2017', 'Y-DEC'\), 'z1', 'bar'c                 C   sˆ   t tdƒddgtdƒtdƒdgtdƒdtd	ƒgg d
¢g d¢dœƒ g d¢¡}tjt|d�� |j|  W d  ƒ n1 sz0    Y  dS )a(  
        parse_datetime_string_with_reso return parameter if type not matched.
        PeriodIndex.get_loc takes returned value from parse_datetime_string_with_reso
        as a tuple.
        If first argument is Period and a tuple has 3 items,
        process go on not raise exception
        r    Úx1Zx2r¥   r¦   r£   r§   r¤   r¨   r{   ©rb   rS   ri   )r%   r~   ÚCZV1ZV2©r%   r~   r«   ©ÚmatchN)r   r   Ú	set_indexr“   ÚraisesrD   r&   )r;   ÚmsgrY   r+   r-   r-   r.   Ú;test_contains_raise_error_if_period_index_is_in_multi_index  s    ûÿø	zRTestLocBaseIndependent.test_contains_raise_error_if_period_index_is_in_multi_indexc                 C   sR   t ddgiƒ}tjtdd��" |jd d …df  W d   ƒ n1 sD0    Y  d S )Nr#   r^   u   ×�r­   )r   r“   r°   rD   r&   ©r;   r+   r-   r-   r.   Ú$test_loc_getitem_missing_unicode_key5  s    z;TestLocBaseIndependent.test_loc_getitem_missing_unicode_keyc                 C   sZ   t tj d¡ d¡dd„ tdƒD ƒd�}|jd }|jd d …df jd	 }t ||¡ d S )
Nr6   )rS   rg   c                 S   s   g | ]}d |d  ‘qS )ZABCDErg   r-   ©Ú.0Úxr-   r-   r.   Ú
<listcomp>?  ó    z@TestLocBaseIndependent.test_loc_getitem_dups.<locals>.<listcomp>rS   r	   )r%   r   r   r%   )r   r9   ÚrandomÚdefault_rngÚranger&   r'   Úassert_series_equal©r;   r+   r,   rž   r-   r-   r.   Útest_loc_getitem_dups:  s    þ
z,TestLocBaseIndependent.test_loc_getitem_dupsc                 C   st   t ddddtdƒggg d¢dgd�}tddddtdƒgg d¢dd�}|jd	 }t ||¡ |jd }t ||¡ d S )
Nr^   r6   r¡   r¢   Ú20130101©r#   r#   r#   r#   r#   rw   ©r
   rŠ   r   )r   r   r   rœ   r'   r½   r&   r¾   r-   r-   r.   Útest_loc_getitem_dups2E  s    ýý

z-TestLocBaseIndependent.test_loc_getitem_dups2c                 C   s  t tdƒtdƒtjddd�d d tjddd�d d d	œƒ d
¡}dddgf}| ¡ }|j|  d9  < t |j| d|j|  ¡ d}| ¡ }|j|  d9  < |j| d|j|  ksÀJ ‚dddgf}| ¡ }|j|  d9  < t 	|j| d|j|  ¡ d S )NZrtttiZaaaderg   Úfloat64©r5   gq=
×£põ?r6   gÃõ(\�ÂÕ¿)Úmer¡   r¢   Úbar2rÆ   Úrr¢   rÇ   ç       @)rÈ   r¢   Út)
r   Úlistr9   rx   r¯   Úcopyr&   r'   r½   r(   )r;   Údf_origÚindexerr+   r-   r-   r.   Útest_loc_setitem_dupsY  s2    üÿù
þþz,TestLocBaseIndependent.test_loc_setitem_dupsc                 C   s  t g d¢tg d¢dd�dœƒ}|d dk}|j|df d }||j|df< t g d¢tg d	¢dd�dœƒ}t ||¡ t g d¢g d¢dœd
d�}|d dk}|j|df }tjtdd�� ||j|df< W d   ƒ n1 sÚ0    Y  t g d¢g d¢dœd
d�}t ||¡ d S )N)r   r^   r^   )éd   rt   é,  Zuint32rÅ   ©r#   r"   r#   r^   r"   )rÐ   éÉ   i-  Úuint64úitem of incompatible dtyper­   )r   r   r&   r'   r(   Úassert_produces_warningÚFutureWarning)r;   Zdf1ÚixZnewb1r,   r†   Znewb2r-   r-   r.   Útest_loc_setitem_slice|  s"    ÿÿ,z-TestLocBaseIndependent.test_loc_setitem_slicec                 C   s�   t dgdgdgdgdœƒ}g d¢}|jd d …|f  d¡|jd d …|f< t dgtjdgdd	�tjdgdd	�tjdgdd	�dœƒ}t ||¡ d S )
Nr%   ç333333ó?ç        g      À)Úidr#   r"   rJ   ©r#   r"   rJ   Zfloat32rÄ   rÅ   )r   r&   Úastyper9   r›   r'   r(   )r;   r+   Úcolsr,   r-   r-   r.   Útest_loc_setitem_dtype”  s    &üÿ	z-TestLocBaseIndependent.test_loc_setitem_dtypec                 C   s˜   t tdƒg d¢d�}tjtdd�� |ddg  W d   ƒ n1 sD0    Y  t tdƒƒ}tjtdd�� |ddg  W d   ƒ n1 sŠ0    Y  d S )	Nrc   rÝ   r	   únot in indexr­   r#   Údr   )r   r¼   r“   r°   rD   )r;   Úsr-   r-   r.   Ú$test_getitem_label_list_with_missing§  s    *z;TestLocBaseIndependent.test_getitem_label_list_with_missingr
   TFro   c                 C   s`   t g d¢ƒ}dt|ƒ› dt|ƒ› �}tjt|d�� |j|  W d   ƒ n1 sR0    Y  d S )Nr{   z Boolean index has wrong length: z instead of r­   )r   Úlenr“   r°   rp   r&   )r;   r
   rã   r±   r-   r-   r.   Útest_loc_getitem_bool_diff_len²  s    z5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   s   d S rl   r-   rm   r-   r-   r.   Útest_loc_getitem_int_sliceº  s    z1TestLocBaseIndependent.test_loc_getitem_int_slicec                 C   s~   t tj d¡ d¡g d¢g d¢d�}dt t¡› d�}tjt|d��& |j	d	dgd	dgf  W d   ƒ n1 sp0    Y  d S )
Nr6   ©rc   rc   rÝ   )ÚerL   Úg©r
   r4   z$\"None of \[Index\(\[1, 2\], dtype='ú'\)\] are in the \[index\]\"r­   r^   )
r   r9   rº   r»   r5   Úintr“   r°   rD   r&   ©r;   r+   r±   r-   r-   r.   Útest_loc_to_fail¾  s    ýÿz'TestLocBaseIndependent.test_loc_to_failc                 C   sÎ  t td�}d|jd< d|jd< tjtdd�� |jd  W d   ƒ n1 sL0    Y  dt t¡› d	�}tjt|d�� |jdd
g  W d   ƒ n1 sš0    Y  d}tjt|d��$ |jt	dgtd�  W d   ƒ n1 sà0    Y  d|jd< tjtdd�� |jdd
g  W d   ƒ n1 �s(0    Y  d|d< dt t¡› d	�}tjt|d�� |jd
g  W d   ƒ n1 �s~0    Y  |d= tjt|d�� d|jd
g< W d   ƒ n1 �sÀ0    Y  d S )NrÅ   r^   r6   r#   z^-1$r­   éÿÿÿÿz&\"None of \[Index\(\[-1, -2\], dtype='rì   éþÿÿÿzE\"None of \[Index\(\['4'\], dtype='object'\)\] are in the \[index\]\"Ú4rc   rá   z"\"None of \[Index\(\[-2\], dtype='r   )
r   r8   r&   r“   r°   rD   r9   r5   rí   r   ©r;   rã   r±   r-   r-   r.   Útest_loc_to_fail2Í  s.    


(ÿ,2
.ÿ,z(TestLocBaseIndependent.test_loc_to_fail2c                 C   s®   t dgdggddgdgd�}dt t¡› d�}tjt|d	��$ |jd
gd d …f  W d   ƒ n1 sf0    Y  tjt|d	�� |jd
g  W d   ƒ n1 s 0    Y  d S )Nr#   r"   r^   r6   Úvaluerë   z!\"None of \[Index\(\[3\], dtype='rì   r­   rc   )r   r9   r5   rí   r“   r°   rD   r&   rî   r-   r-   r.   Útest_loc_to_fail3ô  s    ÿ2z(TestLocBaseIndependent.test_loc_to_fail3c                 C   sª   t g d¢ƒ}|jdg  dt t¡› d�}tjtt 	|¡d�� |jdg  W d   ƒ n1 s`0    Y  tjtdd�� |jddg  W d   ƒ n1 sœ0    Y  d S )Nr{   r6   z"None of [Index([3], dtype='z')] are in the [index]r­   rc   rá   )
r   r&   r9   r5   rí   r“   r°   rD   ÚreÚescaperó   r-   r-   r.   Útest_loc_getitem_list_with_fail  s    *z6TestLocBaseIndependent.test_loc_getitem_list_with_failc                 C   s’   t tj d¡jdd�g d¢d�}|j dd„ ¡}|jt |¡ }|j| }t 	||¡ |j|j
 }t 	||¡ |jtj|dd	� }t 	||¡ d S )
Nr6   )rg   rb   ©Úsize)Zalpha_0Zalpha_1Zalpha_2Zbeta_0Zbeta_1r	   c                 S   s   d| v S )NÚalphar-   ©r·   r-   r-   r.   Ú<lambda>  r¹   z7TestLocBaseIndependent.test_loc_index.<locals>.<lambda>ÚbooleanrÅ   )r   r9   rº   r»   r
   Úmapr&   r›   r'   r(   r…   rƒ   )r;   r+   Úmaskr,   rž   r-   r-   r.   Útest_loc_index  s    þ
z%TestLocBaseIndependent.test_loc_indexc                 C   sÌ   t tj d¡ d¡g d¢g d¢d�}|jd d …dd…f jdd…d d …f }|jddgk ¡ sbJ ‚|jddgk ¡ sxJ ‚t t	dƒgd	gd
œƒjd }t
t	dƒd	gddgdd�}t ||¡ |jtksÈJ ‚d S )Nr6   ©rf   rf   ©r%   r~   r«   ÚDrw   r%   r~   r   rÀ   r^   rÒ   r#   r"   rÂ   )r   r9   rº   r»   r&   rœ   r4   Úallr
   r   r   r'   r½   r5   r8   r�   r-   r-   r.   Útest_loc_general(  s    ý(z'TestLocBaseIndependent.test_loc_generalc                 C   s"   t tddƒttdƒtjd�dœƒS )Nú
2000-01-01ú	2000-01-5rg   rÅ   ©r   Úval)r   r   r   r¼   r9   Úint64rm   r-   r-   r.   Úframe_for_consistency:  s
    þÿz,TestLocBaseIndependent.frame_for_consistencyr  r   rÅ   )r   r   r   r   r   c                 C   s„   t tdtdƒtjd�ttdƒtjd�dœƒ}| ¡ }tjtdd��" ||j	d d …df< W d   ƒ n1 sj0    Y  t 
||¡ d S )	Nr   rg   ©r
   r5   rÅ   r
  úincompatible dtyper­   r   ©r   r   r¼   r9   r  rÌ   r'   rÖ   r×   r&   r(   )r;   r  r  r,   r+   r-   r-   r.   Útest_loc_setitem_consistencyC  s    þÿ0z3TestLocBaseIndependent.test_loc_setitem_consistencyc                 C   s€   t tdtdƒd�ttdƒtjd�dœƒ}| ¡ }tjtdd��" d|j	d d …df< W d   ƒ n1 sf0    Y  t 
||¡ d S )	Nr¡   rg   r	   rÅ   r
  r  r­   r   r  ©r;   r  r,   r+   r-   r-   r.   Ú(test_loc_setitem_consistency_dt64_to_strU  s    þÿ0z?TestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_strc                 C   s€   t tdtdƒd�ttdƒtjd�dœƒ}| ¡ }tjtdd��" d|j	d d …df< W d   ƒ n1 sf0    Y  t 
||¡ d S )	Nç      ð?rg   r	   rÅ   r
  r  r­   r   r  r  r-   r-   r.   Ú*test_loc_setitem_consistency_dt64_to_floatd  s    þÿ0zATestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_floatc                 C   sx   t dttdƒgƒiƒ}tjtdd��" d|jd d …df< W d   ƒ n1 sL0    Y  t dtdgƒiƒ}t ||¡ d S )Nr   Z20180101r  r­   Ústring)r   r   r   r'   rÖ   r×   r&   r(   ry   r-   r-   r.   Ú'test_loc_setitem_consistency_single_rowr  s
    0z>TestLocBaseIndependent.test_loc_setitem_consistency_single_rowc                 C   sž   t ddgd�}t ddgd�}t d ¡�" d|jd d …df< W d   ƒ n1 sN0    Y  t ||¡ t ddgd�}d|d< |d  tj¡|d< t ||¡ d S )Nr·   Úyrˆ   r^   )r   r'   rÖ   r&   r(   rÞ   r9   r  ©r;   r,   r+   r-   r-   r.   Ú"test_loc_setitem_consistency_empty{  s    0z9TestLocBaseIndependent.test_loc_setitem_consistency_emptyzTODO(infer_string)©Úreasonc           
      C   sö  dgd g d¢g d¢g}t j|g d¢d�}g d¢g d¢g}t j|d	d
gd�}ddddtjgg d¢ddddtjgg d¢g}t|||d�}t ¡ }|r tjt	dd�}|�4 t
|jd d …df ƒ|jd d …df< W d   ƒ n1 sÞ0    Y  |�4 t
|jd d …df ƒ|jd d …df< W d   ƒ n1 �s(0    Y  |�r<d S | ¡ }|jd d …df |jd d …df  |jd d …df< tjtdd��8 |jd d …df tdƒ |jd d …df< W d   ƒ n1 �sÄ0    Y  tg d¢|jdd�}	t |d |	¡ d S )NZRegion_1rf   )ÚSite_1r  ÚSite_2r  )l   ðBP[ l   _ˆZ l   q=.Z l   Ñ<.Z )ÚRegionZSiteZRespondentID©Únames)Ú
Respondentr"  r"  ÚOtherCatr#  )Z	SomethingÚ	StartDateÚEndDatezYes/NoZSomethingElseZLevel_0ZLevel_1r%   z5/25/2015 10:59z5/25/2015 11:22ÚYes)r%   z5/21/2015 9:40z5/21/2015 9:52r&  r&  z5/20/2015 8:27z5/20/2015 8:41)r%   z5/20/2015 8:33z5/20/2015 9:09r&  ZNorë   úInvalid valuer­   )r"  r$  )r"  r%  )r"  ZDurationr  l    XŽp7 )g      7@ç      (@g      ,@g      B@rÂ   )r   Úfrom_arraysr9   r‚   r   Ú
contextlibÚnullcontextr“   r°   r—   r   r&   Zinfer_objectsr'   rÖ   r×   r   r   r
   r½   )
r;   r<   ÚlevelsÚmiZclevelsrß   r…   r+   Úctxr,   r-   r-   r.   Ú-test_loc_setitem_consistency_slice_column_lenŒ  sV    ýþüÿ0ÿ2ÿÿ
ÿþ2ÿzDTestLocBaseIndependent.test_loc_setitem_consistency_slice_column_lenÚunit)ÚYÚMr  ÚhÚmrã   ÚmsÚusc                 C   sª   t dt d¡t d¡giƒ}|jd d …df j d|› d�¡|jd d …|f< |jd d …df j d|› d�¡|d< t|jd d …df |d�}t |jd d …|f |¡ d S )NÚ	timestampz2017-02-11 12:41:29z1991-11-07 04:22:37zdatetime64[ú]r,   r‰   )	r   r9   Ú
datetime64r&   r…   rÞ   r   r'   r½   )r;   r0  r+   r,   r-   r-   r.   Útest_loc_assign_non_ns_datetimeÊ  s    þÿÿ	0&z6TestLocBaseIndependent.test_loc_assign_non_ns_datetimec                 C   sº   t  dg d¢i¡}t|d ddd�|d< |jd d …df |jd d …df< |jdd	gdf |jdd	gdf< t g d
¢g d¢g d¢g d¢gg d¢d�}ddg}||  t¡||< t ||¡ d S )Nr   )ì   çCO!gì   ös~!gì    4	8šì   A{ï?šr5  T)r0  ÚcacheÚdate_dtÚ
date_dt_cpr6   rc   )r;  ú2017-01-24 13:26:12.711rB  )r<  ú2017-01-24 13:52:05.110rC  )r=  ú2018-10-22 13:44:05.888rD  )r>  ú2018-10-23 08:08:41.025rE  )r   r@  rA  rˆ   )r   Ú	from_dictr   r&   Úapplyr'   r(   )r;   r+   r,   r4   r-   r-   r.   Útest_loc_modify_datetimeÜ  s"    
ÿ  üù
z/TestLocBaseIndependent.test_loc_modify_datetimez.ignore:Setting a value on a view:FutureWarningÚhas_refc                 C   sv   t g d¢dgtd�}|r$|d d … }tjg d¢dd�|jg d¢df< tg d¢g d¢td	�}t d|iƒ}t ||¡ d S )
N©rc   rg   rf   r%   ©r
   r4   r5   r{   r  rÅ   ©rf   rc   rg   ©r6   rc   r^   r  )r   Úfloatr9   r›   r&   r   r'   r(   )r;   rI  r+   ÚviewÚserr,   r-   r-   r.   Ú#test_loc_setitem_frame_with_reindexö  s     z:TestLocBaseIndependent.test_loc_setitem_frame_with_reindexc                 C   s~   t g d¢ddgtd�}d|d< tjg d¢dd�|jg d	¢df< tg d
¢g d¢dd�}t d| t¡iƒ}d|d< t ||¡ d S )NrJ  r%   r~   rK  r  r{   r  rÅ   rL  rM  r  )	r   rN  r9   r›   r&   r   rÞ   r'   r(   )r;   r+   rP  r,   r-   r-   r.   Ú)test_loc_setitem_frame_with_reindex_mixed  s     z@TestLocBaseIndependent.test_loc_setitem_frame_with_reindex_mixedc                 C   sl   t g d¢ddgtd�}d|d< tjg d¢dd�|jtdd	d
ƒdf< t g d¢ddœg d¢d�}t ||¡ d S )Nr{   r%   r~   rK  r  r  rÅ   rc   r   rð   )r_   rÉ   r  r�   r	   )r   rN  r9   r›   r&   r–   r'   r(   ry   r-   r-   r.   Ú*test_loc_setitem_frame_with_inverted_slice  s
    $zATestLocBaseIndependent.test_loc_setitem_frame_with_inverted_slicec                 C   sê   dd„ t dƒD ƒ}tjddd�}dd„ t dƒD ƒ}tjddd�}tt|ƒ |¡ƒ}t|d�}tj|d	< |rv|d d … }||j|d	f< tj|d
< ||j|d
f< t	||tj
d�}	t	||d�}
t|	|
dœtd	d
gƒd�j|d�}t ||¡ d S )Nc                 S   s   g | ]}d t |ƒ ‘qS ©ú@©r7   ©r¶   Úir-   r-   r.   r¸     r¹   zGTestLocBaseIndependent.test_loc_setitem_empty_frame.<locals>.<listcomp>rg   r  rÅ   c                 S   s   g | ]}d t |ƒ ‘qS rT  rV  rW  r-   r-   r.   r¸   "  r¹   rf   r	   r%   r~   r  r�   rˆ   )r¼   r9   rx   rË   ÚsetÚunionr   r‚   r&   r   rÄ   r   Úreindexr'   r(   )r;   rI  Zkeys1Zval1Úkeys2Zval2r
   r+   rO  ZseraZserbr,   r-   r-   r.   Útest_loc_setitem_empty_frame  s$    


ÿz3TestLocBaseIndependent.test_loc_setitem_empty_framec                 C   sÆ   t tj d¡ d¡tdƒtdƒd�}|r4|d d … }|jd }d|jd< |jd }|dks^J ‚|jd }|dkstJ ‚d	|jd d …d
d…f< |jd d …d
d…f }|jd d …dd …f }t 	||¡ d S )Nr6   r  ÚabcdÚABCDrë   ©r   r   r^   )r#   r%   r   r~   r  )
r   r9   rº   r»   Ústandard_normalrË   rœ   r&   r'   r(   )r;   rI  r+   rO  rž   r,   r-   r-   r.   Útest_loc_setitem_frame8  s"    ý



z-TestLocBaseIndependent.test_loc_setitem_framec                 C   sP   t g d¢tjdœƒ}|j|j|j|jkdf< t g d¢tjdœƒ}t ||¡ d S )Nr{   r�   r~   )r   r9   r‚   r%   r&   r~   r'   r(   ry   r-   r-   r.   Ú/test_loc_setitem_frame_nan_int_coercion_invalidQ  s    zFTestLocBaseIndependent.test_loc_setitem_frame_nan_int_coercion_invalidc                 C   sœ   t ddgddgddgdœƒ}|jdddgf }tddgtddgtd	�tdd
�}t ||¡ t ddgddgddgdœƒ}ddg|jdddgf< t ||¡ d S )Nr^   r6   rc   rf   r#   r"   )r^   r6   r#   r   rÅ   ©r
   r5   rŠ   rg   rd   )r   r&   r   r   r8   r'   r½   r(   r�   r-   r-   r.   Ú#test_loc_setitem_frame_mixed_labelsY  s    ÿz:TestLocBaseIndependent.test_loc_setitem_frame_mixed_labelsc                 C   s  t g d¢ttdƒtjd�dœƒ}|jdd… }|jdd… |_||jdd…< t g d¢tg d	¢tjd�dœƒ}t ||¡ t t	d
dƒttdƒtjd�dœƒ}t t
dƒt
dƒt
dƒt
dƒt
dƒgtg d¢tjd�dœƒ}|jdd… }|jdd… |_||jdd…< t ||¡ d S )N©r¡   r¢   Úbazrc   rÅ   r�   r^   r6   r   )r¢   rg  rg  )r^   r6   r6   r  r	  rg   r
  Z20000101Z20000102Z20000103)r   r^   r   r^   r6   rf   )r   r   r¼   r9   r  r&   r
   r'   r(   r   r   )r;   Úwarn_copy_on_writer+   Úrhsr,   r-   r-   r.   Ú test_loc_setitem_frame_multiplesh  s:    ÿÿþÿûøÿz7TestLocBaseIndependent.test_loc_setitem_frame_multiplesrÎ   r%   Nrõ   ÚZc                 C   sV   t ddgddggddgd� dti¡}||jd|f< |jd	 }t|ƒrN|d
ksRJ ‚d S )Nr^   r6   rc   rf   r%   r~   rˆ   r   )r   r%   rk  )r   rÞ   r8   r&   r   )r;   rÎ   rõ   r+   rž   r-   r-   r.   Ú"test_loc_setitem_with_scalar_indexŽ  s    
&
z9TestLocBaseIndependent.test_loc_setitem_with_scalar_indexzindex,box,expectedr6   r  re   )re   re   re   re   rc   rf   rˆ   r^   r«   r  rr   )rc   rf   re   rr   rg   rd   r¬   ©re   rr   é	   )r~   r«   r  ©rb   é   é   )rc   re   rr   rn  )rg   rb   rp  rq  )r«   r%   r  )rr   rf   re   rn  )rp  rd   rb   rq  rn  rb   rp  rq  )re   r6   rr   )rn  rf   rb   )rp  rd   rq  c                 C   s<   t ddgddgddggddgd	�}||j|< t ||¡ d S )
Nr^   r6   rc   rf   rg   rd   r%   r~   rˆ   ©r   r&   r'   r(   )r;   r
   Úboxr,   r+   r-   r-   r.   Ú test_loc_setitem_missing_columnsž  s    5"
z7TestLocBaseIndependent.test_loc_setitem_missing_columnsc                 C   sZ   t dtdƒ d¡tjgiƒ}|j}|jdg }t |j|¡ |jdg }t |j|¡ d S )Nr   rÀ   ÚUTCr   r^   )	r   r   Útz_localizerƒ   r„   Údtypesrœ   r'   r½   r¾   r-   r-   r.   Útest_loc_coercionØ  s    z(TestLocBaseIndependent.test_loc_coercionc                 C   s^   t dtdddƒtdddƒgiƒ}|j}|jdg }t |j|¡ |jdg }t |j|¡ d S )Nr   éÜ  r^   iô  r6   r   )r   r   rw  rœ   r'   r½   r¾   r-   r-   r.   Útest_loc_coercion2ã  s     z)TestLocBaseIndependent.test_loc_coercion2c                 C   sZ   t ddgd gd  iƒ}|j}|jdd… }t |j|¡ |jdd … }t |j|¡ d S )NÚtextz
some wordsrn  r   r6   rc   )r   rw  rœ   r'   r½   r¾   r-   r-   r.   Útest_loc_coercion3î  s    z)TestLocBaseIndependent.test_loc_coercion3c                 C   sj   t dƒ d¡t dƒ d¡g}t|tddgƒd�}ttd�}|d ||ƒd< |d	 ||ƒd< t ||¡ d S )
Né*   ru  iš  r¡   r¢   r	   rÅ   r   r^   )r   rv  r   r   r8   r'   r½   )r;   Z
indexer_slÚvalsr,   rP  r-   r-   r.   Útest_setitem_new_key_tzù  s    þ
z.TestLocBaseIndependent.test_setitem_new_key_tzc                 C   s’  t g d¢g d¢dœg d¢d�}d}tjt|d�� |jdd …  W d   ƒ n1 sT0    Y  d	}tjt|d�� |jd
d …  W d   ƒ n1 s”0    Y  d}tjt|d�� |jdd…  W d   ƒ n1 sÔ0    Y  t g d¢g d¢dœg d¢d�jd
d�}|jdd … }t g d¢g d¢dœg d¢d�}t ||¡ |jd
d … }t ||¡ |jdd… }t g d¢g d¢dœg d¢d�}t ||¡ d S )N©r^   r6   rc   rf   rg   rd   )rc   rf   rg   rd   re   rr   r�   )r   r^   r   r^   r6   rc   r	   z5'Cannot get left slice bound for non-unique label: 1'r­   r^   z5'Cannot get left slice bound for non-unique label: 0'r   r6   ©Úaxis)r6   rf   rg   rd   )rf   rd   re   rr   )r^   r^   r6   rc   )r6   rf   rg   )rf   rd   re   )r^   r^   r6   )r   r“   r°   rD   r&   Ú
sort_indexr'   r(   )r;   r+   r±   rž   r,   r-   r-   r.   Útest_loc_non_unique  s2    ÿ,,,ÿþz*TestLocBaseIndependent.test_loc_non_uniquez
length, l2é„  rÐ   i » é † c              	   C   sÚ   t dƒ}t ttj d¡ |t|ƒf¡t 	|¡|d�tt 
|t|ƒf¡dg| |d�g¡}|jjdu sjJ ‚t 	|¡}|j| }t | dg¡tt 
t|ƒt|ƒf¡dgt|ƒ |d�| |dd … ¡g¡}t ||¡ d S )NZABCDEFGr6   rë   r   Fr^   )rË   rƒ   Úconcatr   r9   rº   r»   ra  rå   rx   Úonesr
   Z	is_uniquer&   Útaker'   r(   )r;   ÚlengthÚl2r4   r+   r  rž   r,   r-   r-   r.   Ú test_loc_non_unique_memory_error)  s0    ý úÿ


ýùÿz7TestLocBaseIndependent.test_loc_non_unique_memory_errorc                 C   s\   t ddgddggƒ}d|j_|jddg jj}|dks:J ‚|jddg jj}|dksXJ ‚d S )Nr^   Z
index_namer   )r   r
   rŠ   rœ   r&   ©r;   r+   rž   r-   r-   r.   Útest_loc_nameM  s    z$TestLocBaseIndependent.test_loc_namec                 C   sÒ   t t d¡tdd„ tdƒD ƒdd�tdd„ tdƒD ƒdd�d	�}tj|jd d …g f |jd d …d d
…f ddd� tj|jg d d …f |jd d
…d d …f ddd� tj|jg  |jd d
…d d …f ddd� d S )N)rg   r6   c                 S   s   g | ]}d |› �‘qS ©zi-r-   rW  r-   r-   r.   r¸   Z  r¹   zLTestLocBaseIndependent.test_loc_empty_list_indexer_is_ok.<locals>.<listcomp>rg   r#   r‰   c                 S   s   g | ]}d |› �‘qS r�  r-   rW  r-   r-   r.   r¸   [  r¹   r6   rë   r   T)Úcheck_index_typeÚcheck_column_type)	r   r9   rˆ  r   r¼   r'   r(   r&   rœ   r³   r-   r-   r.   Ú!test_loc_empty_list_indexer_is_okW  s    ý(ÿ(ÿ ÿz8TestLocBaseIndependent.test_loc_empty_list_indexer_is_okc                 C   s  t dg d¢iƒ}|jd d … }||us*J ‚|d d … |us>J ‚|jd d …d d …f |us\J ‚t |d j|d j¡sxJ ‚t |¡�& g d¢|jd d …df< W d   ƒ n1 s®0    Y  |rÖ|d g d¢k ¡ sêJ ‚n|d dk ¡ sêJ ‚t tj 	d¡ 
d¡ƒ}|�s|�r.|d |jd d …df u�sNJ ‚n |d |jd d …df u �sNJ ‚tg d¢ƒ}|jd d … }||u�svJ ‚|d d … |u�sŒJ ‚t |¡�  g d	¢|d d
…< W d   ƒ n1 �s¾0    Y  |�rît|d d
… g d¢kƒ�sJ ‚nt|d d
… g d	¢kƒ�sJ ‚d S )Nr#   r{   )rf   rf   rf   rf   r6   ©rb   rf   r   r€  rm  rc   )r   r&   r9   Zshares_memoryÚ_valuesr'   Úassert_cow_warningr  rº   r»   ra  r   )r;   Úusing_copy_on_writerh  Zoriginal_dfZ	sliced_dfr+   Zoriginal_seriesZsliced_seriesr-   r-   r.   Ú&test_identity_slice_returns_new_objectj  s0    4" 0 z=TestLocBaseIndependent.test_identity_slice_returns_new_objectc                 C   s˜   |st jjdd�}| |¡ tttdƒtdƒƒddgd�}| ¡ }|jd d …df }|d7 }t	 
||¡ | ¡ }|j|jdf }|d7 }t	 
||¡ d S )Nz!accidental fix reverted - GH37497r  rc   r#   r"   rˆ   r6   )r“   r”   ÚxfailZapplymarkerr   Úzipr¼   rÌ   r&   r'   r(   r
   )r;   rF   r–  r”   r·   r  ÚqÚzr-   r-   r.   Útest_loc_copy_vs_view•  s    
z,TestLocBaseIndependent.test_loc_copy_vs_viewc                 C   s’   t  d¡j}tddg|d |gd�}|j|d  }|jd }||ksHJ ‚|j|d g }|jdg }t ||¡ |j|d |g }t ||¡ d S )NrÔ   r^   r6   r	   r   )r9   ÚiinfoÚmaxr   r&   rœ   r'   r½   )r;   ÚumaxrP  rž   r,   r-   r-   r.   Útest_loc_uint64©  s    
z&TestLocBaseIndependent.test_loc_uint64c                 C   sš   t  d¡j}tddg|d |gd�}tjtdd�� |jd  W d   ƒ n1 sR0    Y  tjtdd�� |jdg  W d   ƒ n1 sŒ0    Y  d S )NrÔ   r^   r6   r	   z-1r­   rð   )r9   r�  rž  r   r“   r°   rD   r&   )r;   rŸ  rP  r-   r-   r.   Ú!test_loc_uint64_disallow_negativeº  s    (z8TestLocBaseIndependent.test_loc_uint64_disallow_negativec                 C   s\   g d¢}t |tjtjgt|ƒ td�dœƒ}t ddgd�}||jd d …df< t ||¡ d S ©Nr{   rÅ   ©r·   r  r·   r  rˆ   )	r   r9   r›   r‚   rå   r8   r&   r'   r(   ©r;   r   r,   r+   r-   r-   r.   Ú*test_loc_setitem_empty_append_expands_rowsÇ  s    ÿzATestLocBaseIndependent.test_loc_setitem_empty_append_expands_rowsc                 C   sp   g d¢}t |tjtjgt|ƒ td�dœƒ}t ddgd�}|d  tj¡|d< ||jd d …df< t	 
||¡ d S r¢  )r   r9   r›   r‚   rå   r8   rÞ   r  r&   r'   r(   r¤  r-   r-   r.   Ú6test_loc_setitem_empty_append_expands_rows_mixed_dtypeÔ  s    ÿzMTestLocBaseIndependent.test_loc_setitem_empty_append_expands_rows_mixed_dtypec                 C   sD   t dgtjgdœƒ}t ddgtd�}|jd |jd< t ||¡ d S )Nr  r£  r·   r  r3   )r   r·   )r   r9   r‚   rN  r&   r'   r(   r  r-   r-   r.   Ú*test_loc_setitem_empty_append_single_valueá  s    zATestLocBaseIndependent.test_loc_setitem_empty_append_single_valuec                 C   sÀ   ddg}t ddgd�}|j tj¡|_dt t¡› d�}tjt	|d��" ||j
d	dgdf< W d   ƒ n1 sn0    Y  d
}tjt|d��" ||j
d	d…df< W d   ƒ n1 s²0    Y  d S )Nr^   r6   r·   r  rˆ   z"None of \[Index\(\[0, 1\], dtype='z'\)\] are in the \[index\]r­   r   ú)setting an array element with a sequence.)r   r
   rÞ   r9   r  r5   rí   r“   r°   rD   r&   Ú
ValueError)r;   r   r+   r±   r-   r-   r.   Ú$test_loc_setitem_empty_append_raisesè  s    ÿ0z;TestLocBaseIndependent.test_loc_setitem_empty_append_raisesc                 C   sD   t ddgddggƒ}|jt d¡ }tddgdd�}t ||¡ d S )Nr^   r6   rc   rf   r   r‰   )r   r&   r9   r›   r   r'   r½   )r;   r+   rž   rã   r-   r-   r.   Útest_indexing_zerodim_np_arrayù  s    z5TestLocBaseIndependent.test_indexing_zerodim_np_arrayc                 C   s,   t ddgƒ}|jt d¡ }|dks(J ‚d S )Nr^   r6   r   )r   r&   r9   r›   )r;   rã   rž   r-   r-   r.   Ú%test_series_indexing_zerodim_np_array   s    z<TestLocBaseIndependent.test_series_indexing_zerodim_np_arrayc                 C   s\   g d¢d gd  }t |tddƒd�}t tddƒtjd�}g d¢|jddd	…< t ||¡ d S )
Nr€  rf   iÚ  iä  r	   r  )rd   rg   rf   rc   r6   r^   r¨   rð   )r   r¼   r9   rÄ   r&   r'   r½   )r;   r   r,   rž   r-   r-   r.   Útest_loc_reverse_assignment  s
    z2TestLocBaseIndependent.test_loc_reverse_assignmentc                 C   sö   dd„ t dƒD ƒ}t|dgd�}t|dgd�}t ||¡ |rˆtjtdd��* dd„ |D ƒ|j|jdf< W d   ƒ qÄ1 s|0    Y  n<d	d„ |D ƒ|j|jdf< t|dgt	d
� 
t¡}t ||¡ dd„ |D ƒ|d< t|dgt	d
�}t ||¡ d S )Nc                 S   s$   g | ]}t tj d ¡ ¡ d ƒ‘qS )r6   gê-�™—q=)r7   r9   rº   r»   )r¶   rU   r-   r-   r.   r¸     r¹   z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>rg   r%   rˆ   r'  r­   c                 S   s   g | ]}t |ƒ‘qS r-   ©rN  rµ   r-   r-   r.   r¸     r¹   c                 S   s   g | ]}t |ƒ‘qS r-   r®  rµ   r-   r-   r.   r¸     r¹   r3   c                 S   s   g | ]}t |ƒ‘qS r-   r®  rµ   r-   r-   r.   r¸   $  r¹   )r¼   r   r'   r(   r“   r°   r—   r&   r
   rN  rÞ   r8   )r;   r<   Zcol_datarž   r,   r-   r-   r.   Ú3test_loc_setitem_str_to_small_float_conversion_type  s    :zJTestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_typec           	      C   sÌ   t dddd�}|jdk|jdk@ }ttj d¡ t|ƒdf¡|d	�}t	 
||¡}|jtddƒ }|j| }t	 ||¡ |jd
d … }|jtddƒ }|dd … }|j d ¡|_|j d ¡|_t	 ||¡ d S )Nú1/1/2000z1/5/2000Z5min©Úfreqrn  ri   r6   rc   r	   z1/4/2000rð   )r   ÚhourÚminuter   r9   rº   r»   ra  rå   r'   Úget_objr&   r   rŒ   r
   Ú
_with_freq)	r;   Úframe_or_seriesÚrngr  rG   rž   r�   Úchunkr,   r-   r-   r.   Útest_loc_getitem_time_object(  s    ÿ
z3TestLocBaseIndependent.test_loc_getitem_time_objectÚ
spmatrix_t)Z
coo_matrixZ
csc_matrixZ
csr_matrixr5   c                 C   s    t  d¡}t||ƒ}d\}}|tj|||d�|d�}tj |¡}td|ƒ}|j	| j
}	| ¡ | }
t |	|
¡ |j	| jj
}	t |t|dd�¡}
t |	|
¡ d S )Núscipy.sparse)rg   re   rÅ   r6   r   )Z
fill_value)r“   ÚimportorskipÚgetattrr9   Úeyer   ÚsparseÚfrom_spmatrixr¼   r&   r…   Ztoarrayr'   Zassert_numpy_array_equalrw  Úfullr   )r;   r»  r5   Ú	sp_sparseÚrowsrß   Zspmatrixr+   Zitr_idxrž   r,   r-   r-   r.   Ú$test_loc_getitem_range_from_spmatrix>  s    


z;TestLocBaseIndependent.test_loc_getitem_range_from_spmatrixc                 C   s<   t dtjddgtdƒd�iƒ}|jddg }t ||¡ d S )Nr%   r   r  rÅ   r^   )r   rƒ   r›   r   r&   r'   r(   r�  r-   r-   r.   Ú,test_loc_getitem_listlike_all_retains_sparseW  s    zCTestLocBaseIndependent.test_loc_getitem_listlike_all_retains_sparsec                 C   s”   t  d¡}tj | d¡¡}|jtdƒ }tg d¢g d¢gtddƒd�}t	 
||¡ |jtdƒ jtd	ƒ }tg d¢gtddƒd�}t	 
||¡ d S )
Nr¼  rg   r6   ©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-   r-   r.   Útest_loc_getitem_sparse_frame\  s    
þÿz4TestLocBaseIndependent.test_loc_getitem_sparse_framec                 C   s„   t g d¢tddƒd�}|jtdƒ }t ddgtddƒd�}t ||¡ |jtdƒ jtdƒ }t ddgtddƒd�}t ||¡ d S )NrÇ  rÄ   rÛ   rÅ   r6   r  rc   )r   r   r&   r¼   r'   r½   )r;   rã   rž   r,   r-   r-   r.   Útest_loc_getitem_sparse_seriesn  s    z5TestLocBaseIndependent.test_loc_getitem_sparse_seriesr&   rœ   c                 C   sP   t g d¢g d¢gttƒd�}t||ƒd }tg d¢ttƒdd�}t ||¡ d S )N)r  rÛ   ç      ø?)rÛ   rÉ   rÛ   rÅ   r   )r5   rŠ   )r   r   rN  r¾  r   r'   r½   )r;   rÎ   r+   rž   r,   r-   r-   r.   Ú!test_getitem_single_row_sparse_dfz  s    z8TestLocBaseIndependent.test_getitem_single_row_sparse_dfÚkey_typec                 C   sD   |g d¢ƒ}|j d d …|f }|j d d …g d¢f }t ||¡ d S )Nr¬   )r&   r'   r(   )r;   Úfloat_framerÌ  Úidxrž   r,   r-   r-   r.   Útest_loc_getitem_iterable‚  s    z0TestLocBaseIndependent.test_loc_getitem_iterablec                 C   sh   t tj d¡jdd�ƒ}tdddd�|_|jtdƒd …d d …f }|jdd …d d …f }t	 
||¡ d S )Nr6   r“  rú   Z0srb   rã   ©ÚstartÚperiodsr²  )r   r9   rº   r»   Únormalr   r
   r&   r   r'   r(   r¾   r-   r-   r.   Ú#test_loc_getitem_timedelta_0seconds‰  s
    z:TestLocBaseIndependent.test_loc_getitem_timedelta_0secondsúval,expectedì   ÿÿÿÿ ì            c                 C   s4   t ddgddgd�}|j| }||_t ||¡ d S )Nr^   r6   rÖ  r×  r	   )r   r&   rŠ   r'   r½   )r;   r  r,   r+   rž   r-   r-   r.   Útest_loc_getitem_uint64_scalar‘  s    
z5TestLocBaseIndependent.test_loc_getitem_uint64_scalarc                 C   sL   |}t g d¢tg d¢|d�d�}| ¡ }d|jd< d|jd< t ||¡ d S )NrÝ   )r   ç      à?r^   rÅ   r	   Zzoor^   r6   )r   r   rÌ   r&   rœ   r'   r½   )r;   Úfloat_numpy_dtyper5   rP  r,   r-   r-   r.   Ú+test_loc_setitem_int_label_with_float_indexœ  s    

zBTestLocBaseIndependent.test_loc_setitem_int_label_with_float_indexzindexer, expected)
rS   r^   r6   rc   rf   rg   rd   re   rr   rn  )
r   r^   r6   rc   rS   rS   rS   rS   rr   rn  )
r   r^   r6   rS   rf   rS   rd   re   rr   rn  c                 C   s\   t tdƒdd�}tdtdƒid|d�}d|j|j| df< t||dgdd�}t ||¡ d S )	Nrb   rã   ©r0  r·   r  ©r5   r
   rS   rK  )r   r¼   r   r&   r
   r'   r(   )r;   rÎ   r,   Útdir+   r-   r-   r.   Ú/test_loc_setitem_listlike_with_timedelta64index§  s    üzFTestLocBaseIndependent.test_loc_setitem_listlike_with_timedelta64indexc                 C   s®   t g d¢tdƒdœƒ}t g d¢tdƒdœƒ}tjtdd��T tddgd	dgd
�|jdd…d	f< tddgd	dgd
�|jdd…df< W d   ƒ n1 s”0    Y  t ||¡ d S )N©r^   r^   r^   r^   r^   ZaaaaarÒ   )r^   r"   r"   r^   r^   ZaabbarÕ   r­   r"   r#   ©Ú
categoriesr^   r6   rc   )r   rË   r'   rÖ   r×   r   r&   r(   )r;   r+   r�   r-   r-   r.   Ú8test_loc_setitem_categorical_values_partial_column_sliceÁ  s    ÿ"@zOTestLocBaseIndependent.test_loc_setitem_categorical_values_partial_column_slicec                 C   sŽ   t dgdgdœƒ}t|d g d¢d�}||jd d …df< |d }t||jdd� |sXtnd¡}t ||¡ ||d< t |d t|dd	�¡ d S )
Nr#   r   )ÚAlphaZNumericrä  rÝ   rá  rÂ   r7   r‰   )	r   r   r&   r   r
   rÞ   r8   r'   r½   )r;   r<   r+   râ  rž   r,   r-   r-   r.   Ú'test_loc_setitem_single_row_categoricalÍ  s    
ÿz>TestLocBaseIndependent.test_loc_setitem_single_row_categoricalc                 C   s¸   t dtdƒgd iƒ}t d¡|jdd…df< tdƒ|jd ksDJ ‚tdƒ|jd ksZJ ‚tjtd	d
��" tdddƒ|jd< W d   ƒ n1 s�0    Y  tdƒ ¡ |jd ks´J ‚d S )NrJ   z
2010-10-01rc   z
2008-08-08r   r^   )r   rJ   )r^   rJ   r  r­   iÕ  rg   )r6   rJ   z
2005-05-05)	r   r   r9   r9  r&   r'   rÖ   r×   r   r³   r-   r-   r.   Ú"test_loc_setitem_datetime_coercionà  s    0z9TestLocBaseIndependent.test_loc_setitem_datetime_coercionÚidxerÚvarc                 C   s’   |}t ddd|d�}td|dgd�}t|dgtjd�}tj|dkrFtnd d	d
��" ||jd d …|f< W d   ƒ n1 sx0    Y  t ||¡ d S )Nz
2015-07-12rc   r3  )rÑ  rÒ  r²  ÚtzrÚ   rè  rë   rK  r  r­   )	r   r   r9   rÄ   r'   rÖ   r×   r&   r(   )r;   rç  Ztz_naive_fixtureré  rÎ  r,   rž   r-   r-   r.   Ú!test_loc_setitem_datetimeindex_tzê  s    ÿ0z8TestLocBaseIndependent.test_loc_setitem_datetimeindex_tzc           
      C   sl  t dddd�}ttj d¡ t|ƒdf¡|d�}tdd	d	ƒ}ttd
d	d	ƒtdd	d	ƒƒ}g d¢}g d¢}| 	¡ }d	|j
|< |j
| }|j
|  	¡ }	d	|	j
d d …< |r¬|	 t¡}	t ||	¡ | 	¡ }d	|j
|< |j| |j
|< t ||¡ | 	¡ }d	|j
|< |j
| }|j
|  	¡ }	d	|	j
d d …< |�r.|	 t¡}	t ||	¡ | 	¡ }d	|j
|< |j| |j
|< t ||¡ d S )Nz
2012-01-01z
2012-01-05Z30minr±  r6   rg   r	   rq  r   é   é   )é   éH   éx   é¨   )é   é   é   éJ   éK   éL   éz   é{   é|   éª   é«   é¬   )r   r   r9   rº   r»   ra  rå   r   r–   rÌ   r&   rÞ   rN  r'   r(   rœ   )
r;   Zusing_array_managerr
   r+   ZakeyZbkeyZaindsZbindsrž   r,   r-   r-   r.   Útest_loc_setitem_time_keyú  s@    ÿ







z0TestLocBaseIndependent.test_loc_setitem_time_keyrY   c                 C   s²   t  g d¢¡}tg d¢g d¢g|d�}| ¡ }tjddd�|jd d …|f< tg d¢g d	¢g|d�}t ||¡ |j	d
d�}tjddd�|jd d …|f< |j	d
d�}t ||¡ d S )N))r%   rf   )r~   Ú3)r%   r2   r{   ©rf   rg   rd   rˆ   ©r6   r6   r  rÅ   )r   r6   r   )r   rg   r   r^   r�  )
r   Úfrom_tuplesr   rÌ   r9   Zzerosr&   r'   r(   rƒ  )r;   rY   r-  r+   rG   r,   r-   r-   r.   Ú,test_loc_setitem_unsorted_multiindex_columns"  s    zCTestLocBaseIndependent.test_loc_setitem_unsorted_multiindex_columnsc                 C   s:   t g d¢|d�}d|jd< t g d¢|d�}t ||¡ d S )Nr{   rÅ   rf   r   )rf   r6   rc   ©r   r&   r'   r½   )r;   Zany_int_numpy_dtyper*   r,   r-   r-   r.   Útest_loc_setitem_uint_drop1  s    
z1TestLocBaseIndependent.test_loc_setitem_uint_dropc                 C   sl   t dt dd¡g ƒ}t dd¡|jg d¢< t dt dd¡g ƒ}tt dd¡ƒ|jg d¢< t ||¡ d S )Nrb   r4  rS   r{   )r   r9   Útimedelta64r&   r   r'   r½   )r;   rP  r,   r-   r-   r.   Útest_loc_setitem_td64_non_nano9  s
    z5TestLocBaseIndependent.test_loc_setitem_td64_non_nanoc                 C   s¢   t j d¡ d¡}ttdƒdd�}d}tjt|d�� ||j	tdƒ< W d   ƒ n1 sX0    Y  tjt|d�� ||j	d d …< W d   ƒ n1 s”0    Y  d S )Nr6   r   rÄ   rÅ   r¨  r­   )
r9   rº   r»   ra  r   r¼   r“   r°   r©  r&   )r;   r   rP  r±   r-   r-   r.   Ú test_loc_setitem_2d_to_1d_raisesA  s    ,z7TestLocBaseIndependent.test_loc_setitem_2d_to_1d_raisesc                 C   sP   t jddd�}tg d¢g d¢g d¢g|g d¢d�}d	}|jd
 }t ||¡ d S )Nr   rc   )rÑ  rÒ  r{   rÿ  rm  r¬   rë   r^   )rÙ  r%   )rƒ   Úinterval_ranger   r&   r'   Úassert_almost_equal)r;   r
   r+   r,   rž   r-   r-   r.   Útest_loc_getitem_interval_indexM  s    ÿ
z6TestLocBaseIndependent.test_loc_getitem_interval_indexc                 C   sr   t jdddd�}tg d¢g d¢g d¢g|g d¢d	�}t jdd
ddd�}tddg|dd�}|jd }t ||¡ d S )Nr   rc   Zboth)rÑ  rÒ  Úclosedr{   rÿ  rm  r¬   rë   r6   r^   )rÑ  rÒ  r²  r  rf   r%   rÂ   ©r^   r%   )rƒ   r  r   r   r&   r'   r½   )r;   r
   r+   Z	index_expr,   rž   r-   r-   r.   Ú test_loc_getitem_interval_index2X  s    ÿ
z7TestLocBaseIndependent.test_loc_getitem_interval_index2Útpl©r^   ©r^   r6   c                 C   sR   t ddgddd�}t|d�}|j|g }t |gddd�}t|d�}t ||¡ d S )Nr  r  r%   F©rŠ   Ztupleize_colsr	   )r   r   r&   r'   r(   )r;   r  rÎ  r+   rž   r,   r-   r-   r.   Ú+test_loc_getitem_index_single_double_tuplesd  s    ý

zBTestLocBaseIndependent.test_loc_getitem_index_single_double_tuplesc                 C   sn   t dddgƒ}|ddƒ}|ddƒ}t||gdd	d
�}tddg|ddgd�}|j|ddƒ d }|dksjJ ‚d S )NÚ	IndexTyper#   r"   r¡   r¢   rg  ZbofZcomposite_indexFr  r  )rc   rf   r%   r~   rë   r^   )r   r   r   r&   )r;   r  Zidx1Zidx2r
   r+   rž   r-   r-   r.   Ú!test_loc_getitem_index_namedtuples  s    

z8TestLocBaseIndependent.test_loc_getitem_index_namedtuplec                 C   s„   t tj d¡ d¡g d¢g d¢d�}d|d< tj|j|jd d d… df< ttjdtjdtjg|sdt	ndd�j
}t |d j
|¡ d S )	Nr6   ©rg   rc   )r#   r"   rJ   râ   ré   rf  rë   Úquxr7   rÅ   )r   r9   rº   r»   ra  r‚   r&   r
   r   r8   r…   r'   r	  )r;   r<   r+   r,   r-   r-   r.   Ú$test_loc_setitem_single_column_mixed}  s    ý
þz;TestLocBaseIndependent.test_loc_setitem_single_column_mixedc                 C   sž   t tj d¡ d¡tdƒd�}tj|d< tjtdd�� d|j	d	< W d   ƒ n1 sV0    Y  |j
}tt d
¡gd t d¡g g d¢d�}t ||¡ d S )Nr6   )ri   rc   ÚABCrˆ   ÚeventrÕ   r­   r¡   )rb   r  rÄ   rc   r8   )r%   r~   r«   r  r	   )r   r9   rº   r»   Útupler‚   r'   rÖ   r×   r&   rw  r   r5   r½   r�   r-   r-   r.   Útest_loc_setitem_cast2‹  s    
ÿ(þz-TestLocBaseIndependent.test_loc_setitem_cast2c                 C   sb   t dtjdtjd�iƒ}d|jd< |jjt tj¡ks:J ‚t d¡|_|jjt tj¡ks^J ‚d S )NÚonerd   rÅ   )r^   r  re   )r   r9   rx   Zint8r&   rw  r  r5   r³   r-   r-   r.   Útest_loc_setitem_cast3›  s
    
z-TestLocBaseIndependent.test_loc_setitem_cast3c                 C   sf   |t dƒg d¢d�}g d¢}|jdkr6dgdgdgg}||jt d	ƒ< |g d
¢|jd�}t ||¡ d S )Nrg   )rc   rf   r^   r   r6   r	   )rn  rb   rp  r6   rn  rb   rp  rc   )r   r^   rb   rn  rp  )r¼   Úndimr&   r
   r'   rŒ   )r;   r·  rG   r…   r,   r-   r-   r.   Útest_loc_setitem_range_key£  s    
z1TestLocBaseIndependent.test_loc_setitem_range_keyc                 C   s^   t g d¢g d¢dœƒ}tddgddgd�|jdd…df< t g d¢g d¢dœƒ}t ||¡ d S )	Nrà  rÁ   rÒ   r6   r^   rá  r#   )r^   r6   r6   r^   r^   ©r   r   r&   r'   r(   ry   r-   r-   r.   Ú.test_loc_setitem_numpy_frame_categorical_value°  s    "zETestLocBaseIndependent.test_loc_setitem_numpy_frame_categorical_value)lr�   r‘   r’   rŸ   r“   r”   r•   r   r²   r´   r¿   rÃ   rÏ   rÙ   rà   rä   ræ   rç   rï   rô   rö   rù   r  r  Úfixturer  r9   r›   r  r  r  r  r  r  r˜  r   r/  r:  rH  ÚfilterwarningsrQ  rR  rS  r]  rb  rc  re  rj  r–   rl  r   r‚   rt  rx  rz  r|  r  r„  Zarm_slowrŒ  rŽ  r’  r—  rœ  r   r¡  r¥  r¦  r§  rª  r«  r¬  r­  r¯  rº  rÄ   ÚcomplexrÅ  rÆ  rÈ  rÉ  rË  Úiterr   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˜     sl  þþóþ
#
'
$þ
	
=






%ÿþý	
$þý	
"ÿýþý	þý	 ÿýØþ3
""
+


ÿ

ûþ



(


r˜   c                   @   sZ   e Zd Zejejejgd�dd„ ƒZejdd„ ƒZ	dd„ Z
ej d¡d	d
„ ƒZdd„ ZdS )ÚTestLocWithEllipsis)Úparamsc                 C   s   |j S rl   )Úparam)r;   rF   r-   r-   r.   rÎ   º  s    zTestLocWithEllipsis.indexerc                 C   s   |}|t ur| ¡ }|S rl   )r   Úto_frame)r;   Úseries_with_simple_indexr·  rG   r-   r-   r.   rG   ¿  s    zTestLocWithEllipsis.objc                 C   s   ||ƒd }t  ||¡ d S )N.)r'   rŒ   )r;   rG   rÎ   rž   r-   r-   r.   Útest_loc_iloc_getitem_ellipsisÆ  s    z2TestLocWithEllipsis.test_loc_iloc_getitem_ellipsisú3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc           
      C   s*  |}|t ju st|ƒdkrdn|jd }|t ju rB|jjdkrBd S |t ju ržt|jtƒržd}tj	t
|d��" ||ƒd|gf }W d   ƒ qÖ1 s’0    Y  n8t|ƒdkrÖ||ƒd|gf }||ƒ|g }t  ||¡ |t ju rädn|j}| ¡ }	||	ƒd|gf }||	ƒd d …|gf }t  ||¡ d S )Nr   rÿ   z2MultiIndex does not support indexing with Ellipsisr­   .)r'   rœ   rå   r
   r&   Úinferred_typer‹   r   r“   r°   ÚNotImplementedErrorr½   rŠ   r)  r(   )
r;   r*  rÎ   rG   rY   r±   rž   r,   Úkey2r+   r-   r-   r.   Ú&test_loc_iloc_getitem_leading_ellipsesÊ  s"    $2z:TestLocWithEllipsis.test_loc_iloc_getitem_leading_ellipsesc                 C   s&  |t ju st|ƒdkrdn|jd }tjttd�� ||ƒd  W d   ƒ n1 sT0    Y  tjttd��$ ||ƒd|gdf  W d   ƒ n1 s–0    Y  tjttd��" ||ƒdd|f  W d   ƒ n1 sÖ0    Y  tjtdd��" ||ƒ|ddf  W d   ƒ n1 �s0    Y  d S )Nr   r­   )...úToo many indexers)r'   rœ   rå   r
   r“   r°   r   r    )r;   rG   rÎ   rY   r-   r-   r.   Ú0test_loc_iloc_getitem_ellipses_only_one_ellipsisã  s    $*20zDTestLocWithEllipsis.test_loc_iloc_getitem_ellipses_only_one_ellipsisN)r�   r‘   r’   r“   r"  r'   r&   rœ   rÎ   rG   r+  r”   r#  r0  r2  r-   r-   r-   r.   r&  ¹  s   



r&  c                   @   sœ  e Zd Zej dddgg d¢g d¢gfddgg d¢g d¢gfddgddgfg d¢g d¢gfddgddgfg d¢g d	¢gfddgddgfg d¢g d	¢gfddgddgfg d¢g d¢gfd
dgddgfg d¢g d¢gfg¡ej ddd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ej d&ejejd'ejf¡d(d)„ ƒZd*d+„ Zej d,d-d.g¡d/d0„ ƒZd1d2„ Zd3d4„ Zd'S )5ÚTestLocWithMultiIndexzkeys, expectedr"   r#   )r"   r"   r#   r#   )r^   r6   r^   r6   )r#   r#   r"   r"   r^   r6   )r6   r^   r6   r^   rJ   )rJ   r#   r#   )r^   r6   r^   Údimr
   r4   c                 C   s’   |g d¢g d¢gi}t t d¡ dd¡fi |¤Ž}t |¡}|dkrf|j|d d …f }t |j	|¡ n(|dkrŽ|jd d …|f }t |j
|¡ d S )N)rJ   r#   r#   r"   r"   )r^   r^   r6   r^   r6   é   rg   r
   r4   )r   r9   rx   Úreshaper   r)  r&   r'   Úassert_index_equalr
   r4   )r;   r4  Úkeysr,   Úkwargsr+   Ú	exp_indexrŽ   r-   r-   r.   Ú'test_loc_getitem_multilevel_index_order÷  s    
z=TestLocWithMultiIndex.test_loc_getitem_multilevel_index_orderc                 C   s    |}|j d }|d j d }|jj|jjdd … ks8J ‚|jj|jjdd … ksTJ ‚|j d }|d j d }|jj|jjd ks„J ‚|jj|jjd ksœJ ‚d S )NéÐ  r%   r^   )r<  r6   r6   )r&   r
   r!  rŠ   )r;   Z/multiindex_year_month_day_dataframe_random_dataZymdrž   Úresult2r-   r-   r.   Útest_loc_preserve_names  s    

z-TestLocWithMultiIndex.test_loc_preserve_namesc                 C   sf   t  dgddgg¡}td|d�}|jg  }|d d… }t ||¡ |j|jdd…  }t ||¡ d S )Nr   r^   r	   )r   Úfrom_productr   r&   r'   r½   rœ   )r;   r-  rP  rŽ   r,   Zres2r-   r-   r.   Ú.test_loc_getitem_multiindex_nonunique_len_zero  s    
zDTestLocWithMultiIndex.test_loc_getitem_multiindex_nonunique_len_zeroc                 C   s¤   t d gt dgdgg¡ƒ}|jd }|d u s0J ‚t dgddgg¡}t d gt|ƒ t|d�}|jd }|d u srJ ‚t dgt|ƒ t|d�}|jd }|dks J ‚d S )	NÚLevel1ÚLevel2)rA  rB  ÚLevel2_aZLevel2_brÝ  )rA  rC  r^   )r   r   r)  r&   r?  rå   r8   )r;   rP  rž   Zmidxr-   r-   r.   Ú0test_loc_getitem_access_none_value_in_multiindex+  s    


zFTestLocWithMultiIndex.test_loc_getitem_access_none_value_in_multiindexc                 C   s^   t jtg d¢g d¢ƒddgd�}tg d¢|d�}d|jd	d
…< tg d¢|d�}t ||¡ d S )N)r¢   r¢   rg  rg  r¡   r¡   r  r  )r  Útwor  rE  r  rE  r  rE  ÚfirstÚsecondr   )r^   r^   r^   r^   r^   r^   r^   r^   r	   rÐ   )rg  r  )r¡   rE  )r^   r^   rÐ   rÐ   rÐ   rÐ   r^   r^   )r   r  r™  r   r&   r'   r½   )r;   r
   rž   r,   r-   r-   r.   Ú!test_loc_setitem_multiindex_slice<  s    þûz7TestLocWithMultiIndex.test_loc_setitem_multiindex_slicec                 C   sJ   t dddd�}ttdƒ|ƒ}|jtdddƒtdddƒ… }t ||¡ d S )Nr  Z10minr†  ©r²  rÒ  il  r^   i4  )r   r   r¼   r&   r   r'   r½   )r;   ÚtimesrP  rž   r-   r-   r.   Ú7test_loc_getitem_slice_datetime_objs_with_datetimeindexN  s    zMTestLocWithMultiIndex.test_loc_getitem_slice_datetime_objs_with_datetimeindexc                 C   sh   t tdƒtdƒdœtddƒd�}|jddgddgf }t d	d
gd	d
gdœtddgƒd�}t ||¡ d S )Nrb   rÒ   z
2010-01-01z
2010-01-10r	   z
2010-01-05r#   r"   r   rf   )r   r¼   r   r&   r   r'   r(   r�   r-   r-   r.   Ú3test_loc_getitem_datetime_string_with_datetimeindexT  s    þ
þzITestLocWithMultiIndex.test_loc_getitem_datetime_string_with_datetimeindexc                 C   s    t jg d¢ddgd�}tddgddgd	d
gddgddgddgg|ddgd�}|jdd�}tddgddgddggddg| g d¢¡d�}|jd }t ||¡ d S )N)©r¡   r¢   rM  ©ZbahZbamrN  rM  rN  r%   r~   r   r  r^   rÉ   r6   r_   rc   ç      @rf   ç      @rg   ç      @rd   r«   r  rë   r   )Úlevel)r   r^   rf   rw   rM  )r   r  r   rƒ  r‰  r&   r'   r(   )r;   r-  r+   r,   rž   r-   r-   r.   Ú3test_loc_getitem_sorted_index_level_with_duplicatesa  s*    ÷úö&ÿ
zITestLocWithMultiIndex.test_loc_getitem_sorted_index_level_with_duplicatesc                 C   s:   t g d¢dd�}d|jd< t g d¢dd�}t ||¡ d S )NrÝ   ÚcategoryrÅ   r   rc   )r#   r"   rJ   r   r8   r  ©r;   rž   r,   r-   r-   r.   Ú1test_additional_element_to_categorical_series_locƒ  s    
zGTestLocWithMultiIndex.test_additional_element_to_categorical_series_locc                 C   s:   t g d¢dd�}d|jd< t g d¢dd�}t ||¡ d S )NrÝ   rT  rÅ   r#   rc   ©r#   r"   rJ   r#   r  rU  r-   r-   r.   Ú'test_additional_categorical_element_locŠ  s    
z=TestLocWithMultiIndex.test_additional_categorical_element_locc                 C   s¢   t g d¢ttg d¢|d�ƒd�}tj|jd< t dddtjgttg d¢|d�ƒd�}t ||¡ tj|jd< t dtjdtjgttg d¢|d�ƒd�}t ||¡ d S )Nr{   rÅ   rc   r^   r6   )r   r   r   r9   r‚   r&   r'   r½   )r;   Zany_numeric_ea_dtypeZsrsr,   r-   r-   r.   Ú&test_loc_set_nan_in_categorical_series‘  s     þþþz<TestLocWithMultiIndex.test_loc_set_nan_in_categorical_seriesÚnaNc                 C   sd   t g d¢dd�}||jd< t g d¢dd�}||jd< t ||¡ t ddd|gdd�}t ||¡ d S )	NrÝ   rT  rÅ   rc   rW  r#   r"   rJ   r  )r;   rZ  Zsrs_enlargeZsrs_setintor,   r-   r-   r.   Ú,test_loc_consistency_series_enlarge_set_into¦  s    

zBTestLocWithMultiIndex.test_loc_consistency_series_enlarge_set_intoc                 C   s¢   t t ddd¡ttddgƒtdƒgdgd dgd  tdƒgd	d
gd�d�}tddgddgdd	dd�}|jjd }t 	||¡ |j
dg jjd }t 	||¡ d S )Nr6   é   r#   r"   rb   r   rg   r^   ZIndex1ZIndex2)r,  Úcodesr!  )r   r
   FrT  )râ  ÚorderedrŠ   r5   )r   r9   rx   r   r   r¼   r
   r,  r'   r7  r&   r¾   r-   r-   r.   Ú5test_loc_getitem_preserves_index_level_category_dtype³  s&    ýþ	ûzKTestLocWithMultiIndex.test_loc_getitem_preserves_index_level_category_dtypeÚlt_valueri   rb   c                 C   s|   t dg d¢itdƒg d¢gd�}tjtdd��: |j|d |k d d …f jdgd d …f  W d   ƒ n1 sn0    Y  d S )	Nr#   )rq  é   é"   é-   Úaabb©r   r^   r6   rc   r	   z\['b'\] not in indexr­   r"   )r   rË   r“   r°   rD   r&   )r;   r`  r+   r-   r-   r.   Ú>test_loc_multiindex_levels_contain_values_not_in_index_anymoreÌ  s     zTTestLocWithMultiIndex.test_loc_multiindex_levels_contain_values_not_in_index_anymorec                 C   sl   t  t jt jg¡}ddg}t ||g¡}tddg|d�}|jd d …df }tdgt jgd�}t ||¡ d S )Nr¢   rg  r   r^   r	   )	r9   r›   r‚   r   r)  r   r&   r'   r½   )r;   Úlev1Úlev2r-  rP  rž   r,   r-   r-   r.   Ú'test_loc_multiindex_null_slice_na_levelÓ  s    z=TestLocWithMultiIndex.test_loc_multiindex_null_slice_na_levelc                 C   sr   t jtdƒtdƒddggg d¢d�}ttdƒ|d�}|jd	d d …d d …f }|j d
¡d d… }t 	|j|¡ d S )NÚabÚxyr^   r6   )rj  rk  Únumr   rr   r	   r#   r   rf   )
r   r?  rË   r   r¼   r&   r
   Z	droplevelr'   r7  )r;   r-  rP  Z
loc_resultr,   r-   r-   r.   Útest_loc_drops_levelß  s    ÿz*TestLocWithMultiIndex.test_loc_drops_level)r�   r‘   r’   r“   r”   r•   r;  r>  r@  rD  rH  rK  rL  rS  rV  rX  rY  r9   r‚   rƒ   ZNAr„   r[  r_  rf  ri  rm  r-   r-   r-   r.   r3  ö  s<   ùþ"

r3  c                   @   sÒ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	j
ddd„ dd„ dd„ dd„ gg d¢d�dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej	 d¡ej	 
ddd g¡d!d"„ ƒƒZej	 
d#g d$¢¡d%d&„ ƒZd'd(„ Zd)S )*ÚTestLocSetitemWithExpansionc                 C   s€   d}|  ¡ �< | td|¡ tdt|ƒidd�}||j|< W d   ƒ n1 sN0    Y  tdt|d ƒidd�}t ||¡ d S )Né2   Z_SIZE_CUTOFFr·   r  rÅ   r^   )ÚcontextÚsetattrÚlibindexr   r¼   r&   r'   r(   )r;   ZmonkeypatchZsize_cutoffrž   r,   r-   r-   r.   Ú/test_loc_setitem_with_expansion_large_dataframeí  s    
(zKTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_large_dataframec                 C   sV   t td�}d|jd< t |t dgdgd�¡ d|jd< t |t ddgddgd�¡ d S )NrÅ   r^   r	   rc   ©r   r8   r&   r'   r½   ©r;   rP  r-   r-   r.   Útest_loc_setitem_empty_series÷  s
    


z9TestLocSetitemWithExpansion.test_loc_setitem_empty_seriesc                 C   sV   t td�}d|jd< t |t dgdgd�¡ d|jd< t |t ddgddgd�¡ d S )NrÅ   r  r^   r	   r_   rc   rt  ru  r-   r-   r.   Ú#test_loc_setitem_empty_series_float  s
    


z?TestLocSetitemWithExpansion.test_loc_setitem_empty_series_floatc                 C   sˆ   t td�}d|jd< t |t dgtdgƒd�¡ d|jd< t |t ddgtddgƒd�¡ d|jd< t |t g d¢tg d	¢ƒd�¡ d S )
NrÅ   r^   r¡   r	   rc   r¢   rf   )r^   rc   rf   )r¡   r¢   rc   )r   r8   r&   r'   r½   r   ru  r-   r-   r.   Ú%test_loc_setitem_empty_series_str_idx  s    


 
zATestLocSetitemWithExpansion.test_loc_setitem_empty_series_str_idxc                    sn   t dddtdƒd�‰ ‡ fdd„tdƒD ƒ}td	g|d	 gd
�}|D ]}d|j|< qBtd|d
�}t ||¡ d S )Nr¨   rp  r^   ú
US/Pacific)Útzinfoc                    s   g | ]}ˆ t |d  d� ‘qS )r…  )Úseconds)r   rW  ©Úbaser-   r.   r¸     r¹   zUTestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dst.<locals>.<listcomp>é   r   r	   )r   r   r¼   r   r&   r'   r½   )r;   Zidxsrž   rQ   r,   r-   r|  r.   Ú%test_loc_setitem_incremental_with_dst  s    zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstÚconvc                 C   s   | S rl   r-   rý   r-   r-   r.   rþ   $  r¹   z$TestLocSetitemWithExpansion.<lambda>c                 C   s   |   ¡ S rl   )Úto_datetime64rý   r-   r-   r.   rþ   %  r¹   c                 C   s   |   ¡ S rl   )Úto_pydatetimerý   r-   r-   r.   rþ   &  r¹   c                 C   s
   t  | ¡S rl   )r9   r9  rý   r-   r-   r.   rþ   '  r¹   )r;   r�  r‚  znp.datetime64)Úidsc                 C   s–   t dƒ}t dƒ}tƒ }d|j||ƒdf< d|j||ƒdf< |rZ|jjjdksPJ ‚|jj}nd}tddd	git||g|d
�tdgƒd�}t ||¡ d S )Nz20130101 09:00:00z20130101 10:00:00rÐ   r  rt   r2  údatetime64[ns]g      Y@g      i@rÅ   rë   )	r   r   r&   r
   r5   r>   r   r'   r(   )r;   r€  r<   Zdt1Zdt2r+   Ú	exp_dtyper,   r-   r-   r.   Ú#test_loc_setitem_datetime_keys_cast!  s    

ýz?TestLocSetitemWithExpansion.test_loc_setitem_datetime_keys_castc                 C   sT   t ddgiƒ}tdg|d�|jd d …df< t dgtdg|d�dœƒ}t ||¡ d S )Nr%   r^   r"   )r^  r~   r�   r   )r;   r^  rž   r,   r-   r-   r.   Ú1test_loc_setitem_categorical_column_retains_dtypeB  s    zMTestLocSetitemWithExpansion.test_loc_setitem_categorical_column_retains_dtypec                 C   sœ   t ddd�}t ddd�}t ddd�}t||ddd�}||vs@J ‚t|d	gd
�}d|j|d	f< ttjgt|ƒ dg | t|gƒ¡d	gt	d�}t
 ||¡ d S )Nz2017-10-29 00:00:00+0200zEurope/Madrid©ré  z2017-10-29 03:00:00+0100z2016-10-10 03:00:00Úleftr3  )Z	inclusiver²  rõ   rë   rq  rK  )r   r   r   r&   r9   r‚   rå   Úappendr   r8   r'   r(   )r;   rÑ  ÚendrQ   rÎ  rž   r,   r-   r-   r.   Ú0test_loc_setitem_with_expansion_and_existing_dstI  s    üzLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_and_existing_dstc                 C   sì   t tddgƒdgd�}ddg|d< | d¡j d¡|_||jdk  d¡j d	¡}| ¡ }||j	|jdkdf< t
|d
  d¡|j	d gdd�}t |j|¡ |j	|jdkdf tdƒ }||j	|jdkdf< t |j	|jdkdf |¡ d S )Nz2015-03-30 20:12:32z2015-03-12 00:11:11r   )r   r4   ÚnewÚoldÚnew_colru  ry  r   )r^   r   r‰   Z1s)r   r   r¯   r
   rv  r   r�  Z
tz_convertrÌ   r&   r   r'   r½   r   )r;   r+   Úvr†   r,   r-   r-   r.   Útest_setitem_with_expansion[  s    
þ z7TestLocSetitemWithExpansion.test_setitem_with_expansionc                 C   sV   t ƒ }d|jd< d|jd< d|jdtjf< |j}tddtjgtjd�}t ||¡ d S )Nr^   r`  r6   )r^   r^   rc   r   rÅ   )	r   r&   r9   Úinfr4   r   rÄ   r'   r7  r�   r-   r-   r.   Ú0test_loc_setitem_with_expansion_inf_upcast_emptyq  s    

zLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_inf_upcast_emptyz"ignore:indexing past lexsort depthrI  TFc                 C   sš  t |ƒst d¡ | d¡}t |ƒ}t |¡ tj¡}t||dgd�}d}||vsVJ ‚| 	t |ƒ|¡}t
|tƒr†|d d |ks–J ‚n|d |ks–J ‚t |d ¡ tj¡}t||dgd�}	| ¡ }
|rÔ|
d d … }||
j|df< t |
|	¡ | ¡ d }|�r|d d … }||j|< |	d  tj¡}	t ||	¡ | ¡ }
|�rL|
d d … }||
j|df< tt|ƒtjg tjg| t|ƒg dœ|d	�}	t |
|	¡ d S )
NzNot relevant for empty Indexr6   r   rë   Zkapowrð   r^   ©r   r^   r	   )rå   r“   ÚskipÚrepeatr9   rx   rÞ   r  r   Úinsertr‹   r   rÄ   rÌ   r&   r'   r(   r½   rË   r‚   rN  )r;   r
   rI  ÚNÚarrÚorigrY   r:  Zexp_datar,   r+   rO  rP  r-   r-   r.   Ú/test_loc_setitem_with_expansion_nonunique_index|  sD    



&þzKTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_nonunique_indexr5   )ZInt32ÚInt64ZUInt32ZUInt64ZFloat32ZFloat64c                 C   sz   t g d¢|d�}td|iƒ}t|jd�}||j|jdf< tj||dd� t|jd�}|j|j|jdf< tj||dd� d S )Nre  rÅ   r   r	   F©r‘  )r   r   r
   r&   r'   r(   r”  )r;   r5   rP  r+   rž   r-   r-   r.   Ú6test_loc_setitem_with_expansion_preserves_nullable_int±  s    zRTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_preserves_nullable_intc                 C   s‚   t dtdƒiƒ}tdddd�}||jg d¢df< | ttjtjg|jd	�¡}t tdƒ|d
œƒ}|j	d |jksrJ ‚t
 ||¡ d S )Nr%   rg   ú
2016-01-01rc   ry  ©rÒ  ré  r]   r~   rÅ   r�   )r   r¼   r   r&   rŠ  r   rƒ   r„   r5   rw  r'   r(   )r;   r+   r  Zbexr,   r-   r-   r.   Ú#test_loc_setitem_ea_not_full_columnÂ  s    z?TestLocSetitemWithExpansion.test_loc_setitem_ea_not_full_columnN)r�   r‘   r’   rs  rv  rw  rx  r  r“   r”   r•   r†  r‡  rŒ  r‘  r“  r#  r›  rž  r¡  r-   r-   r-   r.   rn  ì  s6   



üø


3ÿ
rn  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestLocCallablec                 C   sz  t g d¢tdƒg d¢dœƒ}|jdd„  }t ||j|jdk ¡ |jdd„ d d …f }t ||j|jdkd d …f ¡ |jd	d„ d
d„ f }t ||j|jdkg d¢f ¡ |jdd„ dd„ f }t ||j|jdkdf ¡ |jdd„ dd„ f }t ||j|jdkddgf ¡ |jdd„ dd„ f }t ||j|jdkddgf ¡ |jdd„ dd„ f }||jd k�svJ ‚d S )N©r^   r6   rc   rf   rd  r¬   c                 S   s
   | j dkS ©Nr6   ©r%   rý   r-   r-   r.   rþ   ×  r¹   zATestLocCallable.test_frame_loc_getitem_callable.<locals>.<lambda>r6   c                 S   s
   | j dkS )Nr"   )r~   rý   r-   r-   r.   rþ   Ú  r¹   r"   c                 S   s
   | j dkS r¤  r¥  rý   r-   r-   r.   rþ   Ý  r¹   c                 S   s
   | j dkS ©Nr~   rˆ   rý   r-   r-   r.   rþ   Ý  r¹   )FTFc                 S   s
   | j dkS r¤  r¥  rý   r-   r-   r.   rþ   à  r¹   c                 S   s   dS r¦  r-   rý   r-   r-   r.   rþ   à  r¹   r~   c                 S   s
   | j dkS r¤  r¥  rý   r-   r-   r.   rþ   ã  r¹   c                 S   s   ddgS ©Nr%   r~   r-   rý   r-   r-   r.   rþ   ã  r¹   r%   c                 S   s
   | j dkS r¤  r¥  rý   r-   r-   r.   rþ   æ  r¹   c                 S   s   ddgS r§  r-   rý   r-   r-   r.   rþ   æ  r¹   c                 S   s   dS )Nr^   r-   rý   r-   r-   r.   rþ   ê  r¹   c                 S   s   dS r$   r-   rý   r-   r-   r.   rþ   ê  r¹   r  )r   rË   r&   r'   r(   r%   r~   r½   ©r;   r+   rŽ   r-   r-   r.   Útest_frame_loc_getitem_callableÑ  s        z/TestLocCallable.test_frame_loc_getitem_callablec                 C   s¶   t g d¢tdƒg d¢dœƒ}|jdd„ ddgf }t ||j|jdkddgf ¡ |jdd	gd
d„ f }t ||jdd	gddgf ¡ |jd	dd„ f }t ||jd	ddgf ¡ d S )Nr£  rd  r¬   c                 S   s
   | j dkS r¤  r¥  rý   r-   r-   r.   rþ   ñ  r¹   zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r%   r~   r6   rc   c                 S   s   ddgS r§  r-   rý   r-   r-   r.   rþ   ô  r¹   c                 S   s   ddgS r§  r-   rý   r-   r-   r.   rþ   ÷  r¹   )r   rË   r&   r'   r(   r%   r½   r¨  r-   r-   r.   Ú'test_frame_loc_getitem_callable_mixtureí  s     z7TestLocCallable.test_frame_loc_getitem_callable_mixturec                 C   sš  t g d¢tdƒdœtdƒd�}|jdd„  }t ||jdd	g ¡ |jd
d„ d d …f }t ||jdd	gd d …f ¡ |jdd„ dd„ f }t ||jdd	gdf ¡ |jdd„ dd„ f }t ||jdd	gdgf ¡ |jdd	gdd„ f }t ||jdd	gdf ¡ |jdd	gdd„ f }t ||jdd	gdgf ¡ |jdd„ df }t ||jdd	gdf ¡ |jdd„ dgf }t ||jdd	gdgf ¡ d S )Nr£  rd  ©ÚXr1  r_  r	   c                 S   s   ddgS ©Nr%   r«   r-   rý   r-   r-   r.   rþ   ÿ  r¹   zHTestLocCallable.test_frame_loc_getitem_callable_labels.<locals>.<lambda>r%   r«   c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   	  r¹   c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   	  r¹   c                 S   s   dS ©Nr¬  r-   rý   r-   r-   r.   rþ   	  r¹   r¬  c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   	  r¹   c                 S   s   dgS r®  r-   rý   r-   r-   r.   rþ   	  r¹   c                 S   s   dS r®  r-   rý   r-   r-   r.   rþ   	  r¹   c                 S   s   dgS r®  r-   rý   r-   r-   r.   rþ   	  r¹   c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   	  r¹   c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   	  r¹   )r   rË   r&   r'   r(   r½   r¨  r-   r-   r.   Ú&test_frame_loc_getitem_callable_labelsú  s"    z6TestLocCallable.test_frame_loc_getitem_callable_labelsc                 C   s^  t g d¢ttdƒtd�dœtdƒd�}| ¡ }d|jdd	„ < | ¡ }d|jd
dg< t ||¡ | ¡ }d|jdd	„ d d …f< | ¡ }d|jd
dgd d …f< t ||¡ | ¡ }d|jdd	„ dd	„ f< | ¡ }d|jd
dgdf< t ||¡ | ¡ }ddg|jdd	„ dd	„ f< | ¡ }ddg|jd
dgdgf< t ||¡ | ¡ }t 	ddg¡|jd
dgdd	„ f< | ¡ }t 	ddg¡|jd
dgdf< t ||¡ | ¡ }d|jd
dgdd	„ f< | ¡ }d|jd
dgdgf< t ||¡ | ¡ }d|jdd	„ df< | ¡ }d|jd
dgdf< t ||¡ | ¡ }d|jdd	„ dgf< | ¡ }d|jd
dgdgf< t ||¡ d S )Nr£  rd  rÅ   r«  r_  r	   iìÿÿÿc                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   !	  r¹   zATestLocCallable.test_frame_loc_setitem_callable.<locals>.<lambda>r%   r«   rS   c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   '	  r¹   rð   c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   -	  r¹   c                 S   s   dS r®  r-   rý   r-   r-   r.   rþ   -	  r¹   r¬  rg   rb   c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   3	  r¹   c                 S   s   dgS r®  r-   rý   r-   r-   r.   rþ   3	  r¹   rñ   c                 S   s   dS r®  r-   rý   r-   r-   r.   rþ   :	  r¹   c                 S   s   dgS r®  r-   rý   r-   r-   r.   rþ   @	  r¹   c                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   F	  r¹   éüÿÿÿc                 S   s   ddgS r­  r-   rý   r-   r-   r.   rþ   L	  r¹   )
r   r   rË   r8   rÌ   r&   r'   r(   r9   r›   )r;   r+   rŽ   r�   r-   r-   r.   Útest_frame_loc_setitem_callable	  sX    þ z/TestLocCallable.test_frame_loc_setitem_callableN)r�   r‘   r’   r©  rª  r¯  r±  r-   r-   r-   r.   r¢  Ð  s   r¢  c                   @   sF   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
dg¡dd„ ƒZ
d
S )ÚTestPartialStringSlicingc                 C   s^   t g d¢g d¢dœtg d¢ƒd�}t ddgdd	gdœtd
dgƒd�}|jd }t ||¡ d S )NrÝ   r{   )ru   rv   )ú
2020-08-01z
2020-07-02ú
2020-08-05r	   r#   rJ   r^   rc   r³  r´  z2020-08)r   r   r&   r'   r(   r¾   r-   r-   r.   Ú5test_loc_getitem_partial_string_slicing_datetimeindexS	  s    
þ
þ
zNTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_datetimeindexc                 C   sD   t jdddd�}| ¡ }|jd d… }|jd d… }t ||¡ d S )Nú
2017-01-01ú
2018-01-01r2  ©rÑ  r‹  r²  z2017-12rð   )rƒ   Úperiod_rangeÚ	to_seriesr&   rœ   r'   r½   )r;   ÚpirP  rž   r,   r-   r-   r.   Ú8test_loc_getitem_partial_string_slicing_with_periodindex`	  s
    zQTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_with_periodindexc                 C   sB   t dddd�}| ¡ }|jd d… }|jd d… }t ||¡ d S )Nú1 dayú2 daysÚ1hr¸  z1 daysrð   )r   rº  r&   rœ   r'   r½   )r;   rØ   rP  rž   r,   r-   r-   r.   Ú;test_loc_getitem_partial_string_slicing_with_timedeltaindexh	  s
    zTTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_with_timedeltaindexc                 C   sD   t dtdƒittdƒdd�d�}|jd }|jd }t ||¡ d S )Nr·   rc   ÚdaysrÜ  r	   r   ú0 days)r   r¼   r   rœ   r&   r'   r½   )r;   r+   r,   Zslicedr-   r-   r.   Ú#test_loc_getitem_str_timedeltaindexp	  s     

z<TestPartialStringSlicing.test_loc_getitem_str_timedeltaindexÚindexer_endNú2020-01-02 23:59:59.999999999c              	   C   s–   |dgd t tdƒtdƒtdƒtdƒtdƒg|d�d	�}|dgd
 t tdƒtdƒg|d�d	�}td|ƒ}|| }t ||¡ |j| }t ||¡ d S )Nr^   rg   z
2019-12-30z
2020-01-01z
2019-12-25rÅ  z
2019-12-19rˆ  r	   r6   )r   r   r–   r'   rŒ   r&   )r;   Ztz_aware_fixturerÄ  r·  rG   r,   rÎ   rž   r-   r-   r.   Ú/test_loc_getitem_partial_slice_non_monotonicityw	  s4    ûøþþûþ


zHTestPartialStringSlicing.test_loc_getitem_partial_slice_non_monotonicity)r�   r‘   r’   rµ  r¼  rÀ  rÃ  r“   r”   r•   rÆ  r-   r-   r-   r.   r²  R	  s   r²  c                
   @   sø   e Zd Zdd„ Zdd„ Zej dej	dddd	�e
d
ddd	�g¡dd„ ƒZdd„ Zdd„ Zej de dd¡deddƒge dd¡e dd¡eddƒgde dd¡eddƒgg¡dd„ ƒZej d d!d"g¡d#d$„ ƒZej d%dd&g¡d'd(„ ƒZd)d*„ ZdS )+ÚTestLabelSlicingc                 C   s  t tjddd�dd„ dD ƒd�}t tjddd�d	d„ d
D ƒd�}||fD ]Æ}|jtddddƒd … }t ||¡ |jd tddddƒ… }t ||¡ |jtddddƒtddddƒ… }t ||¡ |jtddddƒd … }|jdd … }t ||¡ |jdd … }t ||¡ qHd S )NrO  rÄ   rÅ   c                 S   s   g | ]}t d d|ddƒ‘qS ©éÑ  r^   rb   r   ©r   rW  r-   r-   r.   r¸   £	  r¹   zMTestLabelSlicing.test_loc_getitem_slicing_datetimes_frame.<locals>.<listcomp>r£  r	   rP  c                 S   s   g | ]}t d d|ddƒ‘qS rÈ  rÊ  rW  r-   r-   r.   r¸   ©	  r¹   )r^   r6   r6   rc   rf   rÉ  r^   rb   rf   rp  z20010101 11)r   r9   rx   r&   r   r'   r(   rœ   )r;   Z	df_uniqueZdf_dupsr+   rž   r,   r-   r-   r.   Ú(test_loc_getitem_slicing_datetimes_frame�	  s(    þþ"z9TestLabelSlicing.test_loc_getitem_slicing_datetimes_framec                 C   s†   t ddddd�}tg d¢|d�}tddd	�}td
dd	�}|j||… }tddg|dd… d�}t ||¡ || }d}||ks‚J ‚d S )Nz2017-10-29 01:30:00zEurope/Berlinrg   z30 min)ré  rÒ  r²  )r   r^   r6   rc   rf   r	   z2017-10-29 02:30:00+02:00rˆ  z2017-10-29 02:00:00+01:00r6   rc   rf   )r   r   r   r&   r'   r½   )r;   rÎ  Zseries2Zt_1Zt_2rž   r,   r-   r-   r.   Ú'test_loc_getitem_label_slice_across_dstº	  s    ÿz8TestLabelSlicing.test_loc_getitem_label_slice_across_dstr
   r¶  r·  r2  r¸  r½  r¾  r¿  c                 C   s8   |  ¡ }|jd |d … }|jd d… }t ||¡ d S )Nrñ   rð   )rº  r&   rœ   r'   r½   )r;   r
   rP  rž   r,   r-   r-   r.   Ú-test_loc_getitem_label_slice_period_timedeltaË	  s    z>TestLabelSlicing.test_loc_getitem_label_slice_period_timedeltac                 C   s€   g d¢}t tj d¡ d¡|d�}|jdd… }t|ƒdks@J ‚|jdd… }t|ƒdks^J ‚|jdd… }t|ƒd	ks|J ‚d S )
N)gæx"p|é@g\Va³‰|é@g‹ßÖË|é@r6   ©rc   r6   r	   g3333c|é@g    �|é@g3333“|é@gÍÌÌÌÜ|é@rc   )r   r9   rº   r»   r&   rå   )r;   r
   r+   Ús1r-   r-   r.   Ú%test_loc_getitem_slice_floats_inexactÙ	  s    z6TestLabelSlicing.test_loc_getitem_slice_floats_inexactc                 C   s´   |}t tj d¡ d¡tjdd|d�d�}t|jdd … ƒdksDJ ‚t|jdd … ƒd	ks^J ‚tjdd|d�}d
|d< ||_t|jdd … ƒdks–J ‚t|jdd … ƒd	ks°J ‚d S )Nr6   rb   rS   rÅ   r	   r(  rr   g      )@re   gffffff(@)r   r9   rº   r»   rx   rå   r&   r
   )r;   rÚ  r5   rP  rÎ  r-   r-   r.   Ú'test_loc_getitem_float_slice_floatindexæ	  s    ÿz8TestLabelSlicing.test_loc_getitem_float_slice_floatindexzstart,stop, expected_slicer   ÚnsNrp  r^   r  rd   re   rf   rg   c                 C   s>   t tdƒtddƒƒ}|jt||ƒ }|j| }t ||¡ d S )Nrp  rÂ  z10 days)r   r¼   r   r&   r–   rœ   r'   r½   )r;   rÑ  ÚstopZexpected_slicerP  rž   r,   r-   r-   r.   Ú$test_loc_getitem_slice_label_td64objõ	  s    

z5TestLabelSlicing.test_loc_getitem_slice_label_td64objrÑ  Z2018Z2020c                 C   sb   |g d¢t dƒt dƒt dƒgd�}tjtdd�� |j|d…  W d   ƒ n1 sT0    Y  d S )	Nr{   Z2016Z2019Z2017r	   z,Value based partial slicing on non-monotonicr­   r™   )r   r“   r°   rD   r&   )r;   r·  rÑ  rG   r-   r-   r.   Ú)test_loc_getitem_slice_unordered_dt_index
  s    þÿz:TestLabelSlicing.test_loc_getitem_slice_unordered_dt_indexrõ   rÊ  c                 C   sN   |t dƒ|dddgd�}|j|d… }|t dƒ|dddgd�}t ||¡ d S )Nrf   rF  r6   Úthirdr	   )r¼   r&   r'   rŒ   )r;   r·  rõ   rG   rž   r,   r-   r-   r.   Ú1test_loc_getitem_slice_labels_int_in_object_index
  s    zBTestLabelSlicing.test_loc_getitem_slice_labels_int_in_object_indexc                 C   sZ   t ddddœdgd�}t ddggdgtddgtd�d�}t |jd d …dd …f |¡ d S )	Nr^   r6   rc   )Útestr^   r6   r   r	   rÅ   )r   r
   r4   )r   r   r8   r'   r(   r&   ry   r-   r-   r.   Ú*test_loc_getitem_slice_columns_mixed_dtype
  s
    ÿz;TestLabelSlicing.test_loc_getitem_slice_columns_mixed_dtype)r�   r‘   r’   rË  rÌ  r“   r”   r•   rƒ   r¹  r   rÍ  rÐ  rÑ  r9   r  r–   rÔ  rÕ  r×  rÙ  r-   r-   r-   r.   rÇ  œ	  s0   þþ
ýþ



rÇ  c                   @   sH   e Zd Zej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd	„ Zd
S )ÚTestLocBooleanLabelsAndSlicesÚ
bool_valueTFc                 C   s\   |› d�}|j dkrX||dd�}tjt|d�� |j|  W d   ƒ n1 sN0    Y  d S )Nz7: boolean label can not be used without a boolean indexrÿ   r8   r  r­   )r-  r“   r°   rD   r&   )r;   r
   r·  rÛ  ÚmessagerG   r-   r-   r.   Ú'test_loc_bool_incompatible_index_raises!
  s
    

zETestLocBooleanLabelsAndSlices.test_loc_bool_incompatible_index_raisesc                 C   s&   |t ddgdd�dd�}|j|  d S )NTFrÿ   rÅ   r8   r  )r   r&   )r;   r·  rÛ  rG   r-   r-   r.   Útest_loc_bool_should_not_raise,
  s    ÿz<TestLocBooleanLabelsAndSlices.test_loc_bool_should_not_raisec                 C   sP   d}||dd�}t jt|d�� |jdd…  W d   ƒ n1 sB0    Y  d S )NzEslice\(True, False, None\): boolean values can not be used in a slicer8   r  r­   TF)r“   r°   r—   r&   )r;   r
   r·  rÜ  rG   r-   r-   r.   Útest_loc_bool_slice_raises3
  s
    ÿz8TestLocBooleanLabelsAndSlices.test_loc_bool_slice_raisesN)	r�   r‘   r’   r“   r”   r•   rÝ  rÞ  rß  r-   r-   r-   r.   rÚ   
  s
   


rÚ  c                   @   sl   e Zd Zdd„ Zej dddg¡dd„ ƒZdd	„ Zd
d„ Z	e
jdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestLocBooleanMaskc                 C   s²   t dtdƒiƒ}ttdƒdd�|_|d dk|d dk|d dk g}g d¢g d¢g d¢g}t||ƒD ]H\}}| ¡ }d|j|df< t |ttdƒdd�dgd	d
�}t ||¡ qdd S )Nr·   rb   rã   rÜ  rc   )
r   r^   r6   rc   rb   rb   rb   rb   rb   rb   )
r   r^   r6   rb   rf   rg   rd   re   rr   rn  )
rb   rb   rb   rc   rf   rg   rd   re   rr   rn  r  rK  )	r   r¼   r   r
   r™  rÌ   r&   r'   r(   )r;   r+   Z
conditionsÚexpected_dataZcondr   rž   r,   r-   r-   r.   Ú)test_loc_setitem_bool_mask_timedeltaindex>
  s"    "ýüz<TestLocBooleanMask.test_loc_setitem_bool_mask_timedeltaindexré  Nru  c                 C   s”   t  g d¢¡}tdd|d�}tdt  d¡i|d� d¡}| ¡ }|j|d d …f |j|d d …f< t 	||¡ | ¡ }|j| |j|< t 	||¡ d S )Nro   Z20010101rf   r   r#   r	   rÄ   )
r9   r›   r   r   rx   rÞ   rÌ   r&   r'   r(   )r;   ré  r  rÎ  r+   rž   r-   r-   r.   Ú+test_loc_setitem_mask_with_datetimeindex_tzT
  s     z>TestLocBooleanMask.test_loc_setitem_mask_with_datetimeindex_tzc                 C   s~   t t d¡ dd¡tdƒtdddd�d�}| ¡ }|jd	 gtj	tj	g |d
< |j
dk }|j| j|j|d
f< t ||¡ d S )NrQ  rc   r6   ZABr°  r¿  )rÒ  r²  rw   r   r«   r^   )r   r9   rx   r6  rË   r   rÌ   r
   rƒ   r„   r%   r&   r'   r(   )r;   r+   r,   r  r-   r-   r.   Ú2test_loc_setitem_mask_and_label_with_datetimeindexe
  s    ý
zETestLocBooleanMask.test_loc_setitem_mask_and_label_with_datetimeindexc                 C   s€   t dƒ}t dƒ}tdt||gƒiƒ}| ¡ }t|gƒ}|d jd j}||jddg< |d jd j}||kspJ ‚t ||¡ d S )Nr   l   ,GsO1Úcolr^   TF)	r   r   r   rÌ   rœ   Ú_valuer&   r'   r(   )r;   Ztd1Ztd2r+   Zdf_copyrP  r,   rž   r-   r-   r.   Ú'test_loc_setitem_mask_td64_series_valuet
  s    
z:TestLocBooleanMask.test_loc_setitem_mask_td64_series_valuec                 C   s\   |  ¡ }|d dk}d|j|df< |j  ¡ }d||jdf< t||j|jd�}t ||¡ d S )Nr%   r   r~   r^   rë   )rÌ   r&   r…   r   r
   r4   r'   r(   )r;   rÍ  r,   r  r…   r-   r-   r.   Ú#test_loc_setitem_boolean_and_columnƒ
  s    
z6TestLocBooleanMask.test_loc_setitem_boolean_and_columnc                 C   s~  t g d¢g d¢dœƒ}t dg d¢ig d¢d�|jg d¢dgf< t g d	¢g d¢dœƒ}t ||¡ t g d¢g d¢dœƒ}tg d
¢g d¢d�|jg d¢dgf< t ||¡ t g d¢g d¢dœƒ}tg d
¢g d¢d�|jg d¢df< t ||¡ t g d¢g d¢dœƒ}| ¡ }|d }t |¡�. tg d
¢g d¢d�|jg d¢< W d   ƒ n1 �sP0    Y  |�rnt ||¡ nt ||¡ d S )Nr{   rÿ  rÒ   r#   rª   )r6   r^   r   r	   )FFT)r^   r6   rb   ro  )r   r&   r'   r(   r   rÌ   r•  )r;   r–  rh  r+   r,   rÍ   rP  r-   r-   r.   Ú)test_loc_setitem_ndframe_values_alignment�
  s(    ÿ$">z<TestLocBooleanMask.test_loc_setitem_ndframe_values_alignmentc                 C   sN   t g g dœtd�}| ¡ }|d  ¡ |jtjg tjd�dgf< t ||¡ d S )NrÒ   rÅ   r#   ©	r   r8   rÌ   r&   r9   r›   Zbool_r'   r(   ry   r-   r-   r.   Ú test_loc_indexer_empty_broadcast¯
  s    $z3TestLocBooleanMask.test_loc_indexer_empty_broadcastc                 C   sT   t dgdgdœtd�}| ¡ }|d  ¡ |jtjdgtjd�dgf< t ||¡ d S )Nr·   r  rÒ   rÅ   r"   Fr#   rê  ry   r-   r-   r.   Ú$test_loc_indexer_all_false_broadcast¶
  s    &z7TestLocBooleanMask.test_loc_indexer_all_false_broadcastc                 C   sb   t dgdgdœtd�}t dgdgdœtd�}|d  ¡ |jtjdgtjd�dgf< t ||¡ d S )Nr·   r  rÒ   rÅ   r"   Tr#   rê  ry   r-   r-   r.   Útest_loc_indexer_length_one½
  s    &z.TestLocBooleanMask.test_loc_indexer_length_one)r�   r‘   r’   râ  r“   r”   r•   rã  rä  rç  ÚtdÚskip_array_manager_invalid_testrè  ré  rë  rì  rí  r-   r-   r-   r.   rà  =
  s   

 rà  c                   @   s`   e Zd Zej ddd„ ejeg¡dd„ ƒZ	dd„ Z
dd	„ Zej d
ddg¡dd„ ƒZdd„ ZdS )ÚTestLocListlikers  c                 C   s   | S rl   r-   rý   r-   r-   r.   rþ   Æ
  r¹   zTestLocListlike.<lambda>c                 C   sL  t ddtjgƒ}ttdƒ|d�}|j||ƒ }t ||¡ |||ƒ }t ||¡ | ¡ j||ƒ }t 	|| ¡ ¡ |d d… }|dd … }d}t
jt|d�� |j||ƒ  W d   ƒ n1 sÂ0    Y  t
jt|d�� |||ƒ  W d   ƒ n1 sü0    Y  t
jt|d��" | ¡ j||ƒ  W d   ƒ n1 �s>0    Y  d S )	Nr%   r~   rc   r	   rð   r^   rá   r­   )r   r9   r‚   r   r¼   r&   r'   r½   r)  r(   r“   r°   rD   )r;   rs  ÚcirP  rž   Zser2Zci2r±   r-   r-   r.   Ú8test_loc_getitem_list_of_labels_categoricalindex_with_naÆ
  s"    ,*zHTestLocListlike.test_loc_getitem_list_of_labels_categoricalindex_with_nac                 C   sf   t jg d¢dd�}tg d¢tdddd�ƒ}tjtd	d
�� |j|  W d   ƒ n1 sX0    Y  d S )N)ú
2001-01-04z
2001-01-02ró  z
2001-01-14r9  rÅ   )r6   rg   rr   rp  z
2001-01-01r  rf   rI  rá   r­   )r9   r›   r   r   r“   r°   rD   r&   )r;   rY   rP  r-   r-   r.   Ú1test_loc_getitem_series_label_list_missing_valuesâ
  s    ÿzATestLocListlike.test_loc_getitem_series_label_list_missing_valuesc                 C   sf   t t ddg¡t ddg¡d�}tjtdd��$ |jt ddg¡  W d   ƒ n1 sX0    Y  d S )Nl   PF
AHl   UBÿeNl   P2ˆ$Þ$én©r
   r   rá   r­   l   NZ4FçG)r   r9   r›   r“   r°   rD   r&   ru  r-   r-   r.   Ú9test_loc_getitem_series_label_list_missing_integer_valuesë
  s    þzITestLocListlike.test_loc_getitem_series_label_list_missing_integer_valuesÚ	to_periodTFc                 C   sX  t ddddd�}|r| d¡}tddg|dd	�}tdƒtdƒg}|rRd
d„ |D ƒ}|j| }tddg|dd	�}|s€|j d ¡|_tj||dd� tdƒtdƒtdƒg}|r¸dd„ |D ƒ}tg d¢t	|d|j
d�dd	�}|j| }tj||dd� tdƒtdƒtdƒg}|�rdd„ |D ƒ}tjtdd�� |j|  W d   ƒ n1 �sJ0    Y  d S )Nú
2011-01-01z
2011-01-02r  rÎ  )r²  rŠ   çš™™™™™¹?çš™™™™™É?rã   rÂ   c                 S   s   g | ]}|  d ¡‘qS ©r  ©r÷  rµ   r-   r-   r.   r¸   ÿ
  r¹   zRTestLocListlike.test_loc_getitem_listlike_of_datetimelike_keys.<locals>.<listcomp>T)r�  c                 S   s   g | ]}|  d ¡‘qS rû  rü  rµ   r-   r-   r.   r¸     r¹   )rú  rú  rù  )rŠ   r5   ú
2011-01-03c                 S   s   g | ]}|  d ¡‘qS rû  rü  rµ   r-   r-   r.   r¸     r¹   rá   r­   )r   r÷  r   r   r&   r
   r¶  r'   r½   r   r5   r“   r°   rD   )r;   r÷  rÎ  rP  r8  rž   r�   r-   r-   r.   Ú.test_loc_getitem_listlike_of_datetimelike_keysô
  s>    

ýÿ
ýz>TestLocListlike.test_loc_getitem_listlike_of_datetimelike_keysc                 C   sd   t ddgddgddggg d¢dd	gd
�}|jd d… }d|j_|jtddgdd� }t ||¡ d S )Nr^   r6   rf   rg   re   rr   )ÚcobraÚviperZ
sidewinderZ	max_speedÚshieldrë   r¡   rÿ  r   r‰   )r   rœ   r
   rŠ   r&   r   r'   r(   r¾   r-   r-   r.   Útest_loc_named_index  s    ýz$TestLocListlike.test_loc_named_indexN)r�   r‘   r’   r“   r”   r•   r9   ZasarrayrË   rò  rô  rö  rþ  r  r-   r-   r-   r.   rð  Å
  s   
		
)rð  z%columns, column_key, expected_columns)éÛ  ry  iÝ  r  ry  r^   )r  ry  ÚAllr  r6   c                 C   sX   t tj d¡ d¡| tdƒd�}|jd d …|f }|jg d¢|f }tj||dd� d S )Nr6   rè   r  rw   r¬   Tr�  )	r   r9   rº   r»   rË   rœ   r&   r'   r(   )r4   Z
column_keyZexpected_columnsr+   r,   rž   r-   r-   r.   Ú*test_loc_getitem_label_list_integer_labels+  s    
ÿr  c                  C   sš   t j d¡ d¡} t| ƒ}t j|jd d …df< t  | t  t jgd ¡ 	dd¡f¡}t|g d¢d�}t
 ||¡ t| ƒ}t j|jd d …df< t
 ||¡ d S )Nr6   )rr   rf   rÙ  rr   r^   )rÛ   r  rÉ   r_   rÙ  rˆ   )r9   rº   r»   ra  r   r‚   r&   Zhstackr›   r6  r'   r(   )Z	rand_datarž   rá  r,   r-   r-   r.   Útest_loc_setitem_float_intindex>  s    $r  c                  C   sr   dd„ dD ƒ} t t d¡tdƒt | ¡d�}|jdd�d	d
… }t t d¡tdƒt g d¢¡d�}t ||¡ d S )Nc                 S   s   g | ]}d D ]}||f‘qqS ))re   rr   rn  rb   r-   )r¶   Úyrr4  r-   r-   r.   r¸   N  r¹   z)test_loc_axis_1_slice.<locals>.<listcomp>)éÞ  r¨   )rb   rr   Z
ABCDEFGHIJrë   r^   r�  ©r  rn  ©r¨   rr   r“  )r	  )r  rb   )r¨   re   r
  )	r   r9   rˆ  r  r   r  r&   r'   r(   )rß   r+   rž   r,   r-   r-   r.   Útest_loc_axis_1_sliceL  s    ýýr  c                  C   sX   t dtdƒt tdƒtdƒg¡d�} |  ¡ }|jddgf |jddgf< t || ¡ d S )Nr#   r6   rë   r   r”  )r   r¼   r   r?  rÌ   r&   r'   r(   )r,   rž   r-   r-   r.   Ú!test_loc_set_dataframe_multiindex]  s    ÿr  c                  C   s4   t tdƒtddgtd�ƒ} | jd }|dks0J ‚d S )Nr6   r^   rÉ   rÅ   r   )r   r¼   r   r8   r&   )rP  rž   r-   r-   r.   Útest_loc_mixed_int_floatg  s    
r  c                  C   sT   t tdƒg d¢d�} tjtdd�� d| jd d…< W d   ƒ n1 sF0    Y  d S )Nrf   r  r	   ú$Slicing a positional slice with .locr­   r6   rc   )r   r¼   r“   r°   r—   r&   )rP  r-   r-   r.   Ú%test_loc_with_positional_slice_raiseso  s    r  c               	   C   s>  t ddd�} ttj d¡ d¡| d�}|d }d}||fD ]|}tjt|d	�� |jd
d…  W d   ƒ n1 sp0    Y  tjtdd	�� d
|jd
d…< W d   ƒ q:1 s¬0    Y  q:tjt|d	��" |jd
d…d
f  W d   ƒ n1 sî0    Y  tjtdd	��" d|jd
d…d
f< W d   ƒ n1 �s00    Y  d S )NrŸ  rc   ©rÒ  r6   rÎ  r	   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intr­   r^   r  )	r   r   r9   rº   r»   r“   r°   r—   r&   )Údtir+   rP  r±   rG   r-   r-   r.   Ú#test_loc_slice_disallows_positionalw  s    ÿ,.0r  c                  C   sÊ   t tj d¡ d¡g d¢tdddd�d�} | jg d	¢  ¡ } | j}t	 
|j¡}d
}tjt|d�� | j|  W d   ƒ n1 s€0    Y  tjt|d�� | d j|  W d   ƒ n1 s¼0    Y  d S )Nr6   r  rÝ   Z2012r3  rg   rI  rw   )r   r6   r6   rc   z/None of \[TimedeltaIndex.* are in the \[index\]r­   r#   )r   r9   rº   r»   ra  r   rœ   rÌ   r
   rƒ   ZTimedeltaIndexZasi8r“   r°   rD   r&   )r+   r  rÞ  r±   r-   r-   r.   Ú'test_loc_datetimelike_mismatched_dtypes“  s    ý(r  c                  C   s¦   t jdddd�} ttj d¡ d¡| d�}t ||j	|  ¡ t ||j	t
| ƒ ¡ t ||j	t
| ƒ ¡ t |jdd	… |j	| dd	…  ¡ t ||j	t
| ƒ ¡ d S )
Nz2002-01z2003-12r2  r±  r6   )rí  rb   r	   r   rg   )rƒ   r¹  r   r9   rº   r»   ra  r'   r(   r&   rË   rœ   )rÎ  r+   r-   r-   r.   Ú"test_loc_with_period_index_indexer©  s    $r  c                  C   sz   t j d¡ d¡} tddd�}g d¢}t| ||d�}t j|j|jd d	f< t j| d d
d…< t| ||d�}t	 
||¡ d S )Nr6   )rr   rd   r°  rr   r  )r%   r~   r«   r  ÚEÚFrë   r^   r�   r   )r9   rº   r»   ra  r   r   r‚   r&   r
   r'   r(   )r~  rÎ  rß   r�   rŽ   r-   r-   r.   Ú%test_loc_setitem_multiindex_timestamp´  s    r  c                  C   s2  g d¢} ddg}ddg}t j| ||gg d¢d�}tdtd	ƒ|d
�}|jd d …| d |d |d ff }|jd d …d d…f }t ||¡ |j| d |d |d fg d¢dd�}t ||¡ |jd }|jd d… }	|j| d |d |d fg d¢dd�}
t 	|
|	¡ |j| d |d |d f }|dk�s.J ‚d S )NrÝ   r”  )r^   r   r   r^   )r·   r  r›  r   rd   rg   rë   r]   )rR  r‚  )
r   r?  r   r¼   r&   rœ   r'   r(   Úxsr½   )rg  rh  Zlev3rß   r+   rž   r,   ZaltrP  Z	expected2Zalt2r=  r-   r-   r.   Ú'test_loc_getitem_multiindex_tuple_levelÀ  s     $&
&r  c               	   C   s¢   t t g d¢g d¢ddtjtjgg¡jg d¢dd�} |  d¡}|jjdksNJ ‚|jd }t	dd	g|j
ddd
�}t ||¡ |j t¡|_|jd }t ||¡ d S )Nr£  )rg   rd   re   rr   r^   r6   rÝ   rœ  )r   r4   r5   rJ   rg   rd  )r   r9   r›   r‚   ÚTr¯   r
   r5   r&   r   r4   r'   r½   rÞ   r8   )r+   r†   rŽ   r,   r-   r-   r.   Ú/test_loc_getitem_nullable_index_with_duplicatesÞ  s    $ý


r  rõ   rÑ   c                 C   sŠ   t g d¢dgdd�}tjtdd�� | |jd< W d   ƒ n1 sB0    Y  trbt| tjƒrbd}nd	}t g d
¢dg|d�}t 	||¡ d S )Nr£  ru   Zuint8r3   rÕ   r­   )r6   ru   Úint16Úuint16)r^   r6   rÑ   rf   )
r   r'   rÖ   r×   r&   r   r‹   r9   r  r(   )rõ   r+   r5   r,   r-   r-   r.   Útest_loc_setitem_uint8_upcastò  s    (r  zfill_val,exp_dtypez
2022-01-06r„  z
2022-01-07ú
US/Easternrˆ  zdatetime64[ns, US/Eastern]c                 C   sj   ddd|   ¡ g}t|| j|d�}tg d¢dg|d�}d|jd	< | d
¡ t||d�}tj|j|dd� d S )Nz
2022-01-02z
2022-01-03z
2022-01-04)ré  r5   )rb   rp  rq  rì  r#   rw   rë  )ú
2022-01-08r#   r   rÅ   T)Úexact)	r   r   ré  r   r&   rŠ  r'   r7  r
   )Zfill_valr…  r   r
   r+   Zexpected_indexr-   r-   r.   Ú0test_loc_setitem_using_datetimelike_str_as_index  s    

r"  c                  C   sJ   t tdƒgƒ} d| jd d …df< t dgdgdgdgdœƒ}t | |¡ d S )NÚabcrg   ru   r#   r"   rJ   )r   r^   r6   ru   )r   rË   r&   r'   r(   )r+   r,   r-   r-   r.   Útest_loc_set_int_dtype  s    r$  z8ignore:Period with BDay freq is deprecated:FutureWarningr,  c                  C   sr   t g d¢ddd�} tg d¢g d¢g d¢g d¢g| g d	¢d
�}|jddgdd�d }|j| d ddf dksnJ ‚d S )N)z20181101 1100z20181101 1200z20181102 1300z20181102 1400r   r~   )rŠ   r²  )r%   r~   r  )r%   r«   rÉ   )rk  ÚQr_   )ÚWr  rO  )ÚONEÚTWOÚVALUESrë   r'  r(  T)rŠ  r)  r   r%   r  )r   r   r¯   r&   )Zp_indexZ	mi_seriesr-   r-   r.   Útest_loc_periodindex_3_levels"  s    ýýr*  c                  C   sz   t  d¡ ttg d¢dd�tg d¢ƒdœƒ} tddgƒ}|| j| jd	f< ttg d
¢dd�tg d¢ƒdœƒ}t | |¡ d S )NZpyarrowr¬   zstring[pyarrow]rÅ   )TTF)Ústringsrƒ  r¬  r1  r+  )r¬  r1  r«   )r“   r½  r   r   r&   rƒ  r'   r(   )r+   Ú	new_valueZexpected_dfr-   r-   r.   Ú test_loc_setitem_pyarrow_strings4  s    

þÿ
þÿr-  c                   @   s  e Zd Zej ddd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ej dejejeeg¡ej dg d¢¡dd„ ƒƒZej deddd…f dedƒfg¡d d!„ ƒZd"d#„ Zej d$d%d&g¡d'd(„ ƒZejd)d*„ ƒZd+d,„ Zd-d.„ Zd/d0„ Z dS )1ÚTestLocSeriesrÕ  )rÖ  rc   )r×  rf   c                 C   s$   t dddœƒ}|j| |ks J ‚d S )Nrc   rf   )rÖ  r×  )r   r&   )r;   r  r,   rP  r-   r-   r.   r   K  s    zTestLocSeries.test_loc_uint64c           	      C   sÒ   |j g d¢ }t |j| | |¡¡ t |jdd d… |dd d… ¡ |j ddg \}}|j||… }| ||¡}t ||¡ || ¡ k}t |j| || ¡ |j| || ks¸J ‚|j| || ksÎJ ‚d S )N©rc   rf   re   rg   r6   é   )r
   r'   r½   r&   r[  rœ   ÚtruncateÚmedian)	r;   Ústring_seriesÚdatetime_seriesÚindsÚd1Úd2rž   r,   r  r-   r-   r.   Útest_loc_getitemQ  s    "zTestLocSeries.test_loc_getitemc                 C   sª   |j ddg \}}|d d d… jg d¢ }d}tjt|d�� |j||…  W d   ƒ n1 s`0    Y  tjt|d�� d|j||…< W d   ƒ n1 sœ0    Y  d S )Nrg   r0  r6   )r^   r6   r   z"Timestamp\('2000-01-10 00:00:00'\)r­   r   )r
   rœ   r“   r°   rD   r&   )r;   r4  r6  r7  Zts2r±   r-   r-   r.   Útest_loc_getitem_not_monotonicd  s    ,z,TestLocSeries.test_loc_getitem_not_monotonicc                 C   sl  t tj d¡ d¡ttdddƒƒd�}| ¡ }d|jdd…< |jdd… dk 	¡ sVJ ‚| ¡ }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ƒƒ  }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 )Nr6   rb   r   rS   r	   rf   rc   rp  rd   )rf   rd   rr   rb   rg   rn  rð   z^3$r­   )r   r9   rº   r»   ra  rË   r¼   rÌ   rœ   r  r…   r&   r[  r'   r½   r“   r°   rD   )r;   rP  Úcprž   r=  r,   Ús2r-   r-   r.   Ú0test_loc_getitem_setitem_integer_slice_keyerrorso  s&    ÿ".z>TestLocSeries.test_loc_getitem_setitem_integer_slice_keyerrorsc                 C   s4   t |jd d… ƒ}|j| }t ||d d… ¡ d S )Nrb   )r%  r
   r&   r'   r½   )r;   r3  rÎ  rž   r-   r-   r.   Útest_loc_getitem_iteratorŒ  s    
z'TestLocSeries.test_loc_getitem_iteratorc                 C   s:   ||  ¡ k}| ¡ }d|j|< |}d||< t ||¡ d S )Nr   )r2  rÌ   r&   r'   r½   )r;   r3  r  rž   r,   r-   r-   r.   Útest_loc_setitem_boolean‘  s    
z&TestLocSeries.test_loc_setitem_booleanc                 C   sb   t |jg d¢ ƒ}d|j|< d}tjt|d��  d|j|dg < W d   ƒ n1 sT0    Y  d S )N)rg   rr   rq  rg   z\['foo'\] not in indexr­   r¡   )rË   r
   r&   r“   r°   rD   )r;   r3  r5  r±   r-   r-   r.   Útest_loc_setitem_cornerš  s
    
z%TestLocSeries.test_loc_setitem_cornerc                 C   s†   |j g d¢ }| ¡ }| ¡ }d||< d|j|< t ||¡ | ¡ }| ¡ }d||d |d …< d|j|d |d …< t ||¡ d S )N)rg   rb   r0  r   r6   )r
   rÌ   r&   r'   r½   )r;   r4  Úindicesr:  r�   r-   r-   r.   Útest_basic_setitem_with_labels¡  s    
z,TestLocSeries.test_basic_setitem_with_labelsc           	      C   s$  t tj d¡ d¡ttdddƒƒd�}g d¢}t g d¢¡}| ¡ }| ¡ }d||< d|j	|< t
 ||¡ | ¡ }| ¡ }d||< d|j	|< t
 ||¡ g d¢}t g d¢¡}d}tjt|d	�� d||< W d   ƒ n1 sÞ0    Y  tjt|d	�� d||< W d   ƒ n1 �s0    Y  d S )
Nr6   rb   r   rS   r	   )r   rf   rd   ©r   rf   rg   rd   z\[5\] not in indexr­   )r   r9   rº   r»   ra  rË   r¼   r›   rÌ   r&   r'   r½   r“   r°   rD   Ú	Exception)	r;   rP  r5  Zarr_indsr:  r�   Zinds_notfoundZarr_inds_notfoundr±   r-   r-   r.   Ú!test_loc_setitem_listlike_of_ints°  s,    ÿ

&z/TestLocSeries.test_loc_setitem_listlike_of_intsc                 C   sž   t tdddd�g d¢d�}| ¡ }tddd�}||jd	< |jd	 }||ksNJ ‚| ¡ }||jd
< |jd
 }||ksvJ ‚| ¡ }||d	< |d	 }||ksšJ ‚d S )Nrø  rc   r  r   rÝ   r	   rý  rˆ  r#   r   )r   r   rÌ   r   r&   rœ   )r;   rP  r;  r,   rž   r-   r-   r.   Útest_loc_setitem_dt64tz_valuesÌ  s"    þ



z,TestLocSeries.test_loc_setitem_dt64tz_valuesÚarray_fnrû   rB  c                 C   s~   |dg| ƒ}t |ddddgtdƒtd�}t dtdƒtd�}||jd< t ||¡ t dtdƒtd�}||jd< t ||¡ d S )Nr   Zabcder  r#   )r   rË   r8   r&   r'   r½   rœ   )r;   rû   rF  r™  r,   rP  r-   r-   r.   Ú#test_loc_iloc_setitem_with_listlikeâ  s    

z1TestLocSeries.test_loc_iloc_setitem_with_listlikerÎ   r%   Nc                 C   s¢   t t g d¢¡g d¢d�}d}tjt|d��" |j|d d …f  W d   ƒ n1 sT0    Y  tjt|d��" d|j|d d …f< W d   ƒ n1 s”0    Y  d S )N))r%   Ú0)r%   r1   )r~   rH  )é   r\  ra  rõ  r1  r­   r^   )r   r   r  r“   r°   r   r&   )r;   rÎ   rP  r±   r-   r-   r.   Ú+test_loc_series_getitem_too_many_dimensionsô  s    þ0z9TestLocSeries.test_loc_series_getitem_too_many_dimensionsc                 C   sØ   |j g d¢ }| ¡ }d|j|< | ¡ }d|jg d¢< t ||¡ d|jdd…< d|dd…< t ||¡ |j ddg \}}d|j||…< d|dd…< t ||¡ d|j|< d|j|< || dksÄJ ‚|| dksÔJ ‚d S )Nr/  rg   rb   r0  rd   r~  rf   )r
   rÌ   r&   rœ   r'   r½   )r;   r3  r5  rž   r,   r6  r7  r-   r-   r.   Útest_loc_setitem  s"    


zTestLocSeries.test_loc_setitemr5   r8   r  c                 C   s\   t ddgddgdœ|d�}dddœ|jd	d d …f< t ddgddgdœ|d�}t ||¡ d S )
Nr#  ÚdefZghiZjklr�   rÅ   ZnewAZnewBr   rr  )r;   r5   r+   r,   r-   r-   r.   Útest_loc_assign_dict_to_row  s    z)TestLocSeries.test_loc_assign_dict_to_rowc                 C   sp   t ddgd�}tddd�ddœ|jd	< tddd�ddœ|jd	< t tddd�dggddgd	gd
�}t ||¡ d S )Nr   rõ   rˆ   rd   rã   rÜ  r¡   )r   rõ   r^   rw   )r   r   r&   r'   r(   rU  r-   r-   r.   Ú,test_loc_setitem_dict_timedelta_multiple_set&  s    ÿz:TestLocSeries.test_loc_setitem_dict_timedelta_multiple_setc                 C   sl   t ddgdgd�}ddg|jdddgf< t ttjtjgd	d
�dtjgdtjgdœddgd�}t ||¡ d S )Nr^   r6   r#   rë   rd   re   r"   rJ   r8   rÅ   rÝ   r	   )r   r&   r   r9   r‚   r'   r(   ry   r-   r-   r.   Ú3test_loc_set_multiple_items_in_multiple_new_columns1  s    ýú	zATestLocSeries.test_loc_set_multiple_items_in_multiple_new_columnsc                 C   sh   d}t jt|d��B tjdddd�}ttdƒ|d�}|jd d	ksFJ ‚W d   ƒ n1 sZ0    Y  d S )
Nz#Period with BDay freq is deprecatedr­   Ú2000rS   r~   rÐ  r	   z
2000-01-14rn  )r'   rÖ   r×   rƒ   r¹  r   r¼   r&   )r;   r±   r
   r*   r-   r-   r.   Ú test_getitem_loc_str_periodindexA  s
    z.TestLocSeries.test_getitem_loc_str_periodindexc                 C   sŠ   t tdƒƒ}t|d dd�}tdtjt|ƒtjd�i|d�}|j| }td|j	dd� 
tj¡itt |¡ d¡dd�d�}t ||¡ d S )	Nrp  iè  rœ  rÅ   r  r	   Zstable)r>   )rË   r¼   r   r   r9   rx   rå   Zintpr&   ZargsortrÞ   r›   r–  r'   r(   )r;   rƒ  r
   r+   rž   r,   r-   r-   r.   Útest_loc_nonunique_masked_indexI  s     
þz-TestLocSeries.test_loc_nonunique_masked_index)!r�   r‘   r’   r“   r”   r•   r   r8  r9  r<  r=  r>  r?  rA  rD  rE  r9   r›   rƒ   rË   r  rG  r   r–   rJ  rK  rM  rî  rï  rN  rO  rQ  rR  r-   r-   r-   r.   r.  J  s0   
	$

	

r.  )\Ú__doc__Úcollectionsr   r*  r   r   r   r   r÷   Zdateutil.tzr   Únumpyr9   r“   Zpandas._configr   Zpandas._libsr
   rr  Zpandas.compat.numpyr   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrî  Zpandasrƒ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr'   Zpandas.api.typesr   Zpandas.core.indexingr    Zpandas.tests.indexing.commonr!   r”   r•   r‚   r/   r0   r˜   r&  r3  rn  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.   Ú<module>   s®   P þþ
	 D           ?= w e J  	fýþ



þþ
	

