o
    Û­j³Ù ã                	   @   sH  d Z ddlmZ ddlZddlmZmZmZmZ ddlZddl	m
Z
 ddlZddlZddlmZ ddlmZ ddlmZ dd	lmZ ddlm  mZ ddlZdd
lmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ej8 9dej:ej:dgdej:ej:gg d¢gej:dgdej:gddggg¡dd„ ƒZ;G dd„ dƒZ<G dd„ dƒZ=G dd„ dƒZ>G dd„ dƒZ?G dd„ dƒZ@G d d!„ d!ƒZAG d"d#„ d#ƒZBG d$d%„ d%ƒZCG d&d'„ d'ƒZDG d(d)„ d)ƒZEG d*d+„ d+ƒZFej8 9d,g d-¢d.d/gdd0gfg d1¢d.d/gdd0gfg d1¢d.d2gdd3gfg¡d4d5„ ƒZGd6d7„ ZHd8d9„ ZId:d;„ ZJd<d=„ ZKd>d?„ ZLd@dA„ ZMdBdC„ ZNdDdE„ ZOdFdG„ ZPdHdI„ ZQdJdK„ ZRej8 9dLdMe SdM¡e TdM¡g¡dNdO„ ƒZUej8 9dPe*dQƒdRfe*dSdTdU�dVfg¡dWdX„ ƒZVdYdZ„ ZWej8 Xd[¡ej8 Xd\¡d]d^„ ƒƒZYd_d`„ ZZG dadb„ dbƒZ[dS )cz$ test label based indexing with loc é    )Ú
namedtupleN)ÚdateÚdatetimeÚtimeÚ	timedelta)Úgettz)Úusing_string_dtype©Úindex)Únp_version_gt2)ÚIndexingError)ÚCategoricalÚCategoricalDtypeÚCategoricalIndexÚ	DataFrameÚDatetimeIndexÚIndexÚ
IndexSliceÚ
MultiIndexÚPeriodÚPeriodIndexÚSeriesÚSparseDtypeÚ	TimedeltaÚ	TimestampÚ
date_rangeÚtimedelta_rangeÚto_datetimeÚto_timedelta)Ú	is_scalar)Ú_one_ellipsis_message)Ú"check_indexing_smoketest_or_raisesz series, new_series, expected_serÚbÚa)FTTFTc                 C   sP   t d| iƒ}||jd d …df< t d|iƒ}t | ¡ |¡ t | ¡ | ¡ d S ©NÚA)r   ÚlocÚtmÚassert_frame_equalÚisnaÚnotna)ÚseriesÚ
new_seriesÚexpected_serÚdfÚexpected© r0   ú[/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/indexing/test_loc.pyÚtest_not_change_nan_loc2   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   sl   t g d¢dgtd�}|jd d u sJ ‚t g d¢dgdd�}|r+t |jd ¡s)J ‚d S |jd d u s4J ‚d S )N)Ú1Ú2Nr#   ©ÚcolumnsÚdtype)é   r#   Ústr)r   Úobjectr&   ÚnpÚisnan)ÚselfÚusing_infer_stringr.   r0   r0   r1   Ú"test_none_values_on_string_columnsC   s   z*TestLoc.test_none_values_on_string_columnsÚkindr+   Úframec                 C   ó$   |  |› d�¡}t|ddtd� d S )NÚ_labelsr&   r9   ©Úfails©Úgetfixturevaluer!   ÚKeyError©r>   rA   ÚrequestÚobjr0   r0   r1   Útest_loc_getitem_intN   ó   zTestLoc.test_loc_getitem_intc                 C   rC   )NÚ_emptyr&   ÚcrE   rG   rJ   r0   r0   r1   Útest_loc_getitem_labelT   rN   zTestLoc.test_loc_getitem_labelzkey, typs, axesÚf)ÚintsÚuintsÚlabelsÚmixedÚtsNÚfloatsé   )rS   rT   rV   rU   rW   r   c                 C   ó4   |D ]}|  |› d|› �¡}t|d||td� qd S ©NÚ_r&   ©ÚaxesrF   rG   ©r>   ÚkeyÚtypsr^   rA   rK   ÚtyprL   r0   r0   r1   Ú#test_loc_getitem_label_out_of_rangeZ   s   
ÿýz+TestLoc.test_loc_getitem_label_out_of_rangez	key, typs©r   é   r9   )rS   rT   rX   )re   ç      @r%   c                 C   s2   |D ]}|  |› d|› �¡}t|d|td� qd S )Nr\   r&   rE   rG   )r>   r`   ra   rA   rK   rb   rL   r0   r0   r1   Útest_loc_getitem_label_listn   s   	ýz#TestLoc.test_loc_getitem_label_listÚempty)r   r9   é
   )é   é   é   re   ))re   rj   )re   é   )r9   é   Úmultic                 C   rZ   r[   rG   r_   r0   r0   r1   Ú(test_loc_getitem_label_list_with_missing|   s   
ÿþz0TestLoc.test_loc_getitem_label_list_with_missingra   rS   rT   c                 C   s.   |  |› d|› �¡}t|dg d¢dtd� d S )Nr\   r&   )rY   é   é(   re   r]   rG   )r>   ra   rA   rK   rL   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 )NrO   ©TFTFr&   rE   )rH   r!   Ú
IndexError)r>   rA   rK   rL   r"   r0   r0   r1   Útest_loc_getitem_boolœ   s   zTestLoc.test_loc_getitem_boolzslc, typs, axes, failsrj   )rU   rV   rh   rW   rX   Ú20130102Ú20130104r9   é   rV   rm   c           	      C   s4   |D ]}|  |› d|› �¡}t|d|||d� qd S r[   )rH   r!   )	r>   Úslcra   r^   rF   rA   rK   rb   rL   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 )NrY   r#   éÈ   Úcol1Úcol2)ri   re   re   ©r7   r
   r9   )re   r�   r   re   )r   r<   Ú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©re   r9   rj   ú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©r7   ©Únamer	   c                 C   s8   |j | }t|ttfƒrt ||¡ d S ||ksJ ‚d S ru   )r&   Ú
isinstancer   r   r'   Úassert_equal)r>   rL   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ÚparametrizerM   rQ   rc   rg   rp   rs   rw   rz   ÚsliceÚ	TypeErrorrI   r   r†   r”   r   r   r   r   rœ   r0   r0   r0   r1   r3   B   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!ejj"e#ƒ dHdI�dJdK„ ƒZ$ej dLg dM¢¡dNdO„ ƒZ%dPdQ„ Z&ej 'dR¡ej dSd%d&g¡dTdU„ ƒƒZ(dVdW„ Z)dXdY„ Z*ej 'dR¡ej dSd%d&g¡dZd[„ ƒƒZ+ej 'dR¡ej dSd%d&g¡d\d]„ ƒƒZ,d^d_„ Z-d`da„ Z.ej 'dR¡dbdc„ ƒZ/ej dddege0dfdedfƒe deg¡g¡ej dgdhge dhg¡g¡didj„ ƒƒZ1ej dkd;dlgg dm¢fdne2g do¢dpdqej3ej3gg do¢gg dm¢dr�fdsdtdugfdndvge2dsdlej3ej3gg dw¢dxdyej3ej3ggg dm¢dr�fdsg dz¢fejg d{¢ejd<�e2dsdlej3gg d{¢dxdyej3ggg dz¢dr�fe0dsdpdfƒg d|¢fg d{¢g d}¢ge2dsdlej3ej3gg d~¢g d¢gg dm¢dr�fe0dsdpdfƒg d€¢fejg d{¢g d}¢gejd<�e2dsdlej3ej3gg d�¢g d‚¢gg dm¢dr�fe0dfdfdfƒdedtgfe2dndvgdƒd„gd…d†ggdedtgdr�e2g d‡¢g dˆ¢g d‰¢gg dz¢dr�fg¡dŠd‹„ ƒZ4dŒd�„ Z5dŽd�„ Z6d�d‘„ Z7d’d“„ Z8d”d•„ Z9ejj:ej d–d—d˜gd™dšgg¡d›dœ„ ƒƒZ;d�dž„ Z<dŸd „ Z=d¡d¢„ Z>d£d¤„ Z?d¥d¦„ Z@d§d¨„ ZAd©dª„ ZBd«d¬„ ZCd­d®„ ZDd¯d°„ ZEd±d²„ ZFd³d´„ ZGdµd¶„ ZHd·d¸„ ZId¹dº„ ZJej d»g d¼¢¡ej d½ejejKeLg¡d¾d¿„ ƒƒZMdÀdÁ„ ZNdÂdÃ„ ZOdÄdÅ„ ZPej dddÆdÇg¡dÈdÉ„ ƒZQej dÊeRejeSeTg¡dËdÌ„ ƒZUdÍdÎ„ ZVej dÏdÐeSdsgƒfdÑeSdlgƒfg¡dÒdÓ„ ƒZWdÔdÕ„ ZXej dÖd;g d×¢fe0dqdvƒg dØ¢fdpdxgg dÙ¢fg¡dÚdÛ„ ƒZYdÜdÝ„ ZZdÞdß„ Z[dàdá„ Z\ej dâdãdãgg¡dädå„ ƒZ]dædç„ Z^ej dèdedegdee0dfƒfg¡dédê„ ƒZ_dëdì„ Z`dídî„ Zadïdð„ Zbdñdò„ Zcdódô„ Zdej dõdöd÷g¡dødù„ ƒZedúdû„ Zfdüdý„ Zgdþdÿ„ Zh�d �d„ Zi�d�d„ Zj�d�d„ ZkdfS (  ÚTestLocBaseIndependentc                 C   sH   t tddƒd�}|jt dg¡d d … }|jdd … }t ||¡ d S )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‡   ©ri   rY   rq   )r%   r‹   ÚCÚV1ÚV2©r%   r‹   rº   ©ÚmatchN)r   r   Ú	set_indexr    ÚraisesrI   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#   re   u   ×�r¾   )r   r    rÁ   rI   r&   ©r>   r.   r0   r0   r1   Ú$test_loc_getitem_missing_unicode_key5  s   "ÿz;TestLocBaseIndependent.test_loc_getitem_missing_unicode_keyc                 C   sZ   t tj d¡ d¡dd„ tdƒD ƒd�}|jd }|jd d …df jd	 }t ||¡ d S )
Nr9   )rY   rn   c                 S   s   g | ]}d |d  ‘qS )ÚABCDErn   r0   ©Ú.0Úxr0   r0   r1   Ú
<listcomp>?  ó    z@TestLocBaseIndependent.test_loc_getitem_dups.<locals>.<listcomp>rY   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_dups:  s   þ
z,TestLocBaseIndependent.test_loc_getitem_dupsc                 C   st   t ddddtdƒggg d¢dgd�}tddddtdƒgg d¢dd�}|jd	 }t ||¡ |jd }t ||¡ d S )
Nre   r9   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_dups2E  s   ýý

