o
    �¨Êh:Ò ã                	   @   s@  d Z ddlm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.m/Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ej7 8dej9ej9dgdej9ej9gg d¢gej9dgdej9g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!ƒZ@G d"d#„ d#ƒZAG d$d%„ d%ƒZBG d&d'„ d'ƒZCG d(d)„ d)ƒZDG d*d+„ d+ƒZEej7 8d,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„ ƒZFd6d7„ ZGd8d9„ ZHd:d;„ ZId<d=„ ZJd>d?„ ZKd@dA„ ZLdBdC„ ZMdDdE„ ZNdFdG„ ZOdHdI„ ZPdJdK„ ZQej7 8dLdMe RdM¡e SdM¡g¡dNdO„ ƒZTej7 8dPe)dQƒdRfe)dSdTdU�dVfg¡dWdX„ ƒZUdYdZ„ ZVej7 Wd[¡ej7 Wd\¡d]d^„ ƒƒZXd_d`„ ZYG dadb„ dbƒZZdS )cz$ test label based indexing with loc é    )Ú
namedtuple)ÚdateÚdatetimeÚtimeÚ	timedeltaN)Úgettz)Úusing_pyarrow_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ÚisnaÚnotna)ÚseriesÚ
new_seriesÚexpected_serÚdfÚexpected© r0   úP/var/www/html/env/lib/python3.10/site-packages/pandas/tests/indexing/test_loc.pyÚtest_not_change_nan_loc1   s
   	r2   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   s*   t g d¢dgdd�}|jd d u sJ ‚d S )N)Ú1Ú2Nr#   Ústr©ÚcolumnsÚdtype)é   r#   )r   r&   ©Úselfr.   r0   r0   r1   Ú"test_none_values_on_string_columnsB   s   z*TestLoc.test_none_values_on_string_columnsÚkindr+   Úframec                 C   ó$   |  |› d�¡}t|ddtd� d S )NÚ_labelsr&   r:   ©Úfails©Úgetfixturevaluer!   ÚKeyError©r<   r>   ÚrequestÚobjr0   r0   r1   Útest_loc_getitem_intH   ó   zTestLoc.test_loc_getitem_intc                 C   r@   )NÚ_emptyr&   ÚcrB   rD   rG   r0   r0   r1   Útest_loc_getitem_labelN   rK   zTestLoc.test_loc_getitem_labelzkey, typs, axesÚf)ÚintsÚuintsÚlabelsÚmixedÚtsNÚfloatsé   )rP   rQ   rS   rR   rT   r   c                 C   ó4   |D ]}|  |› d|› �¡}t|d||td� qd S ©NÚ_r&   ©ÚaxesrC   rD   ©r<   ÚkeyÚtypsr[   r>   rH   ÚtyprI   r0   r0   r1   Ú#test_loc_getitem_label_out_of_rangeT   s   
ÿýz+TestLoc.test_loc_getitem_label_out_of_rangez	key, typs©r   é   r:   )rP   rQ   rU   )rb   ç      @r%   c                 C   s2   |D ]}|  |› d|› �¡}t|d|td� qd S )NrY   r&   rB   rD   )r<   r]   r^   r>   rH   r_   rI   r0   r0   r1   Útest_loc_getitem_label_listh   s   	ýz#TestLoc.test_loc_getitem_label_listÚempty)r   r:   é
   )é   é   é   rb   ))rb   rg   )rb   é   )r:   é   Úmultic                 C   rW   rX   rD   r\   r0   r0   r1   Ú(test_loc_getitem_label_list_with_missingv   s   
ÿþz0TestLoc.test_loc_getitem_label_list_with_missingr^   rP   rQ   c                 C   s.   |  |› d|› �¡}t|dg d¢dtd� d S )NrY   r&   )rV   é   é(   rb   rZ   rD   )r<   r^   r>   rH   rI   r0   r0   r1   Ú!test_loc_getitem_label_list_failsˆ   s   
ÿz)TestLoc.test_loc_getitem_label_list_failsc                 C   ó   d S ©Nr0   ©r<   r0   r0   r1   Ú!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 )NrL   ©TFTFr&   rB   )rE   r!   Ú
IndexError)r<   r>   rH   rI   r"   r0   r0   r1   Útest_loc_getitem_bool–   s   zTestLoc.test_loc_getitem_boolzslc, typs, axes, failsrg   )rR   rS   re   rT   rU   Ú20130102Ú20130104r:   é   rS   rj   c           	      C   s4   |D ]}|  |› d|› �¡}t|d|||d� qd S rX   )rE   r!   )	r<   Úslcr^   r[   rC   r>   rH   r_   rI   r0   r0   r1   Ú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 )NrV   r#   éÈ   Úcol1Úcol2)rf   rb   rb   ©r8   r
   r:   )rb   r~   r   rb   )r   ÚnpÚaranger&   r'   r(   ©r<   r.   r/   r0   r0   r1   Ú 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©rb   r:   rg   úString 1úString 2z2019-06-11 11:00:00z2019-06-11 12:00:00)Úchannelr%   ÚB)ÚdataúString 3©r%   r‰   r%   r‰   )r†   r‹   r‡   )r   r�   Únanr   ÚpdÚNaTÚvaluesr&   r)   r'   r(   )r<   r.   Údf2r/   r0   r0   r1   Útest_column_types_consistentË   s.   
ýýÿÿýýÿz$TestLoc.test_column_types_consistentzobj, key, expF©r8   ©Únamer	   c                 C   s8   |j | }t|ttfƒrt ||¡ d S ||ksJ ‚d S rr   )r&   Ú
isinstancer   r   r'   Úassert_equal)r<   rI   r]   ÚexpÚresr0   r0   r1   Ú#test_loc_getitem_single_boolean_argê   s   
z+TestLoc.test_loc_getitem_single_boolean_arg)Ú__name__Ú
__module__Ú__qualname__r=   ÚpytestÚmarkÚparametrizerJ   rN   r`   rd   rm   rp   rt   rw   ÚsliceÚ	TypeErrorrF   r|   r„   r’   r   r   r   r   rš   r0   r0   r0   r1   r3   A   sŒ    





úþþþûþ

üöþý$ùþr3   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!dHdI„ Z"ej dJg dK¢¡dLdM„ ƒZ#dNdO„ Z$dPdQ„ Z%dRdS„ Z&dTdU„ Z'dVdW„ Z(dXdY„ Z)dZd[„ Z*d\d]„ Z+ej ,d^¡d_d`„ ƒZ-ej dadbge.dcdbdcƒe dbg¡g¡ej dddege deg¡g¡dfdg„ ƒƒZ/ej dhd;digg dj¢fdke0g dl¢dmdnej1ej1gg dl¢gg dj¢do�fdpdqdrgfdkdsge0dpdiej1ej1gg dt¢dudvej1ej1ggg dj¢do�fdpg dw¢fejg dx¢ejd<�e0dpdiej1gg dx¢dudvej1ggg dw¢do�fe.dpdmdcƒg dy¢fg dx¢g dz¢ge0dpdiej1ej1gg d{¢g d|¢gg dj¢do�fe.dpdmdcƒg d}¢fejg dx¢g dz¢gejd<�e0dpdiej1ej1gg d~¢g d¢gg dj¢do�fe.dcdcdcƒdbdqgfe0dkdsgd€d�gd‚dƒggdbdqgdo�e0g d„¢g d…¢g d†¢gg dw¢do�fg¡d‡dˆ„ ƒZ2d‰dŠ„ Z3d‹dŒ„ Z4d�dŽ„ Z5d�d�„ Z6d‘d’„ Z7ejj8ej d“d”d•gd–d—gg¡d˜d™„ ƒƒZ9dšd›„ Z: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³„ ZFejjGeHƒ d´dµ�d¶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 dadÅdÆg¡dÇdÈ„ ƒZQej dÉeRejeSeTg¡dÊdË„ ƒZUdÌdÍ„ ZVej dÎdÏeSdpgƒfdÐeSdigƒfg¡dÑdÒ„ ƒZWdÓdÔ„ ZXej dÕd;g dÖ¢fe.dndsƒg d×¢fdmdug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çdbdbgdbe.dcƒ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þ„ Zhdÿ�d „ Zi�d�d„ Zj�d�d„ ZkdcS (  ÚTestLocBaseIndependentc                 C   sH   t tddƒd�}|jt dg¡d d … }|jdd … }t ||¡ d S )NÚ2021Ú2022r	   z2021/6/1r   é—   )r   r   r&   r�   ÚarrayÚilocr'   r(   ©r<   r.   Úresultr/   r0   r0   r1   Ú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  ƒ dS 1 s>w   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¬   Úx1Úx2r±   r²   r¯   r³   r°   r´   r…   ©rf   rV   rn   )r%   r‰   ÚCÚV1ÚV2©r%   r‰   r¸   ©ÚmatchN)r   r   Ú	set_indexrž   ÚraisesrF   r&   )r<   Úmsgr]   r.   r0   r0   r1   Ú;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   sT   t ddgiƒ}tjtdd�� |jd d …df  W d   ƒ d S 1 s#w   Y  d S )Nr#   rb   u   ×�r¼   )r   rž   r¿   rF   r&   r;   r0   r0   r1   Ú$test_loc_getitem_missing_unicode_key/  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 )
Nr:   )rV   rk   c                 S   s   g | ]}d |d  ‘qS )ÚABCDErk   r0   ©Ú.0Úxr0   r0   r1   Ú
<listcomp>9  ó    z@TestLocBaseIndependent.test_loc_getitem_dups.<locals>.<listcomp>rV   r	   )r%   r   r   r%   )r   r�   ÚrandomÚdefault_rngÚranger&   r'   Úassert_series_equal©r<   r.   r/   rª   r0   r0   r1   Útest_loc_getitem_dups4  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 )
Nrb   r:   r­   r®   Ú20130101©r#   r#   r#   r#   r#   r€   ©r
   r•   r   )r   r   r   r¨   r'   rÌ   r&   rÍ   r0   r0   r1   Útest_loc_getitem_dups2?  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 )NÚrtttiÚaaaderk   Úfloat64©r9   gq=
