U
    ùQ”iÑ¹ ã                	   @   s  d Z ddlmZ ddlmZmZmZmZ ddlZddlm	Z	 ddl
ZddlZddlmZ ddlm  mZ ddlZddlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& ddl'm(Z) ddl*m+Z+m,Z, dd	l-m.Z. dd
l/m0Z0 ej1 2dej3ej3dgdej3ej3gdddggej3dgdej3gddggg¡dd„ ƒZ4G dd„ dƒZ5G dd„ dƒZ6G dd„ dƒZ7G dd„ dƒZ8G dd„ dƒZ9G dd„ dƒZ:G dd„ dƒZ;G d d!„ d!ƒZ<G d"d#„ d#ƒZ=G d$d%„ d%ƒZ>G d&d'„ d'ƒZ?ej1 2d(d)d*d+gd)d*gdd,gfd)d*d-gd)d*gdd,gfd)d*d-gd)d-gdd.gfg¡d/d0„ ƒZ@d1d2„ ZAd3d4„ ZBd5d6„ ZCd7d8„ ZDd9d:„ ZEd;d<„ ZFd=d>„ ZGd?d@„ ZHdAdB„ ZIdCdD„ ZJdEdF„ ZKej1 2dGdHe LdH¡e MdH¡g¡dIdJ„ ƒZNej1 2dKe"dLƒdMfe"dNdOdP�dQfg¡dRdS„ ƒZOdTdU„ ZPdVdW„ ZQG dXdY„ dYƒZRdS )Zz$ test label based indexing with loc é    )Ú
namedtuple)ÚdateÚdatetimeÚtimeÚ	timedeltaN)Úgettz)ÚIndexingError)ÚCategoricalÚCategoricalDtypeÚCategoricalIndexÚ	DataFrameÚDatetimeIndexÚIndexÚ
IndexSliceÚ
MultiIndexÚPeriodÚPeriodIndexÚSeriesÚSparseDtypeÚ	TimedeltaÚ	TimestampÚ
date_rangeÚtimedelta_rangeÚto_datetimeÚto_timedelta)Úis_bool_dtypeÚ	is_scalar)Ú_one_ellipsis_message)Ú"check_indexing_smoketest_or_raisesz series, new_series, expected_serÚbÚaFTc                 C   sP   t d| iƒ}||jd d …df< t d|iƒ}t | ¡ |¡ t | ¡ | ¡ d S ©NÚA)r   ÚlocÚtmÚassert_frame_equalÚisnaZnotna)ÚseriesZ
new_seriesZexpected_serÚdfÚexpected© r*   úB/tmp/pip-unpacked-wheel-58ppya8e/pandas/tests/indexing/test_loc.pyÚtest_not_change_nan_loc0   s
    	r,   c                   @   sÚ  e Zd Zej dddg¡dd„ ƒZej dddg¡dd„ ƒZej dd	d
ddddgdgd	dgdgdd
ddg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dddgd
ddggdddgd
ddggg¡ej dddg¡dd„ ƒƒZ	ej ddddgdgdgdddgd
ddgdgddd gd
ddgdgd!d"d#g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ƒdddddgdeged/d0ƒdgdegedd1ƒdgdegedd1ƒdgdegedd2dƒdgdegg¡ej dddg¡d3d4„ ƒƒZd5d6„ Zd7d8„ Zej d9e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¡d>d?„ ƒZdS )@ÚTestLocÚkindr'   Úframec                 C   s$   |  |› d�¡}t|ddtd� d S )NZ_labelsr#   é   ©Úfails©Úgetfixturevaluer   ÚKeyError©Úselfr.   ÚrequestÚobjr*   r*   r+   Útest_loc_getitem_intA   s    zTestLoc.test_loc_getitem_intc                 C   s$   |  |› d�¡}t|ddtd� d S )NÚ_emptyr#   Úcr1   r3   r6   r*   r*   r+   Útest_loc_getitem_labelG   s    zTestLoc.test_loc_getitem_labelzkey, typs, axesÚfZintsZuintsÚlabelsÚmixedÚtsNZfloatsé   r   c                 C   s4   |D ]*}|  |› d|› �¡}t|d||td� qd S ©NÚ_r#   ©Úaxesr2   r3   ©r7   ÚkeyÚtypsrF   r.   r8   Útypr9   r*   r*   r+   Ú#test_loc_getitem_label_out_of_rangeM   s        ÿz+TestLoc.test_loc_getitem_label_out_of_rangez	key, typsé   r0   ç      @r"   c                 C   s2   |D ](}|  |› d|› �¡}t|d|td� qd S )NrD   r#   r1   r3   )r7   rH   rI   r.   r8   rJ   r9   r*   r*   r+   Útest_loc_getitem_label_lista   s    	z#TestLoc.test_loc_getitem_label_listÚemptyé
   é   é   é   )rL   rQ   )rL   é   )r0   é   Zmultic                 C   s4   |D ]*}|  |› d|› �¡}t|d||td� qd S rC   r3   rG   r*   r*   r+   Ú(test_loc_getitem_label_list_with_missingo   s        ÿz0TestLoc.test_loc_getitem_label_list_with_missingrI   c                 C   s0   |  |› d|› �¡}t|ddddgdtd� d S )NrD   r#   rB   é   é(   rL   rE   r3   )r7   rI   r.   r8   r9   r*   r*   r+   Ú!test_loc_getitem_label_list_fails�   s        ÿz)TestLoc.test_loc_getitem_label_list_failsc                 C   s   d S ©Nr*   ©r7   r*   r*   r+   Ú!test_loc_getitem_label_array_likeŠ   s    z)TestLoc.test_loc_getitem_label_array_likec                 C   s0   |  |› d�¡}ddddg}t|d|td� d S )Nr;   TFr#   r1   )r4   r   Ú