z-TestLocBaseIndependent.test_loc_getitem_dups2c                 C   s  t tdƒtdƒtjddd�d d tjddd�d d d	œƒ d
¡}dddgf}| ¡ }|j|  d9  < t |j| d|j|  ¡ d}| ¡ }|j|  d9  < |j| d|j|  ks`J ‚dddgf}| ¡ }|j|  d9  < t 	|j| d|j|  ¡ d S )NÚrtttiÚaaadern   Úfloat64©r8   gq=
×£põ?r9   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_dupsY  s2   üÿù
þþ z,TestLocBaseIndependent.test_loc_setitem_dupsc                 C   s  t g d¢tg d¢dd�dœƒ}|d dk}|j|df d }||j|df< t g d¢tg d	¢dd�dœƒ}t ||¡ t g d¢g d¢dœd
d�}|d dk}|j|df }tjtdd�� ||j|df< W d   ƒ n1 smw   Y  t g d¢g d¢dœd
d�}t ||¡ d S )N)r   re   re   )éd   r€   é,  Úuint32rÙ   ©r#   r"   r#   re   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_slice|  s$   ÿÿýz-TestLocBaseIndependent.test_loc_setitem_slicec                 C   s�   t dgdgdgdgdœƒ}g d¢}|jd d …|f  d¡|jd d …|f< t dgtjdgdd	�tjdgdd	�tjdgdd	�dœƒ}t ||¡ d S )
Nr%   ç333333ó?ç        g      À)Úidr#   r"   rP   ©r#   r"   rP   Ú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 )	Nrj   rõ   r	   únot in indexr¾   r#   Údr   )r   rÎ   r    rÁ   rI   )r>   Úsr0   r0   r1   Ú$test_getitem_label_list_with_missing§  s   ÿ"ÿz;TestLocBaseIndependent.test_getitem_label_list_with_missingr
   TFrx   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Á   ry   r&   )r>   r
   rü   rÂ   r0   r0   r1   Útest_loc_getitem_bool_diff_len²  s
   "ÿz5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   rt   ru   r0   rv   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 )
Nr9   ©rj   rj   rõ   )ÚerR   Úg©r
   r7   z$\"None of \[Index\(\[1, 2\], dtype='ú'\)\] are in the \[index\]\"r¾   re   )
r   r<   rÌ   rÍ   r8   Úintr    rÁ   rI   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Ù   re   r9   r#   z^-1$r¾   éÿÿÿÿz&\"None of \[Index\(\[-1, -2\], dtype='r  éþÿÿÿzE\"None of \[Index\(\['4'\], dtype='object'\)\] are in the \[index\]\"Ú4rj   rú   z"\"None of \[Index\(\[-2\], dtype='r   )
r   r;   r&   r    rÁ   rI   r<   r8   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"   re   r9   Úvaluer  z!\"None of \[Index\(\[3\], dtype='r  r¾   rj   )r   r<   r8   r  r    rÁ   rI   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‡   r9   z"None of [Index([3], dtype='z')] are in the [index]r¾   rj   rú   )
r   r&   r<   r8   r  r    rÁ   rI   Ú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 )
Nr9   )rn   ri   ©Ú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 )Nr9   ©rm   rm   ©r%   r‹   rº   ÚDrƒ   r%   r‹   r   rÒ   re   rç   r#   r"   rÔ   )r   r<   rÌ   rÍ   r&   rª   r7   Úallr
   r   r   r'   rÏ   r8   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-5rn   rÙ   ©r   Úval)r   r   r   rÎ   r<   Úint64rv   r0   r0   r1   Úframe_for_consistency:  s
   þÿz,TestLocBaseIndependent.frame_for_consistencyr*  r   rÙ   )r   r   r   r   r   c                 C   s„   t tdtdƒtjd�ttdƒtjd�dœƒ}| ¡ }tjtdd�� ||j	d d …df< W d   ƒ n1 s5w   Y  t 
||¡ d S )	Nr   rn   ©r
   r8   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_consistencyC  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¯   rn   r	   rÙ   r)  r.  r¾   r   r/  ©r>   r,  r/   r.   r0   r0   r1   Ú(test_loc_setitem_consistency_dt64_to_strU  s   þÿÿz?TestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_strc                 C   r1  )	Nç      ð?rn   r	   rÙ   r)  r.  r¾   r   r/  r2  r0   r0   r1   Ú*test_loc_setitem_consistency_dt64_to_floatd  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_rowr  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•   re   )r   r'   rë   r&   r(   r÷   r<   r+  ©r>   r/   r.   r0   r0   r1   Ú"test_loc_setitem_consistency_empty{  s   ÿz9TestLocBaseIndependent.test_loc_setitem_consistency_emptyzTODO(infer_string)©Úreasonc           
      C   sð  dgd g d¢g d¢g}t j|g d¢d�}g d¢g d¢g}t j|d	d
gd�}ddddtjgg d¢ddddtjgg d¢g}t|||d�}t ¡ }|rPtjt	dd�}|� t
|jd d …df ƒ|jd d …df< W d   ƒ n1 sow   Y  |� t
|jd d …df ƒ|jd d …df< W d   ƒ n1 s“w   Y  |rœd S | ¡ }|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_1rm   )ÚSite_1r?  ÚSite_2r@  )l   ðBP[ l   _ˆZ l   q=.Z l   Ñ<.Z )ÚRegionÚSiteÚRespondentID©Únames)Ú
RespondentrF  rF  ÚOtherCatrG  )Ú	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:52rN  rN  z5/20/2015 8:27z5/20/2015 8:41)r%   z5/20/2015 8:33z5/20/2015 9:09rN  ÚNor  úInvalid valuer¾   )rF  rI  )rF  rJ  )rF  ÚDurationr.  l    XŽp7 )g      7@ç      (@g      ,@g      B@rÔ   )r   Úfrom_arraysr<   r�   r   Ú
contextlibÚnullcontextr    rÁ   r¤   r   r&   Úinfer_objectsr'   rë   rì   r   r   r
   rÏ   )
r>   r?   ÚlevelsÚmiÚclevelsrø   r’   r.   Úctxr/   r0   r0   r1   Ú-test_loc_setitem_consistency_slice_column_lenŒ  s\   ýþüÿÿÿÿÿÿ
ÿþÿÿ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>   r\  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{ï?šra  T)r\  ÚcacheÚdate_dtÚ
date_dt_cpr9   rj   )rg  ú2017-01-24 13:26:12.711rn  )rh  ú2017-01-24 13:52:05.110ro  )ri  ú2018-10-22 13:44:05.888rp  )rj  ú2018-10-23 08:08:41.025rq  )r   rl  rm  r•   )r   Ú	from_dictr   r&   Úapplyr'   r(   )r>   r.   r/   r7   r0   r0   r1   Útest_loc_modify_datetimeÜ  s"   
ÿ  üù
z/TestLocBaseIndependent.test_loc_modify_datetimez.ignore:Setting a value on a view:FutureWarningÚhas_refc                 C   sv   t g d¢dgtd�}|r|d d … }tjg d¢dd�|jg d¢df< tg d¢g d¢td	�}t d|iƒ}t ||¡ d S )
N©rj   rn   rm   r%   ©r
   r7   r8   r‡   r+  rÙ   ©rm   rj   rn   ©r9   rj   re   r-  )r   Úfloatr<   r©   r&   r   r'   r(   )r>   ru  r.   ÚviewÚ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 )Nrv  r%   r‹   rw  r7  r‡   r+  rÙ   rx  ry  r-  )	r   rz  r<   r©   r&   r   r÷   r'   r(   )r>   r.   r|  r/   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‹   rw  r7  r+  rÙ   rj   r   r	  )rf   rÝ   r4  rŽ   r	   )r   rz  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	< |r;|d d … }||j|d	f< tj|d
< ||j|d
f< t	||tj
d�}	t	||d�}
t|	|
dœtd	d
gƒd�j|d�}t ||¡ d S )Nc                 S   ó   g | ]}d t |ƒ ‘qS ©ú@©r:   ©rÈ   Úir0   r0   r1   rÊ     rË   zGTestLocBaseIndependent.test_loc_setitem_empty_frame.<locals>.<listcomp>rn   r+  rÙ   c                 S   r€  r�  rƒ  r„  r0   r0   r1   rÊ   "  rË   rm   r	   r%   r‹   r-  rŽ   r•   )rÎ   r<   r„   rß   ÚsetÚunionr   r�   r&   r   rØ   r   Úreindexr'   r(   )r>   ru  Úkeys1Úval1Úkeys2Úval2r
   r.   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�}|r|d d … }|jd }d|jd< |jd }|dks/J ‚|jd }|dks:J ‚d	|jd d …d
d…f< |jd d …d
d…f }|jd d …dd …f }t 	||¡ d S )Nr9   r"  ÚabcdÚABCDr  ©r   r   re   )r#   r%   r   r‹   r$  )
r   r<   rÌ   rÍ   Ústandard_normalrß   rª   r&   r'   r(   )r>   ru  r.   r{  r¬   r/   r0   r0   r1   Útest_loc_setitem_frame8  s"   ý



z-TestLocBaseIndependent.test_loc_setitem_framec                 C   sP   t g d¢tjdœƒ}|j|j|j|jkdf< t g d¢tjdœƒ}t ||¡ d S )Nr‡   rŽ   r‹   )r   r<   r�   r%   r&   r‹   r'   r(   r…   r0   r0   r1   Ú/test_loc_setitem_frame_nan_int_coercion_invalidQ  s   zFTestLocBaseIndependent.test_loc_setitem_frame_nan_int_coercion_invalidc                 C   sœ   t ddgddgddgdœƒ}|jdddgf }tddgtddgtd	�tdd
�}t ||¡ t ddgddgddgdœƒ}ddg|jdddgf< t ||¡ d S )Nre   r9   rj   rm   r#   r"   )re   r9   r#   r   rÙ   ©r
   r8   r—   rn   rk   )r   r&   r   r   r;   r'   rÏ   r(   r«   r0   r0   r1   Ú#test_loc_setitem_frame_mixed_labelsY  s   ÿz:TestLocBaseIndependent.test_loc_setitem_frame_mixed_labelsc                 C   s  t g d¢ttdƒtjd�dœƒ}|jdd… }|jdd… |_||jdd…< t g d¢tg d	¢tjd�dœƒ}t ||¡ t t	d
dƒttdƒtjd�dœƒ}t t
dƒt
dƒt
dƒt
dƒt
dƒgtg d¢tjd�dœƒ}|jdd… }|jdd… |_||jdd…< t ||¡ d S )N©r¯   r°   Úbazrj   rÙ   rŽ   re   r9   r   )r°   r™  r™  )re   r9   r9   r'  r(  rn   r)  Ú20000101Ú20000102Ú20000103)r   re   r   re   r9   rm   )r   r   rÎ   r<   r+  r&   r
   r'   r(   r   r   )r>   Úwarn_copy_on_writer.   Úrhsr/   r0   r0   r1   Ú test_loc_setitem_frame_multiplesh  s:   ÿÿþÿûøÿz7TestLocBaseIndependent.test_loc_setitem_frame_multiplesrâ   r%   Nr  ÚZc                 C   sV   t ddgddggddgd� dti¡}||jd|f< |jd	 }t|ƒr'|d
ks)J ‚d S )Nre   r9   rj   rm   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_indexŽ  s   &

z9TestLocBaseIndependent.test_loc_setitem_with_scalar_indexzindex,box,expectedr9   r#  rl   )rl   rl   rl   rl   rj   rm   r•   re   rº   r$  r}   )rj   rm   rl   r}   rn   rk   r½   ©rl   r}   é	   )r‹   rº   r$  ©ri   é   é   )rj   rl   r}   r£  )rn   ri   r¥  r¦  )rº   r%   r$  )r}   rm   rl   r£  )r¥  rk   ri   r¦  r£  ri   r¥  r¦  )rl   r9   r}   )r£  rm   ri   )r¥  rk   r¦  c                 C   s<   t ddgddgddggddgd	�}||j|< t ||¡ d S )
Nre   r9   rj   rm   rn   rk   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   re   )	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   éÜ  re   iô  r9   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   r9   rj   )r   r¬  rª   r'   rÏ   rÐ   r0   r0   r1   Útest_loc_coercion3î  s   z)TestLocBaseIndependent.test_loc_coercion3c                 C   sj   t dƒ d¡t dƒ d¡g}t|tddgƒd�}ttd�}|d ||ƒd< |d	 ||ƒd< t ||¡ d S )
Né*   rª  iš  r¯   r°   r	   rÙ   r   re   )r   r«  r   r   r;   r'   rÏ   )r>   Ú
indexer_slÚvalsr/   r|  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©re   r9   rj   rm   rn   rk   )rj   rm   rn   rk   rl   r}   rŽ   )r   re   r   re   r9   rj   r	   z5'Cannot get left slice bound for non-unique label: 1'r¾   re   z5'Cannot get left slice bound for non-unique label: 0'r   r9   ©Úaxis)r9   rm   rn   rk   )rm   rk   rl   r}   )re   re   r9   rj   )r9   rm   rn   )rm   rk   rl   )re   re   r9   )r   r    rÁ   rI   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ÚABCDEFGr9   r  r   Fre   )rß   r�   Úconcatr   r<   rÌ   rÍ   r“  rþ   r„   Úonesr
   Ú	is_uniquer&   Útaker'   r(   )r>   ÚlengthÚl2r7   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 )Nre   Ú
index_namer   )r   r
   r—   rª   r&   ©r>   r.   r¬   r0   r0   r1   Útest_loc_nameM  s   z$TestLocBaseIndependent.test_loc_namec                 C   sÒ   t t d¡tdd„ tdƒD ƒdd�tdd„ tdƒD ƒdd�d	�}tj|jd d …g f |jd d …d d
…f ddd� tj|jg d d …f |jd d
…d d …f ddd� tj|jg  |jd d
…d d …f ddd� d S )N)rn   r9   c                 S   ó   g | ]}d |› �‘qS ©zi-r0   r„  r0   r0   r1   rÊ   Z  ó    zLTestLocBaseIndependent.test_loc_empty_list_indexer_is_ok.<locals>.<listcomp>rn   r#   r–   c                 S   rÈ  rÉ  r0   r„  r0   r0   r1   rÊ   [  rÊ  r9   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_okW  s   ý(ÿ(ÿ 
ÿz8TestLocBaseIndependent.test_loc_empty_list_indexer_is_okc                 C   sþ  t dg d¢iƒ}|jd d … }||usJ ‚|d d … |usJ ‚|jd d …d d …f |us.J ‚t |d j|d j¡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‡   )rm   rm   rm   rm   r9   ©ri   rm   r   r¶  r¢  rj   )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_objectj  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 - GH37497r<  rj   r#   r"   r•   r9   )r    r¡   ÚxfailÚapplymarkerr   ÚziprÎ   rà   r&   r'   r(   r
   )r>   rK   rÒ  r¡   rÉ   r9  ÚqÚzr0   r0   r1   Útest_loc_copy_vs_view•  s   
z,TestLocBaseIndependent.test_loc_copy_vs_viewc                 C   s’   t  d¡j}tddg|d |gd�}|j|d  }|jd }||ks$J ‚|j|d g }|jdg }t ||¡ |j|d |g }t ||¡ d S )Nré   re   r9   r	   r   )r<   ÚiinfoÚmaxr   r&   rª   r'   rÏ   )r>   Úumaxr|  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é   re   r9   r	   z-1r¾   r	  )r<   rÞ  rß  r   r    rÁ   rI   r&   )r>   rà  r|  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É   r9  rÉ   r9  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 )Nr4  rä  rÉ   r9  r6   )r   rÉ   )r   r<   r�   rz  r&   r'   r(   r:  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 )Nre   r9   rÉ   r9  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+  r8   r  r    rÁ   rI   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 )Nre   r9   rj   rm   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 )Nre   r9   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¶  rm   iÚ  iä  r	   r-  )rk   rn   rm   rj   r9   re   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_assignmentc                 C   sö   dd„ t dƒD ƒ}t|dgd�}t|dgd�}t ||¡ |rDtjtdd�� dd„ |D ƒ|j|jdf< W d   ƒ n1 s>w   Y  nd	d„ |D ƒ|j|jdf< t|dgt	d
� 
t¡}t ||¡ dd„ |D ƒ|d< t|dgt	d
�}t ||¡ d S )Nc                 S   s$   g | ]}t tj d ¡ ¡ d ƒ‘qS )r9   gê-�™—q=)r:   r<   rÌ   rÍ   )rÈ   r\   r0   r0   r1   rÊ     s   $ z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>rn   r%   r•   rP  r¾   c                 S   ó   g | ]}t |ƒ‘qS r0   ©rz  rÇ   r0   r0   r1   rÊ     ó    c                 S   rð  r0   rñ  rÇ   r0   r0   r1   rÊ     rò  r6   c                 S   rð  r0   rñ  rÇ   r0   r0   r1   rÊ   $  rò  )rÎ   r   r'   r(   r    rÁ   r¤   r&   r
   rz  r÷   r;   )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£  rq   r9   rj   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   rL   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_matrixr8   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)rn   rl   rÙ   r9   r   )Ú
fill_value)r    ÚimportorskipÚgetattrr<   Úeyer   ÚsparseÚfrom_spmatrixrÎ   r&   r’   Útoarrayr'   Úassert_numpy_array_equalr¬  Úfullr   )r>   r  r8   Ú	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Ù   re   )r   r�   r©   r   r&   r'   r(   rÆ  r0   r0   r1   Ú,test_loc_getitem_listlike_all_retains_sparseW  s   zCTestLocBaseIndependent.test_loc_getitem_listlike_all_retains_sparsec                 C   s”   t  d¡}tj | d¡¡}|jtdƒ }tg d¢g d¢gtddƒd�}t	 
||¡ |jtdƒ jtd	ƒ }tg d¢gtddƒd�}t	 
||¡ d S )
Nr  rn   r9   ©r4  ró   ró   ró   ró   )ró   r4  ró   ró   ró   rØ   ró   rÙ   re   )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Ù   r9   r4  rj   )r   r   r&   rÎ   r'   rÏ   )r>   rü   r¬   r/   r0   r0   r1   Útest_loc_getitem_sparse_seriesn  s   z5TestLocBaseIndependent.test_loc_getitem_sparse_seriesr&   rª   c                 C   sP   t g d¢g d¢gttƒd�}t||ƒd }tg d¢ttƒdd�}t ||¡ d S )N)r4  ró   ç      ø?)ró   rÝ   ró   rÙ   r   )r8   r—   )r   r   rz  r  r   r'   rÏ   )r>   râ   r.   r¬   r/   r0   r0   r1   Ú!test_getitem_single_row_sparse_dfz  s   z8TestLocBaseIndependent.test_getitem_single_row_sparse_dfÚkey_typec                 C   sD   |g d¢ƒ}|j d d …|f }|j d d …g d¢f }t ||¡ d S )Nr½   )r&   r'   r(   )r>   Úfloat_framer  Úidxr¬   r/   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 )Nr9   rÎ  r  Ú0sri   rü   ©ÚstartÚperiodsrø  )r   r<   rÌ   rÍ   Únormalr   r
   r&   r   r'   r(   rÐ   r0   r0   r1   Ú#test_loc_getitem_timedelta_0seconds‰  s
   z:TestLocBaseIndependent.test_loc_getitem_timedelta_0secondsúval,expectedì   ÿÿÿÿ ì            c                 C   s4   t ddgddgd�}|j| }||_t ||¡ d S )Nre   r9   r%  r&  r	   )r   r&   r—   r'   rÏ   )r>   r*  r/   r.   r¬   r0   r0   r1   Útest_loc_getitem_uint64_scalar‘  s   
z5TestLocBaseIndependent.test_loc_getitem_uint64_scalarc                 C   sL   |}t g d¢tg d¢|d�d�}| ¡ }d|jd< d|jd< t ||¡ d S )Nrõ   )r   ç      à?re   rÙ   r	   Úzoore   r9   )r   r   rà   r&   rª   r'   rÏ   )r>   Úfloat_numpy_dtyper8   r|  r/   r0   r0   r1   Ú+test_loc_setitem_int_label_with_float_indexœ  s   

zBTestLocBaseIndependent.test_loc_setitem_int_label_with_float_indexzindexer, expected)
rY   re   r9   rj   rm   rn   rk   rl   r}   r£  )
r   re   r9   rj   rY   rY   rY   rY   r}   r£  )
r   re   r9   rY   rm   rY   rk   rl   r}   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 )	Nri   rü   ©r\  rÉ   r+  ©r8   r
   rY   rw  )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©re   re   re   re   re   Úaaaaarç   )re   r"   r"   re   re   Úaabbarê   r¾   r"   r#   ©Ú
categoriesre   r9   rj   )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ÚNumericr6  rõ   r3  rÔ   r:   r–   )	r   r   r&   r   r
   r÷   r;   r'   rÏ   )r>   r?   r.   r4  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 )NrP   z
2010-10-01rj   z
2008-08-08r   re   )r   rP   )re   rP   r.  r¾   iÕ  rn   )r9   rP   z
2005-05-05)	r   r   r<   re  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-12rj   r_  )r   r!  rø  Útzrò   r;  r  rw  r.  r¾   )	r   r   r<   rØ   r'   rë   rì   r&   r(   )r>   r:  Útz_naive_fixturer<  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÷  r9   rn   r	   r¦  r   é   é   )é   éH   éx   é¨   )é   é   é   éJ   éK   éL   éz   é{   é|   éª   é«   é¬   )r   r   r<   rÌ   rÍ   r“  rþ   r   r£   rà   r&   r÷   rz  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%   rm   )r‹   Ú3)r%   r5   r‡   ©rm   rn   rk   r•   ©r9   r9   r+  rÙ   )r   r9   r   )r   rn   r   re   r·  )
r   Úfrom_tuplesr   rà   r<   Úzerosr&   r'   r(   r¹  )r>   r`   rX  r.   rL   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Ù   rm   r   )rm   r9   rj   ©r   r&   r'   rÏ   )r>   Úany_int_numpy_dtyper+   r/   r0   r0   r1   Útest_loc_setitem_uint_drop1  s   
z1TestLocBaseIndependent.test_loc_setitem_uint_dropc                 C   sl   t dt dd¡g ƒ}t dd¡|jg d¢< t dt dd¡g ƒ}tt dd¡ƒ|jg d¢< t ||¡ d S )Nri   r`  rY   r‡   )r   r<   Útimedelta64r&   r   r'   rÏ   )r>   r|  r/   r0   r0   r1   Útest_loc_setitem_td64_non_nano9  s
   z5TestLocBaseIndependent.test_loc_setitem_td64_non_nanoc                 C   s¤   t j d¡ d¡}ttdƒdd�}d}tjt|d�� ||j	tdƒ< W d   ƒ n1 s,w   Y  tjt|d�� ||j	d d …< W d   ƒ d S 1 sKw   Y  d S )Nr9   rZ  rØ   rÙ   rê  r¾   )
r<   rÌ   rÍ   r“  r   rÎ   r    rÁ   rë  r&   )r>   rŒ   r|  rÂ   r0   r0   r1   Ú test_loc_setitem_2d_to_1d_raisesA  s   ÿ"ÿz7TestLocBaseIndependent.test_loc_setitem_2d_to_1d_raisesc                 C   sP   t jddd�}tg d¢g d¢g d¢g|g d¢d�}d	}|jd
 }t ||¡ d S )Nr   rj   )r   r!  r‡   rY  r¢  r½   r  re   )r(  r%   )r�   Úinterval_ranger   r&   r'   Úassert_almost_equal)r>   r
   r.   r/   r¬   r0   r0   r1   Útest_loc_getitem_interval_indexM  s   ÿ
z6TestLocBaseIndependent.test_loc_getitem_interval_indexc                 C   sr   t jdddd�}tg d¢g d¢g d¢g|g d¢d	�}t jdd
ddd�}tddg|dd�}|jd }t ||¡ d S )Nr   rj   Úboth)r   r!  Úclosedr‡   rY  r¢  r½   r  r9   re   )r   r!  rø  rh  rm   r%   rÔ   ©re   r%   )r�   rd  r   r   r&   r'   rÏ   )r>   r
   r.   Ú	index_expr/   r¬   r0   r0   r1   Ú test_loc_getitem_interval_index2X  s   ÿ
z7TestLocBaseIndependent.test_loc_getitem_interval_index2Útpl©re   ©re   r9   c                 C   sR   t ddgddd�}t|d�}|j|g }t |gddd�}t|d�}t ||¡ d S )Nrm  rn  r%   F©r—   Útupleize_colsr	   )r   r   r&   r'   r(   )r>   rl  r  r.   r¬   r/   r0   r0   r1   Ú+test_loc_getitem_index_single_double_tuplesd  s   ý

zBTestLocBaseIndependent.test_loc_getitem_index_single_double_tuplesc                 C   sn   t dddgƒ}|ddƒ}|ddƒ}t||gdd	d
�}tddg|ddgd�}|j|ddƒ d }|dks5J ‚d S )NÚ	IndexTyper#   r"   r¯   r°   r™  ÚbofÚcomposite_indexFro  rn  )rj   rm   r%   r‹   r  re   )r   r   r   r&   )r>   rr  Úidx1Úidx2r
   r.   r¬   r0   r0   r1   Ú!test_loc_getitem_index_namedtuples  s   

z8TestLocBaseIndependent.test_loc_getitem_index_namedtuplec                 C   s„   t tj d¡ d¡g d¢g d¢d�}d|d< tj|j|jd d d… df< ttjdtjdtjg|s2t	ndd�j
}t |d j
|¡ d S )	Nr9   ©rn   rj   )r#   r"   rP   rû   r  r˜  r  Úquxr:   rÙ   )r   r<   rÌ   rÍ   r“  r�   r&   r
   r   r;   r’   r'   re  )r>   r?   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 )Nr9   )rq   rj   ÚABCr•   Úeventrê   r¾   r¯   )ri   r|  rØ   rj   r;   )r%   r‹   rº   r|  r	   )r   r<   rÌ   rÍ   Útupler�   r'   rë   rì   r&   r¬  r   r8   rÏ   r«   r0   r0   r1   Útest_loc_setitem_cast2‹  s   
ÿýþz-TestLocBaseIndependent.test_loc_setitem_cast2c                 C   sb   t dtjdtjd�iƒ}d|jd< |jjt tj¡ksJ ‚t d¡|_|jjt tj¡ks/J ‚d S )NÚonerk   rÙ   )re   r  rl   )r   r<   r„   Úint8r&   r¬  r  r8   rÄ   r0   r0   r1   Útest_loc_setitem_cast3›  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 )Nrn   )rj   rm   re   r   r9   r	   )r£  ri   r¥  r9   r£  ri   r¥  rj   )r   re   ri   r£  r¥  )rÎ   Úndimr&   r
   r'   r™   )r>   rý  rL   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 )	Nr0  rÓ   rç   r9   re   r3  r#   )re   r9   r9   re   re   ©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+  r0  r3  r5  r8  r;  rØ  r   r[  rf  rt  Úfilterwarningsr}  r~  r  r�  r”  r•  r—  rŸ  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Ø   Úcomplexr  r  r  r  r  Úiterr   r   r  r#  r'  r+  r/  r5  r8  r9  r>  rW  r]  r`  rb  rc  rf  rk  rq  rw  rz  r~  r�  rƒ  r…  r0   r0   r0   r1   r¥     sn   þþóþ