×£põ?r:   gÃõ(\�ÂÕ¿)Úmer­   r®   Úbar2r×   Úrr®   rØ   ç       @)rÙ   r®   Út)
r   Úlistr�   r‚   r¾   Úcopyr&   r'   rÌ   r(   )r<   Údf_origÚindexerr.   r0   r0   r1   Útest_loc_setitem_dupsS  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 smw   Y  t g d¢g d¢dœd
d�}t ||¡ d S )N)r   rb   rb   )éd   r}   é,  Úuint32rÖ   ©r#   r"   r#   rb   r"   )rá   éÉ   i-  Úuint64úitem of incompatible dtyper¼   )r   r   r&   r'   r(   Úassert_produces_warningÚFutureWarning)r<   Údf1ÚixÚnewb1r/   r‘   Únewb2r0   r0   r1   Útest_loc_setitem_slicev  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"   rM   ©r#   r"   rM   Úfloat32rÕ   rÖ   )r   r&   Úastyper�   r§   r'   r(   )r<   r.   Úcolsr/   r0   r0   r1   Ú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 s"w   Y  t tdƒƒ}tjtdd�� |ddg  W d   ƒ d S 1 sFw   Y  d S )	Nrg   rò   r	   únot in indexr¼   r#   Údr   )r   rË   rž   r¿   rF   )r<   Úsr0   r0   r1   Ú$test_getitem_label_list_with_missing¡  s   ÿ"ÿz;TestLocBaseIndependent.test_getitem_label_list_with_missingr
   TFru   c                 C   sb   t g d¢ƒ}dt|ƒ› dt|ƒ› �}tjt|d�� |j|  W d   ƒ d S 1 s*w   Y  d S )Nr…   z Boolean index has wrong length: z instead of r¼   )r   Úlenrž   r¿   rv   r&   )r<   r
   rù   rÀ   r0   r0   r1   Útest_loc_getitem_bool_diff_len¬  s
   "ÿz5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   rq   rr   r0   rs   r0   r0   r1   Ú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   ƒ d S 1 s9w   Y  d S )
Nr:   ©rg   rg   rò   )ÚerO   Úg©r
   r8   z$\"None of \[Index\(\[1, 2\], dtype='ú'\)\] are in the \[index\]\"r¼   rb   )
r   r�   rÉ   rÊ   r9   Úintrž   r¿   rF   r&   ©r<   r.   rÀ   r0   r0   r1   Ú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 s&w   Y  dt t¡› d	�}tjt|d�� |jdd
g  W d   ƒ n1 sMw   Y  d}tjt|d�� |jt	dgtd�  W d   ƒ n1 spw   Y  d|jd< tjtdd�� |jdd
g  W d   ƒ n1 s“w   Y  d|d< dt t¡› d	�}tjt|d�� |jd
g  W d   ƒ n1 s½w   Y  |d= tjt|d�� d|jd
g< W d   ƒ d S 1 sÞw   Y  d S )NrÖ   rb   r:   r#   z^-1$r¼   éÿÿÿÿz&\"None of \[Index\(\[-1, -2\], dtype='r  éþÿÿÿzE\"None of \[Index\(\['4'\], dtype='object'\)\] are in the \[index\]\"Ú4rg   r÷   z"\"None of \[Index\(\[-2\], dtype='r   )
r   Úobjectr&   rž   r¿   rF   r�   r9   r  r   ©r<   rù   rÀ   r0   r0   r1   Útest_loc_to_fail2Ç  s:   


ÿÿÿÿ
ÿÿÿ"ÿ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 s3w   Y  tjt|d	�� |jd
g  W d   ƒ d S 1 sQw   Y  d S )Nr#   r"   rb   r:   Úvaluer  z!\"None of \[Index\(\[3\], dtype='r  r¼   rg   )r   r�   r9   r  rž   r¿   rF   r&   r  r0   r0   r1   Útest_loc_to_fail3î  s   ÿÿ"ÿ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 s0w   Y  tjtdd�� |jddg  W d   ƒ d S 1 sOw   Y  d S )Nr…   r:   z"None of [Index([3], dtype='z')] are in the [index]r¼   rg   r÷   )
r   r&   r�   r9   r  rž   r¿   rF   ÚreÚescaper
  r0   r0   r1   Ú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 )
Nr:   )rk   rf   ©Úsize)Úalpha_0Úalpha_1Úalpha_2Úbeta_0Úbeta_1r	   c                 S   s   d| v S )NÚalphar0   ©rÆ   r0   r0   r1   Ú<lambda>  ó    z7TestLocBaseIndependent.test_loc_index.<locals>.<lambda>ÚbooleanrÖ   )r   r�   rÉ   rÊ   r
   Úmapr&   r§   r'   r(   r�   rŽ   )r<   r.   Úmaskr/   rª   r0   r0   r1   Ú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 ¡ s1J ‚|jddgk ¡ s<J ‚t t	dƒgd	gd
œƒjd }t
t	dƒd	gddgdd�}t ||¡ |jtksdJ ‚d S )Nr:   ©rj   rj   ©r%   r‰   r¸   ÚDr€   r%   r‰   r   rÏ   rb   rä   r#   r"   rÑ   )r   r�   rÉ   rÊ   r&   r¨   r8   Úallr
   r   r   r'   rÌ   r9   r	  r©   r0   r0   r1   Ú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-5rk   rÖ   ©r   Úval)r   r   r   rË   r�   Úint64rs   r0   r0   r1   Úframe_for_consistency4  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 s5w   Y  t 
||¡ d S )	Nr   rk   ©r
   r9   rÖ   r'  úincompatible dtyper¼   r   ©r   r   rË   r�   r)  rÝ   r'   rè   ré   r&   r(   )r<   r*  r(  r/   r.   r0   r0   r1   Útest_loc_setitem_consistency=  s   þÿÿz3TestLocBaseIndependent.test_loc_setitem_consistencyc                 C   ó€   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 s3w   Y  t 
||¡ d S )	Nr­   rk   r	   rÖ   r'  r,  r¼   r   r-  ©r<   r*  r/   r.   r0   r0   r1   Ú(test_loc_setitem_consistency_dt64_to_strO  s   þÿÿz?TestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_strc                 C   r/  )	Nç      ð?rk   r	   rÖ   r'  r,  r¼   r   r-  r0  r0   r0   r1   Ú*test_loc_setitem_consistency_dt64_to_float^  s   þÿÿ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 s&w   Y  t dtdgƒiƒ}t ||¡ d S )Nr   Ú20180101r,  r¼   Ústring)r   r   r   r'   rè   ré   r&   r(   rƒ   r0   r0   r1   Ú'test_loc_setitem_consistency_single_rowl  s   ÿ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 s'w   Y  t ||¡ t ddgd�}d|d< |d  tj¡|d< t ||¡ d S )NrÆ   Úyr“   rb   )r   r'   rè   r&   r(   rô   r�   r)  ©r<   r/   r.   r0   r0   r1   Ú"test_loc_setitem_consistency_emptyu  s   ÿz9TestLocBaseIndependent.test_loc_setitem_consistency_emptyc                 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|jd d …df ƒ|jd d …df< t|jd d …df ƒ|jd d …df< |jdd�}|jd d …df |jd d …df  |jd d …df< tj	t
dd�� |jd d …df tdƒ |jd d …df< W d   ƒ n1 s¬w   Y  tg d¢|jdd�}t |d |¡ d S )NÚRegion_1rj   )ÚSite_1r;  ÚSite_2r<  )l   ðBP[ l   _ˆZ l   q=.Z l   Ñ<.Z )ÚRegionÚSiteÚRespondentID©Únames)Ú
RespondentrB  rB  ÚOtherCatrC  )Ú	SomethingÚ	StartDateÚEndDatezYes/NoÚSomethingElseÚLevel_0Ú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:52rJ  rJ  z5/20/2015 8:27z5/20/2015 8:41)r%   z5/20/2015 8:33z5/20/2015 9:09rJ  ÚNor  )rB  rE  )rB  rF  F)rÝ   )rB  ÚDurationr,  r¼   l    XŽp7 )g      7@ç      (@g      ,@g      B@rÑ   )r   Úfrom_arraysr�   r�   r   r   r&   Úinfer_objectsr'   rè   ré   r   r   r
   rÌ   )r<   ÚlevelsÚmiÚclevelsrõ   r�   r.   r/   r0   r0   r1   Ú-test_loc_setitem_consistency_slice_column_len…  sJ   ýþüÿÿÿÿ