IndexError)r7   r.   r8   r9   r   r*   r*   r+   Útest_loc_getitem_bool�   s    zTestLoc.test_loc_getitem_boolzslc, typs, axes, failsZ20130102Z20130104é   rT   c           	      C   s4   |D ]*}|  |› d|› �¡}t|d|||d� qd S rC   )r4   r   )	r7   ZslcrI   rF   r2   r.   r8   rJ   r9   r*   r*   r+   Útest_loc_getitem_label_slice—   s    ûz$TestLoc.test_loc_getitem_label_slicec                 C   st   t ddgddgddggddgdddgd�}t d	¡|jd
< t ddgddgddggddgdddgd�}t ||¡ d S )NrB   r    éÈ   Úcol1Úcol2rP   rL   ©ÚcolumnsÚindexr0   )rL   rb   r   )r   ÚnpÚaranger#   r$   r%   ©r7   r(   r)   r*   r*   r+   Ú test_setitem_from_duplicate_axis·   s    ý  ÿz(TestLoc.test_setitem_from_duplicate_axisc                 C   s¤   t dddg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 dddgdd
dgtdƒtdƒtdƒgdœd	�}t	 
||¡ d S )NrL   r0   rQ   zString 1zString 2z2019-06-11 11:00:00z2019-06-11 12:00:00)Zchannelr"   ÚB)ÚdatazString 3©r"   rk   r"   rk   )r   rg   ÚNaNr   ÚpdÚNaTÚvaluesr#   r&   r$   r%   )r7   r(   Údf2r)   r*   r*   r+   Útest_column_types_consistentÄ   s.    
ýýÿÿýýÿz$TestLoc.test_column_types_consistentzobj, key, expF©re   ©Úname©rf   c                 C   s6   |j | }t|ttfƒr&t ||¡ n||ks2t‚d S rZ   )r#   Ú
isinstancer   r   r$   Úassert_equalÚAssertionError)r7   r9   rH   ÚexpÚresr*   r*   r+   Ú#test_loc_getitem_single_boolean_argã   s    
z+TestLoc.test_loc_getitem_single_boolean_arg)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer:   r=   rK   rN   rV   rY   r\   r^   ÚsliceÚ	TypeErrorr5   r`   rj   rs   r   r   r   r   r}   r*   r*   r*   r+   r-   @   sˆ   





úþþþûþ

üöþý$ùþr-   c                   @   sP  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d%d&d%d&gg¡d'd(„ ƒZd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zejd7d8„ ƒZej d9d:ejd:ejd;�ejd:d:d:d:d:gejd;�g¡d<d=„ ƒZd>d?„ Zd@dA„ ZdBdC„ Z dDdE„ Z!dFdG„ Z"ej dHdIdJdKdLdMdNdOdPg¡dQdR„ ƒZ#dSdT„ Z$dUdV„ Z%dWdX„ Z&dYdZ„ Z'd[d\„ Z(d]d^„ Z)d_d`„ Z*dadb„ Z+dcdd„ Z,ej dedfge-dgdfdgƒe dfg¡g¡ej dhdige dig¡g¡djdk„ ƒƒZ.ej dld:dmgdfdndodKgfdpe/dpdpdpdpgdqdrej0ej0gdpdpdpdpggdfdndodKgds�fdtdodKgfdpduge/dtdmej0ej0gdqdrdpdugdvdwej0ej0ggdfdndodKgds�fdtdfdndogfejdpdudxgejd;�e/dtdmej0gdpdudxgdvdwej0ggdfdndogds�fe-dtdqdgƒdndodKgfdpdudxgdydzd{gge/dtdmej0ej0gdqdpdudxgdvdydzd{ggdfdndodKgds�fe-dtdqdgƒdodfdKgfejdpdudxgdydzd{ggejd;�e/dtdmej0ej0gdudrdpdxgdzdwdyd{ggdfdndodKgds�fe-dgdgdgƒdfdogfe/dpdugdxdygdzd{ggdfdogds�e/dpdmdugdxdrdygdzdwd{ggdfdndogds�fg¡d|d}„ ƒZ1d~d„ Z2d€d�„ Z3d‚dƒ„ Z4d„d…„ Z5d†d‡„ Z6ejj7ej dˆd‰dŠgd‹dŒgg¡d�dŽ„ ƒƒZ8d�d�„ Z9d‘d’„ Z:d“d”„ Z;d•d–„ Z<d—d˜„ Z=d™dš„ Z>d›dœ„ Z?d�dž„ Z@dŸd „ ZAd¡d¢„ ZBd£d¤„ ZCd¥d¦„ ZDd§d¨„ ZEd©dª„ ZFd«d¬„ ZGej d­d®d¯d°g¡ej d±ejejHeIg¡eJjKd²d³„ ƒƒƒZLd´dµ„ ZMeJjKd¶d·„ ƒZNd¸d¹„ ZOej dedºd»g¡d¼d½„ ƒZPej d¾eQejeReSg¡d¿dÀ„ ƒZTdÁdÂ„ ZUej dÃdÄeRdtgƒfdÅeRdmgƒfg¡dÆdÇ„ ƒZVdÈdÉ„ ZWej dÊd:dËdtdmdqdrdvdwdpdudxg
fe-drduƒd:dtdmdqdËdËdËdËdudxg
fdqdvgd:dtdmdËdrdËdwdpdudxg
fg¡dÌdÍ„ ƒZXdÎdÏ„ ZYdÐdÑ„ ZZdÒdÓ„ Z[ej dÔdÕdÕgg¡dÖd×„ ƒZ\dØdÙ„ Z]ej dÚdfdfgdfe-dgƒfg¡dÛdÜ„ ƒZ^dÝdÞ„ Z_dßdà„ Z`dádâ„ Zadãdä„ Zbdådæ„ Zcej dçdèdég¡dêdë„ ƒZddìdí„ Zedîdï„ Zfdðdñ„ Zgdòdó„ Zhdôdõ„ ZidgS )öÚTestLocBaseIndependentc                 C   sH   t tddƒd�}|jt dg¡d d … }|jdd … }t ||¡ d S )NZ2021Ú2022rw   z2021/6/1r   é—   )r   r   r#   rg   ÚarrayÚilocr$   r%   ©r7   r(   Úresultr)   r*   r*   r+   Útest_loc_npstrú   s    z%TestLocBaseIndependent.test_loc_npstrzmsg, keyz'Period\('2019', 'A-DEC'\), 'foo', 'bar'éã  ÚfooÚbarz&Period\('2019', 'A-DEC'\), 'y1', 'bar'Úy1z&Period\('2019', 'A-DEC'\), 'foo', 'z1'Úz1z;Period\('2018', 'A-DEC'\), Period\('2016', 'A-DEC'\), 'bar'éâ  éà  z&Period\('2018', 'A-DEC'\), 'foo', 'y1'z;Period\('2017', 'A-DEC'\), 'foo', Period\('2015', 'A-DEC'\)éá  éß  z&Period\('2017', 'A-DEC'\), 'z1', 'bar'c              	   C   sz   t tdƒddgtdƒtdƒdgtdƒdtd	ƒgd
ddgdddgdœƒ dddg¡}tjt|d�� |j|  W 5 Q R X dS )a(  
        parse_datetime_string_with_reso return parameter if type not matched.
        PeriodIndex.get_loc takes returned value from parse_datetime_string_with_reso
        as a tuple.
        If first argument is Period and a tuple has 3 items,
        process go on not raise exception
        rŽ   Úx1Zx2r“   r”   r‘   r•   r’   r–   rL   r0   rQ   rP   rB   rW   )r"   rk   ÚCZV1ZV2r"   rk   r˜   ©ÚmatchN)r   r   Ú	set_indexr�   Úraisesr5   r#   )r7   ÚmsgrH   r(   r*   r*   r+   Ú;test_contains_raise_error_if_period_index_is_in_multi_index  s    ûÿø	zRTestLocBaseIndependent.test_contains_raise_error_if_period_index_is_in_multi_indexc              	   C   s>   t ddgiƒ}tjtdd�� |jd d …df  W 5 Q R X d S )Nr    rL   u   ×�r™   )r   r�   rœ   r5   r#   ©r7   r(   r*   r*   r+   Ú$test_loc_getitem_missing_unicode_key(  s    z;TestLocBaseIndependent.test_loc_getitem_missing_unicode_keyc                 C   sT   t tj d¡dd„ tdƒD ƒd�}|jd }|jd d …df jd }t ||¡ d S )	N)rB   rU   c                 S   s   g | ]}d |d  ‘qS )ZABCDErU   r*   ©Ú.0Úxr*   r*   r+   Ú
<listcomp>1  s     z@TestLocBaseIndependent.test_loc_getitem_dups.<locals>.<listcomp>rB   rw   )r"   r   r   r"   )r   rg   ÚrandomZrandom_sampleÚranger#   r$   Úassert_series_equal©r7   r(   r)   rŒ   r*   r*   r+   Útest_loc_getitem_dups-  s    
 ÿ
z,TestLocBaseIndependent.test_loc_getitem_dupsc                 C   s€   t ddddtdƒggdddddgdgd�}tddddtdƒgdddddgdd�}|jd	 }t ||¡ |jd }t ||¡ d S )
NrL   r0   r�   r�   Ú20130101r    rd   ©rf   rv   r   )r   r   r   rŠ   r$   r§   r#   r¨   r*   r*   r+   Útest_loc_getitem_dups27  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Àt	‚dddgf}| ¡ }|j|  d9  < t 
|j| d|j|  ¡ d S )NZrtttiZaaaderU   Úfloat64©Údtypegq=
×£põ?r0   gÃõ(\�ÂÕ¿)Úmer�   r�   Úbar2r°   Úrr�   r±   ç       @)r²   r�   Út)r   Úlistrg   rh   r›   Úcopyr#   r$   r§   rz   r%   )r7   Údf_origÚindexerr(   r*   r*   r+   Útest_loc_setitem_dupsK  s2    üÿù
þþz,TestLocBaseIndependent.test_loc_setitem_dupsc                 C   sð   t dddgtdddgdd�dœƒ}|d	 dk}|j|d
f d }||j|d
f< t dddgtdddgdd�dœƒ}t ||¡ t dddgdddgdœdd�}|d	 dk}|j|d
f }||j|d
f< t dddgdddgdœdd�}t ||¡ d S )Nr   rL   éd   ra   é,  Zuint32r®   ©r    r   r    r   éÉ   i-  Úuint64)r   r   r#   r$   r%   )r7   Zdf1ÚixZnewb1r)   rr   Znewb2r*   r*   r+   Útest_loc_setitem_slicen  s    "ÿz-TestLocBaseIndependent.test_loc_setitem_slicec                 C   s’   t dgdgdgdgdœƒ}dddg}|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   r<   r    r   r<   Zfloat32r­   r®   )r   r#   Úastyperg   r‰   r$   r%   )r7   r(   Úcolsr)   r*   r*   r+   Útest_loc_setitem_dtypeƒ  s    
&üÿ	z-TestLocBaseIndependent.test_loc_setitem_dtypec              	   C   sr   t tdƒdddgd�}tjtdd�� |ddg  W 5 Q R X t tdƒƒ}tjtdd�� |d	dg  W 5 Q R X d S )
NrQ   r    r   r<   rw   únot in indexr™   Údr   )r   r¦   r�   rœ   r5   )r7   Úsr*   r*   r+   Ú$test_getitem_label_list_with_missing–  s    z;TestLocBaseIndependent.test_getitem_label_list_with_missingrf   TFc              	   C   sN   t dddgƒ}dt|ƒ› dt|ƒ› �}tjt|d�� |j|  W 5 Q R X d S )NrL   r0   rQ   z Boolean index has wrong length: z instead of r™   )r   Úlenr�   rœ   r]   r#   )r7   rf   rÉ   r�   r*   r*   r+   Útest_loc_getitem_bool_diff_len¡  s    z5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   s   d S rZ   r*   r[   r*   r*   r+   Útest_loc_getitem_int_slice©  s    z1TestLocBaseIndependent.test_loc_getitem_int_slicec              	   C   sh   t tj d¡dddgdddgd�}d	t ¡ j› d
�}tjt|d�� |jddgddgf  W 5 Q R X d S )N)rQ   rQ   r    r   r<   Úer>   Úg©rf   re   z$\"None of \[Index\(\[1, 2\], dtype='ú'\)\] are in the \[index\]\"r™   rL   r0   )	r   rg   r¥   Úint_r¯   r�   rœ   r5   r#   ©r7   r(   r�   r*   r*   r+   Útest_loc_to_fail­  s    
  ÿÿz'TestLocBaseIndependent.test_loc_to_failc              	   C   sH  t td�}d|jd< d|jd< tjtdd�� |jd  W 5 Q R X dt ¡ j› d	�}tjt|d�� |jdd
g  W 5 Q R X d}tjt|d�� |jdg  W 5 Q R X d|jd< tjtdd�� |jdd
g  W 5 Q R X d|d< dt ¡ j› d	�}tjt|d�� |jd
g  W 5 Q R X |d= tjt|d�� d|jd
g< W 5 Q R X d S )Nr®   rL   r0   r    z^-1$r™   éÿÿÿÿz&\"None of \[Index\(\[-1, -2\], dtype='rÑ   éþÿÿÿzE\"None of \[Index\(\['4'\], dtype='object'\)\] are in the \[index\]\"Ú4rQ   rÇ   z"\"None of \[Index\(\[-2\], dtype='r   )	r   Úobjectr#   r�   rœ   r5   rg   rÒ   r¯   ©r7   rÉ   r�   r*   r*   r+   Ú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 ¡ j› d�}tjt|d	�� |jd
gd d …f  W 5 Q R X tjt|d	�� |jd
g  W 5 Q R X d S )Nr    r   rL   r0   ÚvaluerÐ   z!\"None of \[Index\(\[3\], dtype='rÑ   r™   rQ   )r   rg   rÒ   r¯   r�   rœ   r5   r#   rÓ   r*   r*   r+   Útest_loc_to_fail3á  s    ÿz(TestLocBaseIndependent.test_loc_to_fail3c              	   C   s„   t dddgƒ}|jdg  dt ¡ j› d�}tjtt 	|¡d�� |jdg  W 5 Q R X tjtdd�� |jddg  W 5 Q R X d S )NrL   r0   rQ   z"None of [Index([3], dtype='z')] are in the [index]r™   rÇ   )
r   r#   rg   rÒ   r¯   r�   rœ   r5   ÚreÚescaperÙ   r*   r*   r+   Útest_loc_getitem_list_with_failð  s    z6TestLocBaseIndependent.test_loc_getitem_list_with_failc                 C   s’   t tjjdd�dddddgd�}|j d	d
„ ¡}|jt |¡ }|j| }t ||¡ |j|j	 }t ||¡ |jt
j|dd� }t ||¡ d S )N)rU   rP   ©ÚsizeZalpha_0Zalpha_1Zalpha_2Zbeta_0Zbeta_1rw   c                 S   s   d| kS )NÚalphar*   ©r£   r*   r*   r+   Ú<lambda>	  ó    z7TestLocBaseIndependent.test_loc_index.<locals>.<lambda>Úbooleanr®   )r   rg   r¥   rf   Úmapr#   r‰   r$   r%   rq   ro   )r7   r(   Úmaskr)   rŒ   r*   r*   r+   Útest_loc_index   s    þ
z%TestLocBaseIndependent.test_loc_indexc                 C   sÐ   t tj dd¡ddddgddddgd�}|jd d …dd…f jdd…d d …f }|jddgk ¡ sft‚|j	ddgk ¡ s|t‚t t
d	ƒgd
gdœƒjd }tt
d	ƒd
gddgdd�}t ||¡ |jtksÌt‚d S )NrT   r"   rk   r˜   ÚDrd   r   r0   rª   rL   r¼   r    r   r«   )r   rg   r¥   Úrandr#   rŠ   re   Úallrz   rf   r   r   r$   r§   r¯   rØ   r‹   r*   r*   r+   Útest_loc_general  s    

ý(z'TestLocBaseIndependent.test_loc_generalc                 C   s"   t tddƒttdƒtjd�dœƒS )Nú
2000-01-01ú	2000-01-5rU   r®   ©r   Úval)r   r   r   r¦   rg   Úint64r[   r*   r*   r+   Úframe_for_consistency'  s
    þÿz,TestLocBaseIndependent.frame_for_consistencyrñ   r   r®   c                 C   sV   t tdtdƒtjd�ttdƒtjd�dœƒ}| ¡ }||jd d …df< t ||¡ d S )Nr   rU   ©rf   r¯   r®   rð   r   ©	r   r   r¦   rg   rò   r¶   r#   r$   r%   )r7   ró   rñ   r)   r(   r*   r*   r+   Útest_loc_setitem_consistency0  s    þÿz3TestLocBaseIndependent.test_loc_setitem_consistencyc                 C   sR   t tdtdƒd�ttdƒtjd�dœƒ}| ¡ }d|jd d …df< t ||¡ d S )Nr�   rU   rw   r®   rð   r   rõ   ©r7   ró   r)   r(   r*   r*   r+   Ú(test_loc_setitem_consistency_dt64_to_strA  s    þÿz?TestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_strc                 C   sR   t tdtdƒd�ttdƒtjd�dœƒ}| ¡ }d|jd d …df< t ||¡ d S )Nç      ð?rU   rw   r®   rð   r   rõ   r÷   r*   r*   r+   Ú*test_loc_setitem_consistency_dt64_to_floatO  s    þÿzATestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_floatc                 C   sJ   t dttdƒgƒiƒ}d|jd d …df< t dtdgƒiƒ}t ||¡ d S )Nr   Z20180101Ústring)r   r   r   r#   r$   r%   ri   r*   r*   r+   Ú'test_loc_setitem_consistency_single_row\  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 5 Q R X t ||¡ t ddgd�}d|d< |d  tj¡|d< t ||¡ d S )Nr£   Úyrt   rL   )r   r$   Zassert_produces_warningr#   r%   rÄ   rg   rò   ©r7   r)   r(   r*   r*   r+   Ú"test_loc_setitem_consistency_emptyd  s    z9TestLocBaseIndependent.test_loc_setitem_consistency_emptyc                 C   s‚  dgd ddddgddddgg}t j|d	d
dgd�}dddddgdddddgg}t j|ddgd�}ddddtjgdddddgddddtjgddddd gg}t|||d!�}t|jd d …d"f ƒ|jd d …d"f< t|jd d …d#f ƒ|jd d …d#f< |jd$d%�}|jd d …d#f |jd d …d"f  |jd d …d&f< |jd d …d&f td'ƒ |jd d …d&f< t	d(d)d*d+g|j
d&d,�}t |d& |¡ d S )-NZRegion_1rT   ZSite_1ZSite_2l   ðBP[ l   _ˆZ l   q=.Z l   Ñ<.Z ZRegionZSiteZRespondentID©ÚnamesÚ
RespondentZOtherCatZ	SomethingÚ	StartDateÚEndDatezYes/NoZSomethingElseZLevel_0ZLevel_1r"   z5/25/2015 10:59z5/25/2015 11:22ZYesz5/21/2015 9:40z5/21/2015 9:52z5/20/2015 8:27z5/20/2015 8:41z5/20/2015 8:33z5/20/2015 9:09ZNorÐ   )r  r  )r  r  F)r¶   )r  ZDurationl    XŽp7 g      7@ç      (@g      ,@g      B@r«   )r   Úfrom_arraysrg   Únanr   r   r#   Zinfer_objectsr   r   rf   r$   r§   )r7   ÚlevelsÚmiZclevelsrÅ   rq   r(   r)   r*   r*   r+   Ú-test_loc_setitem_consistency_slice_column_lent  sJ    

ýþüÿÿÿÿ
ÿþ
  ÿzDTestLocBaseIndependent.test_loc_setitem_consistency_slice_column_lenÚunitÚYÚMrê   ÚhÚmrÉ   ÚmsÚusc                 C   sª   t dt d¡t d¡giƒ}|jd d …df j d|› d�¡|jd d …|f< |jd d …df j d|› d�¡|d< t|jd d …df |d�}t |jd d …|f |¡ d S )NÚ	timestampz2017-02-11 12:41:29z1991-11-07 04:22:37zdatetime64[ú]r)   ru   )	r   rg   Ú
datetime64r#   rq   rÄ   r   r$   r§   )r7   r  r(   r)   r*   r*   r+   Útest_loc_assign_non_ns_datetime¥  s    þÿÿ	0&z6TestLocBaseIndependent.test_loc_assign_non_ns_datetimec                 C   sÈ   t  dddddg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 dddgdddgdddgdddggdd	d
gd�}d	d
g}||  t¡||< t ||¡ d S )Nr   l   çCO!gl   ös~!gl    4	8šl   A{ï?šr  T)r  ÚcacheZdate_dtZ
date_dt_cpr0   rQ   z2017-01-24 13:26:12.711z2017-01-24 13:52:05.110z2018-10-22 13:44:05.888z2018-10-23 08:08:41.025rt   )r   Ú	from_dictr   r#   Úapplyr$   r%   )r7   r(   r)   re   r*   r*   r+   Útest_loc_modify_datetime·  s"    ÿ  üù
z/TestLocBaseIndependent.test_loc_modify_datetimec                 C   sp   t dddgdgtd�}tjdddgdd	�|jdddgdf< tdddgdddgtd
�}t d|iƒ}t ||¡ d S )NrQ   rU   rT   r"   ©rf   re   r¯   rL   r0   rò   r®   rô   )r   Úfloatrg   r‰   r#   r   r$   r%   ©r7   r(   Úserr)   r*   r*   r+   Ú#test_loc_setitem_frame_with_reindexÑ  s
    $z:TestLocBaseIndependent.test_loc_setitem_frame_with_reindexc                 C   sˆ   t dddgddgtd�}d|d< tjdd	dgd
d�|jdddgdf< td	ddgdddgd
d�}t d| t¡iƒ}d|d< t ||¡ d S )NrQ   rU   rT   r"   rk   r  rû   rL   r0   rò   r®   rô   )	r   r  rg   r‰   r#   r   rÄ   r$   r%   r  r*   r*   r+   Ú)test_loc_setitem_frame_with_reindex_mixedÜ  s    $z@TestLocBaseIndependent.test_loc_setitem_frame_with_reindex_mixedc                 C   st   t dddgddgtd�}d|d< tjdddgdd	�|jtdd
dƒdf< t dddgddœdddgd�}t ||¡ d S )NrL   r0   rQ   r"   rk   r  rû   rò   r®   r   rÕ   rM   r³   rù   rm   rw   )r   r  rg   r‰   r#   r„   r$   r%   ri   r*   r*   r+   Ú*test_loc_setitem_frame_with_inverted_sliceè  s
    &zATestLocBaseIndependent.test_loc_setitem_frame_with_inverted_slicec           
      C   sÎ   dd„ t dƒD ƒ}tjddd�}dd„ t dƒD ƒ}tjddd�}tt|ƒ |¡ƒ}t|d�}tj|d	< ||j|d	f< tj|d
< ||j|d
f< t	||tj
d�}t	||d�}t||dœƒj|d�}	t ||	¡ d S )Nc                 S   s   g | ]}d t |ƒ ‘qS ©ú@©Ústr©r¢   Úir*   r*   r+   r¤   ô  s     zGTestLocBaseIndependent.test_loc_setitem_empty_frame.<locals>.<listcomp>rU   rò   r®   c                 S   s   g | ]}d t |ƒ ‘qS r!  r#  r%  r*   r*   r+   r¤   ÷  s     rT   rw   r"   rk   rô   rm   )r¦   rg   rh   rµ   ÚsetÚunionr   r  r#   r   r­   Úreindexr$   r%   )
r7   Zkeys1Zval1Úkeys2Zval2rf   r(   ZseraZserbr)   r*   r*   r+   Útest_loc_setitem_empty_frameò  s    


z3TestLocBaseIndependent.test_loc_setitem_empty_framec                 C   s²   t tj dd¡tdƒtdƒd�}|jd }d|jd< |jd }|dksJt‚|jd }|dks`t‚d|jd d …d	d
…f< |jd d …d	d
…f }|jd d …dd …f }t 	||¡ d S )NrT   ZabcdÚABCDrÐ   ©r   r   rL   )r    r"   r   rk   rê   )
r   rg   r¥   Úrandnrµ   rŠ   r#   rz   r$   r%   r‹   r*   r*   r+   Útest_loc_setitem_frame	  s     



z-TestLocBaseIndependent.test_loc_setitem_framec                 C   sT   t dddgtjdœƒ}|j|j|j|jkdf< t dddgtjdœƒ}t ||¡ d S )NrL   r0   rQ   rm   rk   )r   rg   r  r"   r#   rk   r$   r%   ri   r*   r*   r+   Ú/test_loc_setitem_frame_nan_int_coercion_invalid  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 )NrL   r0   rQ   rT   r    r   )rL   r0   r    r   r®   ©rf   r¯   rv   rU   rR   )r   r#   r   r   rØ   r$   r§   r%   r‹   r*   r*   r+   Ú#test_loc_setitem_frame_mixed_labels"  s       ÿz:TestLocBaseIndependent.test_loc_setitem_frame_mixed_labelsc                 C   s  t dddgttdƒtjd�dœƒ}|jdd… }|jd	d… |_||jd	d…< t dddgtdddg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d	dd	ddgtjd�dœƒ}|jd	d… }|jdd… |_||jdd…< t ||¡ d S )Nr�   r�   ÚbazrQ   r®   rm   rL   r0   r   rî   rï   rU   rð   Z20000101Z20000102Z20000103rT   )r   r   r¦   rg   rò   r#   rf   r$   r%   r   r   )r7   r(   Úrhsr)   r*   r*   r+   Ú test_loc_setitem_frame_multiples1  s:    ÿÿþÿûøÿz7TestLocBaseIndependent.test_loc_setitem_frame_multiplesr¸   r"   NrÛ   ÚZc                 C   sL   t ddgddggddgd�}||jd|f< |jd	 }t|ƒrD|d
ksHt‚d S )NrL   r0   rQ   rT   r"   rk   rt   r   )r   r"   r6  )r   r#   r   rz   )r7   r¸   rÛ   r(   rŒ   r*   r*   r+   Ú"test_loc_setitem_with_scalar_indexV  s    	
z9TestLocBaseIndependent.test_loc_setitem_with_scalar_indexzindex,box,expectedr0   rk   r˜   rS   rQ   rT   rt   rL   r_   rU   rR   é	   rP   é   é   c                 C   s<   t ddgddgddggddgd	�}||j|< t ||¡ d S )
NrL   r0   rQ   rT   rU   rR   r"   rk   rt   ©r   r#   r$   r%   )r7   rf   Úboxr)   r(   r*   r*   r+   Ú test_loc_setitem_missing_columnse  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   rL   )	r   r   Útz_localizero   rp   ÚdtypesrŠ   r$   r§   r¨   r*   r*   r+   Útest_loc_coercionŸ  s    z(TestLocBaseIndependent.test_loc_coercionc                 C   s^   t dtdddƒtdddƒgiƒ}|j}|jdg }t |j|¡ |jdg }t |j|¡ d S )Nr   éÜ  rL   iô  r0   r   )r   r   r@  rŠ   r$   r§   r¨   r*   r*   r+   Útest_loc_coercion2ª  s     z)TestLocBaseIndependent.test_loc_coercion2c                 C   sZ   t ddgd gd  iƒ}|j}|jdd… }t |j|¡ |jdd … }t |j|¡ d S )NÚtextz
some wordsr8  r   r0   rQ   )r   r@  rŠ   r$   r§   r¨   r*   r*   r+   Útest_loc_coercion3µ  s    z)TestLocBaseIndependent.test_loc_coercion3c                 C   sf   t dƒ d¡t dƒ d¡g}t|ddgd�}ttd�}|d ||ƒd< |d	 ||ƒd< t ||¡ d S )
Né*   r>  iš  r�   r�   rw   r®   r   rL   )r   r?  r   rØ   r$   r§   )r7   Z
indexer_slÚvalsr)   r  r*   r*   r+   Útest_setitem_new_key_tzÀ  s    þ
z.TestLocBaseIndependent.test_setitem_new_key_tzc              	   C   s˜  t ddddddgddddddgd	œd
dd
dddgd�}d}tjt|d�� |jdd …  W 5 Q R X d}tjt|d�� |jd
d …  W 5 Q R X d}tjt|d�� |jdd…  W 5 Q R X t ddddddgddddddgd	œd
dd
dddgd�jd
d�}|jdd … }t ddddgddddgd	œddddgd�}t ||¡ |jd
d … }t ||¡ |jdd… }t dddgdddgd	œdddgd�}t ||¡ d S )NrL   r0   rQ   rT   rU   rR   rS   r_   rm   r   rw   z5'Cannot get left slice bound for non-unique label: 1'r™   z5'Cannot get left slice bound for non-unique label: 0'©Úaxis)r   r�   rœ   r5   r#   Ú
sort_indexr$   r%   )r7   r(   r�   rŒ   r)   r*   r*   r+   Útest_loc_non_uniqueÎ  s6      ÿ  ÿþ*$z*TestLocBaseIndependent.test_loc_non_uniquez
length, l2é„  rº   i » é † c              	   C   sÒ   t dƒ}t ttj |t|ƒ¡t |¡|d�tt 	|t|ƒf¡dg| |d�g¡}|j
jdksbt‚t |¡}|j| }t | dg¡tt 	t|ƒt|ƒf¡dgt|ƒ |d�| |dd … ¡g¡}t ||¡ d S )NZABCDEFGrÐ   r   FrL   )rµ   ro   Úconcatr   rg   r¥   r.  rË   rh   Úonesrf   Z	is_uniquerz   r#   Útaker$   r%   )r7   ÚlengthÚl2re   r(   rè   rŒ   r)   r*   r*   r+   Ú test_loc_non_unique_memory_errorð  s0    ý úÿ


