U
    ¾mœdÑ¹ ã                	   @   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*   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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   é   Ú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   rc   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"   rl   r"   rl   )r   rh   Ú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©rf   ©Úname©rg   c                 C   s6   |j | }t|ttfƒr&t ||¡ n||ks2t‚d S r[   )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   rW   rZ   r]   r_   ÚsliceÚ	TypeErrorr5   ra   rk   rt   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Ú2022rx   z2021/6/1r   é—   )r   r   r#   rh   Ú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   rX   )r"   rl   ÚCZV1ZV2r"   rl   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   rx   )r"   r   r   r"   )r   rh   Ú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    re   ©rg   rw   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   Úlistrh   ri   rœ   Úcopyr#   r$   r¨   r{   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   rb   é,  Zuint32r¯   ©r    r   r    r   éÉ   i-  Úuint64)r   r   r#   r$   r%   )r7   Zdf1ÚixZnewb1r)   rs   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#   Úastyperh   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<   rx   ú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_missingrg   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   rg   rÊ   rž   r*   r*   r+   Útest_loc_getitem_bool_diff_len¡  s    z5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   s   d S r[   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©rg   rf   z$\"None of \[Index\(\[1, 2\], dtype='ú'\)\] are in the \[index\]\"rš   rL   r0   )	r   rh   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   rh   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   rh   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#   rh   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_1rx   c                 S   s   d| kS )NÚalphar*   ©r¤   r*   r*   r+   Ú<lambda>	  ó    z7TestLocBaseIndependent.test_loc_index.<locals>.<lambda>Úbooleanr¯   )r   rh   r¦   rg   Úmapr#   rŠ   r$   r%   rr   rp   )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"   rl   r™   ÚDre   r   r0   r«   rL   r½   r    r   r¬   )r   rh   r¦   Úrandr#   r‹   rf   Úallr{   rg   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§   rh   Ú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   ©rg   r°   r¯   rñ   r   ©	r   r   r§   rh   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   rx   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   rx   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%   rj   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¤   Úyru   rL   )r   r$   Zassert_produces_warningr#   r%   rÅ   rh   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 Ú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_arraysrh   Únanr   r   r#   Zinfer_objectsr   r   rg   r$   r¨   )r7   ÚlevelsÚmiZclevelsrÆ   rr   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)   rv   )	r   rh   Ú