#
'
$þ
	
=






%ÿþý
	$þý
	"ÿýþý	þý	 ÿýØþ
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 ru   )Úparam)r>   rK   r0   r0   r1   râ   º  s   zTestLocWithEllipsis.indexerc                 C   s   |}|t ur
| ¡ }|S ru   )r   Úto_frame)r>   Úseries_with_simple_indexrý  rL   r0   r0   r1   rL   ¿  s   zTestLocWithEllipsis.objc                 C   s   ||ƒd }t  ||¡ d S )N.)r'   r™   )r>   rL   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â   rL   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>   rL   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â   rL   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#   )re   r9   re   r9   )r#   r#   r"   r"   re   r9   )r9   re   r9   re   rP   )rP   r#   r#   )re   r9   re   Údimr
   r7   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)rP   r#   r#   r"   r"   )re   re   r9   re   r9   é   rn   r
   r7   )r   r<   r„   Úreshaper   rS  r&   r'   Úassert_index_equalr
   r7   )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%   re   )r¡  r9   r9   )r&   r
   rE  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   re   r	   )r   Úfrom_productr   r&   r'   rÏ   rª   )r>   rX  r|  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«  re   )r   r   rS  r&   r¦  rþ   r;   )r>   r|  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¯   ry  ry  )r  Útwor  r¯  r  r¯  r  r¯  ÚfirstÚsecondrD  )re   re   re   re   re   re   re   re   r	   rä   )r™  r  )r¯   r¯  )re   re   rä   rä   rä   rä   re   re   )r   r[  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  re   i4  )r   r   rÎ   r&   r   r'   rÏ   )r>   Útimesr|  r¬   r0   r0   r1   Ú7test_loc_getitem_slice_datetime_objs_with_datetimeindexN  s   zMTestLocWithMultiIndex.test_loc_getitem_slice_datetime_objs_with_datetimeindexc                 C   sh   t tdƒtdƒdœtddƒd�}|jddgddgf }t d	d