ýùÿz7TestLocBaseIndependent.test_loc_non_unique_memory_errorc                 C   s\   t ddgddggƒ}d|j_|jddg jj}|dks:t‚|jddg jj}|dksXt‚d S )NrL   Z
index_namer   )r   rf   rv   rŠ   rz   r#   ©r7   r(   rŒ   r*   r*   r+   Útest_loc_name  s    z$TestLocBaseIndependent.test_loc_namec                 C   sž   t  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 )NrU   r0   r   T)Úcheck_index_typeÚcheck_column_type)r$   ZmakeCustomDataframer%   r#   rŠ   rŸ   r*   r*   r+   Ú!test_loc_empty_list_indexer_is_ok  s&       ÿ   ÿ   ÿz8TestLocBaseIndependent.test_loc_empty_list_indexer_is_okc                 C   sÀ  t ddddgiƒ}|jd d … }||k	s,t‚|d d … |k	s@t‚|jd d …d d …f |k	s^t‚t |d j|d j¡szt‚dddg|jd d …df< |r²|d dddgk ¡ sÆt‚n|d dk ¡ sÆt‚t tj dd¡ƒ}|rü|d |jd d …df k	sút‚n |d |jd d …df k�st‚t	dddddd	gƒ}|jd d … }||k	�sLt‚|d d … |k	�sbt‚d
ddg|d d…< |�rœt|d d… dddgkƒ�s¼t‚n t|d d… d
ddgkƒ�s¼t‚d S )Nr    rL   r0   rQ   rT   rP   r   rU   rR   rS   r_   r8  )
r   r#   rz   rg   Zshares_memoryÚ_valuesrì   r¥   r.  r   )r7   Úusing_copy_on_writeZoriginal_dfZ	sliced_dfr(   Zoriginal_seriesZsliced_seriesr*   r*   r+   Ú&test_identity_slice_returns_new_object-  s,      "z=TestLocBaseIndependent.test_identity_slice_returns_new_objectc                 C   sš   |st jjdd�}|j |¡ tttdƒtdƒƒddgd�}| ¡ }|j	d d …df }|d7 }t
 ||¡ | ¡ }|j	|jdf }|d7 }t
 ||¡ d S )Nz!accidental fix reverted - GH37497)ÚreasonrQ   r    r   rt   r0   )r�   r‚   ZxfailÚnodeZ
add_markerr   Úzipr¦   r¶   r#   r$   r%   rf   )r7   r8   r[  r‚   r£   rý   ÚqÚzr*   r*   r+   Útest_loc_copy_vs_viewT  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sHt‚|j|d g }|jdg }t ||¡ |j|d |g }t ||¡ d S )Nr¾   rL   r0   rw   r   )	rg   ÚiinfoÚmaxr   r#   rŠ   rz   r$   r§   )r7   Úumaxr  rŒ   r)   r*   r*   r+   Útest_loc_uint64h  s    
z&TestLocBaseIndependent.test_loc_uint64c              	   C   sr   t  d¡j}tddg|d |gd�}tjtdd�� |jd  W 5 Q R X tjtdd�� |jdg  W 5 Q R X d S )Nr¾   rL   r0   rw   z-1r™   rÕ   )rg   rc  rd  r   r�   rœ   r5   r#   )r7   re  r  r*   r*   r+   Ú!test_loc_uint64_disallow_negativey  s    z8TestLocBaseIndependent.test_loc_uint64_disallow_negativec                 C   sR   dddg}t |d gt|ƒ dœƒ}t ddgd�}||jd d …df< t ||¡ d S ©NrL   r0   rQ   ©r£   rý   r£   rý   rt   )r   rË   r#   r$   r%   ©r7   rl   r)   r(   r*   r*   r+   Ú*test_loc_setitem_empty_append_expands_rows†  s
    
zATestLocBaseIndependent.test_loc_setitem_empty_append_expands_rowsc                 C   sf   dddg}t |d gt|ƒ dœƒ}t ddgd�}|d  tj¡|d< ||jd d …df< t ||¡ d S rh  )r   rË   rÄ   rg   rò   r#   r$   r%   rj  r*   r*   r+   Ú6test_loc_setitem_empty_append_expands_rows_mixed_dtype‘  s    
zMTestLocBaseIndependent.test_loc_setitem_empty_append_expands_rows_mixed_dtypec                 C   sD   t dgtjgdœƒ}t ddgtd�}|jd |jd< t ||¡ d S )Nrù   ri  r£   rý   ©re   r¯   )r   r£   )r   rg   r  r  r#   r$   r%   rþ   r*   r*   r+   Ú*test_loc_setitem_empty_append_single_valueœ  s    zATestLocBaseIndependent.test_loc_setitem_empty_append_single_valuec              	   C   s¤   ddg}t ddgd�}|j tj¡|_dt ¡ j› d�}tjt	|d�� ||j
d	dgdf< W 5 Q R X d
 dddg¡}tjt|d�� ||j
d	d…df< W 5 Q R X d S )NrL   r0   r£   rý   rt   z"None of \[Index\(\[0, 1\], dtype='z'\)\] are in the \[index\]r™   r   ú|z?cannot copy sequence with size 2 to array axis with dimension 0zCcould not broadcast input array from shape \(2,\) into shape \(0,\)z@Must have equal len keys and value when setting with an iterable)r   rf   rÄ   rg   rò   rÒ   r¯   r�   rœ   r5   r#   ÚjoinÚ
ValueError)r7   rl   r(   r�   r*   r*   r+   Ú$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 )NrL   r0   rQ   rT   r   ru   )r   r#   rg   r‰   r   r$   r§   )r7   r(   rŒ   rÉ   r*   r*   r+   Útest_indexing_zerodim_np_arrayº  s    z5TestLocBaseIndependent.test_indexing_zerodim_np_arrayc                 C   s,   t ddgƒ}|jt d¡ }|dks(t‚d S )NrL   r0   r   )r   r#   rg   r‰   rz   )r7   rÉ   rŒ   r*   r*   r+   Ú%test_series_indexing_zerodim_np_arrayÁ  s    z<TestLocBaseIndependent.test_series_indexing_zerodim_np_arrayc                 C   sl   ddddddgd gd  }t |tddƒd	�}t tddƒtjd
�}ddddddg|jddd…< t ||¡ d S )NrL   r0   rQ   rT   rU   rR   iÚ  iä  rw   rô   r–   rÕ   )r   r¦   rg   r­   r#   r$   r§   )r7   rl   r)   rŒ   r*   r*   r+   Útest_loc_reverse_assignmentÇ  s
    z2TestLocBaseIndependent.test_loc_reverse_assignmentc                 C   s¶   t j d¡ dd„ tdƒD ƒ}t|dgd�}t|dgtd�}t ||¡ dd„ |D ƒ|j|j	df< t|dgt