datetime64r#   rr   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.025ru   )r   Ú	from_dictr   r#   Úapplyr$   r%   )r7   r(   r)   rf   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"   ©rg   rf   r°   rL   r0   ró   r¯   rõ   )r   Úfloatrh   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"   rl   r  rü   rL   r0   ró   r¯   rõ   )	r   r  rh   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"   rl   r  rü   ró   r¯   r   rÖ   rM   r´   rú   rn   rx   )r   r  rh   rŠ   r#   r…   r$   r%   rj   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   rx   r"   rl   rõ   rn   )r§   rh   ri   r¶   ÚsetÚunionr   r	  r#   r   r®   Úreindexr$   r%   )
r7   Zkeys1Zval1Úkeys2Zval2rg   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   ÚabcdÚABCDrÑ   ©r   r   rL   )r    r"   r   rl   rë   )
r   rh   r¦   Úrandnr¶   r‹   r#   r{   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   rn   rl   )r   rh   r	  r"   r#   rl   r$   r%   rj   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¯   ©rg   r°   rw   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¯   rn   rL   r0   r   rï   rð   rU   rñ   Z20000101Z20000102Z20000103rT   )r   r   r§   rh   ró   r#   rg   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"   rl   ru   r   )r   r"   r9  )r   r#   r   r{   )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   rl   r™   rS   rQ   rT   ru   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"   rl   ru   ©r   r#   r$   r%   )r7   rg   Ú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_localizerp   rq   Ú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   rC  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 wordsr;  r   r0   rQ   )r   rC  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é*   rA  iš  r�   r‘   rx   r¯   r   rL   )r   rB  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`   rn   r   rx   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¶   rp   Úconcatr   rh   r¦   r1  rÌ   ri   Úonesrg   Z	is_uniquer{   r#   Útaker$   r%   )r7   ÚlengthÚl2rf   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   rg   rw   r‹   r{   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`   r;  )
r   r#   r{   rh   Zshares_memoryÚ_valuesrí   r¦   r1  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   ru   r0   )r‚   rƒ   ZxfailÚnodeZ
add_markerr   Úzipr§   r·   r#   r$   r%   rg   )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   rx   r   )	rh   ÚiinfoÚmaxr   r#   r‹   r{   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   rx   z-1rš   rÖ   )rh   rf  rg  r   r‚   r�   r5   r#   )r7   rh  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þ   ru   )r   rÌ   r#   r$   r%   ©r7   rm   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 rk  )r   rÌ   rÅ   rh   ró   r#   r$   r%   rm  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ú   rl  r¤   rþ   ©rf   r°   )r   r¤   )r   rh   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þ   ru   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   rg   rÅ   rh   ró   rÓ   r°   r‚   r�   r5   r#   ÚjoinÚ
ValueError)r7   rm   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   rv   )r   r#   rh   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#   rh   rŠ   r{   )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ä  rx   rõ   r—   rÖ   )r   r§   rh   r®   r#   r$   r¨   )r7   rm   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&  rh   r¦   )r£   rD   r*   r*   r+   r¥   Ô  s     z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>rU   r"   ru   rp  c                 S   s   g | ]}t |ƒ‘qS r*   ©r  r¢   r*   r*   r+   r¥   Û  s     c                 S   s   g | ]}t |ƒ‘qS r*   rz  r¢   r*   r*   r+   r¥   á  s     )rh   r¦   Úseedr§   r   rÙ   r$   r%   r#   rg   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©Úfreqr;  rX   rQ   rx   z1/4/2000rÖ   )r   ÚhourÚminuter   rh   r¦   r1  rÌ   r$   Úget_objr#   r   rz   rg   Ú
_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Úsparserh   Úeyer   Úfrom_spmatrixr§   r#   rr   Ztoarrayr$   Zassert_numpy_array_equalrC  Úfullr   )r7   rˆ  r°   ZscipyÚ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   rp   rŠ   r   r#   r$   r%   rX  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°   rw   )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"   rl   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   rh   r¦   Únormalr   rg   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¢  rx   )r   r#   rw   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¯   rx   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°   rg   rB   r  )r   r§   r   r#   rg   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¬   rv   )	r   r	   r#   r   rg   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   rh   r  r#   r{   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   rh   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   rx   r=  r   ry  é   é   éH   éx   é¨   é   é   é   éJ   éK   éL   éz   é{   é|   éª   é«   é¬   )r   r   rh   r¦   r1  rÌ   r   r…   r·   r#   rÅ   r  r$   r%   r‹   )
r7   Zusing_array_managerrg   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   )rl   Ú3)r"   Ú2rL   r0   rQ   rT   rU   rR   ru   )r0   r0   ró   r¯   r   rL  )
r   Úfrom_tuplesr   r·   rh   Zzerosr#   r$   r%   rN  )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   rh   Ú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   rr  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,?\))
rh   r¦   r1  r   r§   rs  r‚   r�   rt  r#   )r7   rm   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`   r;  r"   rl   r™   rÑ   )r¤  r"   )rp   Úinterval_ranger   r#   r$   Úassert_almost_equal)r7   rg   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`   r;  r"   rl   r™   rÑ   )rœ  r�  r  rÔ  r¬   ©rL   r"   )rp   rÑ  r   r   r#   r$   r¨   )r7   rg   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©rw   Ztupleize_colsrx   )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‘   r6  ZbofZcomposite_indexFrÚ  rÙ  )rQ   rT   r"   rl   rÑ   rL   )r   r   r   r#   r{   )r7   rÜ  Zidx1Zidx2rg   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‘   r6  rÑ   Úquxr&  r0   r¯   )r   rh   r¦   r1  r	  r#   rg   rŠ   rÙ   r$   rÒ  rr   rj   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 )NrX   rQ   ÚABCru   Úeventr�   )rP   rá  r®   rÙ   r"   rl   r™   rx   )r   rh   r¦   rì   Útupler	  r#   rC  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   rh   ri   Zint8r#   rC  rä  r°   r{   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   rx   r;  rP   r<  )r§   Úndimr#   rg   r$   rz   )r7   r„  r9   rr   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ô   rh   rŠ   ró   r÷   rù   rû   rý   r   r  r  r  r   r!  r"  r-  r2  r3  r5  r8  r…   r:  r   r	  r@  rD  rF  rH  rK  rO  Zarm_slowrW  rY  r\  r_  re  ri  rj  rn  ro  rq  ru  rv  rw  rx  r|  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 r[   )Úparam)r7   r8   r*   r*   r+   r¹   b  s    zTestLocWithEllipsis.indexerc                 C   s   |}|t k	r| ¡ }|S r[   )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$   rz   )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Ì   rg   r#   r   ry   r   r‚   r�   ÚNotImplementedErrorr¨   rw   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Ì   rg   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<   Údimrg   rf   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   rg   rf   )r   rh   ri   Úreshaper   r  r#   r$   Úassert_index_equalrg   rf   )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#   rg   r  r{   rw   )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   rx   )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#   r{   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‘   r6  r�   rÞ  rä  ÚtwoÚfirstÚsecondr  rL   rx   r»   )r6  rä  )r�   r	  )r   rÊ  rb  r   r#   r$   r¨   )r7   rg   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10minrQ  ©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-10rx   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"   rl   r  rú   rL   r´   r0   rM   rQ   ç      @rT   ç      @rU   ç      @rR   r™   rë   rÑ   r   )Úlevelre   )r   rÊ  r   rN  rT  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   rh   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  )rm   rg   Fr  )r¬  Úorderedrw   r°   )r   rh   ri   r   r   r§   rg   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_valuerX   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   rx   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‘   r6  r   rL   rx   )	rh   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`   rx   r    r   rT   )
r   r  r¶   r   r§   r#   rg   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  rh   r	  rp   ZNArq   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   rx   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   rx   rM   rQ   r0  r1  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�   rx   rQ   r‘   rT   r0  r1  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—   r<  rL   ú
US/Pacific)Útzinfoc                    s   g | ]}ˆ t |d  d� ‘qS )rP  )Úseconds)r   r'  ©Úbaser*   r+   r¥   ¿  s     zUTestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dst.<locals>.<listcomp>é   r   rx   )r   r   r§   r   r#   r$   r¨   )r7   Zidxsr�   rA   r)   r*   r8  r+   Ú%test_loc_setitem_incremental_with_dst¼  s    zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstÚconvc                 C   s   | S r[   r*   rä   r*   r*   r+   rå   É  ræ   z$TestLocSetitemWithExpansion.<lambda>c                 C   s   |   ¡ S r[   )Úto_datetime64rä   r*   r*   r+   rå   Ê  ræ   c                 C   s   |   ¡ S r[   )Úto_pydatetimerä   r*   r*   r+   rå   Ë  ræ   c                 C   s
   t  | ¡S r[   )rh   r  rä   r*   r*   r+   rå   Ì  ræ   r7   r=  r>  znp.datetime64)Z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ä  rb   g      Y@g      i@rx   )r   r   r#   r$   r%   )r7   r<  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   rl   rn   )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   r{   r   r#   rh   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   )rm   rf   ÚnewÚoldÚnew_colrA  r5  r   )rL   r   rv   Z1s)r   r   rœ   rg   rB  r   rH  Z