ÿþÿÿ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   r�   Ú
datetime64r&   r�   rô   r   r'   rÌ   )r<   rT  r.   r/   r0   r0   r1   Ú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{ï?šrY  T)rT  ÚcacheÚdate_dtÚ
date_dt_cpr:   rg   )r_  ú2017-01-24 13:26:12.711rf  )r`  ú2017-01-24 13:52:05.110rg  )ra  ú2018-10-22 13:44:05.888rh  )rb  ú2018-10-23 08:08:41.025ri  )r   rd  re  r“   )r   Ú	from_dictr   r&   Úapplyr'   r(   )r<   r.   r/   r8   r0   r0   r1   Útest_loc_modify_datetimeÉ  s"   
ÿ  üù
z/TestLocBaseIndependent.test_loc_modify_datetimec                 C   sf   t g d¢dgt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©rg   rk   rj   r%   ©r
   r8   r9   r…   r)  rÖ   ©rj   rg   rk   ©r:   rg   rb   r+  )r   Úfloatr�   r§   r&   r   r'   r(   ©r<   r.   Úserr/   r0   r0   r1   Ú#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 )Nrm  r%   r‰   rn  r5  r…   r)  rÖ   ro  rp  r+  )	r   rq  r�   r§   r&   r   rô   r'   r(   rr  r0   r0   r1   Ú)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‰   rn  r5  r)  rÖ   rg   r   r  )rc   rÚ   r2  rŒ   r	   )r   rq  r�   r§   r&   r¡   r'   r(   rƒ   r0   r0   r1   Ú*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	< ||j|d	f< tj|d
< ||j|d
f< t	||tj
d�}t	||d�}t||dœtd	d
gtd�d�j|d�}	t ||	¡ d S )Nc                 S   ó   g | ]}d t |ƒ ‘qS ©ú@©r6   ©rÅ   Úir0   r0   r1   rÇ     rÈ   zGTestLocBaseIndependent.test_loc_setitem_empty_frame.<locals>.<listcomp>rk   r)  rÖ   c                 S   rw  rx  rz  r{  r0   r0   r1   rÇ   	  rÈ   rj   r	   r%   r‰   r+  rŒ   r“   )rË   r�   r‚   rÜ   ÚsetÚunionr   r�   r&   r   rÕ   r   r	  Úreindexr'   r(   )
r<   Úkeys1Úval1Úkeys2Úval2r
   r.   ÚseraÚserbr/   r0   r0   r1   Útest_loc_setitem_empty_frame  s$   


ÿþz3TestLocBaseIndependent.test_loc_setitem_empty_framec                 C   s¶   t tj d¡ d¡tdƒtdƒd�}|jd }d|jd< |jd }|dks'J ‚|jd }|dks2J ‚d	|jd d …d
d…f< |jd d …d
d…f }|jd d …dd …f }t 	||¡ d S )Nr:   r   ÚabcdÚABCDr  ©r   r   rb   )r#   r%   r   r‰   r"  )
r   r�   rÉ   rÊ   Ústandard_normalrÜ   r¨   r&   r'   r(   r©   r0   r0   r1   Útest_loc_setitem_frame  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   r�   r�   r%   r&   r‰   r'   r(   rƒ   r0   r0   r1   Ú/test_loc_setitem_frame_nan_int_coercion_invalid2  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 )Nrb   r:   rg   rj   r#   r"   )rb   r:   r#   r   rÖ   ©r
   r9   r•   rk   rh   )r   r&   r   r   r	  r'   rÌ   r(   r©   r0   r0   r1   Ú#test_loc_setitem_frame_mixed_labels:  s   ÿz:TestLocBaseIndependent.test_loc_setitem_frame_mixed_labelsz.ignore:Setting a value on a view:FutureWarningc                 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®   Úbazrg   rÖ   rŒ   rb   r:   r   )r®   r�  r�  )rb   r:   r:   r%  r&  rk   r'  Ú20000101Ú20000102Ú20000103)r   rb   r   rb   r:   rj   )r   r   rË   r�   r)  r&   r
   r'   r(   r   r   )r<   Úwarn_copy_on_writer.   Úrhsr/   r0   r0   r1   Ú test_loc_setitem_frame_multiplesI  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|ƒr'|d
ks)J ‚d S )Nrb   r:   rg   rj   r%   r‰   r“   r   )r   r%   r—  )r   rô   r	  r&   r   )r<   rß   r  r.   rª   r0   r0   r1   Ú"test_loc_setitem_with_scalar_indexo  s   &

z9TestLocBaseIndependent.test_loc_setitem_with_scalar_indexzindex,box,expectedr:   r!  ri   )ri   ri   ri   ri   rg   rj   r“   rb   r¸   r"  rz   )rg   rj   ri   rz   rk   rh   r»   ©ri   rz   é	   )r‰   r¸   r"  ©rf   é   é   )rg   ri   rz   rš  )rk   rf   rœ  r�  )r¸   r%   r"  )rz   rj   ri   rš  )rœ  rh   rf   r�  rš  rf   rœ  r�  )ri   r:   rz   )rš  rj   rf   )rœ  rh   r�  c                 C   s<   t ddgddgddggddgd	�}||j|< t ||¡ d S )
Nrb   r:   rg   rj   rk   rh   r%   r‰   r“   ©r   r&   r'   r(   )r<   r
   Úboxr/   r.   r0   r0   r1   Ú 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   rb   )	r   r   Útz_localizerŽ   r�   Údtypesr¨   r'   rÌ   rÍ   r0   r0   r1   Ú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   éÜ  rb   iô  r:   r   )r   r   r£  r¨   r'   rÌ   rÍ   r0   r0   r1   Ú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 wordsrš  r   r:   rg   )r   r£  r¨   r'   rÌ   rÍ   r0   r0   r1   Útest_loc_coercion3Ï  s   z)TestLocBaseIndependent.test_loc_coercion3c                 C   sn   t dƒ d¡t dƒ d¡g}t|tddgtd�d�}ttd�}|d ||ƒd< |d	 ||ƒd< t ||¡ d S )
Né*   r¡  iš  r­   r®   rÖ   r	   r   rb   )r   r¢  r   r   r	  r'   rÌ   )r<   Ú
indexer_slÚvalsr/   rs  r0   r0   r1   Ú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 s*w   Y  d	}tjt|d�� |jd
d …  W d   ƒ n1 sJw   Y  d}tjt|d�� |jdd…  W d   ƒ n1 sjw   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©rb   r:   rg   rj   rk   rh   )rg   rj   rk   rh   ri   rz   rŒ   )r   rb   r   rb   r:   rg   r	   z5'Cannot get left slice bound for non-unique label: 1'r¼   rb   z5'Cannot get left slice bound for non-unique label: 0'r   r:   ©Úaxis)r:   rj   rk   rh   )rj   rh   ri   rz   )rb   rb   r:   rg   )r:   rj   rk   )rj   rh   ri   )rb   rb   r:   )r   rž   r¿   rF   r&   Ú
sort_indexr'   r(   )r<   r.   rÀ   rª   r/   r0   r0   r1   Útest_loc_non_uniqueè  s8   ÿÿÿÿÿþ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 s5J ‚t 	|¡}|j| }t | dg¡tt 
t|ƒt|ƒf¡dgt|ƒ |d�| |dd … ¡g¡}t ||¡ d S )NÚABCDEFGr:   r  r   Frb   )rÜ   rŽ   Úconcatr   r�   rÉ   rÊ   rŠ  rû   r‚   Úonesr
   Ú	is_uniquer&   Útaker'   r(   )r<   ÚlengthÚl2r8   r.   r  rª   r/   r0   r0   r1   Ú 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s,J ‚d S )Nrb   Ú
index_namer   )r   r
   r•   r¨   r&   ©r<   r.   rª   r0   r0   r1   Útest_loc_name.  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)rk   r:   c                 S   ó   g | ]}d |› �‘qS ©zi-r0   r{  r0   r0   r1   rÇ   ;  ó    zLTestLocBaseIndependent.test_loc_empty_list_indexer_is_ok.<locals>.<listcomp>rk   r#   r”   c                 S   r¿  rÀ  r0   r{  r0   r0   r1   rÇ   <  rÁ  r:   r  r   T)Úcheck_index_typeÚcheck_column_type)	r   r�   r¶  r   rË   r'   r(   r&   r¨   r;   r0   r0   r1   Ú!test_loc_empty_list_indexer_is_ok8  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¡s<J ‚t |¡� g d¢|jd d …df< W d   ƒ n1 sWw   Y  |rk|d g d¢k ¡ sjJ ‚n
|d dk ¡ suJ ‚t tj 	d¡ 
d¡ƒ}|s„|r”|d |jd d …df us“J ‚n|d |jd d …df u s£J ‚tg d¢ƒ}|jd d … }||us¶J ‚|d d … |usÀJ ‚t |¡� g d	¢|d d
…< W d   ƒ n1 sØw   Y  |rït|d d
… g d¢kƒsíJ ‚d S t|d d
… g d	¢kƒsýJ ‚d S )Nr#   r…   )rj   rj   rj   rj   r:   ©rf   rj   r   r­  r™  rg   )r   r&   r�   Úshares_memoryÚ_valuesr'   Úassert_cow_warningr#  rÉ   rÊ   rŠ  r   )r<   Úusing_copy_on_writer”  Úoriginal_dfÚ	sliced_dfr.   Úoriginal_seriesÚsliced_seriesr0   r0   r1   Ú&test_identity_slice_returns_new_objectK  s4   ÿ ÿ  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 - GH37497©Úreasonrg   r#   r"   r“   r:   )rž   rŸ   ÚxfailÚapplymarkerr   ÚziprË   rÝ   r&   r'   r(   r
   )r<   rH   rÉ  rŸ   rÆ   r7  ÚqÚzr0   r0   r1   Útest_loc_copy_vs_viewv  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s$J ‚|j|d g }|jdg }t ||¡ |j|d |g }t ||¡ d S )Nræ   rb   r:   r	   r   )r�   ÚiinfoÚmaxr   r&   r¨   r'   rÌ   )r<   Úumaxrs  rª   r/   r0   r0   r1   Ú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 s)w   Y  tjtdd�� |jdg  W d   ƒ d S 1 sGw   Y  d S )Nræ   rb   r:   r	   z-1r¼   r  )r�   r×  rØ  r   rž   r¿   rF   r&   )r<   rÙ  rs  r0   r0   r1   Ú!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Æ   r7  rÆ   r7  r“   )	r   r�   r§   r�   rû   r	  r&   r'   r(   ©r<   rŠ   r/   r.   r0   r0   r1   Ú*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   r�   r§   r�   rû   r	  rô   r)  r&   r'   r(   rÞ  r0   r0   r1   Ú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 )Nr2  rÝ  rÆ   r7  r7   )r   rÆ   )r   r�   r�   rq  r&   r'   r(   r8  r0   r0   r1   Ú*test_loc_setitem_empty_append_single_valueÂ  ó   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 s7w   Y  d
}tjt|d�� ||j
d	d…df< W d   ƒ d S 1 sZw   Y  d S )Nrb   r:   rÆ   r7  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ô   r�   r)  r9   r  rž   r¿   rF   r&   Ú
ValueError)r<   rŠ   r.   rÀ   r0   r0   r1   Ú$test_loc_setitem_empty_append_raisesÉ  s   ÿÿ"ÿ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 )Nrb   r:   rg   rj   r   r”   )r   r&   r�   r§   r   r'   rÌ   )r<   r.   rª   rù   r0   r0   r1   Útest_indexing_zerodim_np_arrayÚ  râ  z5TestLocBaseIndependent.test_indexing_zerodim_np_arrayc                 C   s,   t ddgƒ}|jt d¡ }|dksJ ‚d S )Nrb   r:   r   )r   r&   r�   r§   )r<   rù   rª   r0   r0   r1   Ú%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­  rj   iÚ  iä  r	   r+  )rh   rk   rj   rg   r:   rb   r´   r  )r   rË   r�   rÕ   r&   r'   rÌ   )r<   rŠ   r/   rª   r0   r0   r1   Útest_loc_reverse_assignmentç  s
   z2TestLocBaseIndependent.test_loc_reverse_assignmentzcan't set int into stringrÏ  c                 C   sª   dd„ t dƒD ƒ}t|dgd�}t|dgtd�}t ||¡ 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 )r:   gê-�™—q=)r6   r�   rÉ   rÊ   )rÅ   rY   r0   r0   r1   rÇ   õ  s   $ z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>rk   r%   r“   r7   c                 S   ó   g | ]}t |ƒ‘qS r0   ©rq  rÄ   r0   r0   r1   rÇ   ü  ó    c                 S   ré  r0   rê  rÄ   r0   r0   r1   rÇ     rë  )	rË   r   r	  r'   r(   r&   r
   rq  rô   )r<   Úcol_datarª   r/   r0   r0   r1   Ú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/2000Ú5min©Úfreqrš  rn   r:   rg   r	   z1/4/2000r  )r   ÚhourÚminuter   r�   rÉ   rÊ   rŠ  rû   r'   Úget_objr&   r   r—   r
   Ú
_with_freq)	r<   Úframe_or_seriesÚrngr  rI   rª   r˜   Úchunkr/   r0   r0   r1   Útest_loc_getitem_time_object  s   ÿ
z3TestLocBaseIndependent.test_loc_getitem_time_objectÚ
spmatrix_t)Ú
coo_matrixÚ
csc_matrixÚ
csr_matrixr9   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)rk   ri   rÖ   r:   r   )Ú
fill_value)rž   ÚimportorskipÚgetattrr�   Úeyer   ÚsparseÚfrom_spmatrixrË   r&   r�   Útoarrayr'   Úassert_numpy_array_equalr£  Úfullr   )r<   rú  r9   Ú	sp_sparseÚrowsrõ   Úspmatrixr.   Úitr_idxrª   r/   r0   r0   r1   Ú$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Ö   rb   )r   rŽ   r§   r   r&   r'   r(   r½  r0   r0   r1   Ú,test_loc_getitem_listlike_all_retains_sparse5  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þ  rk   r:   ©r2  rð   rð   rð   rð   )rð   r2  rð   rð   rð   rÕ   rð   rÖ   rb   )rž   r   r   r  r  r  r&   rË   r   r'   r(   )r<   r  r.   rª   r/   r0   r0   r1   Ú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Ö   r:   r2  rg   )r   r   r&   rË   r'   rÌ   )r<   rù   rª   r/   r0   r0   r1   Útest_loc_getitem_sparse_seriesL  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)r2  rð   ç      ø?)rð   rÚ   rð   rÖ   r   )r9   r•   )r   r   rq  r  r   r'   rÌ   )r<   rß   r.   rª   r/   r0   r0   r1   Ú!test_getitem_single_row_sparse_dfX  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/   r0   r0   r1   Ú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 )Nr:   rÅ  r  Ú0srf   rù   ©ÚstartÚperiodsrñ  )r   r�   rÉ   rÊ   Únormalr   r
   r&   r   r'   r(   rÍ   r0   r0   r1   Ú#test_loc_getitem_timedelta_0secondsg  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 )Nrb   r:   r  r  r	   )r   r&   r•   r'   rÌ   )r<   r(  r/   r.   rª   r0   r0   r1   Útest_loc_getitem_uint64_scalaro  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   ç      à?rb   rÖ   r	   Úzoorb   r:   )r   r   rÝ   r&   r¨   r'   rÌ   )r<   Úfloat_numpy_dtyper9   rs  r/   r0   r0   r1   Ú+test_loc_setitem_int_label_with_float_indexz  s   

zBTestLocBaseIndependent.test_loc_setitem_int_label_with_float_indexzindexer, expected)
rV   rb   r:   rg   rj   rk   rh   ri   rz   rš  )
r   rb   r:   rg   rV   rV   rV   rV   rz   rš  )
r   rb   r:   rV   rj   rV   rh   ri   rz   rš  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 )	Nrf   rù   ©rT  rÆ   r)  ©r9   r
   rV   rn  )r   rË   r   r&   r
   r'   r(   )r<   rß   r/   Útdir.   r0   r0   r1   Ú/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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 sJw   Y  t ||¡ d S )N©rb   rb   rb   rb   rb   Úaaaaarä   )rb   r"   r"   rb   rb   Úaabbarç   r¼   r"   r#   ©Ú
categoriesrb   r:   rg   )r   rÜ   r'   rè   ré   r   r&   r(   )r<   r.   r˜   r0   r0   r1   Ú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� |s,tnd¡}t ||¡ ||d< t |d t|dd	�¡ d S )
Nr#   r   )ÚAlphaÚNumericr/  rò   r,  rÑ   ústring[pyarrow_numpy]r”   )	r   r   r&   r   r
   rô   r	  r'   rÌ   )r<   Úusing_infer_stringr.   r-  rª   r/   r0   r0   r1   Ú'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s"J ‚tdƒ|jd ks-J ‚tjtd	d
�� tdddƒ|jd< W d   ƒ n1 sHw   Y  tdƒ ¡ |jd ksZJ ‚d S )NrM   z
2010-10-01rg   z
2008-08-08r   rb   )r   rM   )rb   rM   r,  r¼   iÕ  rk   )r:   rM   z
2005-05-05)	r   r   r�   r]  r&   r'   rè   ré   r   r;   r0   r0   r1   Ú"test_loc_setitem_datetime_coercion¾  s   ÿ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r#tnd d	d
�� ||jd d …|f< W d   ƒ n1 s<w   Y  t ||¡ d S )Nz
2015-07-12rg   rW  )r  r  rñ  Útzrï   r6  r  rn  r,  r¼   )	r   r   r�   rÕ   r'   rè   ré   r&   r(   )r<   r5  Útz_naive_fixturer7  r  r/   rª   r0   r0   r1   Ú!test_loc_setitem_datetimeindex_tzÈ  s   ÿüz8TestLocBaseIndependent.test_loc_setitem_datetimeindex_tzc           
      C   sj  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 …< |rV|	 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-05Ú30minrð  r:   rk   r	   r�  r   é   é   )é   éH   éx   é¨   )é   é   é   éJ   éK   éL   éz   é{   é|   éª   é«   é¬   )r   r   r�   rÉ   rÊ   rŠ  rû   r   r¡   rÝ   r&   rô   rq  r'   r(   r¨   )
r<   Úusing_array_managerr
   r.   ÚakeyÚbkeyÚaindsÚbindsrª   r/   r0   r0   r1   Útest_loc_setitem_time_keyØ  s@   ÿ







z0TestLocBaseIndependent.test_loc_setitem_time_keyr]   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%   rj   )r‰   Ú3)r%   r5   r…   ©rj   rk   rh   r“   ©r:   r:   r)  rÖ   )r   r:   r   )r   rk   r   rb   r®  )
r   Úfrom_tuplesr   rÝ   r�   Úzerosr&   r'   r(   r°  )r<   r]   rQ  r.   rI   r/   r0   r0   r1   Ú,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Ö   rj   r   )rj   r:   rg   ©r   r&   r'   rÌ   )r<   Úany_int_numpy_dtyper+   r/   r0   r0   r1   Útest_loc_setitem_uint_drop  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 )Nrf   rX  rV   r…   )r   r�   Útimedelta64r&   r   r'   rÌ   )r<   rs  r/   r0   r0   r1   Útest_loc_setitem_td64_non_nano  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 s,w   Y  tjt|d�� ||j	d d …< W d   ƒ d S 1 sKw   Y  d S )Nr:   rU  rÕ   rÖ   rã  r¼   )
r�   rÉ   rÊ   rŠ  r   rË   rž   r¿   rä  r&   )r<   rŠ   rs  rÀ   r0   r0   r1   Ú test_loc_setitem_2d_to_1d_raises  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   rg   )r  r  r…   rT  r™  r»   r  rb   )r!  r%   )rŽ   Úinterval_ranger   r&   r'   Úassert_almost_equal)r<   r
   r.   r/   rª   r0   r0   r1   Útest_loc_getitem_interval_index+  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   rg   Úboth)r  r  Úclosedr…   rT  r™  r»   r  r:   rb   )r  r  rñ  rc  rj   r%   rÑ   ©rb   r%   )rŽ   r_  r   r   r&   r'   rÌ   )r<   r
   r.   Ú	index_expr/   rª   r0   r0   r1   Ú test_loc_getitem_interval_index26  s   ÿ
z7TestLocBaseIndependent.test_loc_getitem_interval_index2Útpl©rb   ©rb   r:   c                 C   sR   t ddgddd�}t|d�}|j|g }t |gddd�}t|d�}t ||¡ d S )Nrh  ri  r%   F©r•   Útupleize_colsr	   )r   r   r&   r'   r(   )r<   rg  r  r.   rª   r/   r0   r0   r1   Ú+test_loc_getitem_index_single_double_tuplesB  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s5J ‚d S )NÚ	IndexTyper#   r"   r­   r®   r�  ÚbofÚcomposite_indexFrj  ri  )rg   rj   r%   r‰   r  rb   )r   r   r   r&   )r<   rm  Úidx1Úidx2r
   r.   rª   r0   r0   r1   Ú!test_loc_getitem_index_namedtupleQ  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|s2t	ndd	�j
}t |d j
|¡ d S )
Nr:   ©rk   rg   )r#   r"   rM   rø   rÿ   r�  r  Úquxr6   r1  rÖ   )r   r�   rÉ   rÊ   rŠ  r�   r&   r
   r   r	  r�   r'   r`  )r<   r2  r.   r/   r0   r0   r1   Ú$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 s+w   Y  |j
}tt d
¡gd t d¡g g d¢d�}t ||¡ d S )Nr:   )rn   rg   ÚABCr“   Úeventrç   r¼   r­   )rf   rw  rÕ   rg   r	  )r%   r‰   r¸   rw  r	   )r   r�   rÉ   rÊ   Útupler�   r'   rè   ré   r&   r£  r   r9   rÌ   r©   r0   r0   r1   Útest_loc_setitem_cast2i  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Úonerh   rÖ   )rb   rz  ri   )r   r�   r‚   Úint8r&   r£  rz  r9   r;   r0   r0   r1   Útest_loc_setitem_cast3y  s
   