d� t¡}t ||¡ d	d„ |D ƒ|d< t|dgt
d�}t ||¡ d S )
Né   c                 S   s   g | ]}t tj ¡ d  ƒ‘qS )gê-�™—q=)r$  rg   r¥   )r¢   rD   r*   r*   r+   r¤   Ô  s     z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>rU   r"   rt   rm  c                 S   s   g | ]}t |ƒ‘qS r*   ©r  r¡   r*   r*   r+   r¤   Û  s     c                 S   s   g | ]}t |ƒ‘qS r*   rw  r¡   r*   r*   r+   r¤   á  s     )rg   r¥   Úseedr¦   r   rØ   r$   r%   r#   rf   r  rÄ   )r7   Zcol_datarŒ   r)   r*   r*   r+   Ú3test_loc_setitem_str_to_small_float_conversion_typeÑ  s    zJTestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_typec           	      C   sÄ   t dddd�}|jdk|jdk@ }ttj t|ƒd¡|d�}t 	||¡}|j
tddƒ }|j
| }t ||¡ |j
d	d … }|j
tddƒ }|d
d … }|j d ¡|_|j d ¡|_t ||¡ d S )Nú1/1/2000z1/5/2000Z5min©Úfreqr8  rW   rQ   rw   z1/4/2000rÕ   )r   ÚhourÚminuter   rg   r¥   r.  rË   r$   Úget_objr#   r   ry   rf   Ú
_with_freq)	r7   Úframe_or_seriesÚrngrè   r9   rŒ   r{   Úchunkr)   r*   r*   r+   Útest_loc_getitem_time_objectå  s    
z3TestLocBaseIndependent.test_loc_getitem_time_objectÚ
spmatrix_tZ
coo_matrixZ
csc_matrixZ
csr_matrixr¯   c                 C   s    dd l }t|j|ƒ}d\}}|tj|||d�|d�}tj |¡}td|ƒ}|j| j	}	| 
¡ | }
t |	|
¡ |j| jj	}	t |t|dd�¡}
t |	|
¡ d S )Nr   )rU   rS   r®   r0   )Z
fill_value)Úscipy.sparseÚgetattrÚsparserg   Úeyer   Úfrom_spmatrixr¦   r#   rq   Ztoarrayr$   Zassert_numpy_array_equalr@  Úfullr   )r7   r…  r¯   ZscipyZrowsrÅ   Zspmatrixr(   Zitr_idxrŒ   r)   r*   r*   r+   Ú$test_loc_getitem_range_from_spmatrixù  s    
z;TestLocBaseIndependent.test_loc_getitem_range_from_spmatrixc                 C   s<   t dtjddgtdƒd�iƒ}|jddg }t ||¡ d S )Nr"   r   rò   r®   rL   )r   ro   r‰   r   r#   r$   r%   rU  r*   r*   r+   Ú,test_loc_getitem_listlike_all_retains_sparse  s    zCTestLocBaseIndependent.test_loc_getitem_listlike_all_retains_sparsec                 C   s¦   ddl m} tj |dƒ¡}|jtdƒ }tdddddgdddddggtddƒd�}t 	||¡ |jtdƒ jtd	ƒ }tdddddggtddƒd�}t 	||¡ d S )
Nr   )r‰  rU   r0   rù   rÂ   r­   r®   rL   )
r†  r‰  r   rˆ  rŠ  r#   r¦   r   r$   r%   )r7   r‰  r(   rŒ   r)   r*   r*   r+   Útest_loc_getitem_sparse_frame  s    þ ÿz4TestLocBaseIndependent.test_loc_getitem_sparse_framec                 C   sŠ   t dddddg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®   r0   rQ   )r   r   r#   r¦   r$   r§   )r7   rÉ   rŒ   r)   r*   r*   r+   Útest_loc_getitem_sparse_series+  s    z5TestLocBaseIndependent.test_loc_getitem_sparse_seriesr#   rŠ   c                 C   sV   t dddgdddggttƒd�}t||ƒd }tdddgttƒdd�}t ||¡ d S )Nrù   rÂ   ç      ø?r³   r®   r   )r¯   rv   )r   r   r  r‡  r   r$   r§   )r7   r¸   r(   rŒ   r)   r*   r*   r+   Ú!test_getitem_single_row_sparse_df7  s     z8TestLocBaseIndependent.test_getitem_single_row_sparse_dfÚkey_typec                 C   sH   |dddgƒ}|j d d …|f }|j d d …dddgf }t ||¡ d S )Nr"   rk   r˜   )r#   r$   r%   )r7   Úfloat_framer’  ÚidxrŒ   r)   r*   r*   r+   Útest_loc_getitem_iterable?  s    z0TestLocBaseIndependent.test_loc_getitem_iterablec                 C   sb   t tjjdd�ƒ}tdddd�|_|jtdƒd …d d …f }|jdd …d d …f }t 	||¡ d S )N©rP   rT   rà   Z0srP   rÉ   ©ÚstartÚperiodsr|  )
r   rg   r¥   Únormalr   rf   r#   r   r$   r%   r¨   r*   r*   r+   Ú#test_loc_getitem_timedelta_0secondsF  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 )NrL   r0   r�  rž  rw   )r   r#   rv   r$   r§   )r7   rñ   r)   r(   rŒ   r*   r*   r+   Útest_loc_getitem_uint64_scalarN  s    
z5TestLocBaseIndependent.test_loc_getitem_uint64_scalarc                 C   sP   |}t dddgtdddg|d�d�}| ¡ }d	|jd< d	|jd
< t ||¡ d S )Nr    r   r<   r   ç      à?rL   r®   rw   Zzoor0   )r   r   r¶   r#   rŠ   r$   r§   )r7   Úfloat_numpy_dtyper¯   r  r)   r*   r*   r+   Ú+test_loc_setitem_int_label_with_float_indexY  s     

zBTestLocBaseIndependent.test_loc_setitem_int_label_with_float_indexzindexer, expectedrB   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 )	NrP   rÉ   ©r  r£   rò   ©r¯   rf   rB   r  )r   r¦   r   r#   rf   r$   r%   )r7   r¸   r)   Útdir(   r*   r*   r+   Ú/test_loc_setitem_listlike_with_timedelta64indexd  s    üzFTestLocBaseIndependent.test_loc_setitem_listlike_with_timedelta64indexc                 C   sŒ   t dddddgtdƒdœƒ}t dddddg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< t ||¡ d S )
NrL   Zaaaaar¼   r   Zaabbar    ©Ú
categoriesr0   rQ   )r   rµ   r	   r#   r$   r%   )r7   r(   r{   r*   r*   r+   Ú8test_loc_setitem_categorical_values_partial_column_slice~  s
    ""zOTestLocBaseIndependent.test_loc_setitem_categorical_values_partial_column_slicec                 C   sˆ   t dgdgdœƒ}t|d dddgd�}||jd d …df< |d }t||jdd� t¡}t ||¡ ||d< t |d t|dd	�¡ d S )
Nr    r   )ÚAlphaZNumericrª  r   r<   r§  r«   ru   )	r   r	   r#   r   rf   rÄ   rØ   r$   r§   )r7   r(   r¨  rŒ   r)   r*   r*   r+   Ú'test_loc_setitem_single_row_categorical‡  s    z>TestLocBaseIndependent.test_loc_setitem_single_row_categoricalc                 C   sŠ   t dtdƒgd iƒ}t d¡|jdd…df< tdƒ|jd ksDt‚tdƒ|jd ksZt‚td	d
d
ƒ|jd< tdƒ ¡ |jd ks†t‚d S )Nr<   z
2010-10-01rQ   z
2008-08-08r   rL   )r   r<   )rL   r<   iÕ  rU   )r0   r<   z
2005-05-05)r   r   rg   r  r#   rz   r   rŸ   r*   r*   r+   Ú"test_loc_setitem_datetime_coercion˜  s    z9TestLocBaseIndependent.test_loc_setitem_datetime_coercionÚidxerÚvarc                 C   sX   |}t ddd|d�}td|dgd�}t|dgtjd�}||jd d …|f< t ||¡ d S )	Nz
2015-07-12rQ   ÚH)r˜  r™  r|  ÚtzrÁ   r®  rÐ   r  )r   r   rg   r­   r#   r$   r%   )r7   r­  Ztz_naive_fixturer°  r”  r)   rŒ   r*   r*   r+   Ú!test_loc_setitem_datetimeindex_tz¡  s    z8TestLocBaseIndependent.test_loc_setitem_datetimeindex_tzc           
      C   s|  t dddd�}ttj t|ƒd¡|d�}tdddƒ}ttd	ddƒtd
ddƒƒ}ddddg}ddddddddddddg}| ¡ }d|j	|< |j	| }|j	|  ¡ }	d|	j	d d …< |r¼|	 
t¡}	t ||	¡ | ¡ }d|j	|< |j| |j	|< t ||¡ | ¡ }d|j	|< |j	| }|j	|  ¡ }	d|	j	d d …< |�r>|	 
t¡}	t ||	¡ | ¡ }d|j	|< |j| |j	|< t ||¡ d S )Nz
2012-01-01z
2012-01-05Z30minr{  rU   rw   r:  r   rv  é   é   éH   éx   é¨   é   é   é   éJ   éK   éL   éz   é{   é|   éª   é«   é¬   )r   r   rg   r¥   r.  rË   r   r„   r¶   r#   rÄ   r  r$   r%   rŠ   )
r7   Zusing_array_managerrf   r(   ZakeyZbkeyZaindsZbindsrŒ   r)   r*   r*   r+   Útest_loc_setitem_time_key­  s<    







z0TestLocBaseIndependent.test_loc_setitem_time_keyrH   c                 C   s¼   t  dddg¡}tdddgddd	gg|d
�}| ¡ }tjddd�|jd d …|f< tdddgdddgg|d
�}t ||¡ |j	dd�}tjddd�|jd d …|f< |j	dd�}t ||¡ d S )N)r"   rT   )rk   Ú3)r"   Ú2rL   r0   rQ   rT   rU   rR   rt   )r0   r0   rò   r®   r   rI  )
r   Úfrom_tuplesr   r¶   rg   Úzerosr#   r$   r%   rK  )r7   rH   r	  r(   r9   r)   r*   r*   r+   Ú,test_loc_setitem_unsorted_multiindex_columnsÓ  s    zCTestLocBaseIndependent.test_loc_setitem_unsorted_multiindex_columnsc                 C   s>   t dddg|d�}d|jd< t dddg|d�}t ||¡ d S )NrL   r0   rQ   r®   rT   r   ©r   r#   r$   r§   )r7   Zany_int_numpy_dtyper'   r)   r*   r*   r+   Útest_loc_setitem_uint_dropâ  s    
z1TestLocBaseIndependent.test_loc_setitem_uint_dropc                 C   sp   t dt dd¡g ƒ}t dd¡|jdddg< t dt dd¡g ƒ}tt dd¡ƒ|jdddg< t ||¡ d S )NrP   r  rB   rL   r0   rQ   )r   rg   Útimedelta64r#   r   r$   r§   )r7   r  r)   r*   r*   r+   Útest_loc_setitem_td64_non_nanoê  s
    z5TestLocBaseIndependent.test_loc_setitem_td64_non_nanoc              	   C   s€   t j dd¡}ttdƒƒ}d ddg¡}tjt|d�� ||j	tdƒ< W 5 Q R X d}tjt|d�� ||j	d d …< W 5 Q R X d S )Nr0   ro  z,shape mismatch: value array of shape \(2,2\)z0cannot reshape array of size 4 into shape \(2,\)r™   zEcould not broadcast input array from shape \(2,2\) into shape \(2,?\))
rg   r¥   r.  r   r¦   rp  r�   rœ   rq  r#   )r7   rl   r  r�   r*   r*   r+   Ú test_loc_setitem_2d_to_1d_raisesò  s    þÿz7TestLocBaseIndependent.test_loc_setitem_2d_to_1d_raisesc                 C   sX   t jddd�}tdddgdddgd	d
dgg|dddgd�}d}|jd }t ||¡ d S )Nr   rQ   )r˜  r™  rL   r0   rT   rU   rR   rS   r_   r8  r"   rk   r˜   rÐ   )r   r"   )ro   Úinterval_ranger   r#   r$   Úassert_almost_equal)r7   rf   r(   r)   rŒ   r*   r*   r+   Útest_loc_getitem_interval_index  s      ÿ
z6TestLocBaseIndependent.test_loc_getitem_interval_indexc                 C   sz   t jdddd�}tdddgddd	gd
ddgg|dddgd�}t jddddd�}tddg|dd�}|jd }t ||¡ d S )Nr   rQ   Zboth)r˜  r™  ÚclosedrL   r0   rT   rU   rR   rS   r_   r8  r"   rk   r˜   rÐ   )r˜  r™  r|  rÑ  r«   ©rL   r"   )ro   rÎ  r   r   r#   r$   r§   )r7   rf   r(   Z	index_expr)   rŒ   r*   r*   r+   Ú test_loc_getitem_interval_index2  s      ÿ
z7TestLocBaseIndependent.test_loc_getitem_interval_index2Útpl©rL   ©rL   r0   c                 C   sR   t ddgddd�}t|d�}|j|g }t |gddd�}t|d�}t ||¡ d S )NrÕ  rÖ  r"   F©rv   Ztupleize_colsrw   )r   r   r#   r$   r%   )r7   rÔ  r”  r(   rŒ   r)   r*   r*   r+   Ú+test_loc_getitem_index_single_double_tuples  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sjt‚d S )NÚ	IndexTyper    r   r�   r�   r3  ZbofZcomposite_indexFr×  rÖ  )rQ   rT   r"   rk   rÐ   rL   )r   r   r   r#   rz   )r7   rÙ  Zidx1Zidx2rf   r(   rŒ   r*   r*   r+   Ú!test_loc_getitem_index_namedtuple)  s    

z8TestLocBaseIndependent.test_loc_getitem_index_namedtuplec                 C   s€   t tj dd¡dddddgdd	d
gd�}d|d< tj|j|jd d d… df< tjtjdtjdtjgtd�}t	 
|d j|¡ d S )NrU   rQ   r    r   r<   rÈ   rÎ   r�   r�   r3  rÐ   Úquxr$  r0   r®   )r   rg   r¥   r.  r  r#   rf   r‰   rØ   r$   rÏ  rq   ri   r*   r*   r+   Ú$test_loc_setitem_single_column_mixed3  s    ýz;TestLocBaseIndependent.test_loc_setitem_single_column_mixedc                 C   sp   t tj dd¡tdƒd�}tj|d< d|jd< |j}tt 	d¡gd t 	d	¡g d
dddgd�}t
 ||¡ d S )NrW   rQ   ÚABCrt   Úeventr�   )rP   rÞ  r­   rØ   r"   rk   r˜   rw   )r   rg   r¥   rë   Útupler  r#   r@  r   r¯   r$   r§   r‹   r*   r*   r+   Útest_loc_setitem_cast2>  s    


þz-TestLocBaseIndependent.test_loc_setitem_cast2c                 C   sb   t dtjdtjd�iƒ}d|jd< |jjt tj¡ks:t‚t d¡|_|jjt tj¡ks^t‚d S )NÚonerR   r®   )rL   rá  rS   )	r   rg   rh   Zint8r#   r@  rá  r¯   rz   rŸ   r*   r*   r+   Útest_loc_setitem_cast3K  s
    
z-TestLocBaseIndependent.test_loc_setitem_cast3c                 C   st   |t dƒdddddgd�}dd	d
g}|jdkr>dgd	gd
gg}||jt dƒ< |ddd	dd
g|jd�}t ||¡ d S )NrU   rQ   rT   rL   r   r0   rw   r8  rP   r9  )r¦   Úndimr#   rf   r$   ry   )r7   r�  r9   rq   r)   r*   r*   r+   Útest_loc_setitem_range_keyS  s    

z1TestLocBaseIndependent.test_loc_setitem_range_key)jr~   r   r€   r�   r�   r‚   rƒ   r   rž   r    r©   r¬   r¹   rÀ   rÆ   rÊ   rÌ   rÍ   rÔ   rÚ   rÜ   rß   ré   rí   Úfixtureró   rg   r‰   rò   rö   rø   rú   rü   rÿ   r
  r  r  r  r  r   r+  r/  r0  r2  r5  r„   r7  r   r  r=  rA  rC  rE  rH  rL  Zarm_slowrT  rV  rY  r\  rb  rf  rg  rk  rl  rn  rr  rs  rt  ru  ry  r„  r­   ÚcomplexÚtdZskip_if_no_scipyrŒ  r�  rŽ  r�  r‘  Úiterr   r   r•  r›  rŸ  r¢  r¦  r©  r«  r¬  r±  rÃ  rÈ  rÊ  rÌ  rÍ  rÐ  rÓ  rØ  rÚ  rÜ  rà  râ  rä  r*   r*   r*   r+   r†   ø   sf  þþóþ