tz_convertr·   r#   r   r$   r¨   r   )r7   r(   Úvrs   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   r0  r0   )rL   rL   rQ   r   r¯   )	r   r#   rh   Úinfrf   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   rx   )rÌ   Úrepeatrh   ri   rÅ   ró   r   r{   Úinsertry   r   r®   r·   r#   r$   r%   r¨   r¶   r	  r  )r7   rg   Ú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¯   rm   rx   )r   r   rg   r#   r$   r%   r]  )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/  r2  r3  r4  r;  r„   r?  r@  rE  rJ  rL  ÚfilterwarningsrS  rU  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"   rl   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   )rl   rä   r*   r*   r+   rå   _  ræ   r   c                 S   s
   | j dkS rY  rZ  rä   r*   r*   r+   rå   b  ræ   c                 S   s
   | j dkS ©Nrl   ru   rä   r*   r*   r+   rå   b  ræ   FTc                 S   s
   | j dkS rY  rZ  rä   r*   r*   r+   rå   e  ræ   c                 S   s   dS r[  r*   rä   r*   r*   r+   rå   e  ræ   rl   c                 S   s
   | j dkS rY  rZ  rä   r*   r*   r+   rå   h  ræ   c                 S   s   ddgS ©Nr"   rl   r*   rä   r*   r*   r+   rå   h  ræ   r"   c                 S   s
   | j dkS rY  rZ  rä   r*   r*   r+   rå   k  ræ   c                 S   s   ddgS r\  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"   rl   r¨   r{   ©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&  rX  c                 S   s
   | j dkS rY  rZ  rä   r*   r*   r+   rå   v  ræ   zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r"   rl   c                 S   s   ddgS r\  r*   rä   r*   r*   r+   rå   y  ræ   c                 S   s   ddgS r\  r*   rä   r*   r*   r+   rå   |  ræ   )r   r¶   r#   r$   r%   r"   r¨   r]  r*   r*   r+   Ú'test_frame_loc_getitem_callable_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/  rx   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 rb  r*   rä   r*   r*   r+   rå   ‡  ræ   c                 S   s   ddgS rb  r*   rä   r*   r*   r+   rå   Š  ræ   c                 S   s   dS ©Nra  r*   rä   r*   r*   r+   rå   Š  ræ   ra  c                 S   s   ddgS rb  r*   rä   r*   r*   r+   rå   �  ræ   c                 S   s   dgS rc  r*   rä   r*   r*   r+   rå   �  ræ   c                 S   s   dS rc  r*   rä   r*   r*   r+   rå   ‘  ræ   c                 S   s   dgS rc  r*   rä   r*   r*   r+   rå   ”  ræ   c                 S   s   ddgS rb  r*   rä   r*   r*   r+   rå   —  ræ   c                 S   s   ddgS rb  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/  rx   iìÿÿÿc                 S   s   ddgS rb  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 rb  r*   rä   r*   r*   r+   rå   ©  ræ   rÖ   c                 S   s   ddgS rb  r*   rä   r*   r*   r+   rå   ¯  ræ   c                 S   s   dS rc  r*   rä   r*   r*   r+   rå   ¯  ræ   ra  rU   rP   c                 S   s   ddgS rb  r*   rä   r*   r*   r+   rå   µ  ræ   c                 S   s   dgS rc  r*   rä   r*   r*   r+   rå   µ  ræ   r×   c                 S   s   dS rc  r*   rä   r*   r*   r+   rå   ¼  ræ   c                 S   s   dgS rc  r*   rä   r*   r*   r+   rå   Â  ræ   c                 S   s   ddgS rb  r*   rä   r*   r*   r+   rå   È  ræ   éüÿÿÿc                 S   s   ddgS rb  r*   rä   r*   r*   r+   rå   Î  ræ   )r   r¶   r·   r#   r$   r%   rh   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_  rd  rf  r*   r*   r*   r+   rW  U  s   rW  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   )rc   rd   z