z-TestLocBaseIndependent.test_loc_setitem_cast3c                 C   sf   |t dƒg d¢d�}g d¢}|jdkrdgdgdgg}||jt d	ƒ< |g d
¢|jd�}t ||¡ d S )Nrk   )rg   rj   rb   r   r:   r	   )rš  rf   rœ  r:   rš  rf   rœ  rg   )r   rb   rf   rš  rœ  )rË   Úndimr&   r
   r'   r—   )r<   rö  rI   r�   r/   r0   r0   r1   Ú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ä   r:   rb   r,  r#   )rb   r:   r:   rb   rb   ©r   r   r&   r'   r(   rƒ   r0   r0   r1   Ú.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*  r�   r§   r)  r.  r1  r3  r6  r9  rS  r^  rl  rt  ru  rv  r†  r‹  rŒ  rŽ  Úfilterwarningsr–  r¡   r˜  r   r�   r   r¤  r¦  r¨  r¬  r±  Úarm_slowr»  r¾  rÄ  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.  r3  r4  r9  rR  rX  r[  r]  r^  ra  rf  rl  rr  ru  ry  r|  r~  r€  r0   r0   r0   r1   r£   ÿ   sb   þþóþ
#
'
$þ
	2



%ÿþý
	$þý
	"ÿýþý	þý	 ÿýØþ
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 rr   )Úparam)r<   rH   r0   r0   r1   rß   ˜  s   zTestLocWithEllipsis.indexerc                 C   s   |}|t ur
| ¡ }|S rr   )r   Úto_frame)r<   Úseries_with_simple_indexrö  rI   r0   r0   r1   rI   �  s   zTestLocWithEllipsis.objc                 C   s   ||ƒd }t  ||¡ d S )N.)r'   r—   )r<   rI   rß   rª   r0   r0   r1   Ú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 r!|jjdkr!d S |t ju rOt|jtƒrOd}tj	t
|d�� ||ƒd|gf }W d   ƒ n1 sIw   Y  nt|ƒdkrk||ƒd|gf }||ƒ|g }t  ||¡ |t ju rrd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ß   rI   r]   rÀ   rª   r/   Úkey2r.   r0   r0   r1   Ú&test_loc_iloc_getitem_leading_ellipses¨  s&   $ÿ€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 s*w   Y  tjttd�� ||ƒd|gdf  W d   ƒ n1 sKw   Y  tjttd�� ||ƒdd|f  W d   ƒ n1 skw   Y  tjtdd�� ||ƒ|ddf  W d   ƒ d S 1 sŒw   Y  d S )Nr   r¼   )...úToo many indexers)r'   r¨   rû   r
   rž   r¿   r   r    )r<   rI   rß   r]   r0   r0   r1   Ú0test_loc_iloc_getitem_ellipses_only_one_ellipsisÁ  s   $ÿÿÿ"ÿzDTestLocWithEllipsis.test_loc_iloc_getitem_ellipses_only_one_ellipsisN)r›   rœ   r�   rž   r�  r'   r&   r¨   rß   rI   r‹  rŸ   r‚  r�  r’  r0   r0   r0   r1   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#   )rb   r:   rb   r:   )r#   r#   r"   r"   rb   r:   )r:   rb   r:   rb   rM   )rM   r#   r#   )rb   r:   rb   Údimr
   r8   c                 C   s˜   |g d¢g d¢gi}t t d¡ dd¡fi |¤Ž}t |¡}|dkr4|j|d d …f }t |j	|¡ d S |dkrJ|jd d …|f }t |j