gd	d
gdœtddgƒd�}t ||¡ d S )Nri   rç   z
2010-01-01z
2010-01-10r	   z
2010-01-05r#   r"   r   rm   )r   rÎ   r   r&   r   r'   r(   r«   r0   r0   r1   Ú3test_loc_getitem_datetime_string_with_datetimeindexT  s   þ
þzITestLocWithMultiIndex.test_loc_getitem_datetime_string_with_datetimeindexc                 C   s    t jg d¢ddgd�}tddgddgd	d
gddgddgddgg|ddgd�}|jdd�}tddgddgddggddg| g d¢¡d�}|jd }t ||¡ d S )N)©r¯   r°   r¸  ©ÚbahÚbamr¹  r¸  r¹  r%   r‹   rD  r4  re   rÝ   r9   rf   rj   ç      @rm   ç      @rn   ç      @rk   rº   r$  r  r   )Úlevel)r   re   rm   rƒ   r¸  )r   r[  r   r¹  rÁ  r&   r'   r(   )r>   rX  r.   r/   r¬   r0   r0   r1   Ú3test_loc_getitem_sorted_index_level_with_duplicatesa  s*   ÷úö&ÿ
zITestLocWithMultiIndex.test_loc_getitem_sorted_index_level_with_duplicatesc                 C   s:   t g d¢dd�}d|jd< t g d¢dd�}t ||¡ d S )Nrõ   ÚcategoryrÙ   r   rj   )r#   r"   rP   r   r;   r^  ©r>   r¬   r/   r0   r0   r1   Ú1test_additional_element_to_categorical_series_locƒ  ó   
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#   rj   ©r#   r"   rP   r#   r^  rÂ  r0   r0   r1   Ú'test_additional_categorical_element_locŠ  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Ù   rj   re   r9   )r   r   r   r<   r�   r&   r'   rÏ   )r>   Úany_numeric_ea_dtypeÚsrsr/   r0   r0   r1   Ú&test_loc_set_nan_in_categorical_series‘  s    þþþz<TestLocWithMultiIndex.test_loc_set_nan_in_categorical_seriesÚnaNc                 C   sd   t g d¢dd�}||jd< t g d¢dd�}||jd< t ||¡ t ddd|gdd�}t ||¡ d S )	Nrõ   rÁ  rÙ   rj   rÅ  r#   r"   rP   r^  )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 )Nr9   é   r#   r"   ri   r   rn   re   ÚIndex1ÚIndex2)rW  ÚcodesrE  )rŒ   r
   FrÁ  )r4  Úorderedr—   r8   )r   r<   r„   r   r   rÎ   r
   rW  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_valuerq   ri   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   re   r9   rj   r	   z\['b'\] not in indexr¾   r"   )r   rß   r    rÁ   rI   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   re   r	   )	r<   r©   r�   r   rS  r   r&   r'   rÏ   )r>   Úlev1Úlev2rX  r|  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Úxyre   r9   )rÞ  rß  ÚnumrD  r}   r	   r#   r   rm   )