2020-08-01z
2020-07-02z
2020-08-05rx   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œ  rD  r  z2017-12rÖ   )rp   Ú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Ú1Hrk  z1 daysrÖ   )r   rm  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§  rx   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-25rx  z
2019-12-19rA  rx   r0   )r   r   r…   r$   rz   r#   )r7   Ztz_aware_fixturerw  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�   rh  ro  rs  rv  r‚   rƒ   r„   ry  r*   r*   r*   r+   rg  Ô  s   rg  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   rx   r  c                 S   s   g | ]}t d d|ddƒ‘qS r{  r}  r'  r*   r*   r+   r¥   +	  s     )rL   r0   r0   rQ   rT   r|  rL   rP   rT   r<  z20010101 11)r   rh   ri   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   rx   z2017-10-29 02:30:00+02:00rA  z2017-10-29 02:00:00+01:00)r   r   r   r#   r$   r¨   r{   )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_dstrg   ri  rj  r  rk  rp  rq  rr  c                 C   s8   |  ¡ }|jd |d … }|jd d… }t ||¡ d S )Nr×   rÖ   )rm  r#   r‹   r$   r¨   )r7   rg   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   rx   g3333c|é@g    �|é@g3333“|é@gÍÌÌÌÜ|é@)r   rh   r¦   rì   r#   rÌ   r{   )r7   rg   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¯   rx   r  r`   g      )@rS   gffffff(@r0   )	r   rh   r¦   rì   ri   rÌ   r#   r{   rg   )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   ÚnsNr<  rL   rë   rR   rS   rT   rU   c                 C   s>   t tdƒtddƒƒ}|jt||ƒ }|j| }t ||¡ d S )Nr<  ru  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2017rx   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   Úthirdrx   )r§   r#   r$   rz   )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   rx   r¯   )rm   rg   rf   )r   r   rÙ   r$   r%   r#   rj   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„   rp   rl  r   r€  r‚  rƒ  rh   rÎ  r…   r†  r‡  r‰  r‹  r*   r*   r*   r+   rz  	  s0   þþ
ýþ