|¡ d S d S )N)rM   r#   r#   r"   r"   )rb   rb   r:   rb   r:   é   rk   r
   r8   )r   r�   r‚   Úreshaper   rN  r&   r'   Úassert_index_equalr
   r8   )r<   r”  Úkeysr/   Úkwargsr.   Ú	exp_indexr™   r0   r0   r1   Ú'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sJ ‚|jj|jjdd … ks*J ‚|j d }|d j d }|jj|jjd ksBJ ‚|jj|jjd ksNJ ‚d S )NéÐ  r%   rb   )rœ  r:   r:   )r&   r
   rA  r•   )r<   Ú/multiindex_year_month_day_dataframe_random_dataÚymdrª   Úresult2r0   r0   r1   Ú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   rb   r	   )r   Úfrom_productr   r&   r'   rÌ   r¨   )r<   rQ  rs  r™   r/   Úres2r0   r0   r1   Ú.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 sJ ‚t dgddgg¡}t d gt|ƒ t|d�}|jd }|d u s9J ‚t dgt|ƒ t|d�}|jd }|dksPJ ‚d S )	NÚLevel1ÚLevel2)r¤  r¥  ÚLevel2_aÚLevel2_br&  )r¤  r¦  rb   )r   r   rN  r&   r¡  rû   r	  )r<   rs  rª   Úmidxr0   r0   r1   Ú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®   r�  r�  r­   r­   rt  rt  )rz  Útworz  rª  rz  rª  rz  rª  ÚfirstÚsecondr@  )rb   rb   rb   rb   rb   rb   rb   rb   r	   rá   )r�  rz  )r­   rª  )rb   rb   rá   rá   rá   rá   rb   rb   )r   rV  rÓ  r   r&   r'   rÌ   )r<   r
   rª   r/   r0   r0   r1   Ú!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%  Ú10minr³  ©rñ  r  il  rb   i4  )r   r   rË   r&   r   r'   rÌ   )r<   Útimesrs  rª   r0   r0   r1   Ú7test_loc_getitem_slice_datetime_objs_with_datetimeindex,  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 )Nrf   rä   z
2010-01-01z
2010-01-10r	   z
2010-01-05r#   r"   r   rj   )r   rË   r   r&   r   r'   r(   r©   r0   r0   r1   Ú3test_loc_getitem_datetime_string_with_datetimeindex2  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®   r³  ©ÚbahÚbamr´  r³  r´  r%   r‰   r@  r2  rb   rÚ   r:   rc   rg   ç      @rj   ç      @rk   ç      @rh   r¸   r"  r  r   )Úlevel)r   rb   rj   r€   r³  )r   rV  r   r°  r¸  r&   r'   r(   )r<   rQ  r.   r/   rª   r0   r0   r1   Ú3test_loc_getitem_sorted_index_level_with_duplicates?  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   rg   )r#   r"   rM   r   r	  rY  ©r<   rª   r/   r0   r0   r1   Ú1test_additional_element_to_categorical_series_loca  ó   
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ò   r¼  rÖ   r#   rg   ©r#   r"   rM   r#   rY  r½  r0   r0   r1   Ú'test_additional_categorical_element_loch  r¿  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Ö   rg   rb   r:   )r   r   r   r�   r�   r&   r'   rÌ   )r<   Úany_numeric_ea_dtypeÚsrsr/   r0   r0   r1   Ú&test_loc_set_nan_in_categorical_serieso  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ò   r¼  rÖ   rg   rÀ  r#   r"   rM   rY  )r<   rÅ  Úsrs_enlargeÚsrs_setintor/   r0   r0   r1   Ú,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 )Nr:   é   r#   r"   rf   r   rk   rb   ÚIndex1ÚIndex2)rP  ÚcodesrA  )rŠ   r
   Fr¼  )r-  Úorderedr•   r9   )r   r�   r‚   r   r   rË   r
   rP  r'   r—  r&   rÍ   r0   r0   r1   Ú5test_loc_getitem_preserves_index_level_category_dtype‘  s&   ýþ	ûzKTestLocWithMultiIndex.test_loc_getitem_preserves_index_level_category_dtypeÚlt_valuern   rf   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   ƒ d S 1 s8w   Y  d S )	Nr#   )r�  é   é"   é-   Úaabb©r   rb   r:   rg   r	   z\['b'\] not in indexr¼   r"   )r   rÜ   rž   r¿   rF   r&   )r<   rÏ  r.   r0   r0   r1   Ú>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®   r�  r   rb   r	   )	r�   r§   r�   r   rN  r   r&   r'   rÌ   )r<   Úlev1Úlev2rQ  rs  rª   r/   r0   r0   r1   Ú'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Úxyrb   r:   )rÙ  rÚ  Únumr@  rz   r	   r#   r   rj   )
r   r¡  rÜ   r   rË   r&   r
   Ú	droplevelr'   r—  )r<   rQ  rs  Ú
loc_resultr/   r0   r0   r1   Útest_loc_drops_level½  s   ÿz*TestLocWithMultiIndex.test_loc_drops_level)r›   rœ   r�   rž   rŸ   r    r›  r   r£  r©  r­  r±  r²  r»  r¾  rÁ  rÄ  r�   r�   rŽ   ÚNAr�   rÈ  rÎ  rÕ  rØ  rÞ  r0   r0   r0   r1   r“  Ô  s>    ùþ"

r“  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¡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 s'w   Y  tdt|d ƒidd�}t ||¡ d S )Né2   Ú_SIZE_CUTOFFrÆ   r)  rÖ   rb   )ÚcontextÚsetattrÚlibindexr   rË   r&   r'   r(   )r<   ÚmonkeypatchÚsize_cutoffrª   r/   r0   r0   r1   Ú/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Ö   rb   r	   rg   ©r   r	  r&   r'   rÌ   ©r<   rs  r0   r0   r1   Útest_loc_setitem_empty_seriesÕ  ó
   


 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Ö   r2  rb   r	   rc   rg   ré  rê  r0   r0   r1   Ú#test_loc_setitem_empty_series_floatß  rì  z?TestLocSetitemWithExpansion.test_loc_setitem_empty_series_floatc              	   C   s”   t td�}d|jd< t |t dgtdgtd�d�¡ d|jd< t |t ddgtddgtd�d�¡ d|jd< t |t g d¢tg d	¢td�d�¡ d S )
NrÖ   rb   r­   r	   rg   r®   rj   )rb   rg   rj   )r­   r®   rg   )r   r	  r&   r'   rÌ   r   rê  r0   r0   r1   Ú%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|< q!td|d
�}t ||¡ d S )Nr´   rœ  rb   ú
US/Pacific)Útzinfoc                    s   g | ]}ˆ t |d  d� ‘qS )r²  )Úseconds)r   r{  ©Úbaser0   r1   rÇ   ü  ó    zUTestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dst.<locals>.<listcomp>é   r   r	   )r   r   rË   r   r&   r'   rÌ   )r<   Úidxsrª   rT   r/   r0   rò  r1   Ú%test_loc_setitem_incremental_with_dstù  s   zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstÚconvc                 C   ó   | S rr   r0   r  r0   r0   r1   r    ó    z$TestLocSetitemWithExpansion.<lambda>c                 C   ó   |   ¡ S rr   )Úto_datetime64r  r0   r0   r1   r    r  c                 C   rû  rr   )Úto_pydatetimer  r0   r0   r1   r    r  c                 C   s
   t  | ¡S rr   )r�   r]  r  r0   r0   r1   r  	  ó   
 )r<   rü  rý  znp.datetime64)Úidsc                 C   sn   t dƒ}t dƒ}tƒ }d|j||ƒdf< d|j||ƒdf< tdddgi||gtdgtd�d	�}t ||¡ d S )
Nz20130101 09:00:00z20130101 10:00:00rá   rz  r}   g      Y@g      i@rÖ   r  )r   r   r&   r   r	  r'   r(   )r<   rø  Údt1Údt2r.   r/   r0   r0   r1   Ú#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%   rb   r"   )rÍ  r‰   rŒ   r  )r<   rÍ  rª   r/   r0   r0   r1   Ú1test_loc_setitem_categorical_column_retains_dtype  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©r7  z2017-10-29 03:00:00+0100z2016-10-10 03:00:00ÚleftrW  )Ú	inclusiverñ  r  r  r�  rn  )r   r   r   r&   r�   r�   rû   Úappendr   r	  r'   r(   )r<   r  ÚendrT   r  rª   r/   r0   r0   r1   Ú0test_loc_setitem_with_expansion_and_existing_dst#  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Š   r8   ÚnewÚoldÚnew_colr¡  rï  r   )rb   r   r”   Ú1s)r   r   r¾   r
   r¢  r   r  Ú
tz_convertrÝ   r&   r   r'   rÌ   r   )r<   r.   Úvr‘   r/   r0   r0   r1   Útest_setitem_with_expansion5  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 )Nrb   r‰  r:   )rb   rb   rg   r   rÖ   )	r   r&   r�   Úinfr8   r   rÕ   r'   r—  r©   r0   r0   r1   Ú0test_loc_setitem_with_expansion_inf_upcast_emptyK  s   

zLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_inf_upcast_emptyz"ignore:indexing past lexsort depthc                 C   sf  t |ƒs	t d¡ | d¡}t |ƒ}t |¡ tj¡}t||dgd�}d}||vs+J ‚| 	t |ƒ|¡}t
|tƒrC|d d |ksBJ ‚n|d |ksKJ ‚t |d ¡ tj¡}t||dgd�}| ¡ }	||	j|df< t |	|¡ | ¡ d }
||
j|< |d  tj¡}t |
|¡ | ¡ }	||	j|df< tt|ƒtjg tjg| t|ƒg dœ|d	�}t |	|¡ d S )
NzNot relevant for empty Indexr:   r   r  Úkapowr  rb   ©r   rb   r	   )rû   rž   ÚskipÚrepeatr�   r‚   rô   r)  r   Úinsertr–   r   rÕ   rÝ   r&   r'   r(   rÌ   rÜ   r�   rq  )r<   r
   ÚNÚarrÚorigr]   rš  Úexp_datar/   r.   rs  r0   r0   r1   Ú/test_loc_setitem_with_expansion_nonunique_indexV  s8   



&þzKTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_nonunique_indexr9   )ÚInt32ÚInt64ÚUInt32ÚUInt64ÚFloat32Ú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 )NrÔ  rÖ   rŠ   r	   F©rÃ  )r   r   r
   r&   r'   r(   rÇ  )r<   r9   rs  r.   rª   r0   r0   r1   Ú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s9J ‚t
 ||¡ d S )Nr%   rk   ú