r   r¦  rß   r   rÎ   r&   r
   Ú	droplevelr'   rœ  )r>   rX  r|  Ú
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¡ej	 
ddd g¡d!d"„ ƒƒZej	 
d#g d$¢¡d%d&„ ƒZd'd(„ Zd)S )*ÚTestLocSetitemWithExpansionc                 C   s€   d}|  ¡ � | td|¡ tdt|ƒidd�}||j|< W d   ƒ n1 s'w   Y  tdt|d ƒidd�}t ||¡ d S )Né2   Ú_SIZE_CUTOFFrÉ   r+  rÙ   re   )Ú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Ù   re   r	   rj   ©r   r;   r&   r'   rÏ   ©r>   r|  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Ù   r4  re   r	   rf   rj   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ƒd�¡ d|jd< t |t ddgtddgƒd�¡ d|jd< t |t g d¢tg d	¢ƒd�¡ d S )
NrÙ   re   r¯   r	   rj   r°   rm   )re   rj   rm   )r¯   r°   rj   )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¥  re   ú
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¬   rW   r/   r0   r÷  r1   Ú%test_loc_setitem_incremental_with_dst  s   zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstÚconvc                 C   ó   | S ru   r0   r  r0   r0   r1   r  $  ó    z$TestLocSetitemWithExpansion.<lambda>c                 C   ó   |   ¡ S ru   )Úto_datetime64r  r0   r0   r1   r  %  r  c                 C   r   ru   )Úto_pydatetimer  r0   r0   r1   r  &  r  c                 C   s
   t  | ¡S ru   )r<   re  r  r0   r0   r1   r  '  ó   
 )r>   r  r  znp.datetime64)Úidsc                 C   s–   t dƒ}t dƒ}tƒ }d|j||ƒdf< d|j||ƒdf< |r-|jjjdks(J ‚|jj}nd}tddd	git||g|d
�tdgƒd�}t ||¡ d S )Nz20130101 09:00:00z20130101 10:00:00rä   r  r€   r^  údatetime64[ns]g      Y@g      i@rÙ   r  )	r   r   r&   r
   r8   rA   r   r'   r(   )r>   rý  r?   Údt1Údt2r.   Ú	exp_dtyper/   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%   re   r"   )rÒ  r‹   rŽ   r„  )r>   rÒ  r¬   r/   r0   r0   r1   Ú1test_loc_setitem_categorical_column_retains_dtypeB  s   zMTestLocSetitemWithExpansion.test_loc_setitem_categorical_column_retains_dtypec                 C   sœ   t ddd�}t ddd�}t ddd�}t||ddd�}||vs J ‚t|d	gd