rz  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   rg   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   rg   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`   r;  ró   r  )	r   r§   r   rg   rb  r·   r#   r$   r%   )r7   r(   Z
conditionsÚexpected_dataZcondrm   r�   r)   r*   r*   r+   Ú)test_loc_setitem_bool_mask_timedeltaindex¾	  s"    "ýüz<TestLocBooleanMask.test_loc_setitem_bool_mask_timedeltaindexr´  NrA  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    rx   r®   )
rh   rŠ   r   r   ri   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ABr}  rr  )r�  r  re   r   r™   rL   )r   rh   ri   rú  r¶   r   r·   rg   rp   rq   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#   r{   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   rl   rL   rÑ   )r·   r#   rr   r   rg   rf   r$   r%   )r7   r—  r)   ré   rr   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   rX   r   rx   FTr<  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#   rh   rŠ   Zbool_r$   r%   rj   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�  rj   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 r[   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"   rl   rQ   rx   rÖ   rL   rÈ   rš   )r   rh   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`   r<  z
2001-01-01rë   rT   r  rÈ   rš   )rh   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©rg   rm   rÈ   rš   l   NZ4FçG)r   rh   rŠ   r‚   r�   r5   r#   r1  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  rw   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)rZ  c                 S   s   g | ]}|  d ¡‘qS r©  rª  r¢   r*   r*   r+   r¥   ‚
  s     )rw   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#   rg   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_speedÚshieldrÑ   r�   rv   )r   r‹   rg   rw   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„   rh   Zasarrayr¶   r£  r¤  r¦  r¬  r®  r*   r*   r*   r+   r¡  ;
  s   
		
)r¡  z%columns, column_key, expected_columnsiÛ  rE  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à  re   r"   rl   r™   T)r[  )	r   rh   r¦   rì   r¶   r‹   r#   r$   r%   )rf   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   ru   )rh   r¦   r1  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`   r;  rP   r*   )r£   Úyrr  r*   r*   r+   r¥   Â
  s       z)test_loc_axis_1_slice.<locals>.<listcomp>)éÞ  r—   )rP   r`   Z
ABCDEFGHIJrÑ   rL   rL  )r²  r;  )r—   r`   rš  )r²  rP   )r—   rS   )	r   rh   rS  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   rM  )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#   r{   )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"   rl   r™   rë   rx   ú$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   rx   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intrš   rL   r¶  r0   )r   r   rh   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  re   r   r0   z/None of \[TimedeltaIndex.* are in the \[index\]rš   )r   rh   r¦   r1  r   r‹   r·   rg   rp   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   rx   r   rU   )rp   rl  r   rh   r¦   r1  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   r}  r¸  r"   rl   r™   rë   ÚEÚFrÑ   rL   rn   r   r0   )
rh   r¦   r1  r   r   r	  r#   rg   r$   r%   )rJ  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<   rM  )rL   r   r   rL   r¤   rþ   rd  r  rR   rU   rÑ   r0   )r  rM  )r   r  r   r§   r#   r‹   r$   r%   Zxsr¨   r{   )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<   rT  )rm   rf   r°   r4  )r   rh   rŠ   r	  ÚTrœ   rg   r°   r{   r#   r   rf   r$   r¨   rÅ   rÙ   )r(   rs   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   rc   Zuint8rp  )r0   rc   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/EasternrA  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   r<  r=  r¶  r    re   ry  )ú
2022-01-08r    rÆ  r¯   T)Úexact)	r   r   r´  r   r#   rC  r$   rû  rg   )Zfill_valZ	exp_dtyperm   rg   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   rc   r    r   r<   )r   rL   r0   rc   )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   rl   )rw   r  r"   rú   r™   r´   r9  ÚQrM   ÚWr¾  r  ZONEZTWOZVALUESrÑ   T)rC  r   )r   r   rœ   r#   r{   )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#   r{   )r7   rò   r)   r  r*   r*   r+   ri  ž  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   é   )	rg   r$   r¨   r#   r+  r‹   ÚtruncateÚmedianr{   )	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š   )rg   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   rx   rT   rQ   r<  rR   r`   rU   r;  rÖ   z^3$rš   )r   rh   r¦   r1  r¶   r§   r·   r‹   rí   r{   rr   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ë  rg   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¶   rg   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   )rg   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   rx   rT   rR   rU   z\[5\] not in indexrš   )r   rh   r¦   r1  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<   rx   r«  rA  r   )r   r   r·   r   r#   r{   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ä  rQ  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)rl   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   r:  )rg   r·   r#   r$   r¨   r‹   r{   )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jklrn   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Ü   ru   rR   rÊ   r§  r�   )r   rÜ   rL   re   )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<   rx   )r   r#   r   rh   r	  r$   r%   rj   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   rl   r›  rx   z
2000-01-14r;  )rp   rl  r   r§   r#   r{   )r7   rg   r'   r*   r*   r+   Ú test_getitem_loc_str_periodindex�  s    z.TestLocSeries.test_getitem_loc_str_periodindex) r   r€   r�   r‚   rƒ   r„   ri  r×  rØ  rÛ  rÜ  rÝ  rÞ  rà  râ  rã  rh   rŠ   rp   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   Únumpyrh   r‚   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrê  Zpandasrp   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.  rW  rg  rz  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ýþ
	


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