#
'
*þ
1

% ÿ$
þý	
(
þý	 ÿý$
þý	$
þý	  ÿýØþ3
""
'



 ÿ
 ûþ

		
&


r†   c                   @   sN   e Zd Zejejejgd�dd„ ƒZejdd„ ƒZ	dd„ Z
dd	„ Zd
d„ ZdS )ÚTestLocWithEllipsis)Úparamsc                 C   s   |j S rZ   )Úparam)r7   r8   r*   r*   r+   r¸   b  s    zTestLocWithEllipsis.indexerc                 C   s   |}|t k	r| ¡ }|S rZ   )r   Úto_frame)r7   Úseries_with_simple_indexr�  r9   r*   r*   r+   r9   g  s    zTestLocWithEllipsis.objc                 C   s   ||ƒd }t  ||¡ d S )N.)r$   ry   )r7   r9   r¸   rŒ   r*   r*   r+   Útest_loc_iloc_getitem_ellipsisn  s    z2TestLocWithEllipsis.test_loc_iloc_getitem_ellipsisc           
   	   C   s  |}|t jkst|ƒdkrdn|jd }|t jkr@t|jƒr@d S |t jkrˆt|jtƒrˆd}tj	t
|d�� ||ƒd|gf }W 5 Q R X n8t|ƒdkrÀ||ƒd|gf }||ƒ|g }t  ||¡ |t jkrÎdn|j}| ¡ }	||	ƒd|gf }||	ƒd d …|gf }t  ||¡ d S )Nr   z2MultiIndex does not support indexing with Ellipsisr™   .)r$   rŠ   rË   rf   r#   r   rx   r   r�   rœ   ÚNotImplementedErrorr§   rv   rì  r%   )
r7   rí  r¸   r9   rH   r�   rŒ   r)   Úkey2r(   r*   r*   r+   Ú&test_loc_iloc_getitem_leading_ellipsesr  s"    $z:TestLocWithEllipsis.test_loc_iloc_getitem_leading_ellipsesc              	   C   sÔ   |t jkst|ƒdkrdn|jd }tjttd�� ||ƒd  W 5 Q R X tjttd�� ||ƒd|gdf  W 5 Q R X tjttd�� ||ƒdd|f  W 5 Q R X tjtdd�� ||ƒ|ddf  W 5 Q R X d S )Nr   r™   )...úToo many indexers)r$   rŠ   rË   rf   r�   rœ   r   r   )r7   r9   r¸   rH   r*   r*   r+   Ú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¸   r9   rî  rñ  ró  r*   r*   r*   r+   ré  a  s   

ré  c                   @   sÐ  e Zd Zej dddgddddgddddggfddgddddgddddggfddgddgfddddgddddggfddgddgfddddgddddggfddgddgfddddgddddggfddgddgfddddgddddggfddgddgfdddgdddg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)d*„ ƒZd+d,„ Zd-d.„ Zd!S )/ÚTestLocWithMultiIndexzkeys, expectedr   r    rL   r0   r<   Údimrf   re   c                 C   sš   |dddddgdddddggi}t t d¡ dd¡f|Ž}t |¡}|dkrn|j|d d …f }t |j	|¡ n(|d	kr–|jd d …|f }t |j
|¡ d S )
Nr<   r    r   rL   r0   é   rU   rf   re   )r   rg   rh   Úreshaper   r  r#   r$   Úassert_index_equalrf   re   )r7   rõ  Úkeysr)   Úkwargsr(   Ú	exp_indexr|   r*   r*   r+   Ú'test_loc_getitem_multilevel_index_orderž  s     
z=TestLocWithMultiIndex.test_loc_getitem_multilevel_index_orderc                 C   s    |}|j d }|d j d }|jj|jjdd … ks8t‚|jj|jjdd … ksTt‚|j d }|d j d }|jj|jjd ks„t‚|jj|jjd ksœt‚d S )NéÐ  r"   rL   )rý  r0   r0   )r#   rf   r  rz   rv   )r7   Z/multiindex_year_month_day_dataframe_random_dataZymdrŒ   Úresult2r*   r*   r+   Útest_loc_preserve_names¸  s    

z-TestLocWithMultiIndex.test_loc_preserve_namesc                 C   sf   t  dgddgg¡}td|d�}|jg  }|d d… }t ||¡ |j|jdd…  }t ||¡ d S )Nr   rL   rw   )r   Úfrom_productr   r#   r$   r§   rŠ   )r7   r	  r  r|   r)   Zres2r*   r*   r+   Ú.test_loc_getitem_multiindex_nonunique_len_zeroÅ  s    
zDTestLocWithMultiIndex.test_loc_getitem_multiindex_nonunique_len_zeroc                 C   s¤   t d gt dgdgg¡ƒ}|jd }|d ks0t‚t dgddgg¡}t d gt|ƒ t|d�}|jd }|d ksrt‚t dgt|ƒ t|d�}|jd }|dks t‚d S )	NÚLevel1ÚLevel2)r  r  ÚLevel2_aZLevel2_br¤  )r  r  rL   )r   r   r  r#   rz   r   rË   rØ   )r7   r  rŒ   Zmidxr*   r*   r+   Ú0test_loc_getitem_access_none_value_in_multiindexÒ  s    


zFTestLocWithMultiIndex.test_loc_getitem_access_none_value_in_multiindexc                 C   sŽ   t jtddddddddgddddddddgƒddgd	�}td
d
d
d
d
d
d
d
g|d�}d|jdd…< td
d
ddddd
d
g|d�}t ||¡ d S )Nr�   r3  r�   rÛ  rá  ÚtwoÚfirstÚsecondr   rL   rw   rº   )r3  rá  )r�   r  )r   rÆ  r_  r   r#   r$   r§   )r7   rf   rŒ   r)   r*   r*   r+   Ú!test_loc_setitem_multiindex_sliceã  s    þûz7TestLocWithMultiIndex.test_loc_setitem_multiindex_slicec                 C   sJ   t dddd�}ttdƒ|ƒ}|jtdddƒtdddƒ… }t ||¡ d S )Nrî   Z10minrN  ©r|  r™  il  rL   i4  )r   r   r¦   r#   r   r$   r§   )r7   Útimesr  rŒ   r*   r*   r+   Ú7test_loc_getitem_slice_datetime_objs_with_datetimeindexõ  s    zMTestLocWithMultiIndex.test_loc_getitem_slice_datetime_objs_with_datetimeindexc                 C   sh   t tdƒtdƒdœtddƒd�}|jddgddgf }t d	d
gd	d
gdœtddgƒd�}t ||¡ d S )NrP   r¼   z
2010-01-01z
2010-01-10rw   z
2010-01-05r    r   r   rT   )r   r¦   r   r#   r   r$   r%   r‹   r*   r*   r+   Ú3test_loc_getitem_datetime_string_with_datetimeindexû  s    þ
þzITestLocWithMultiIndex.test_loc_getitem_datetime_string_with_datetimeindexc                 C   sª   t jddddddg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| dddg¡d�}|jd }t ||¡ d S )N)r�   r�   )ZbahZbamr"   rk   r   rù   rL   r³   r0   rM   rQ   ç      @rT   ç      @rU   ç      @rR   r˜   rê   rÐ   r   )Úlevelrd   )r   rÆ  r   rK  rQ  r#   r$   r%   )r7   r	  r(   r)   rŒ   r*   r*   r+   Ú3test_loc_getitem_sorted_index_level_with_duplicates  s:    ú÷úö  ÿ
zITestLocWithMultiIndex.test_loc_getitem_sorted_index_level_with_duplicatesc                 C   s@   t dddgdd�}d|jd< t ddddgdd�}t ||¡ d S )	Nr    r   r<   Úcategoryr®   r   rQ   rØ   rÉ  ©r7   rŒ   r)   r*   r*   r+   Ú1test_additional_element_to_categorical_series_loc*  s    
zGTestLocWithMultiIndex.test_additional_element_to_categorical_series_locc                 C   s@   t dddgdd�}d|jd< t ddddgdd�}t ||¡ d S ©Nr    r   r<   r  r®   rQ   rÉ  r  r*   r*   r+   Ú'test_additional_categorical_element_loc1  s    
z=TestLocWithMultiIndex.test_additional_categorical_element_locc                 C   sª   t dddgttdddg|d�ƒd�}tj|jd< t dddtjgttdddg|d�ƒd�}t ||¡ tj|jd< t dtjdtjgttdddg|d�ƒd�}t ||¡ d S )NrL   r0   rQ   r®   )r   r
   r   rg   r  r#   r$   r§   )r7   Zany_numeric_ea_dtypeZsrsr)   r*   r*   r+   Ú&test_loc_set_nan_in_categorical_series8  s     þþþz<TestLocWithMultiIndex.test_loc_set_nan_in_categorical_seriesÚnaNc                 C   sj   t dddgdd�}||jd< t ddddgdd�}||jd< t ||¡ t ddd|gdd�}t ||¡ d S r  rÉ  )r7   r  Zsrs_enlargeZsrs_setintor)   r*   r*   r+   Ú,test_loc_consistency_series_enlarge_set_intoM  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 )Nr0   é   r    r   rP   r   rU   rL   ZIndex1ZIndex2)r  Úcodesr  )rl   rf   Fr  )r¨  Úorderedrv   r¯   )r   rg   rh   r   r   r¦   rf   r  r$   rø  r#   r¨   r*   r*   r+   Ú5test_loc_getitem_preserves_index_level_category_dtypeZ  s&    ýþ	ûzKTestLocWithMultiIndex.test_loc_getitem_preserves_index_level_category_dtypeÚlt_valuerW   rP   c              	   C   sp   t dddddgitdƒddd	d
ggd�}tjtdd��0 |j|d |k d d …f jdgd d …f  W 5 Q R X d S )Nr    r:  é   é"   é-   Úaabbr   rL   r0   rQ   rw   z\['b'\] not in indexr™   r   )r   rµ   r�   rœ   r5   r#   )r7   r  r(   r*   r*   r+   Ú>test_loc_multiindex_levels_contain_values_not_in_index_anymores  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�   r3  r   rL   rw   )	rg   r‰   r  r   r  r   r#   r$   r§   )r7   Úlev1Úlev2r	  r  rŒ   r)   r*   r*   r+   Ú'test_loc_multiindex_null_slice_na_levelz  s    z=TestLocWithMultiIndex.test_loc_multiindex_null_slice_na_levelc                 C   st   t jtdƒtdƒddggdddgd�}ttdƒ|d�}|jd	d d …d d …f }|j d
¡d d… }t 	|j|¡ d S )NÚabZxyrL   r0   Únumr   r_   rw   r    r   rT   )
r   r   rµ   r   r¦   r#   rf   Z	droplevelr$   rø  )r7   r	  r  Z
loc_resultr)   r*   r*   r+   Útest_loc_drops_level†  s     ÿz*TestLocWithMultiIndex.test_loc_drops_level)r~   r   r€   r�   r‚   rƒ   rü  rÿ  r  r  r	  r  r  r  r  r  r  rg   r  ro   ZNArp   r  r  r$  r'  r*  r*   r*   r*   r+   rô  �  s<   &&&&"ùþ"

rô  c                	   @   sÌ   e Zd Zejj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ddddgd�dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej d ¡d!d"„ ƒZej d#d$d%d&d'd(d)g¡d*d+„ ƒZd,S )-ÚTestLocSetitemWithExpansionc                 C   sN   t dtdƒidd�}t|ƒd |jt|ƒ< t dtdƒidd�}t ||¡ d S )Nr£   i@B rò   r®   rL   iAB )r   r¦   rË   r#   r$   r%   r  r*   r*   r+   Ú/test_loc_setitem_with_expansion_large_dataframe”  s    zKTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_large_dataframec                 C   sV   t td�}d|jd< t |t dgdgd�¡ d|jd< t |t ddgddgd�¡ d S )Nr®   rL   rw   rQ   ©r   rØ   r#   r$   r§   ©r7   r  r*   r*   r+   Útest_loc_setitem_empty_seriesœ  s
    


z9TestLocSetitemWithExpansion.test_loc_setitem_empty_seriesc                 C   sV   t td�}d|jd< t |t dgdgd�¡ d|jd< t |t ddgddgd�¡ d S )Nr®   rù   rL   rw   rM   rQ   r-  r.  r*   r*   r+   Ú#test_loc_setitem_empty_series_float¦  s
    


z?TestLocSetitemWithExpansion.test_loc_setitem_empty_series_floatc                 C   s€   t td�}d|jd< t |t dgdgd�¡ d|jd< t |t ddgddgd�¡ d|jd< t |t dddgdddgd�¡ d S )Nr®   rL   r�   rw   rQ   r�   rT   r-  r.  r*   r*   r+   Ú%test_loc_setitem_empty_series_str_idx°  s    



zATestLocSetitemWithExpansion.test_loc_setitem_empty_series_str_idxc                    sn   t dddtdƒd�‰ ‡ fdd„tdƒD ƒ}td	g|d	 gd
�}|D ]}d|j|< qBtd|d
�}t ||¡ d S )Nr–   r9  rL   ú
US/Pacific)Útzinfoc                    s   g | ]}ˆ t |d  d� ‘qS )rM  )Úseconds)r   r%  ©Úbaser*   r+   r¤   ¿  s     zUTestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dst.<locals>.<listcomp>é   r   rw   )r   r   r¦   r   r#   r$   r§   )r7   ZidxsrŒ   rA   r)   r*   r5  r+   Ú%test_loc_setitem_incremental_with_dst¼  s    zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstÚconvc                 C   s   | S rZ   r*   rã   r*   r*   r+   rä   É  rå   z$TestLocSetitemWithExpansion.<lambda>c                 C   s   |   ¡ S rZ   )Úto_datetime64rã   r*   r*   r+   rä   Ê  rå   c                 C   s   |   ¡ S rZ   )Úto_pydatetimerã   r*   r*   r+   rä   Ë  rå   c                 C   s
   t  | ¡S rZ   )rg   r  rã   r*   r*   r+   rä   Ì  rå   r7   r:  r;  znp.datetime64)Úidsc                 C   sb   t dƒ}t dƒ}tƒ }d|j||ƒdf< d|j||ƒdf< tdddgi||gd�}t ||¡ d S )	Nz20130101 09:00:00z20130101 10:00:00rº   rá  ra   g      Y@g      i@rw   )r   r   r#   r$   r%   )r7   r9  Zdt1Zdt2r(   r)   r*   r*   r+   Ú#test_loc_setitem_datetime_keys_castÆ  s    z?TestLocSetitemWithExpansion.test_loc_setitem_datetime_keys_castc                 C   sT   t ddgiƒ}tdg|d�|jd d …df< t dgtdg|d�dœƒ}t ||¡ d S )Nr"   rL   r   )r  rk   rm   )r   r	   r#   r$   r%   )r7   r  rŒ   r)   r*   r*   r+   Ú1test_loc_setitem_categorical_column_retains_dtypeÛ  s    zMTestLocSetitemWithExpansion.test_loc_setitem_categorical_column_retains_dtypec                 C   sœ   t ddd�}t ddd�}t ddd�}t||ddd�}||ks@t‚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¯  )Z	inclusiver|  rÛ   rÐ   r:  r  )r   r   rz   r   r#   rg   r  rË   Úappendr   rØ   r$   r%   )r7   r˜  ÚendrA   r”  rŒ   r)   r*   r*   r+   Ú0test_loc_setitem_with_expansion_and_existing_dstâ  s    üzLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_and_existing_dstc                 C   sì   t tddgƒdgd�}ddg|d< | d¡j d¡|_||jdk  d¡j d	¡}| ¡ }||j	|jdkdf< t