�}d|j|d	f< ttjgt|ƒ dg | t|gƒ¡d	gt	d�}t
 ||¡ d S )Nz2017-10-29 00:00:00+0200zEurope/Madrid©r<  z2017-10-29 03:00:00+0100z2016-10-10 03:00:00Úleftr_  )Ú	inclusiverø  r  r  r¦  rw  )r   r   r   r&   r<   r�   rþ   Úappendr   r;   r'   r(   )r>   r   ÚendrW   r  r¬   r/   r0   r0   r1   Ú0test_loc_setitem_with_expansion_and_existing_dstI  s   üzLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_and_existing_dstc                 C   sì   t tddgƒdgd�}ddg|d< | d¡j d¡|_||jdk  d¡j d	¡}| ¡ }||j	|jdkdf< t
|d
  d¡|j	d gdd�}t |j|¡ |j	|jdkdf tdƒ }||j	|jdkdf< t |j	|jdkdf |¡ d S )Nz2015-03-30 20:12:32z2015-03-12 00:11:11r   )rŒ   r7   ÚnewÚoldÚnew_colrª  rô  r   )re   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_expansion[  s   
þ  z7TestLocSetitemWithExpansion.test_setitem_with_expansionc                 C   sV   t ƒ }d|jd< d|jd< d|jdtjf< |j}tddtjgtjd�}t ||¡ d S )Nre   r’  r9   )re   re   rj   r   rÙ   )	r   r&   r<   Úinfr7   r   rØ   r'   rœ  r«   r0   r0   r1   Ú0test_loc_setitem_with_expansion_inf_upcast_emptyq  s   

zLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_inf_upcast_emptyz"ignore:indexing past lexsort depthru  TFc                 C   s–  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�}	| ¡ }
|rj|
d d … }||
j|df< t |
|	¡ | ¡ d }|r…|d d … }||j|< |	d  tj¡}	t ||	¡ | ¡ }
|r¤|
d d … }||
j|df< tt|ƒtjg tjg| t|ƒg dœ|d	�}	t |
|	¡ d S )
NzNot relevant for empty Indexr9   r   r  Úkapowr	  re   ©r   re   r	   )rþ   r    ÚskipÚrepeatr<   r„   r÷   r+  r   Úinsertr˜   r   rØ   rà   r&   r'   r(   rÏ   rß   r�   rz  )r>   r
   ru  ÚNÚarrÚorigr`   rŸ  Úexp_datar/   r.   r{  r|  r0   r0   r1   Ú/test_loc_setitem_with_expansion_nonunique_index|  sD   



&þzKTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_nonunique_indexr8   )Ú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>   r8   r|  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%   rn   ú
2016-01-01rj   rô  ©r!  r<  rd   r‹   rÙ   rŽ   )r   rÎ   r   r&   r  r   r�   r‘   r8   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å  ì  s8    



üø


3ÿ
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©re   r9   rj   rm   rØ  r½   c                 S   ó
   | j dkS ©Nr9   ©r%   r  r0   r0   r1   r  ×  r  zATestLocCallable.test_frame_loc_getitem_callable.<locals>.<lambda>r9   c                 S   ó
   | j dkS )Nr"   )r‹   r  r0   r0   r1   r  Ú  r  r"   c                 S   r2  r3  r4  r  r0   r0   r1   r  Ý  r  c                 S   r5  ©Nr‹   r•   r  r0   r0   r1   r  Ý  r  )FTFc                 S   r2  r3  r4  r  r0   r0   r1   r  à  r  c                 S   ó   dS r6  r0   r  r0   r0   r1   r  à  rÿ  r‹   c                 S   r2  r3  r4  r  r0   r0   r1   r  ã  r  c                 S   ó   ddgS ©Nr%   r‹   r0   r  r0   r0   r1   r  ã  r  r%   c                 S   r5  r3  r4  r  r0   r0   r1   r  æ  r  c                 S   r8  r9  r0   r  r0   r0   r1   r  æ  r  c                 S   r7  )Nre   r0   r  r0   r0   r1   r  ê  rÿ  c                 S   r7  r$   r0   r  r0   r0   r1   r  ê  rÿ  ri  )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 )Nr1  rØ  r½   c                 S   r2  r3  r4  r  r0   r0   r1   r  ñ  r  zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r%   r‹   r9   rj   c                 S   r8  r9  r0   r  r0   r0   r1   r  ô  r  c                 S   r8  r9  r0   r  r0   r0   r1   r  ÷  r  )r   rß   r&   r'   r(   r%   rÏ   r:  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 )Nr1  rØ  ©ÚXr]  r‘  r	   c                 S   r8  ©Nr%   rº   r0   r  r0   r0   r1   r  ÿ  r  zHTestLocCallable.test_frame_loc_getitem_callable_labels.<locals>.<lambda>r%   rº   c                 S   r8  r?  r0   r  r0   r0   r1   r  	  r  c                 S   r8  r?  r0   r  r0   r0   r1   r  	  r  c                 S   r7  ©Nr>  r0   r  r0   r0   r1   r  	  rÿ  r>  c                 S   r8  r?  r0   r  r0   r0   r1   r  	  r  c                 S   ó   dgS r@  r0   r  r0   r0   r1   r  	  ó    c                 S   r7  r@  r0   r  r0   r0   r1   r  	  rÿ  c                 S   rA  r@  r0   r  r0   r0   r1   r  	  rB  c                 S   r8  r?  r0   r  r0   r0   r1   r  	  r  c                 S   r8  r?  r0   r  r0   r0   r1   r  	  r  )r   rß   r&   r'   r(   rÏ   r:  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 )Nr1  rØ  rÙ   r=  r‘  r	   iìÿÿÿc                 S   r8  r?  r0   r  r0   r0   r1   r  !	  r  zATestLocCallable.test_frame_loc_setitem_callable.<locals>.<lambda>r%   rº   rY   c                 S   r8  r?  r0   r  r0   r0   r1   r  '	  r  r	  c                 S   r8  r?  r0   r  r0   r0   r1   r  -	  r  c                 S   r7  r@  r0   r  r0   r0   r1   r  -	  rÿ  r>  rn   ri   c                 S   r8  r?  r0   r  r0   r0   r1   r  3	  r  c                 S   rA  r@  r0   r  r0   r0   r1   r  3	  rB  r
  c                 S   r7  r@  r0   r  r0   r0   r1   r  :	  rÿ  c                 S   rA  r@  r0   r  r0   r0   r1   r  @	  rB  c                 S   r8  r?  r0   r  r0   r0   r1   r  F	  r  éüÿÿÿc                 S   r8  r?  r0   r  r0   r0   r1   r  L	  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Ÿ   r;  r<  rC  rE  r0   r0   r0   r1   r0  Ð  s
    r0  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#   rP   re   rj   rG  rH  z2020-08)r   r   r&   r'   r(   rÐ   r0   r0   r1   Ú5test_loc_getitem_partial_string_slicing_datetimeindexS	  s   
þ
þ
zNTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_datetimeindexc                 C   sD   t jdddd�}| ¡ }|jd d… }|jd d… }t ||¡ d S )Nú
2017-01-01ú
2018-01-01r^  ©r   r  rø  z2017-12r	  )r�   Úperiod_rangeÚ	to_seriesr&   rª   r'   rÏ   )r>   Úpir|  r¬   r/   r0   r0   r1   Ú8test_loc_getitem_partial_string_slicing_with_periodindex`	  s
   zQTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_with_periodindexc                 C   sB   t dddd�}| ¡ }|jd d… }|jd d… }t ||¡ d S )Nú1 dayú2 daysÚ1hrL  z1 daysr	  )r   rN  r&   rª   r'   rÏ   )r>   rî   r|  r¬   r/   r0   r0   r1   Ú;test_loc_getitem_partial_string_slicing_with_timedeltaindexh	  s
   zTTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_with_timedeltaindexc                 C   sD   t dtdƒittdƒdd�d�}|jd }|jd }t ||¡ d S )NrÉ   rj   Údaysr,  r	   r   ú0 days)r   rÎ   r   rª   r&   r'   rÏ   )r>   r.   r/   Úslicedr0   r0   r1   Ú#test_loc_getitem_str_timedeltaindexp	  s    

z<TestPartialStringSlicing.test_loc_getitem_str_timedeltaindexÚindexer_endNú2020-01-02 23:59:59.999999999c              	   C   s–   |dgd t tdƒtdƒtdƒtdƒtdƒg|d�d	�}|dgd
 t tdƒtdƒg|d�d	�}td|ƒ}|| }t ||¡ |j| }t ||¡ d S )Nre   rn   z
2019-12-30z
2020-01-01z
2019-12-25rZ  z
2019-12-19r  r	   r9   )r   r   r£   r'   r™   r&   )r>   Útz_aware_fixturerY  rý  rL   r/   râ   r¬   r0   r0   r1   Ú/test_loc_getitem_partial_slice_non_monotonicityw	  s4   ûøþþûþ