2016-01-01rg   rï  ©r  r7  ra   r‰   rÖ   rŒ   )r   rË   r   r&   r  r   rŽ   r�   r9   r£  r'   r(   )r<   r.   r(  Úbexr/   r0   r0   r1   Ú#test_loc_setitem_ea_not_full_column•  s   z?TestLocSetitemWithExpansion.test_loc_setitem_ea_not_full_columnN)r›   rœ   r�   rè  rë  rí  rî  r÷  rž   rŸ   r    r  r  r	  r  r  r‚  r  r$  r(  r0   r0   r0   r1   rà  Ê  s6    



üø



-ÿ
rà  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestLocCallablec                 C   sx  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sºJ ‚d S )N©rb   r:   rg   rj   rÓ  r»   c                 S   ó
   | j dkS ©Nr:   ©r%   r  r0   r0   r1   r  ª  rþ  zATestLocCallable.test_frame_loc_getitem_callable.<locals>.<lambda>r:   c                 S   ó
   | j dkS )Nr"   )r‰   r  r0   r0   r1   r  ­  rþ  r"   c                 S   r+  r,  r-  r  r0   r0   r1   r  °  rþ  c                 S   r.  ©Nr‰   r“   r  r0   r0   r1   r  °  rþ  )FTFc                 S   r+  r,  r-  r  r0   r0   r1   r  ³  rþ  c                 S   ó   dS r/  r0   r  r0   r0   r1   r  ³  rú  r‰   c                 S   r+  r,  r-  r  r0   r0   r1   r  ¶  rþ  c                 S   ó   ddgS ©Nr%   r‰   r0   r  r0   r0   r1   r  ¶  r  r%   c                 S   r.  r,  r-  r  r0   r0   r1   r  ¹  rþ  c                 S   r1  r2  r0   r  r0   r0   r1   r  ¹  r  c                 S   r0  )Nrb   r0   r  r0   r0   r1   r  ½  rú  c                 S   r0  r$   r0   r  r0   r0   r1   r  ½  rú  rd  )r   rÜ   r&   r'   r(   r%   r‰   rÌ   ©r<   r.   r™   r0   r0   r1   Ú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*  rÓ  r»   c                 S   r+  r,  r-  r  r0   r0   r1   r  Ä  rþ  zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r%   r‰   r:   rg   c                 S   r1  r2  r0   r  r0   r0   r1   r  Ç  r  c                 S   r1  r2  r0   r  r0   r0   r1   r  Ê  r  )r   rÜ   r&   r'   r(   r%   rÌ   r3  r0   r0   r1   Ú'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*  rÓ  ©ÚXrU  rˆ  r	   c                 S   r1  ©Nr%   r¸   r0   r  r0   r0   r1   r  Ò  r  zHTestLocCallable.test_frame_loc_getitem_callable_labels.<locals>.<lambda>r%   r¸   c                 S   r1  r8  r0   r  r0   r0   r1   r  Õ  r  c                 S   r1  r8  r0   r  r0   r0   r1   r  Ø  r  c                 S   r0  ©Nr7  r0   r  r0   r0   r1   r  Ø  rú  r7  c                 S   r1  r8  r0   r  r0   r0   r1   r  Û  r  c                 S   ó   dgS r9  r0   r  r0   r0   r1   r  Û  ó    c                 S   r0  r9  r0   r  r0   r0   r1   r  ß  rú  c                 S   r:  r9  r0   r  r0   r0   r1   r  â  r;  c                 S   r1  r8  r0   r  r0   r0   r1   r  å  r  c                 S   r1  r8  r0   r  r0   r0   r1   r  è  r  )r   rÜ   r&   r'   r(   rÌ   r3  r0   r0   r1   Ú&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*  rÓ  rÖ   r6  rˆ  r	   iìÿÿÿc                 S   r1  r8  r0   r  r0   r0   r1   r  ô  r  zATestLocCallable.test_frame_loc_setitem_callable.<locals>.<lambda>r%   r¸   rV   c                 S   r1  r8  r0   r  r0   r0   r1   r  ú  r  r  c                 S   r1  r8  r0   r  r0   r0   r1   r   	  r  c                 S   r0  r9  r0   r  r0   r0   r1   r   	  rú  r7  rk   rf   c                 S   r1  r8  r0   r  r0   r0   r1   r  	  r  c                 S   r:  r9  r0   r  r0   r0   r1   r  	  r;  r  c                 S   r0  r9  r0   r  r0   r0   r1   r  	  rú  c                 S   r:  r9  r0   r  r0   r0   r1   r  	  r;  c                 S   r1  r8  r0   r  r0   r0   r1   r  	  r  éüÿÿÿc                 S   r1  r8  r0   r  r0   r0   r1   r  	  r  )
r   r   rÜ   r	  rÝ   r&   r'   r(   r�   r§   )r<   r.   r™   r˜   r0   r0   r1   Útest_frame_loc_setitem_callableë  sX   þ z/TestLocCallable.test_frame_loc_setitem_callableN)r›   rœ   r�   r4  r5  r<  r>  r0   r0   r0   r1   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…   )r~   r   )ú
2020-08-01z
2020-07-02ú
2020-08-05r	   r#   rM   rb   rg   r@  rA  z2020-08)r   r   r&   r'   r(   rÍ   r0   r0   r1   Ú5test_loc_getitem_partial_string_slicing_datetimeindex&	  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-01rV  ©r  r  rñ  z2017-12r  )rŽ   Úperiod_rangeÚ	to_seriesr&   r¨   r'   rÌ   )r<   Úpirs  rª   r/   r0   r0   r1   Ú8test_loc_getitem_partial_string_slicing_with_periodindex3	  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Ú1hrE  z1 daysr  )r   rG  r&   r¨   r'   rÌ   )r<   rë   rs  rª   r/   r0   r0   r1   Ú;test_loc_getitem_partial_string_slicing_with_timedeltaindex;	  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Æ   rg   Údaysr%  r	   r   ú0 days)r   rË   r   r¨   r&   r'   rÌ   )r<   r.   r/   Úslicedr0   r0   r1   Ú#test_loc_getitem_str_timedeltaindexC	  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 )Nrb   rk   z
2019-12-30z
2020-01-01z
2019-12-25rS  z
2019-12-19r  r	   r:   )r   r   r¡   r'   r—   r&   )r<   Útz_aware_fixturerR  rö  rI   r/   rß   rª   r0   r0   r1   Ú/test_loc_getitem_partial_slice_non_monotonicityJ	  s4   ûøþþûþ


zHTestPartialStringSlicing.test_loc_getitem_partial_slice_non_monotonicity)r›   rœ   r�   rB  rI  rM  rQ  rž   rŸ   r    rU  r0   r0   r0   r1   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 ]c}|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 ||¡ q$d S )Nr·  rÕ   rÖ   c                 S   ó   g | ]
}t d d|ddƒ‘qS ©éÑ  rb   rf   r   ©r   r{  r0   r0   r1   rÇ   v	  ó    zMTestLabelSlicing.test_loc_getitem_slicing_datetimes_frame.<locals>.<listcomp>r*  r	   r¸  c                 S   rW  rX  rZ  r{  r0   r0   r1   rÇ   |	  r[  )rb   r:   r:   rg   rj   rY  rb   rf   rj   rœ  z20010101 11)r   r�   r‚   r&   r   r'   r(   r¨   )r<   Ú	df_uniqueÚdf_dupsr.   rª   r/   r0   r0   r1   Ú(test_loc_getitem_slicing_datetimes_framep	  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sAJ ‚d S )Nz2017-10-29 01:30:00zEurope/Berlinrk   z30 min)r7  r  rñ  )r   rb   r:   rg   rj   r	   z2017-10-29 02:30:00+02:00r  z2017-10-29 02:00:00+01:00r:   rg   rj   )r   r   r   r&   r'   rÌ   )r<   r  Úseries2Út_1Út_2rª   r/   r0   r0   r1   Ú'test_loc_getitem_label_slice_across_dst�	  s   ÿz8TestLabelSlicing.test_loc_getitem_label_slice_across_dstr
   rC  rD  rV  rE  rJ  rK  rL  c                 C   s8   |  ¡ }|jd |d … }|jd d… }t ||¡ d S )Nr  r  )rG  r&   r¨   r'   rÌ   )r<   r
   rs  rª   r/   r0   r0   r1   Ú-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‹ßÖË|é@r:   ©rg   r:   r	   g3333c|é@g    �|é@g3333“|é@gÍÌÌÌÜ|é@rg   )r   r�   rÉ   rÊ   r&   rû   )r<   r
   r.   Ús1r0   r0   r1   Ú%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s"J ‚t|jdd … ƒd	ks/J ‚tjdd|d�}d
|d< ||_t|jdd … ƒdksKJ ‚t|jdd … ƒd	ksXJ ‚d S )Nr:   rf   rV   rÖ   r	   rM  rz   g      )@ri   gffffff(@)r   r�   rÉ   rÊ   r‚   rû   r&   r
   )r<   r#  r9   rs  r  r0   r0   r1   Ú'test_loc_getitem_float_slice_floatindex¹	  s   ÿz8TestLabelSlicing.test_loc_getitem_float_slice_floatindexzstart,stop, expected_slicer   ÚnsNrœ  rb   r"  rh   ri   rj   rk   c                 C   s>   t tdƒtddƒƒ}|jt||ƒ }|j| }t ||¡ d S )Nrœ  rO  z10 days)r   rË   r   r&   r¡   r¨   r'   rÌ   )r<   r  ÚstopÚexpected_slicers  rª   r/   r0   r0   r1   Ú$test_loc_getitem_slice_label_td64objÈ	  s   

z5TestLabelSlicing.test_loc_getitem_slice_label_td64objr  Ú2018Ú2020c                 C   sd   |g d¢t dƒt dƒt dƒgd�}tjtdd�� |j|d…  W d   ƒ d S 1 s+w   Y  d S )	Nr…   Ú2016Ú2019Ú2017r	   z,Value based partial slicing on non-monotonicr¼   r¥   )r   rž   r¿   rF   r&   )r<   rö  r  rI   r0   r0   r1   Ú)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 )Nrj   r«  r:   Úthirdr	   )rË   r&   r'   r—   )r<   rö  r  rI   rª   r/   r0   r0   r1   Ú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 )	Nrb   r:   rg   )Útestrb   r:   r   r	   rÖ   )rŠ   r
   r8   )r   r   r	  r'   r(   r&   rƒ   r0   r0   r1   Ú*test_loc_getitem_slice_columns_mixed_dtypeê	  s
   ÿ"z;TestLabelSlicing.test_loc_getitem_slice_columns_mixed_dtype)r›   rœ   r�   r^  rb  rž   rŸ   r    rŽ   rF  r   rc  rf  rg  r�   r\  r¡   rk  rq  rs  ru  r0   r0   r0   r1   rV  o	  s2    þþ
ýþ