|d
  d¡|j	d gdd�}t |j|¡ |j	|jdkdf tdƒ }||j	|jdkdf< t |j	|jdkdf |¡ d S )Nz2015-03-30 20:12:32z2015-03-12 00:11:11r   )rl   re   ÚnewÚoldÚnew_colr>  r2  r   )rL   r   ru   Z1s)r   r   r›   rf   r?  r   rF  Z
tz_convertr¶   r#   r   r$   r§   r   )r7   r(   Úvrr   r)   r*   r*   r+   Útest_setitem_with_expansionô  s    
þ z7TestLocSetitemWithExpansion.test_setitem_with_expansionc                 C   sV   t ƒ }d|jd< d|jd< d|jdtjf< |j}tddtjgtjd�}t ||¡ d S )NrL   r-  r0   )rL   rL   rQ   r   r®   )	r   r#   rg   Úinfre   r   r­   r$   rø  r‹   r*   r*   r+   Ú0test_loc_setitem_with_expansion_inf_upcast_empty
  s    

zLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_inf_upcast_emptyz"ignore:indexing past lexsort depthc                 C   s`  t |ƒsd S | d¡}t |ƒ}t |¡ tj¡}t||dgd�}d}||ksPt‚| t |ƒ|¡}t	|t
ƒr€|d d |ks�t‚n|d |ks�t‚t |d ¡ tj¡}t||dgd�}| ¡ }	||	j|df< t |	|¡ | ¡ d }
||
j|< |d  tj¡}t |
|¡ | ¡ }	||	j|df< tt|ƒtjg tjg| t|ƒg dœ|d�}t |	|¡ d S )	Nr0   r   rÐ   ZkapowrÕ   rL   ©r   rL   rw   )rË   Úrepeatrg   rh   rÄ   rò   r   rz   Úinsertrx   r   r­   r¶   r#   r$   r%   r§   rµ   r  r  )r7   rf   ÚNÚarrÚorigrH   rû  Zexp_datar)   r(   r  r*   r*   r+   Ú/test_loc_setitem_with_expansion_nonunique_index  s8    


&þzKTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_nonunique_indexr¯   ZInt32ÚInt64ZUInt32ZUInt64ZFloat32ZFloat64c                 C   sv   t ddddg|d�}td|iƒ}t|jd�}||j|jdf< t ||¡ t|jd�}|j|j|jdf< t ||¡ d S )Nr   rL   r0   rQ   r®   rl   rw   )r   r   rf   r#   r$   r%   rZ  )r7   r¯   r  r(   rŒ   r*   r*   r+   Ú6test_loc_setitem_with_expansion_preserves_nullable_intC  s    zRTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_preserves_nullable_intN)r~   r   r€   r�   r‚   Zslowr,  r/  r0  r1  r8  rƒ   r=  r>  rC  rH  rJ  ÚfilterwarningsrQ  rS  r*   r*   r*   r+   r+  “  s6   



ü
ø



- ÿr+  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestLocCallablec                 C   s„  t ddddgtdƒddddg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dddg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€t‚d S )NrL   r0   rQ   rT   r#  ©r"   rk   r˜   c                 S   s
   | j dkS ©Nr0   ©r"   rã   r*   r*   r+   rä   \  rå   zATestLocCallable.test_frame_loc_getitem_callable.<locals>.<lambda>c                 S   s
   | j dkS )Nr   )rk   rã   r*   r*   r+   rä   _  rå   r   c                 S   s
   | j dkS rW  rX  rã   r*   r*   r+   rä   b  rå   c                 S   s
   | j dkS ©Nrk   rt   rã   r*   r*   r+   rä   b  rå   FTc                 S   s
   | j dkS rW  rX  rã   r*   r*   r+   rä   e  rå   c                 S   s   dS rY  r*   rã   r*   r*   r+   rä   e  rå   rk   c                 S   s
   | j dkS rW  rX  rã   r*   r*   r+   rä   h  rå   c                 S   s   ddgS ©Nr"   rk   r*   rã   r*   r*   r+   rä   h  rå   r"   c                 S   s
   | j dkS rW  rX  rã   r*   r*   r+   rä   k  rå   c                 S   s   ddgS rZ  r*   rã   r*   r*   r+   rä   k  rå   c                 S   s   dS )NrL   r*   rã   r*   r*   r+   rä   o  rå   c                 S   s   dS r!   r*   rã   r*   r*   r+   rä   o  rå   rÒ  )	r   rµ   r#   r$   r%   r"   rk   r§   rz   ©r7   r(   r|   r*   r*   r+   Útest_frame_loc_getitem_callableV  s    $ "  z/TestLocCallable.test_frame_loc_getitem_callablec                 C   s¾   t ddddgtdƒddddg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 )NrL   r0   rQ   rT   r#  rV  c                 S   s
   | j dkS rW  rX  rã   r*   r*   r+   rä   v  rå   zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r"   rk   c                 S   s   ddgS rZ  r*   rã   r*   r*   r+   rä   y  rå   c                 S   s   ddgS rZ  r*   rã   r*   r*   r+   rä   |  rå   )r   rµ   r#   r$   r%   r"   r§   r[  r*   r*   r+   Ú'test_frame_loc_getitem_callable_mixturer  s    $ z7TestLocCallable.test_frame_loc_getitem_callable_mixturec                 C   sž  t ddddg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 )NrL   r0   rQ   rT   r#  ©ÚXr  r,  rw   c                 S   s   ddgS ©Nr"   r˜   r*   rã   r*   r*   r+   rä   „  rå   zHTestLocCallable.test_frame_loc_getitem_callable_labels.<locals>.<lambda>r"   r˜   c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   ‡  rå   c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   Š  rå   c                 S   s   dS ©Nr_  r*   rã   r*   r*   r+   rä   Š  rå   r_  c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   �  rå   c                 S   s   dgS ra  r*   rã   r*   r*   r+   rä   �  rå   c                 S   s   dS ra  r*   rã   r*   r*   r+   rä   ‘  rå   c                 S   s   dgS ra  r*   rã   r*   r*   r+   rä   ”  rå   c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   —  rå   c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   š  rå   )r   rµ   r#   r$   r%   r§   r[  r*   r*   r+   Ú&test_frame_loc_getitem_callable_labels  s"    "z6TestLocCallable.test_frame_loc_getitem_callable_labelsc                 C   sZ  t ddddg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 )NrL   r0   rQ   rT   r#  r^  r,  rw   iìÿÿÿc                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   £  rå   zATestLocCallable.test_frame_loc_setitem_callable.<locals>.<lambda>r"   r˜   rB   c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   ©  rå   rÕ   c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   ¯  rå   c                 S   s   dS ra  r*   rã   r*   r*   r+   rä   ¯  rå   r_  rU   rP   c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   µ  rå   c                 S   s   dgS ra  r*   rã   r*   r*   r+   rä   µ  rå   rÖ   c                 S   s   dS ra  r*   rã   r*   r*   r+   rä   ¼  rå   c                 S   s   dgS ra  r*   rã   r*   r*   r+   rä   Â  rå   c                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   È  rå   éüÿÿÿc                 S   s   ddgS r`  r*   rã   r*   r*   r+   rä   Î  rå   )r   rµ   r¶   r#   r$   r%   rg   r‰   )r7   r(   r|   r{   r*   r*   r+   Útest_frame_loc_setitem_callable�  sR    " z/TestLocCallable.test_frame_loc_setitem_callableN)r~   r   r€   r\  r]  rb  rd  r*   r*   r*   r+   rU  U  s   rU  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   sd   t dddgdddgdœtdd	d
gƒd�}t ddgddgdœtdd
gƒd�}|jd }t ||¡ d S )Nr    r   r<   rL   r0   rQ   )rb   rc   z
2020-08-01z
2020-07-02z
2020-08-05rw   z2020-08)r   r   r#   r$   r%   r¨   r*   r*   r+   Ú5test_loc_getitem_partial_string_slicing_datetimeindexÕ  s    þ
þ
zNTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_datetimeindexc                 C   sD   t jdddd�}| ¡ }|jd d… }|jd d… }t ||¡ d S )Nú
2017-01-01ú
2018-01-01r  ©r˜  rB  r|  z2017-12rÕ   )ro   Úperiod_rangeÚ	to_seriesr#   rŠ   r$   r§   )r7   Úpir  rŒ   r)   r*   r*   r+   Ú8test_loc_getitem_partial_string_slicing_with_periodindexâ  s
    zQTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_with_periodindexc                 C   sB   t dddd�}| ¡ }|jd d… }|jd d… }t ||¡ d S )Nú1 dayú2 daysÚ1Hri  z1 daysrÕ   )r   rk  r#   rŠ   r$   r§   )r7   r¿   r  rŒ   r)   r*   r*   r+   Ú;test_loc_getitem_partial_string_slicing_with_timedeltaindexê  s
    zTTestPartialStringSlicing.test_loc_getitem_partial_string_slicing_with_timedeltaindexc                 C   sD   t dtdƒittdƒdd�d�}|jd }|jd }t ||¡ d S )Nr£   rQ   Údaysr£  rw   r   ú0 days)r   r¦   r   rŠ   r#   r$   r§   )r7   r(   r)   Zslicedr*   r*   r+   Ú#test_loc_getitem_str_timedeltaindexò  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 )NrL   rU   z
2019-12-30z
2020-01-01z
2019-12-25rv  z
2019-12-19r?  rw   r0   )r   r   r„   r$   ry   r#   )r7   Ztz_aware_fixtureru  r�  r9   r)   r¸   rŒ   r*   r*   r+   Ú/test_loc_getitem_partial_slice_non_monotonicityù  s4    ûøþþûþ


zHTestPartialStringSlicing.test_loc_getitem_partial_slice_non_monotonicity)r~   r   r€   rf  rm  rq  rt  r�   r‚   rƒ   rw  r*   r*   r*   r+   re  Ô  s   re  c                
   @   sø   e Zd Zdd„ Zdd„ Zej dej	dddd	�e
d
ddd	�g¡dd„ ƒZdd„ Zdd„ Zej de dd¡deddƒge dd¡e dd¡eddƒgde dd¡eddƒgg¡dd„ ƒZej d d!d"g¡d#d$„ ƒZej d%dd&g¡d'd(„ ƒZd)d*„ ZdS )+ÚTestLabelSlicingc                 C   s  t tjddd�dd„ dD ƒd�}t tjddd�d	d„ d
D ƒd�}||fD ]Æ}|jtddddƒd … }t ||¡ |jd tddddƒ… }t ||¡ |jtddddƒtddddƒ… }t ||¡ |jtddddƒd … }|jdd … }t ||¡ |jdd … }t ||¡ qHd S )Nr  r­   r®   c                 S   s   g | ]}t d d|ddƒ‘qS ©éÑ  rL   rP   r   ©r   r%  r*   r*   r+   r¤   %	  s     zMTestLabelSlicing.test_loc_getitem_slicing_datetimes_frame.<locals>.<listcomp>)rL   r0   rQ   rT   rw   r  c                 S   s   g | ]}t d d|ddƒ‘qS ry  r{  r%  r*   r*   r+   r¤   +	  s     )rL   r0   r0   rQ   rT   rz  rL   rP   rT   r9  z20010101 11)r   rg   rh   r#   r   r$   r%   rŠ   )r7   Z	df_uniqueZdf_dupsr(   rŒ   r)   r*   r*   r+   Ú(test_loc_getitem_slicing_datetimes_frame	  s(    þþ"z9TestLabelSlicing.test_loc_getitem_slicing_datetimes_framec                 C   sŒ   t ddddd�}tdddd	d
g|d�}tddd�}tddd�}|j||… }tdd	g|dd
… d�}t ||¡ || }d}||ksˆt‚d S )Nz2017-10-29 01:30:00zEurope/BerlinrU   z30 min)r°  r™  r|  r   rL   r0   rQ   rT   rw   z2017-10-29 02:30:00+02:00r?  z2017-10-29 02:00:00+01:00)r   r   r   r#   r$   r§   rz   )r7   r”  Zseries2Zt_1Zt_2rŒ   r)   r*   r*   r+   Ú'test_loc_getitem_label_slice_across_dst<	  s       ÿz8TestLabelSlicing.test_loc_getitem_label_slice_across_dstrf   rg  rh  r  ri  rn  ro  rp  c                 C   s8   |  ¡ }|jd |d … }|jd d… }t ||¡ d S )NrÖ   rÕ   )rk  r#   rŠ   r$   r§   )r7   rf   r  rŒ   r)   r*   r*   r+   Ú-test_loc_getitem_label_slice_period_timedeltaM	  s    z>TestLabelSlicing.test_loc_getitem_label_slice_period_timedeltac                 C   s~   dddg}t tj dd¡|d�}|jdd… }t|ƒdks>t‚|jdd	… }t|ƒdks\t‚|jdd
… }t|ƒdkszt‚d S )Ngæx"p|é@g\Va³‰|é@g‹ßÖË|é@rQ   r0   rw   g3333c|é@g    �|é@g3333“|é@gÍÌÌÌÜ|é@)r   rg   r¥   rë   r#   rË   rz   )r7   rf   r(   Ús1r*   r*   r+   Ú%test_loc_getitem_slice_floats_inexact[	  s    
z6TestLabelSlicing.test_loc_getitem_slice_floats_inexactc                 C   s®   |}t tj d¡tjdd|d�d�}t|jdd … ƒdks>t‚t|jdd … ƒdksXt‚tjdd|d�}d	|d
< ||_t|jdd … ƒdks�t‚t|jdd … ƒdksªt‚d S )NrP   rB   r®   rw   r  r_   g      )@rS   gffffff(@r0   )	r   rg   r¥   rë   rh   rË   r#   rz   rf   )r7   r¡  r¯   r  r”  r*   r*   r+   Ú'test_loc_getitem_float_slice_floatindexh	  s     z8TestLabelSlicing.test_loc_getitem_float_slice_floatindexzstart,stop, expected_slicer   ÚnsNr9  rL   rê   rR   rS   rT   rU   c                 C   s>   t tdƒtddƒƒ}|jt||ƒ }|j| }t ||¡ d S )Nr9  rs  z10 days)r   r¦   r   r#   r„   rŠ   r$   r§   )r7   r˜  ÚstopZexpected_slicer  rŒ   r)   r*   r*   r+   Ú$test_loc_getitem_slice_label_td64obju	  s    