zHTestPartialStringSlicing.test_loc_getitem_partial_slice_non_monotonicity)r�   rž   rŸ   rI  rP  rT  rX  r    r¡   r¢   r\  r0   r0   r0   r1   rF  R	  s    rF  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 ©éÑ  re   ri   r   ©r   r„  r0   r0   r1   rÊ   £	  ó    zMTestLabelSlicing.test_loc_getitem_slicing_datetimes_frame.<locals>.<listcomp>r1  r	   r½  c                 S   r^  r_  ra  r„  r0   r0   r1   rÊ   ©	  rb  )re   r9   r9   rj   rm   r`  re   ri   rm   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_frame�	  s*   þþ"ôz9TestLabelSlicing.test_loc_getitem_slicing_datetimes_framec                 C   s†   t ddddd�}tg d¢|d�}tddd	�}td
dd	�}|j||… }tddg|dd… d�}t ||¡ || }d}||ksAJ ‚d S )Nz2017-10-29 01:30:00zEurope/Berlinrn   z30 min)r<  r!  rø  )r   re   r9   rj   rm   r	   z2017-10-29 02:30:00+02:00r  z2017-10-29 02:00:00+01:00r9   rj   rm   )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
   rJ  rK  r^  rL  rQ  rR  rS  c                 C   s8   |  ¡ }|jd |d … }|jd d… }t ||¡ d S )Nr
  r	  )rN  r&   rª   r'   rÏ   )r>   r
   r|  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‹ßÖË|é@r9   ©rj   r9   r	   g3333c|é@g    �|é@g3333“|é@gÍÌÌÌÜ|é@rj   )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 )Nr9   ri   rY   rÙ   r	   rR  r}   g      )@rl   gffffff(@)r   r<   rÌ   rÍ   r„   rþ   r&   r
   )r>   r*  r8   r|  r  r0   r0   r1   Ú'test_loc_getitem_float_slice_floatindexæ	  s   ÿz8TestLabelSlicing.test_loc_getitem_float_slice_floatindexzstart,stop, expected_slicer   ÚnsNr¥  re   r$  rk   rl   rm   rn   c                 C   s>   t tdƒtddƒƒ}|jt||ƒ }|j| }t ||¡ d S )Nr¥  rV  z10 days)r   rÎ   r   r&   r£   rª   r'   rÏ   )r>   r   ÚstopÚexpected_slicer|  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Á   rI   r&   )r>   rý  r   rL   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 )Nrm   r°  r9   Úthirdr	   )rÎ   r&   r'   r™   )r>   rý  r  rL   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 )	Nre   r9   rj   )Útestre   r9   r   r	   rÙ   )rŒ   r
   r7   )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Ÿ   re  ri  r    r¡   r¢   r�   rM  r   rj  rm  rn  r<   ra  r£   rr  rx  rz  r|  r0   r0   r0   r1   r]  œ	  s2    þþ
ýþ



r]  c                   @   sH   e Zd Zej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd	„ Zd
S )ÚTestLocBooleanLabelsAndSlicesÚ
bool_valueTFc                 C   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Á   rI   r&   )r>   r
   rý  r~  ÚmessagerL   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ý  r~  rL   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ý  r  rL   r0   r0   r1   Útest_loc_bool_slice_raises3
  s   ÿ"ÿz8TestLocBooleanLabelsAndSlices.test_loc_bool_slice_raisesN)	r�   rž   rŸ   r    r¡   r¢   r€  r�  r‚  r0   r0   r0   r1   r}   
  s    


r}  c                   @   sl   e Zd Zdd„ Zej dddg¡dd„ ƒZdd	„ Zd
d„ Z	e
jdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestLocBooleanMaskc                 C   s²   t dtdƒiƒ}ttdƒdd�|_|d dk|d dk|d dk g}g d¢g d¢g d¢g}t||ƒD ]$\}}| ¡ }d|j|df< t |ttdƒdd�dgd	d
�}t ||¡ q2d S )NrÉ   ri   rü   r,  rj   )
r   re   r9   rj   ri   ri   ri   ri   ri   ri   )
r   re   r9   ri   rm   rn   rk   rl   r}   r£  )
ri   ri   ri   rj   rm   rn   rk   rl   r}   r£  r+  rw  )	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_timedeltaindexr<  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 )Nrx   Ú20010101rm   r-  r#   r	   rØ   )
r<   r©   r   r   r„   r÷   rà   r&   r'   r(   )r>   r<  r   r  r.   r¬   r0   r0   r1   Ú+test_loc_setitem_mask_with_datetimeindex_tzT
  s    z>TestLocBooleanMask.test_loc_setitem_mask_with_datetimeindex_tzc                 C   s~   t t d¡ dd¡tdƒtdddd�d�}| ¡ }|jd	 gtj	tj	g |d
< |j
dk }|j| j|j|d
f< t ||¡ d S )Nr¾  rj   r9   ÚABrõ  rS  )r!  rø  rƒ   r   rº   re   )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_datetimeindexe
  s   ý
zETestLocBooleanMask.test_loc_setitem_mask_and_label_with_datetimeindexc                 C   s€   t dƒ}t dƒ}tdt||gƒiƒ}| ¡ }t|gƒ}|d jd j}||jddg< |d jd j}||ks8J ‚t ||¡ d S )Nr   l   ,GsO1Úcolre   TF)	r   r   r   rà   rª   Ú_valuer&   r'   r(   )r>   Útd1Útd2r.   Údf_copyr|  r/   r¬   r0   r0   r1   Ú'test_loc_setitem_mask_td64_series_valuet
  s   
z:TestLocBooleanMask.test_loc_setitem_mask_td64_series_valuec                 C   s\   |  ¡ }|d dk}d|j|df< |j  ¡ }d||jdf< t||j|jd�}t ||¡ d S )Nr%   r   r‹   re   r  )rà   r&   r’   r   r
   r7   r'   r(   )r>   r  r/   r   r’   r0   r0   r1   Ú#test_loc_setitem_boolean_and_columnƒ
  s   
z6TestLocBooleanMask.test_loc_setitem_boolean_and_columnc                 C   s|  t g d¢g d¢dœƒ}t dg d¢ig d¢d�|jg d¢dgf< t g d	¢g d¢dœƒ}t ||¡ t g d¢g d¢dœƒ}tg d
¢g d¢d�|jg d¢dgf< t ||¡ t g d¢g d¢dœƒ}tg d
¢g d¢d�|jg d¢df< t ||¡ t g d¢g d¢dœƒ}| ¡ }|d }t |¡� tg d
¢g d¢d�|jg d¢< W d   ƒ n1 s§w   Y  |r¶t ||¡ d S t ||¡ d S )Nr‡   rY  rç   r#   r¹   )r9   re   r   r	   )FFT)re   r9   ri   r¤  )r   r&   r'   r(   r   rà   rÑ  )r>   rÒ  r�  r.   r/   rá   r|  r0   r0   r1   Ú)test_loc_setitem_ndframe_values_alignment�
  s*   ÿ$" ÿz<TestLocBooleanMask.test_loc_setitem_ndframe_values_alignmentc                 C   sN   t g g dœtd�}| ¡ }|d  ¡ |jtjg tjd�dgf< t ||¡ d S )Nrç   rÙ   r#   ©	r   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É   r9  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É   r9  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þ  ru   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‹   rj   r	   r	  re   rú   r¾   )r   r<   r�   r   rÎ   r&   r'   rÏ   rŽ  r(   r    rÁ   rI   )r>   r¨  Úcir|  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-14re  rÙ   )r9   rn   r}   r¥  z
2001-01-01r$  rm   r´  rú   r¾   )r<   r©   r   r   r    rÁ   rI   r&   )r>   r`   r|  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Á   rI   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—   r8   ú
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   r8   r    rÁ   rI   )r>   r¤  r  r|  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 )Nre   r9   rm   rn   rl   r}   )Ú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®  re   )r´  r®  ÚAllrµ  r9   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 )Nr9   r  r{  rƒ   r½   Tr*  )	r   r<   rÌ   rÍ   rß   rª   r&   r'   r(   )r7   Ú
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 )Nr9   )r}   rm   r(  r}   re   )ró   r4  rÝ   rf   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 ))rl   r}   r£  ri   r0   )rÈ   Úyrr`  r0   r0   r1   rÊ   N  rù  z)test_loc_axis_1_slice.<locals>.<listcomp>)éÞ  r¶   )ri   r}   Ú
ABCDEFGHIJr  re   r·  ©r½  r£  ©r¶   r}   rÎ  )r¿  )r½  ri   )r¶   rl   rÀ  )	r   r<   r¿  r}  r   r[  r&   r'   r(   )rø   r.   r¬   r/   r0   r0   r1   Útest_loc_axis_1_sliceL  s   ýýrÁ  c                  C   sX   t dtdƒt tdƒtdƒg¡d�} |  ¡ }|jddgf |jddgf< t || ¡ d S )Nr#   r9   r  r   r  )r   rÎ   r   r¦  rà   r&   r'   r(   )r/   r¬   r0   r0   r1   Ú!test_loc_set_dataframe_multiindex]  s   ÿrÂ  c                  C   s4   t tdƒtddgtd�ƒ} | jd }|dksJ ‚d S )Nr9   re   rÝ   rÙ   r   )r   rÎ   r   r;   r&   )r|  r¬   r0   r0   r1   Útest_loc_mixed_int_floatg  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 )Nrm   r#  r	   ú$Slicing a positional slice with .locr¾   r9   rj   )r   rÎ   r    rÁ   r¤   r&   )r|  r0   r0   r1   Ú%test_loc_with_positional_slice_raiseso  s   "ÿrÅ  c               	   C   s>  t ddd�} ttj d¡ d¡| d�}|d }d}||fD ]>}tjt|d	�� |jd
d…  W d   ƒ n1 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,  rj   ©r!  r9   rk  r	   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intr¾   re   rÄ  )	r   r   r<   rÌ   rÍ   r    rÁ   r¤   r&   )Údtir.   r|  rÂ   rL   r0   r0   r1   Ú#test_loc_slice_disallows_positionalw  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 )Nr9   rx  rõ   Ú2012r_  rn   r´  rƒ   )r   r9   r9   rj   z/None of \[TimedeltaIndex.* are in the \[index\]r¾   r#   )r   r<   rÌ   rÍ   r“  r   rª   rà   r
   r�   ÚTimedeltaIndexÚasi8r    rÁ   rI   r&   )r.   rÇ  r.  rÂ   r0   r0   r1   Ú'test_loc_datetimelike_mismatched_dtypes“  s   ýÿ"ÿrÌ  c                  C   s¦   t jdddd�} ttj d¡ d¡| d�}t ||j	|  ¡ t ||j	t
| ƒ ¡ t ||j	t
| ƒ ¡ t |jdd	… |j	| dd	…  ¡ t ||j	t
| ƒ ¡ d S )
Nz2002-01z2003-12r^  r÷  r9   )rB  ri   r	   r   rn   )r�   rM  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 )Nr9   )r}   rk   rõ  r}   rÆ  )r%   r‹   rº   r$  ÚEÚFr  re   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  )re   r   r   re   )rÉ   r9  rÜ  rD  rk   rn   r  rd   )r¿  r¸  )
r   r¦  r   rÎ   r&   rª   r'   r(   ÚxsrÏ   )rÛ  rÜ  Úlev3rø   r.   r¬   r/   Úaltr|  Ú	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 )Nr1  )rn   rk   rl   r}   re   r9   rõ   r%  )rŒ   r7   r8   rP   rn   r–  )r   r<   r©   r�   ÚTrÀ   r
   r8   r&   r   r7   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 )Nr1  r�   Úuint8r6   rê   r¾   )r9   r�   Úint16Úuint16)re   r9   rå   rm   )
r   r'   rë   rì   r&   r   r˜   r<   rÚ  r(   )r  r.   r8   r/   r0   r0   r1   Útest_loc_setitem_uint8_upcastò  s   ÿrÜ  zfill_val,exp_dtypez
2022-01-06r  z
2022-01-07ú
US/Easternr  zdatetime64[ns, US/Eastern]c                 C   sj   ddd|   ¡ g}t|| j|d�}tg d¢dg|d�}d|jd	< | d
¡ t||d�}tj|j|dd� d S )Nz
2022-01-02z
2022-01-03z
2022-01-04)r<  r8   )ri   r¥  r¦  rA  r#   rƒ   r@  )ú
2022-01-08r#   rÞ  rÙ   T)Úexact)	r   r   r<  r   r&   r  r'   rœ  r
   )Úfill_valr  rŒ   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Úabcrn   r�   r#   r"   rP   )r   re   r9   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‹   r4  )r%   rº   rÝ   )r   ÚQrf   )ÚWrÏ  r¼  )ÚONEÚTWOÚVALUESr  rç  rè  T)r  ré  r   r%   r4  )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  r>  r]  rî  )r>  r]  rº   )r    r  r   r   r&   r  r'   r(   )r.   Ú	new_valueÚexpected_dfr0   r0   r1   Ú test_loc_setitem_pyarrow_strings4  s   

þÿ
þÿrñ  c                   @   s  e Zd Zej dddg¡dd„ ƒZdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dejejeeg¡ej dg d¢¡dd„ ƒƒZej deddd…f dedƒfg¡d d!„ ƒZd"d#„ Zej d$d%d&g¡d'd(„ ƒZejd)d*„ ƒZd+d,„ Zd-d.„ Zd/d0„ Z dS )1ÚTestLocSeriesr$  )r%  rj   )r&  rm   c                 C   s$   t dddœƒ}|j| |ksJ ‚d S )Nrj   rm   )r%  r&  )r   r&   )r>   r*  r/   r|  r0   r0   r1   rá  K  s   zTestLocSeries.test_loc_uint64c           	      C   sÒ   |j g d¢ }t |j| | |¡¡ t |jdd d… |dd d… ¡ |j ddg \}}|j||… }| ||¡}t ||¡ || ¡ k}t |j| || ¡ |j| || ks\J ‚|j| || ksgJ ‚d S )N©rj   rm   rl   rn   r9   é   )r
   r'   rÏ   r&   rˆ  rª   ÚtruncateÚmedian)	r>   Ústring_seriesÚdatetime_seriesÚindsÚd1Úd2r¬   r/   r   r0   r0   r1   Útest_loc_getitemQ  s   "zTestLocSeries.test_loc_getitemc                 C   s¬   |j ddg \}}|d d d… jg d¢ }d}tjt|d�� |j||…  W d   ƒ n1 s0w   Y  tjt|d�� d|j||…< W d   ƒ d S 1 sOw   Y  d S )Nrn   rô  r9   )re   r9   r   z"Timestamp\('2000-01-10 00:00:00'\)r¾   r   )r
   rª   r    rÁ   rI   r&   )r>   rø  rú  rû  Úts2rÂ   r0   r0   r1   Útest_loc_getitem_not_monotonicd  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 )Nr9   ri   r   rY   r	   rm   rj   r¥  rk   )rm   rk   r}   ri   rn   r£  r	  z^3$r¾   )r   r<   rÌ   rÍ   r“  rß   rÎ   rà   rª   r%  r’   r&   rˆ  r'   rÏ   r    rÁ   rI   )r>   r|  Úcpr¬   r¤  r/   Ús2r0   r0   r1   Ú0test_loc_getitem_setitem_integer_slice_keyerrorso  s*   ÿ"ÿ"ÿz>TestLocSeries.test_loc_getitem_setitem_integer_slice_keyerrorsc                 C   s4   t |jd d… ƒ}|j| }t ||d d… ¡ d S )Nri   )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_boolean‘  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)rn   r}   r¦  rn   z\['foo'\] not in indexr¾   r¯   )rß   r
   r&   r    rÁ   rI   )r>   r÷  rù  rÂ   r0   r0   r1   Útest_loc_setitem_cornerš  s   
"ÿz%TestLocSeries.test_loc_setitem_cornerc                 C   s†   |j g d¢ }| ¡ }| ¡ }d||< d|j|< t ||¡ | ¡ }| ¡ }d||d |d …< d|j|d |d …< t ||¡ d S )N)rn   ri   rô  r   r9   )r
   rà   r&   r'   rÏ   )r>   rø  Úindicesrÿ  rš   r0   r0   r1   Útest_basic_setitem_with_labels¡  s   
z,TestLocSeries.test_basic_setitem_with_labelsc           	      C   s$  t tj d¡ d¡ttdddƒƒd�}g d¢}t g d¢¡}| ¡ }| ¡ }d||< d|j	|< t
 ||¡ | ¡ }| ¡ }d||< d|j	|< t
 ||¡ g d¢}t g d¢¡}d}tjt|d	�� d||< W d   ƒ n1 sow   Y  tjt|d	�� d||< W d   ƒ d S 1 s‹w   Y  d S )
Nr9   ri   r   rY   r	   )r   rm   rk   ©r   rm   rn   rk   z\[5\] not in indexr¾   )r   r<   rÌ   rÍ   r“  rß   rÎ   r©   rà   r&   r'   rÏ   r    rÁ   rI   Ú	Exception)	r>   r|  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¥  rj   rÝ  r-  rõ   r	   r«  r  r#   r   )r   r   rà   r   r&   rª   )r>   r|  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/   r|  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¾   re   )r   r   r[  r    rÁ   r   r&   )r>   râ   r|  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ó  rn   ri   rô  rk   rú  rm   )r
   rà   r&   rª   r'   rÏ   )r>   r÷  rù  r¬   r/   rú  rû  r0   r0   r1   Útest_loc_setitem  s"   


zTestLocSeries.test_loc_setitemr8   r;   r7  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>   r8   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•   rk   rü   r,  r¯   )r   r  re   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 )Nre   r9   r#   r  rk   rl   r"   rP   r;   rÙ   rõ   r	   )r   r&   r   r<   r�   r'   r(   r…   r0   r0   r1   Ú3test_loc_set_multiple_items_in_multiple_new_columns1  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¾   Ú2000rY   r‹   r  r	   z
2000-01-14r£  )r'   rë   rì   r�   rM  r   rÎ   r&   )r>   rÂ   r
   r+   r0   r0   r1   Ú test_getitem_loc_str_periodindexA  s   "ýz.TestLocSeries.test_getitem_loc_str_periodindexc                 C   sŠ   t tdƒƒ}t|d dd�}tdtjt|ƒtjd�i|d�}|j| }td|j	dd� 
tj¡itt |¡ d¡dd�d�}t ||¡ d S )	Nr¥  iè  r%  rÙ   r*  r	   Ústable)rA   )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_indexI  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ß   r}  r  r   r£   r  r  r  r™  rš  r  r  r  r"  r0   r0   r0   r1   rò  J  s2    
	$

	

rò  )\Ú__doc__Úcollectionsr   rT  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å  r0  rF  r]  r}  rƒ  r›  r¸  r»  rÁ  rÂ  rÃ  rÅ  rÈ  rÌ  rÍ  rÐ  rÖ  rØ  rÛ  rÚ  rÜ  râ  rä  r‡  rì  rñ  rò  r0   r0   r0   r1   Ú<module>   s°    P þþ
	 D           ?= w e J  	fýþ



þþ

	