rV  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   sb   |› d�}|j dkr/||dd�}tjt|d�� |j|  W d   ƒ d S 1 s(w   Y  d S d S )Nz7: boolean label can not be used without a boolean indexr  r	  r+  r¼   )r�  rž   r¿   rF   r&   )r<   r
   rö  rw  ÚmessagerI   r0   r0   r1   Ú'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Ö   r	  r+  )r   r&   )r<   rö  rw  rI   r0   r0   r1   Útest_loc_bool_should_not_raiseÿ	  s   ÿz<TestLocBooleanLabelsAndSlices.test_loc_bool_should_not_raisec                 C   sR   d}||dd�}t jt|d�� |jdd…  W d   ƒ d S 1 s"w   Y  d S )NzEslice\(True, False, None\): boolean values can not be used in a slicer	  r+  r¼   TF)rž   r¿   r¢   r&   )r<   r
   rö  rx  rI   r0   r0   r1   Útest_loc_bool_slice_raises
  s   ÿ"ÿz8TestLocBooleanLabelsAndSlices.test_loc_bool_slice_raisesN)	r›   rœ   r�   rž   rŸ   r    ry  rz  r{  r0   r0   r0   r1   rv  ó	  s    


rv  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 ]$\}}| ¡ }d|j|df< t |ttdƒdd�dgd	d
�}t ||¡ q2d S )NrÆ   rf   rù   r%  rg   )
r   rb   r:   rg   rf   rf   rf   rf   rf   rf   )
r   rb   r:   rf   rj   rk   rh   ri   rz   rš  )
rf   rf   rf   rg   rj   rk   rh   ri   rz   rš  r)  rn  )	r   rË   r   r
   rÓ  rÝ   r&   r'   r(   )r<   r.   Ú
conditionsÚexpected_dataÚcondrŠ   rª   r/   r0   r0   r1   Ú)test_loc_setitem_bool_mask_timedeltaindex
  s$   "ýüöz<TestLocBooleanMask.test_loc_setitem_bool_mask_timedeltaindexr7  Nr¡  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 )Nru   Ú20010101rj   r&  r#   r	   rÕ   )
r�   r§   r   r   r‚   rô   rÝ   r&   r'   r(   )r<   r7  r  r  r.   rª   r0   r0   r1   Ú+test_loc_setitem_mask_with_datetimeindex_tz'
  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 )Nr¹  rg   r:   ÚABrî  rL  )r  rñ  r€   r   r¸   rb   )r   r�   r‚   r–  rÜ   r   rÝ   r
   rŽ   r�   r%   r&   r'   r(   )r<   r.   r/   r  r0   r0   r1   Ú2test_loc_setitem_mask_and_label_with_datetimeindex8
  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s8J ‚t ||¡ d S )Nr   l   ,GsO1Úcolrb   TF)	r   r   r   rÝ   r¨   Ú_valuer&   r'   r(   )r<   Útd1Útd2r.   Údf_copyrs  r/   rª   r0   r0   r1   Ú'test_loc_setitem_mask_td64_series_valueG
  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‰   rb   r  )rÝ   r&   r�   r   r
   r8   r'   r(   )r<   r  r/   r  r�   r0   r0   r1   Ú#test_loc_setitem_boolean_and_columnV
  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 s§w   Y  |r¶t ||¡ d S t ||¡ d S )Nr…   rT  rä   r#   r·   )r:   rb   r   r	   )FFT)rb   r:   rf   r›  )r   r&   r'   r(   r   rÝ   rÈ  )r<   rÉ  r”  r.   r/   rÞ   rs  r0   r0   r1   Ú)test_loc_setitem_ndframe_values_alignmentb
  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   r	  rÝ   r&   r�   r§   Úbool_r'   r(   rƒ   r0   r0   r1   Ú 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Æ   r7  rä   rÖ   r"   Fr#   r�  rƒ   r0   r0   r1   Ú$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Æ   r7  rä   rÖ   r"   Tr#   r�  rƒ   r0   r0   r1   Ú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‘  r0   r0   r0   r1   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 )ÚTestLocListlikerŸ  c                 C   rù  rr   r0   r  r0   r0   r1   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 saw   Y  t
jt|d�� |||ƒ  W d   ƒ n1 s~w   Y  t
jt|d�� | ¡ j||ƒ  W d   ƒ d S 1 sŸw   Y  d S )	Nr%   r‰   rg   r	   r  rb   r÷   r¼   )r   r�   r�   r   rË   r&   r'   rÌ   r‰  r(   rž   r¿   rF   )r<   rŸ  Úcirs  rª   Úser2Úci2rÀ   r0   r0   r1   Ú8test_loc_getitem_list_of_labels_categoricalindex_with_na™
  s(   ÿÿ"ÿzHTestLocListlike.test_loc_getitem_list_of_labels_categoricalindex_with_nac                 C   sh   t jg d¢dd�}tg d¢tdddd�ƒ}tjtd	d
�� |j|  W d   ƒ d S 1 s-w   Y  d S )N)ú
2001-01-04z
2001-01-02r™  z
2001-01-14r]  rÖ   )r:   rk   rz   rœ  z
2001-01-01r"  rj   r¯  r÷   r¼   )r�   r§   r   r   rž   r¿   rF   r&   )r<   r]   rs  r0   r0   r1   Ú1test_loc_getitem_series_label_list_missing_valuesµ
  s   ÿ"ÿzATestLocListlike.test_loc_getitem_series_label_list_missing_valuesc                 C   sh   t t ddg¡t ddg¡d�}tjtdd�� |jt ddg¡  W d   ƒ d S 1 s-w   Y  d S )Nl   PF
AHl   UBÿeNl   P2ˆ$Þ$én©r
   rŠ   r÷   r¼   l   NZ4FçG)r   r�   r§   rž   r¿   rF   r&   rê  r0   r0   r1   Ú9test_loc_getitem_series_label_list_missing_integer_values¾
  s   þ"ÿzITestLocListlike.test_loc_getitem_series_label_list_missing_integer_valuesÚ	to_periodTFc                 C   sV  t ddddd�}|r| d¡}tddg|dd	�}tdƒtdƒg}|r)d
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   ƒ d S 1 s¤w   Y  d S )Nú
2011-01-01z
2011-01-02r"  r  )rñ  r•   çš™™™™™¹?çš™™™™™É?rù   rÑ   c                 S   ó   g | ]}|  d ¡‘qS ©r"  ©r�  rÄ   r0   r0   r1   rÇ   Ò
  rÁ  zRTestLocListlike.test_loc_getitem_listlike_of_datetimelike_keys.<locals>.<listcomp>T)rÂ  c                 S   r¡  r¢  r£  rÄ   r0   r0   r1   rÇ   ß
  rÁ  )r   r   rŸ  )r•   r9   ú
2011-01-03c                 S   r¡  r¢  r£  rÄ   r0   r0   r1   rÇ   ì
  rÁ  r÷   r¼   )r   r�  r   r   r&   r
   rõ  r'   rÌ   r   r9   rž   r¿   rF   )r<   r�  r  rs  r˜  rª   r˜   r0   r0   r1   Ú.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 )Nrb   r:   rj   rk   ri   rz   )ÚcobraÚviperÚ
sidewinderÚ	max_speedÚshieldr  r­   r¦  r§  r”   )r   r¨   r
   r•   r&   r   r'   r(   rÍ   r0   r0   r1   Útest_loc_named_indexñ
  s   ýz$TestLocListlike.test_loc_named_indexN)r›   rœ   r�   rž   rŸ   r    r�   ÚasarrayrÜ   r˜  rš  rœ  r¥  r«  r0   r0   r0   r1   r”  ˜
  s    
		
)r”  z%columns, column_key, expected_columns)éÛ  r¥  iÝ  r­  r¥  rb   )r­  r¥  ÚAllr®  r:   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 )Nr:   rþ   rv  r€   r»   Tr#  )	r   r�   rÉ   rÊ   rÜ   r¨   r&   r'   r(   )r8   Ú
column_keyÚexpected_columnsr.   r/   rª   r0   r0   r1   Ú*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 )Nr:   )rz   rj   r!  rz   rb   )rð   r2  rÚ   rc   r!  r“   )r�   rÉ   rÊ   rŠ  r   r�   r&   Úhstackr§   r–  r'   r(   )Ú	rand_datarª   r~  r/   r0   r0   r1   Ú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 ))ri   rz   rš  rf   r0   )rÅ   ÚyrrX  r0   r0   r1   rÇ   !  rô  z)test_loc_axis_1_slice.<locals>.<listcomp>)éÞ  r´   )rf   rz   Ú
ABCDEFGHIJr  rb   r®  ©r¶  rš  ©r´   rz   rÅ  )r¸  )r¶  rf   )r´   ri   r¹  )	r   r�   r¶  rx  r   rV  r&   r'   r(   )rõ   r.   rª   r/   r0   r0   r1   Útest_loc_axis_1_slice  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#   r:   r  r   r  )r   rË   r   r¡  rÝ   r&   r'   r(   )r/   rª   r0   r0   r1   Ú!test_loc_set_dataframe_multiindex0  s   ÿr»  c                  C   s4   t tdƒtddgtd�ƒ} | jd }|dksJ ‚d S )Nr:   rb   rÚ   rÖ   r   )r   rË   r   r	  r&   )rs  rª   r0   r0   r1   Útest_loc_mixed_int_float:  s   
r¼  c                  C   sV   t tdƒg d¢d�} tjtdd�� d| jd d…< W d   ƒ d S 1 s$w   Y  d S )Nrj   r!  r	   ú$Slicing a positional slice with .locr¼   r:   rg   )r   rË   rž   r¿   r¢   r&   )rs  r0   r0   r1   Ú%test_loc_with_positional_slice_raisesB  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 s8w   Y  tjtdd	�� d
|jd
d…< W d   ƒ n1 sVw   Y  qtjt|d	�� |jd
d…d
f  W d   ƒ n1 sww   Y  tjtdd	�� d|jd
d…d
f< W d   ƒ d S 1 s˜w   Y  d S )Nr%  rg   ©r  r:   rd  r	   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intr¼   rb   r½  )	r   r   r�   rÉ   rÊ   rž   r¿   r¢   r&   )Údtir.   rs  rÀ   rI   r0   r0   r1   Ú#test_loc_slice_disallows_positionalJ  s&   ÿÿþ€ÿ"þ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@w   Y  tjt|d�� | d j|  W d   ƒ d S 1 s_w   Y  d S )Nr:   rs  rò   Ú2012rW  rk   r¯  r€   )r   r:   r:   rg   z/None of \[TimedeltaIndex.* are in the \[index\]r¼   r#   )r   r�   rÉ   rÊ   rŠ  r   r¨   rÝ   r
   rŽ   ÚTimedeltaIndexÚasi8rž   r¿   rF   r&   )r.   rÀ  r'  rÀ   r0   r0   r1   Ú'test_loc_datetimelike_mismatched_dtypesf  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-12rV  rð  r:   )r=  rf   r	   r   rk   )rŽ   rF  r   r�   rÉ   rÊ   rŠ  r'   r(   r&   rÜ   r¨   )r  r.   r0   r0   r1   Ú"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 )Nr:   )rz   rh   rî  rz   r¿  )r%   r‰   r¸   r"  ÚEÚFr  rb   rŒ   r   )r�   rÉ   rÊ   rŠ  r   r   r�   r&   r
   r'   r(   )r«  r  rõ   r˜   r™   r0   r0   r1   Ú%test_loc_setitem_multiindex_timestamp‡  s   rÉ  c                  C   s0  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  )rb   r   r   rb   )rÆ   r7  rÕ  r@  rh   rk   r  ra   )rº  r¯  )