z5TestLabelSlicing.test_loc_getitem_slice_label_td64objr˜  Z2018Z2020c              	   C   sP   |dddgt dƒt dƒt dƒgd�}tjtdd	�� |j|d
…  W 5 Q R X d S )NrL   r0   rQ   Z2016Z2019Z2017rw   z,Value based partial slicing on non-monotonicr™   r‡   )r   r�   rœ   r5   r#   )r7   r�  r˜  r9   r*   r*   r+   Ú)test_loc_getitem_slice_unordered_dt_index„	  s    þ ÿz:TestLabelSlicing.test_loc_getitem_slice_unordered_dt_indexrÛ   r�  c                 C   sN   |t dƒ|dddgd�}|j|d… }|t dƒ|dddgd�}t ||¡ d S )NrT   r  r0   Úthirdrw   )r¦   r#   r$   ry   )r7   r�  rÛ   r9   rŒ   r)   r*   r*   r+   Ú1test_loc_getitem_slice_labels_int_in_object_index�	  s    zBTestLabelSlicing.test_loc_getitem_slice_labels_int_in_object_indexc                 C   sZ   t ddddœdgd�}t ddggdgtddgtd�d�}t |jd d …dd …f |¡ d S )	NrL   r0   rQ   )ÚtestrL   r0   r   rw   r®   )rl   rf   re   )r   r   rØ   r$   r%   r#   ri   r*   r*   r+   Ú*test_loc_getitem_slice_columns_mixed_dtype—	  s      ÿz;TestLabelSlicing.test_loc_getitem_slice_columns_mixed_dtype)r~   r   r€   r|  r}  r�   r‚   rƒ   ro   rj  r   r~  r€  r�  rg   rË  r„   r„  r…  r‡  r‰  r*   r*   r*   r+   rx  	  s0   þþ
ýþ



rx  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   sH   |› d�}|j dkrD||dd�}tjt|d�� |j|  W 5 Q R X d S )Nz7: boolean label can not be used without a boolean indexræ   rØ   rô   r™   )Zinferred_typer�   rœ   r5   r#   )r7   rf   r�  r‹  Úmessager9   r*   r*   r+   Ú'test_loc_bool_incompatible_index_raises¡	  s
    

zETestLocBooleanLabelsAndSlices.test_loc_bool_incompatible_index_raisesc                 C   s&   |t ddgdd�dd�}|j|  d S )NTFræ   r®   rØ   rô   )r   r#   )r7   r�  r‹  r9   r*   r*   r+   Útest_loc_bool_should_not_raise¬	  s
     ÿz<TestLocBooleanLabelsAndSlices.test_loc_bool_should_not_raisec              	   C   s<   d}||dd�}t jt|d�� |jdd…  W 5 Q R X d S )NzEslice\(True, False, None\): boolean values can not be used in a slicerØ   rô   r™   TF)r�   rœ   r…   r#   )r7   rf   r�  rŒ  r9   r*   r*   r+   Útest_loc_bool_slice_raises³	  s
    ÿz8TestLocBooleanLabelsAndSlices.test_loc_bool_slice_raisesN)	r~   r   r€   r�   r‚   rƒ   r�  rŽ  r�  r*   r*   r*   r+   rŠ   	  s
   


rŠ  c                   @   sd   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S )ÚTestLocBooleanMaskc                 C   sâ   t dtdƒiƒ}ttdƒdd�|_|d dk|d dk|d dk g}ddddddddddg
ddddd	d
ddddg
ddddd	d
ddddg
g}t||ƒD ]H\}}| ¡ }d|j|df< t |ttdƒdd�dgdd�}t ||¡ q”d S )Nr£   rP   rÉ   r£  rQ   r   rL   r0   rT   rU   rR   rS   r_   r8  rò   r  )	r   r¦   r   rf   r_  r¶   r#   r$   r%   )r7   r(   Z
conditionsÚexpected_dataZcondrl   rŒ   r)   r*   r*   r+   Ú)test_loc_setitem_bool_mask_timedeltaindex¾	  s"    "ýüz<TestLocBooleanMask.test_loc_setitem_bool_mask_timedeltaindexr°  Nr>  c                 C   s˜   t  ddddg¡}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 )	NTFZ20010101rT   ©r™  r°  r    rw   r­   )
rg   r‰   r   r   rh   rÄ   r¶   r#   r$   r%   )r7   r°  rè   r”  r(   rŒ   r*   r*   r+   Ú+test_loc_setitem_mask_with_datetimeindex_tzÔ	  s     z>TestLocBooleanMask.test_loc_setitem_mask_with_datetimeindex_tzc                 C   s~   t t d¡ dd¡tdƒtdddd�d�}| ¡ }|jd	 gtj	tj	g |d
< |j
dk }|j| j|j|d
f< t ||¡ d S )Nr  rQ   r0   ZABrz  rp  )r™  r|  rd   r   r˜   rL   )r   rg   rh   r÷  rµ   r   r¶   rf   ro   rp   r"   r#   r$   r%   )r7   r(   r)   rè   r*   r*   r+   Ú2test_loc_setitem_mask_and_label_with_datetimeindexå	  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spt‚t 	||¡ d S )Nr   l   ,GsO1ÚcolrL   TF)
r   r   r   r¶   rŠ   Ú_valuer#   rz   r$   r%   )r7   Ztd1Ztd2r(   Zdf_copyr  r)   rŒ   r*   r*   r+   Ú'test_loc_setitem_mask_td64_series_valueô	  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   rk   rL   rÐ   )r¶   r#   rq   r   rf   re   r$   r%   )r7   r“  r)   rè   rq   r*   r*   r+   Ú#test_loc_setitem_boolean_and_column
  s    
z6TestLocBooleanMask.test_loc_setitem_boolean_and_columnc                 C   s~  t dddgdddgdœƒ}t dd	d
dgidddgd�|jdddgdgf< t ddd	gdddgdœƒ}t ||¡ t dddgdddgdœƒ}td	ddgdddgd�|jdddgdgf< t ||¡ t dddgdddgdœƒ}td	ddgdddgd�|jdddgdf< t ||¡ t dddgdddgdœƒ}| ¡ }|d }td	ddgdddgd�|jdddg< |�rnt ||¡ nt ||¡ d S )NrL   r0   rQ   rT   rU   rR   r¼   r    rP   rB   rW   r   rw   FTr9  r:  )r   r#   r$   r%   r   r¶   )r7   r[  r(   r)   r·   r  r*   r*   r+   Ú)test_loc_setitem_ndframe_values_alignment
  s(     ÿ*($z<TestLocBooleanMask.test_loc_setitem_ndframe_values_alignmentc                 C   sJ   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#   rg   r‰   Zbool_r$   r%   ri   r*   r*   r+   Ú test_loc_indexer_empty_broadcast,
  s     z3TestLocBooleanMask.test_loc_indexer_empty_broadcastc                 C   sP   t dgdgdœtd�}| ¡ }|d |jtjdgtjd�dgf< t ||¡ d S )Nr£   rý   r¼   r®   r   Fr    r›  ri   r*   r*   r+   Ú$test_loc_indexer_all_false_broadcast3
  s    "z7TestLocBooleanMask.test_loc_indexer_all_false_broadcast)r~   r   r€   r’  r�   r‚   rƒ   r”  r•  r˜  rç  Úskip_array_manager_invalid_testr™  rš  rœ  r�  r*   r*   r*   r+   r�  ½	  s   