r   r¡  r   rË   r&   r¨   r'   r(   ÚxsrÌ   )rÖ  r×  Úlev3rõ   r.   rª   r/   Úaltrs  Ú	expected2Úalt2rŸ  r0   r0   r1   Ú'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s'J ‚|jd }t	dd	g|j
ddd
�}t ||¡ |j t¡|_|jd }t ||¡ d S )Nr*  )rk   rh   ri   rz   rb   r:   rò   r  )rŠ   r8   r9   rM   rk   r�  )r   r�   r§   r�   ÚTr¾   r
   r9   r&   r   r8   r'   rÌ   rô   r	  )r.   r‘   r™   r/   r0   r0   r1   Ú/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 s!w   Y  tr1t| tjƒr1d}nd	}t g d
¢dg|d�}t 	||¡ d S )Nr*  r~   Úuint8r7   rç   r¼   )r:   r~   Úint16Úuint16)rb   r:   râ   rj   )
r   r'   rè   ré   r&   r   r–   r�   rÓ  r(   )r  r.   r9   r/   r0   r0   r1   Útest_loc_setitem_uint8_upcastÅ  s   ÿrÕ  zfill_val,exp_dtypez
2022-01-06zdatetime64[ns]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)r7  r9   )rf   rœ  r�  r<  r#   r€   r;  )ú
2022-01-08r#   r×  rÖ   T)Úexact)	r   r   r7  r   r&   r  r'   r—  r
   )Úfill_valÚ	exp_dtyperŠ   r
   r.   Úexpected_indexr0   r0   r1   Ú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Úabcrk   r~   r#   r"   rM   )r   rb   r:   r~   )r   rÜ   r&   r'   r(   )r.   r/   r0   r0   r1   Ú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s7J ‚d S )N)z20181101 1100z20181101 1200z20181102 1300z20181102 1400r   r‰   )r•   rñ  )r%   r‰   r2  )r%   r¸   rÚ   )r—  ÚQrc   )ÚWrÈ  r·  )ÚONEÚTWOÚVALUESr  rá  râ  T)r  rã  r   r%   r2  )r   r   r¾   r&   )Úp_indexÚ	mi_seriesr0   r0   r1   Ú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 )NÚpyarrowr»   zstring[pyarrow]rÖ   )TTF)Ústringsrÿ  r7  rU  rè  )r7  rU  r¸   )rž   r   r   r   r&   rÿ  r'   r(   )r.   Ú	new_valueÚexpected_dfr0   r0   r1   Ú test_loc_setitem_pyarrow_strings  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  rg   )r  rj   c                 C   s$   t dddœƒ}|j| |ksJ ‚d S )Nrg   rj   )r  r  )r   r&   )r<   r(  r/   rs  r0   r0   r1   rÚ    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sgJ ‚d S )N©rg   rj   ri   rk   r:   é   )r
   r'   rÌ   r&   r  r¨   ÚtruncateÚmedian)	r<   Ústring_seriesÚdatetime_seriesÚindsÚd1Úd2rª   r/   r  r0   r0   r1   Útest_loc_getitem$  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 s0w   Y  tjt|d�� d|j||…< W d   ƒ d S 1 sOw   Y  d S )Nrk   rî  r:   )rb   r:   r   z"Timestamp\('2000-01-10 00:00:00'\)r¼   r   )r
   r¨   rž   r¿   rF   r&   )r<   rò  rô  rõ  Úts2rÀ   r0   r0   r1   Útest_loc_getitem_not_monotonic7  s   ÿ"ÿz,TestLocSeries.test_loc_getitem_not_monotonicc                 C   sj  t tj d¡ d¡ttdddƒƒd�}| ¡ }d|jdd…< |jdd… dk 	¡ s+J ‚| ¡ }d|jdd…< |jdd… dkj
 	¡ sDJ ‚|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�w   Y  tjtdd�� d|jdd…< W d   ƒ d S 1 s®w   Y  d S )Nr:   rf   r   rV   r	   rj   rg   rœ  rh   )rj   rh   rz   rf   rk   rš  r  z^3$r¼   )r   r�   rÉ   rÊ   rŠ  rÜ   rË   rÝ   r¨   r#  r�   r&   r  r'   rÌ   rž   r¿   rF   )r<   rs  Úcprª   rŸ  r/   Ús2r0   r0   r1   Ú0test_loc_getitem_setitem_integer_slice_keyerrorsB  s*   ÿ"ÿ"ÿz>TestLocSeries.test_loc_getitem_setitem_integer_slice_keyerrorsc                 C   s4   t |jd d… ƒ}|j| }t ||d d… ¡ d S )Nrf   )r…  r
   r&   r'   rÌ   )r<   rñ  r  rª   r0   r0   r1   Útest_loc_getitem_iterator_  s   
z'TestLocSeries.test_loc_getitem_iteratorc                 C   s:   ||  ¡ k}| ¡ }d|j|< |}d||< t ||¡ d S )Nr   )rð  rÝ   r&   r'   rÌ   )r<   rñ  r  rª   r/   r0   r0   r1   Útest_loc_setitem_booleand  s   
z&TestLocSeries.test_loc_setitem_booleanc                 C   sd   t |jg d¢ ƒ}d|j|< d}tjt|d�� d|j|dg < W d   ƒ d S 1 s+w   Y  d S )N)rk   rz   r�  rk   z\['foo'\] not in indexr¼   r­   )rÜ   r
   r&   rž   r¿   rF   )r<   rñ  ró  rÀ   r0   r0   r1   Útest_loc_setitem_cornerm  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)rk   rf   rî  r   r:   )r
   rÝ   r&   r'   rÌ   )r<   rò  Úindicesrù  r˜   r0   r0   r1   Útest_basic_setitem_with_labelst  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 sow   Y  tjt|d	�� d||< W d   ƒ d S 1 s‹w   Y  d S )
Nr:   rf   r   rV   r	   )r   rj   rh   ©r   rj   rk   rh   z\[5\] not in indexr¼   )r   r�   rÉ   rÊ   rŠ  rÜ   rË   r§   rÝ   r&   r'   rÌ   rž   r¿   rF   Ú	Exception)	r<   rs  ró  Úarr_indsrù  r˜   Úinds_notfoundÚarr_inds_notfoundrÀ   r0   r0   r1   Ú!test_loc_setitem_listlike_of_intsƒ  s0   ÿ


ÿ
"ÿ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s'J ‚| ¡ }||jd
< |jd
 }||ks;J ‚| ¡ }||d	< |d	 }||ksMJ ‚d S )Nrž  rg   rÖ  r&  rò   r	   r¤  r  r#   r   )r   r   rÝ   r   r&   r¨   )r<   rs  rú  r/   rª   r0   r0   r1   Útest_loc_setitem_dt64tz_valuesŸ  s"   þ



z,TestLocSeries.test_loc_setitem_dt64tz_valuesÚarray_fnr  r  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   Úabcder+  r#   )r   rÜ   r	  r&   r'   rÌ   r¨   )r<   r  r  r  r/   rs  r0   r0   r1   Ú#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 s*w   Y  tjt|d�� d|j|d d …f< W d   ƒ d S 1 sKw   Y  d S )N))r%   Ú0)r%   r4   )r‰   r  )é   rÉ  rÐ  r›  r‘  r¼   rb   )r   r   rV  rž   r¿   r   r&   )r<   rß   rs  rÀ   r0   r0   r1   Ú+test_loc_series_getitem_too_many_dimensionsÇ  s   þÿ"ÿ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sbJ ‚|| dksjJ ‚d S )Nrí  rk   rf   rî  rh   rõ  rj   )r
   rÝ   r&   r¨   r'   rÌ   )r<   rñ  ró  rª   r/   rô  rõ  r0   r0   r1   Útest_loc_setitemÕ  s"   


zTestLocSeries.test_loc_setitemr9   r	  r5  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Ý  ÚdefÚghiÚjklrŒ   rÖ   ÚnewAÚnewBr   rž  )r<   r9   r.   r/   r0   r0   r1   Ú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“   rh   rù   r%  r­   )r   r  rb   r€   )r   r   r&   r'   r(   r½  r0   r0   r1   Ú,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 )Nrb   r:   r#   r  rh   ri   r"   rM   r	  rÖ   rò   r	   )r   r&   r   r�   r�   r'   r(   rƒ   r0   r0   r1   Ú3test_loc_set_multiple_items_in_multiple_new_columns  s   ýú	zATestLocSeries.test_loc_set_multiple_items_in_multiple_new_columnsc                 C   sj   d}t jt|d��" tjdddd�}ttdƒ|d�}|jd d	ks#J ‚W d   ƒ d S 1 s.w   Y  d S )
Nz#Period with BDay freq is deprecatedr¼   Ú2000rV   r‰   r  r	   z
2000-01-14rš  )r'   rè   ré   rŽ   rF  r   rË   r&   )r<   rÀ   r
   r+   r0   r0   r1   Ú test_getitem_loc_str_periodindex  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 )	Nrœ  iè  r  rÖ   r(  r	   Ústable)r>   )rÜ   rË   r   r   r�   r‚   rû   Úintpr&   Úargsortrô   r§   r  r'   r(   )r<   rÿ  r
   r.   rª   r/   r0   r0   r1   Útest_loc_nonunique_masked_index  s    
þz-TestLocSeries.test_loc_nonunique_masked_index)!r›   rœ   r�   rž   rŸ   r    rÚ  rö  rø  rû  rü  rý  rþ  r   r  r  r�   r§   rŽ   rÜ   rx  r
  r   r¡   r  r  r  r’  r“  r  r  r  r  r0   r0   r0   r1   rì    s2    
	$

	

rì  )[Ú__doc__Úcollectionsr   r   r   r   r   r  Údateutil.tzr   Únumpyr�   rž   Úpandas._configr   Úpandas._libsr
   rå  Úpandas.compat.numpyr   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsr’  ÚpandasrŽ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingr'   Úpandas.api.typesr   Úpandas.core.indexingr    Úpandas.tests.indexing.commonr!   rŸ   r    r�   r2   r3   r£   r†  r“  rà  r)  r?  rV  rv  r|  r”  r±  r´  rº  r»  r¼  r¾  rÁ  rÅ  rÆ  rÉ  rÏ  rÑ  rÔ  rÓ  rÕ  rÜ  rÞ  r‚  ræ  rë  rì  r0   r0   r0   r1   Ú<module>   s®    P þþ
	 ?           #= w Z J  	fýþ



þþ

	