r�  c                   @   s`   e Zd Zej ddd„ ejeg¡dd„ ƒZ	dd„ Z
dd	„ Zej d
ddg¡dd„ ƒZdd„ ZdS )ÚTestLocListliker<  c                 C   s   | S rZ   r*   rã   r*   r*   r+   rä   <
  rå   zTestLocListlike.<lambda>c              	   C   s  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 5 Q R X t
jt|d�� |||ƒ  W 5 Q R X t
jt|d�� | ¡ j||ƒ  W 5 Q R X d S )	Nr"   rk   rQ   rw   rÕ   rL   rÇ   r™   )r   rg   r  r   r¦   r#   r$   r§   rì  r%   r�   rœ   r5   )r7   r<  Úcir  rŒ   Zser2Zci2r�   r*   r*   r+   Ú8test_loc_getitem_list_of_labels_categoricalindex_with_na<
  s"    zHTestLocListlike.test_loc_getitem_list_of_labels_categoricalindex_with_nac              	   C   sZ   t jddddgdd�}tdddd	gtd
ddd�ƒ}tjtdd�� |j|  W 5 Q R X d S )Nz
2001-01-04z
2001-01-02z
2001-01-14r  r®   r0   rU   r_   r9  z
2001-01-01rê   rT   r
  rÇ   r™   )rg   r‰   r   r   r�   rœ   r5   r#   )r7   rH   r  r*   r*   r+   Ú1test_loc_getitem_series_label_list_missing_valuesX
  s    
 ÿzATestLocListlike.test_loc_getitem_series_label_list_missing_valuesc              	   C   sR   t t ddg¡t ddg¡d�}tjtdd�� |jt ddg¡  W 5 Q R X d S )Nl   PF
AHl   UBÿeNl   P2ˆ$Þ$én©rf   rl   rÇ   r™   l   NZ4FçG)r   rg   r‰   r�   rœ   r5   r#   r.  r*   r*   r+   Ú9test_loc_getitem_series_label_list_missing_integer_valuesa
  s    þzITestLocListlike.test_loc_getitem_series_label_list_missing_integer_valuesÚ	to_periodTFc              	   C   sD  t ddddd�}|r| d¡}tddg|dd	�}tdƒtdƒg}|rRd
d„ |D ƒ}|j| }tddg|dd	�}|s€|j d ¡|_tj||dd� tdƒtdƒtdƒg}|r¸dd„ |D ƒ}tdddg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 5 Q R X d S )Nú
2011-01-01z
2011-01-02rê   r”  )r|  rv   gš™™™™™¹?gš™™™™™É?rÉ   r«   c                 S   s   g | ]}|  d ¡‘qS ©rê   ©r¥  r¡   r*   r*   r+   r¤   u
  s     zRTestLocListlike.test_loc_getitem_listlike_of_datetimelike_keys.<locals>.<listcomp>T)rW  c                 S   s   g | ]}|  d ¡‘qS r§  r¨  r¡   r*   r*   r+   r¤   ‚
  s     )rv   r¯   ú
2011-01-03c                 S   s   g | ]}|  d ¡‘qS r§  r¨  r¡   r*   r*   r+   r¤   �
  s     rÇ   r™   )r   r¥  r   r   r#   rf   r€  r$   r§   r   r¯   r�   rœ   r5   )r7   r¥  r”  r  rù  rŒ   r{   r*   r*   r+   Ú.test_loc_getitem_listlike_of_datetimelike_keysj
  sB    

ý  ÿ
ýz>TestLocListlike.test_loc_getitem_listlike_of_datetimelike_keysc                 C   sf   t ddgddgddggddd	gd
dgd�}|jd d… }d|j_|jtddgdd� }t ||¡ d S )NrL   r0   rT   rU   rS   r_   ZcobraZviperZ
sidewinderZ	max_speedZshieldrÐ   r�   ru   )r   rŠ   rf   rv   r#   r   r$   r%   r¨   r*   r*   r+   Útest_loc_named_index”
  s    ýz$TestLocListlike.test_loc_named_indexN)r~   r   r€   r�   r‚   rƒ   rg   Zasarrayrµ   r¡  r¢  r¤  rª  r«  r*   r*   r*   r+   rŸ  ;
  s   
		
)rŸ  z%columns, column_key, expected_columnsiÛ  rB  iÝ  rL   ZAllr0   c                 C   sV   t tj dd¡| tdƒd�}|jd d …|f }|jdddg|f }tj||dd� d S )	NrQ   rÝ  rd   r"   rk   r˜   T)rX  )	r   rg   r¥   rë   rµ   rŠ   r#   r$   r%   )re   Z
column_keyZexpected_columnsr(   r)   rŒ   r*   r*   r+   Ú*test_loc_getitem_label_list_integer_labels¡
  s    
r¬  c                  C   sœ   t j dd¡} t| ƒ}t j|jd d …df< t  | t  t jgd ¡ dd¡f¡}t|dddddgd	�}t	 
||¡ t| ƒ}t j|jd d …df< t	 
||¡ d S )
Nr_   rT   r   rL   rÂ   rù   r³   rM   rt   )rg   r¥   r.  r   r  r#   Zhstackr‰   r÷  r$   r%   )Z	rand_datarŒ   r‘  r)   r*   r*   r+   Útest_loc_setitem_float_intindex²
  s    $r­  c               	   C   sv   dd„ dD ƒ} t t d¡tdƒt | ¡d�}|jdd�d	d
… }t t d¡tdƒt d	ddd
g¡d�}t ||¡ d S )Nc                 S   s   g | ]}d D ]}||f‘qqS ))rS   r_   r8  rP   r*   )r¢   Úyrr  r*   r*   r+   r¤   Â
  s       z)test_loc_axis_1_slice.<locals>.<listcomp>)éÞ  r–   )rP   r_   Z
ABCDEFGHIJrÐ   rL   rI  )r¯  r8  )r–   r_   r–  )r¯  rP   )r–   rS   )	r   rg   rP  rß  r   rÆ  r#   r$   r%   )rÅ   r(   rŒ   r)   r*   r*   r+   Útest_loc_axis_1_sliceÀ
  s    ýýr°  c                  C   sX   t dtdƒt tdƒtdƒg¡d�} |  ¡ }|jddgf |jddgf< t || ¡ d S )Nr    r0   rÐ   r   rK  )r   r¦   r   r   r¶   r#   r$   r%   )r)   rŒ   r*   r*   r+   Ú!test_loc_set_dataframe_multiindexÑ
  s      ÿr±  c                  C   s4   t tdƒtddgtd�ƒ} | jd }|dks0t‚d S )Nr0   rL   r³   r®   r   )r   r¦   r   rØ   r#   rz   )r  rŒ   r*   r*   r+   Útest_loc_mixed_int_floatÛ
  s    
r²  c               	   C   sD   t tdƒddddgd�} tjtdd�� d	| jd d
…< W 5 Q R X d S )NrT   r"   rk   r˜   rê   rw   ú$Slicing a positional slice with .locr™   r0   rQ   )r   r¦   r�   rœ   r…   r#   )r  r*   r*   r+   Ú%test_loc_with_positional_slice_raisesã
  s    r´  c               
   C   sæ   t ddd�} ttj d¡| d�}|d }d}||fD ]T}tjt|d�� |jd	d…  W 5 Q R X tjtd
d�� d	|jd	d…< W 5 Q R X q4tjt|d�� |jd	d…d	f  W 5 Q R X tjtd
d�� d|jd	d…d	f< W 5 Q R X d S )Nz
2016-01-01rQ   ©r™  )rQ   r0   rw   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intr™   rL   r³  r0   )r   r   rg   r¥   r�   rœ   r…   r#   )Údtir(   r  r�   r9   r*   r*   r+   Ú#test_loc_slice_disallows_positionalë
  s    ÿr·  c               	   C   s¤   t tj dd¡dddgtdddd�d	�} | jd
dddg  ¡ } | j}t 	|j
¡}d}tjt|d�� | j|  W 5 Q R X tjt|d�� | d j|  W 5 Q R X d S )NrU   rQ   r    r   r<   Z2012r¯  r
  rd   r   r0   z/None of \[TimedeltaIndex.* are in the \[index\]r™   )r   rg   r¥   r.  r   rŠ   r¶   rf   ro   ZTimedeltaIndexZasi8r�   rœ   r5   r#   )r(   r¶  r¥  r�   r*   r*   r+   Ú'test_loc_datetimelike_mismatched_dtypes  s    ýr¸  c                  C   s¢   t jdddd�} ttj dd¡| d�}t ||j|  ¡ t ||jt	| ƒ ¡ t ||jt	| ƒ ¡ t |j
dd	… |j| dd	…  ¡ t ||jt	| ƒ ¡ d S )
Nz2002-01z2003-12r  r{  r³  rP   rw   r   rU   )ro   rj  r   rg   r¥   r.  r$   r%   r#   rµ   rŠ   )r”  r(   r*   r*   r+   Ú"test_loc_with_period_index_indexer  s    $r¹  c                  C   s~   t j dd¡} tddd�}ddddd	d
g}t| ||d�}t j|j|jd df< t j| d dd…< t| ||d�}t 	||¡ d S )Nr_   rR   rz  rµ  r"   rk   r˜   rê   ÚEÚFrÐ   rL   rm   r   r0   )
rg   r¥   r.  r   r   r  r#   rf   r$   r%   )rG  r”  rÅ   r{   r|   r*   r*   r+   Ú%test_loc_setitem_multiindex_timestamp(  s    r¼  c                  C   s:  dddg} ddg}ddg}t j| ||gdd	d
g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dddgdd�}t ||¡ |jd }|jd d… }	|j| d |d |d fdddgdd�}
t 	|
|	¡ |j| d |d |d f }|dk�s6t
‚d S )Nr    r   r<   rK  )rL   r   r   rL   r£   rý   ra  r   rR   rU   rÐ   r0   )r  rJ  )r   r   r   r¦   r#   rŠ   r$   r%   Úxsr§   rz   )r%  r&  Zlev3rÅ   r(   rŒ   r)   Zaltr  Z	expected2Zalt2rþ  r*   r*   r+   Ú'test_loc_getitem_multiindex_tuple_level4  s     
$(
(r¾  c               	   C   s¬   t t ddddgddddgddtjtjgg¡jd	d
dgdd�} |  d¡}|jjdksXt‚|j	d }t
ddg|jddd�}t ||¡ |j t¡|_|j	d }t ||¡ d S )NrL   r0   rQ   rT   rU   rR   rS   r_   r    r   r<   rR  )rl   re   r¯   r1  )r   rg   r‰   r  ÚTr›   rf   r¯   rz   r#   r   re   r$   r§   rÄ   rØ   )r(   rr   r|   r)   r*   r*   r+   Ú/test_loc_getitem_nullable_index_with_duplicatesR  s    ,ý


rÀ  rÛ   r»   c                 C   sJ   t ddddgdgdd�}| |jd< t ddd	dgdgd
d�}t ||¡ d S )NrL   r0   rQ   rT   rb   Zuint8rm  )r0   rb   r»   Úuint16r;  )rÛ   r(   r)   r*   r*   r+   Útest_loc_setitem_uint8_upcastf  s    
rÂ  zfill_val,exp_dtypez
2022-01-06zdatetime64[ns]z
2022-01-07ú
US/Easternr?  zdatetime64[ns, US/Eastern]c                 C   sn   ddd|   ¡ g}t|| j|d�}tddddg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°  r¯   rP   r9  r:  r²  r    rd   rv  )ú
2022-01-08r    rÄ  r®   T)Úexact)	r   r   r°  r   r#   rA  r$   rø  rf   )Zfill_valZ	exp_dtyperl   rf   r(   Zexpected_indexr*   r*   r+   Ú0test_loc_setitem_using_datetimelike_str_as_indexq  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ÚabcrU   rb   r    r   r<   )r   rL   r0   rb   )r   rµ   r#   r$   r%   )r(   r)   r*   r*   r+   Útest_loc_set_int_dtype„  s    rÈ  c                  C   s€   t ddddgddd�} tddd	gdd
dgdddgdddgg| dddgd�}|jddgdd�d }|j| d ddf d	ks|t‚d S )Nz20181101 1100z20181101 1200z20181102 1300z20181102 1400r   rk   )rv   r|  r"   rù   r˜   r³   r6  ÚQrM   ÚWr»  r  ZONEZTWOZVALUESrÐ   T)rA  r   )r   r   r›   r#   rz   )Zp_indexZ	mi_seriesr*   r*   r+   Útest_loc_periodindex_3_levels�  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ddddg¡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d0d1„ Zd"S )2ÚTestLocSeriesrœ  )r�  rQ   )rž  rT   c                 C   s$   t dddœƒ}|j| |ks t‚d S )NrQ   rT   )r�  rž  )r   r#   rz   )r7   rñ   r)   r  r*   r*   r+   rf  ž  s    zTestLocSeries.test_loc_uint64c           	      C   sÔ   |j dddg }t |j| | |¡¡ t |jdd d… |dd d… ¡ |j ddg \}}|j||… }| ||¡}t ||¡ || ¡ k}t |j| || ¡ |j| || ksºt‚|j| || ksÐt‚d S )NrQ   rT   rS   rU   r0   é   )	rf   r$   r§   r#   r)  rŠ   ÚtruncateÚmedianrz   )	r7   Ústring_seriesÚdatetime_seriesÚindsÚd1Úd2rŒ   r)   rè   r*   r*   r+   Útest_loc_getitem¤  s    "zTestLocSeries.test_loc_getitemc              	   C   s‚   |j ddg \}}|d d d… dddg }d}tjt|d�� |j||…  W 5 Q R X tjt|d�� d|j||…< W 5 Q R X d S )NrU   rÍ  r0   rL   r   z"Timestamp\('2000-01-10 00:00:00'\)r™   )rf   r�   rœ   r5   r#   )r7   rÑ  rÓ  rÔ  Zts2r�   r*   r*   r+   Útest_loc_getitem_not_monotonic·  s    z,TestLocSeries.test_loc_getitem_not_monotonicc              	   C   s>  t tj d¡ttdddƒƒd�}| ¡ }d|jdd…< |jdd… dk ¡ sPt	‚| ¡ }d|jdd…< |jdd… dkj
 ¡ s‚t	‚|jdd	… }|jdd… }| dd	d
dg¡}t ||¡ t ||¡ |jttdƒƒttdddƒƒ  }tjtdd�� |jdd…  W 5 Q R X tjtdd�� d|jdd…< W 5 Q R X d S )NrP   r   rB   r0   rw   rT   rQ   r9  rR   r_   rU   r8  rÕ   z^3$r™   )r   rg   r¥   r.  rµ   r¦   r¶   rŠ   rì   rz   rq   r#   r)  r$   r§   r�   rœ   r5   )r7   r  ÚcprŒ   rþ  r)   Ús2r*   r*   r+   Ú0test_loc_getitem_setitem_integer_slice_keyerrorsÂ  s"     "z>TestLocSeries.test_loc_getitem_setitem_integer_slice_keyerrorsc                 C   s4   t |jd d… ƒ}|j| }t ||d d… ¡ d S )NrP   )rè  rf   r#   r$   r§   )r7   rÐ  r”  rŒ   r*   r*   r+   Útest_loc_getitem_iteratorÝ  s    
z'TestLocSeries.test_loc_getitem_iteratorc                 C   s:   ||  ¡ k}| ¡ }d|j|< |}d||< t ||¡ d S )Nr   )rÏ  r¶   r#   r$   r§   )r7   rÐ  rè   rŒ   r)   r*   r*   r+   Útest_loc_setitem_booleanâ  s    
z&TestLocSeries.test_loc_setitem_booleanc              	   C   sP   t |jdddg ƒ}d|j|< d}tjt|d�� d|j|dg < W 5 Q R X d S )NrU   r_   r:  z\['foo'\] not in indexr™   r�   )rµ   rf   r#   r�   rœ   r5   )r7   rÐ  rÒ  r�   r*   r*   r+   Útest_loc_setitem_cornerë  s
    
z%TestLocSeries.test_loc_setitem_cornerc                 C   sˆ   |j dddg }| ¡ }| ¡ }d||< d|j|< t ||¡ | ¡ }| ¡ }d||d |d …< d|j|d |d …< t ||¡ d S )NrU   rP   rÍ  r   r0   )rf   r¶   r#   r$   r§   )r7   rÑ  Úindicesr×  r{   r*   r*   r+   Útest_basic_setitem_with_labelsò  s    
z,TestLocSeries.test_basic_setitem_with_labelsc           	   	   C   s   t tj d¡ttdddƒƒd�}dddg}t dddg¡}| ¡ }| ¡ }d||< d|j|< t	 
||¡ | ¡ }| ¡ }d||< d|j|< t	 
||¡ ddddg}t ddddg¡}d	}tjt|d
�� d||< W 5 Q R X tjt|d
�� d||< W 5 Q R X d S )NrP   r   rB   r0   rw   rT   rR   rU   z\[5\] not in indexr™   )r   rg   r¥   r.  rµ   r¦   r‰   r¶   r#   r$   r§   r�   rœ   r5   Ú	Exception)	r7   r  rÒ  Zarr_indsr×  r{   Zinds_notfoundZarr_inds_notfoundr�   r*   r*   r+   Ú!test_loc_setitem_listlike_of_ints  s(     


z/TestLocSeries.test_loc_setitem_listlike_of_intsc                 C   s    t tdddd�dddgd�}| ¡ }td	dd
�}||jd< |jd }||ksPt‚| ¡ }||jd< |jd }||ksxt‚| ¡ }||d< |d }||ksœt‚d S )Nr¦  rQ   rÃ  r“  r    r   r<   rw   r©  r?  r   )r   r   r¶   r   r#   rz   rŠ   )r7   r  rØ  r)   rŒ   r*   r*   r+   Útest_loc_setitem_dt64tz_values  s"    þ



z,TestLocSeries.test_loc_setitem_dt64tz_valuesÚarray_fnrá   r   rT   rU   rR   c                 C   s~   |dg| ƒ}t |ddddgtdƒtd�}t dtdƒtd�}||jd< t ||¡ t dtdƒtd�}||jd< t ||¡ d S )Nr   Zabcderô   r    )r   rµ   rØ   r#   r$   r§   rŠ   )r7   rá   râ  rO  r)   r  r*   r*   r+   Ú#test_loc_iloc_setitem_with_listlike1  s    

z1TestLocSeries.test_loc_iloc_setitem_with_listliker¸   r"   Nc              	   C   s~   t t dddg¡dddgd�}d}tjt|d	�� |j|d d …f  W 5 Q R X tjt|d	�� d
|j|d d …f< W 5 Q R X d S )N)r"   Ú0)r"   Ú1)rk   rä  é   r  r   r£  rò  r™   rL   )r   r   rÆ  r�   rœ   r   r#   )r7   r¸   r  r�   r*   r*   r+   Ú+test_loc_series_getitem_too_many_dimensionsC  s    þz9TestLocSeries.test_loc_series_getitem_too_many_dimensionsc                 C   sÚ   |j dddg }| ¡ }d|j|< | ¡ }d|dddg< t ||¡ d|jdd…< d|dd…< t ||¡ |j ddg \}}d|j||…< d|dd…< t ||¡ d|j|< d|j|< || dksÆt‚|| dksÖt‚d S )	NrQ   rT   rS   rU   rP   rÍ  rR   r7  )rf   r¶   r#   r$   r§   rŠ   rz   )r7   rÐ  rÒ  rŒ   r)   rÓ  rÔ  r*   r*   r+   Útest_loc_setitemQ  s"    


zTestLocSeries.test_loc_setitemr¯   rØ   rû   c                 C   s\   t ddgddgdœ|d�}dddœ|jd	d d …f< t ddgddgdœ|d�}t ||¡ d S )
NrÇ  ÚdefZghiZjklrm   r®   ZnewAZnewBr   r;  )r7   r¯   r(   r)   r*   r*   r+   Útest_loc_assign_dict_to_rowk  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Û   rt   rR   rÉ   r£  r�   )r   rÛ   rL   rd   )r   r   r#   r$   r%   r  r*   r*   r+   Ú,test_loc_setitem_dict_timedelta_multiple_setu  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 )NrL   r0   r    rÐ   rR   rS   r   r<   rØ   r®   )r    r   r<   rw   )r   r#   r   rg   r  r$   r%   ri   r*   r*   r+   Ú3test_loc_set_multiple_items_in_multiple_new_columns€  s    ýú	zATestLocSeries.test_loc_set_multiple_items_in_multiple_new_columnsc                 C   s6   t jdddd�}ttdƒ|d�}|jd dks2t‚d S )NÚ2000rB   rk   r—  rw   z
2000-01-14r8  )ro   rj  r   r¦   r#   rz   )r7   rf   r'   r*   r*   r+   Ú test_getitem_loc_str_periodindex�  s    z.TestLocSeries.test_getitem_loc_str_periodindex) r~   r   r€   r�   r‚   rƒ   rf  rÕ  rÖ  rÙ  rÚ  rÛ  rÜ  rÞ  rà  rá  rg   r‰   ro   rµ   rß  rã  r   r„   rç  rè  rê  rç  rž  rë  rì  rî  r*   r*   r*   r+   rÌ  �  s.   
	$

	

rÌ  )SÚ__doc__Úcollectionsr   r   r   r   r   rÝ   Zdateutil.tzr   Znumpyrg   r�   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrç  Zpandasro   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr$   Zpandas.api.typesr   r   Zpandas.core.indexingr   Zpandas.tests.indexing.commonr   r‚   rƒ   r  r,   r-   r†   ré  rô  r+  rU  re  rx  rŠ  r�  rŸ  r¬  r­  r°  r±  r²  r´  r·  r¸  r¹  r¼  r¾  rÀ  rÁ  Zint16rÂ  rÆ  rÈ  rË  rÌ  r*   r*   r*   r+   Ú<module>   sš   P"þþ
	 9          s< w CJ ~fýþ
	



þþ
	