U
    ÎZj!µ ã                	   @   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+ dd	l,m-Z- dd
l.m/Z/ ddl0m1Z1 ej2 3dej4ej4dgdej4ej4gdddggej4dgdej4gddggg¡dd„ ƒZ5G dd„ de1ƒ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$e1ƒZ>G d%d&„ d&ƒZ?G d'd(„ d(ƒZ@ej2 3d)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¡d0d1„ ƒZAd2d3„ ZBd4d5„ ZCd6d7„ ZDd8d9„ ZEd:d;„ ZFd<d=„ ZGd>d?„ ZHd@dA„ ZIdBdC„ ZJdDdE„ ZKdFdG„ ZLej2 3dHdIe MdI¡e NdI¡g¡dJdK„ ƒZOej2 3dLe"dMƒdNfe"dOdPdQ�dRfg¡dSdT„ ƒZPdUdV„ ZQdWdX„ ZRG dYdZ„ dZƒZSdS )[z$ 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_scalar)ÚFloat64Index)Ú_one_ellipsis_message)ÚBasez 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*   úa/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/indexing/test_loc.pyÚtest_not_change_nan_loc.   s
    	r,   c                   @   s8  e Zd Zdd„ Z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¡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¡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¡d"d#„ ƒZ
d$d%„ Zd&d'„ Zd(d)„ Zej d*eddƒd	d
dddgdeged+d,ƒdgdegedd-ƒd
gdegedd-ƒd
gdegedd.dƒd
gdegg¡d/d0„ ƒZd1d2„ Zd3d4„ Zej d5edgged6gƒd7�edd…d6f edgd6d8�fedged6gƒd9�d6dgfedgged6gƒd9�d6edgd6d8�fg¡d:d;„ ƒZdS )<ÚTestLocc                 C   s   | j dddgtd� d S )Nr#   é   Úlabels©ÚtypsÚfails©Úcheck_resultÚKeyError©Úselfr*   r*   r+   Útest_loc_getitem_int?   s    zTestLoc.test_loc_getitem_intc                 C   s   | j dddgtd� d S )Nr#   ÚcÚemptyr0   r3   r6   r*   r*   r+   Útest_loc_getitem_labelD   s    zTestLoc.test_loc_getitem_labelzkey, typs, axesÚfÚintsÚuintsr/   ÚmixedÚtsNZfloatsé   r   c                 C   s   | j d|||td� d S ©Nr#   ©r1   Úaxesr2   r3   ©r7   Úkeyr1   rD   r*   r*   r+   Ú#test_loc_getitem_label_out_of_rangeI   s    z+TestLoc.test_loc_getitem_label_out_of_rangez	key, typsé   r.   ç      @r"   c                 C   s   | j d||td� d S )Nr#   r0   r3   )r7   rF   r1   r*   r*   r+   Útest_loc_getitem_label_listY   s    	z#TestLoc.test_loc_getitem_label_listr:   é
   é   é   é   )rH   rL   )rH   é   )r.   é   Úmultic                 C   s   | j d|||td� d S rB   r3   rE   r*   r*   r+   Ú(test_loc_getitem_label_list_with_missingd   s    z0TestLoc.test_loc_getitem_label_list_with_missingc                 C   s"   | j ddddgddgdtd� d S )	Nr#   rA   é   é(   r=   r>   rH   rC   r3   r6   r*   r*   r+   Ú!test_loc_getitem_label_list_failsq   s        ÿz)TestLoc.test_loc_getitem_label_list_failsc                 C   s   d S ©Nr*   r6   r*   r*   r+   Ú!test_loc_getitem_label_array_likew   s    z)TestLoc.test_loc_getitem_label_array_likec                 C   s$   ddddg}| j d|dgtd� d S )NTFr#   r:   r0   )r4   Ú
IndexError)r7   r   r*   r*   r+   Útest_loc_getitem_bool|   s    zTestLoc.test_loc_getitem_boolzslc, typs, axes, failsZ20130102Z20130104é   rO   c                 C   s   | j d||||d� d S rB   )r4   )r7   Zslcr1   rD   r2   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 )NrA   r    éÈ   Úcol1Úcol2rK   rH   ©ÚcolumnsÚindexr.   )rH   r]   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 )NrH   r.   rL   zString 1zString 2z2019-06-11 11:00:00z2019-06-11 12:00:00)Zchannelr"   ÚB)ÚdatazString 3©r"   rf   r"   rf   )r   rb   Ú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©r`   ©Úname©ra   c                 C   s6   |j | }t|ttfƒr&t ||¡ n||ks2t‚d S rV   )r#   Ú
isinstancer   r   r$   Úassert_equalÚAssertionError)r7   ÚobjrF   ÚexpÚresr*   r*   r+   Ú#test_loc_getitem_single_boolean_argÍ   s    
z+TestLoc.test_loc_getitem_single_boolean_arg)Ú__name__Ú
__module__Ú__qualname__r8   r;   ÚpytestÚmarkÚparametrizerG   rJ   rR   rU   rW   rY   ÚsliceÚ	TypeErrorr5   r[   re   rn   r   r   r   r   ry   r*   r*   r*   r+   r-   >   sv   



úþ
þþ
ûþ

üöþ
ý$ùþr-   c                   @   s‚  e Zd Zdd„ Zej ddedƒddffdedƒd	dffd
edƒddffdedƒedƒdffdedƒdd	ffdedƒdedƒffdedƒddffg¡dd„ ƒZdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zej d$d%d&g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;ejj<d•d–�d—d˜„ ƒZ=d™dš„ Z>d›dœ„ Z?ej @d�¡dždŸ„ ƒZAej @d�¡d d¡„ ƒZBd¢d£„ ZCd¤d¥„ ZDd¦d§„ ZEd¨d©„ ZFdªd«„ ZGd¬d­„ ZHd®d¯„ ZIej d°d±d²d³g¡ej d´ejejJeKg¡eLjMej @dµ¡d¶d·„ ƒƒƒƒZNd¸d¹„ ZOeLjMdºd»„ ƒZPd¼d½„ ZQej ded¾d¿g¡dÀdÁ„ ƒZRej dÂeSejeTeUg¡dÃdÄ„ ƒZVdÅdÆ„ ZWej dÇdÈeTdtgƒfdÉeTdmgƒfg¡dÊdË„ ƒZXdÌdÍ„ ZYej dÎd:dÏdtdmdqdrdvdwdpdudxg
fe-drduƒd:dtdmdqdÏdÏdÏdÏdudxg
fdqdvgd:dtdmdÏdrdÏdwdpdudxg
fg¡dÐdÑ„ ƒZZdÒdÓ„ Z[dÔdÕ„ Z\dÖ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â„ Zadãdä„ Zbdådæ„ Zcdçdè„ Zddédê„ Zeej dëdìdíg¡dîdï„ ƒZfdðdñ„ Zgdòdó„ Zhdôdõ„ Zidöd÷„ Zjdødù„ ZkdgS )úÚTestLocBaseIndependentc                 C   sH   t tddƒd�}|jt dg¡d d … }|jdd … }t ||¡ d S )NZ2021Ú2022rr   z2021/6/1r   é—   )r   r   r#   rb   Ú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_time_string return parameter if type not matched.
        PeriodIndex.get_loc takes returned value from parse_time_string 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’   rH   r.   rL   rK   rA   rS   )r"   rf   ÚCZV1ZV2r"   rf   r”   ©ÚmatchN)r   r   Ú	set_indexr}   Úraisesr5   r#   )r7   ÚmsgrF   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    rH   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)rA   rP   c                 S   s   g | ]}d |d  ‘qS )ZABCDErP   r*   ©Ú.0Úxr*   r*   r+   Ú
<listcomp>  s     z@TestLocBaseIndependent.test_loc_getitem_dups.<locals>.<listcomp>rA   rr   )r"   r   r   r"   )r   rb   Ú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 )
NrH   r.   r‹   rŒ   Ú20130101r    r_   ©ra   rq   r   )r   r   r   r†   r$   r¤   r#   r¥   r*   r*   r+   Útest_loc_getitem_dups2   s    ýý

z-TestLocBaseIndependent.test_loc_getitem_dups2c                 C   s  t tdƒtdƒtjddd�d d tjddd�d d d	œƒ d
¡}dddgf}| ¡ }|j|  d9  < t |j| d|j|  ¡ d}| ¡ }|j|  d9  < |j| d|j|  ksÀt	‚dddgf}| ¡ }|j|  d9  < t 
|j| d|j|  ¡ d S )NZrtttiZaaaderP   Úfloat64©Údtypegq=
×£põ?r.   gÃõ(\�ÂÕ¿)Úmer‹   rŒ   Úbar2r­   ÚrrŒ   r®   ç       @)r¯   rŒ   Út)r   Úlistrb   rc   r—   Úcopyr#   r$   r¤   ru   r%   )r7   Údf_origÚindexerr(   r*   r*   r+   Útest_loc_setitem_dups5  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   rH   éd   r\   é,  Zuint32r«   ©r    r   r    r   éÉ   i-  Úuint64)r   r   r#   r$   r%   )r7   Zdf1ÚixZnewb1r)   rm   Znewb2r*   r*   r+   Útest_loc_setitem_sliceY  s    "ÿz-TestLocBaseIndependent.test_loc_setitem_slicec              	   C   s°   t dgdgdgdgdœƒ}dddg}d	}tjt|d
��, |jd d …|f  d¡|jd d …|f< W 5 Q R X 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   r9   r    r   r9   ú.will attempt to set the values inplace insteadr•   Zfloat32r«   )	r   r$   Úassert_produces_warningÚFutureWarningr#   Úastyperb   r…   r%   )r7   r(   Úcolsr™   r)   r*   r*   r+   Útest_loc_setitem_dtypen  s    
0üÿ	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 )
NrL   r    r   r9   rr   ú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_missingra   TFc              	   C   sN   t dddgƒ}dt|ƒ› dt|ƒ› �}tjt|d�� |j|  W 5 Q R X d S )NrH   r.   rL   z Boolean index has wrong length: z instead of r•   )r   Úlenr}   r˜   rX   r#   )r7   ra   rÊ   r™   r*   r*   r+   Útest_loc_getitem_bool_diff_lenŒ  s    z5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   s   d S rV   r*   r6   r*   r*   r+   Útest_loc_getitem_int_slice”  s    z1TestLocBaseIndependent.test_loc_getitem_int_slicec              	   C   sZ   t tj d¡dddgdddgd�}d	}tjt|d
�� |jddgddgf  W 5 Q R X d S )N)rL   rL   r    r   r9   Úer<   Úg©ra   r`   zJ\"None of \[Int64Index\(\[1, 2\], dtype='int64'\)\] are in the \[index\]\"r•   rH   r.   )r   rb   r¢   r}   r˜   r5   r#   ©r7   r(   r™   r*   r*   r+   Útest_loc_to_fail˜  s    
  ÿÿz'TestLocBaseIndependent.test_loc_to_failc              	   C   s,  t td�}d|jd< d|jd< tjtdd�� |jd  W 5 Q R X 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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«   rH   r.   r    z^-1$r•   éÿÿÿÿzL\"None of \[Int64Index\(\[-1, -2\], dtype='int64'\)\] are in the \[index\]\"éþÿÿÿzE\"None of \[Index\(\['4'\], dtype='object'\)\] are in the \[index\]\"Ú4rL   rÇ   zH\"None of \[Int64Index\(\[-2\], dtype='int64'\)\] are in the \[index\]\"r   )r   Úobjectr#   r}   r˜   r5   )r7   rÊ   r™   r*   r*   r+   Útest_loc_to_fail2§  s.    


ÿ
ÿz(TestLocBaseIndependent.test_loc_to_fail2c              	   C   sx   t dgdggddgdgd�}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   rH   r.   ÚvaluerÑ   zG\"None of \[Int64Index\(\[3\], dtype='int64'\)\] are in the \[index\]\"r•   rL   r›   rÒ   r*   r*   r+   Útest_loc_to_fail3Î  s    ÿz(TestLocBaseIndependent.test_loc_to_fail3c              	   C   sr   t dddgƒ}|jdg  tjtt d¡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 )NrH   r.   rL   z="None of [Int64Index([3], dtype='int64')] are in the [index]"r•   rÇ   )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)rP   rK   ©ÚsizeZalpha_0Zalpha_1Zalpha_2Zbeta_0Zbeta_1rr   c                 S   s   d| kS )NÚalphar*   ©r    r*   r*   r+   Ú<lambda>ú  ó    z7TestLocBaseIndependent.test_loc_index.<locals>.<lambda>Úbooleanr«   )r   rb   r¢   ra   Úmapr#   r…   r$   r%   rl   rj   )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 )NrO   r"   rf   r”   ÚDr_   r   r.   r§   rH   r¹   r    r   r¨   )r   rb   r¢   Úrandr#   r†   r`   Úallru   ra   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-5rP   r«   ©r   Úval)r   r   r   r£   rb   Úint64r6   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   rP   ©ra   r¬   r«   rî   r   ©	r   r   r£   rb   rð   r³   r#   r$   r%   )r7   rñ   rï   r)   r(   r*   r*   r+   Útest_loc_setitem_consistency"  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‹   rP   rr   r«   rî   r   ró   ©r7   rñ   r)   r(   r*   r*   r+   Ú(test_loc_setitem_consistency_dt64_to_str3  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ç      ð?rP   rr   r«   rî   r   ró   rõ   r*   r*   r+   Ú*test_loc_setitem_consistency_dt64_to_floatA  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%   rd   r*   r*   r+   Ú'test_loc_setitem_consistency_single_rowN  s    z>TestLocBaseIndependent.test_loc_setitem_consistency_single_rowc              	   C   sŠ   t ddgd�}|d  tj¡|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< t ||¡ d S )Nr    Úyro   rH   )r   rÄ   rb   rð   r$   rÂ   r#   r%   ©r7   r)   r(   r*   r*   r+   Ú"test_loc_setitem_consistency_emptyV  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!�}d"}tjt|d#��* t|j	d d …d$f ƒ|j	d d …d$f< W 5 Q R X tjt|d#��* t|j	d d …d%f ƒ|j	d d …d%f< W 5 Q R X tjd |d#��8 |j	d d …d%f |j	d d …d$f  |j	d d …d&f< W 5 Q R X tjd |d#��, |j	d d …d&f  
d'¡|j	d d …d&f< W 5 Q R X td(d)d*d+g|jd&d,�}t |d& |¡ d S )-NZRegion_1rO   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  )r  r  )r  ZDurationztimedelta64[s]id  iÐ  iH  g     à @r¨   )r   Úfrom_arraysrb   Únanr   r$   rÂ   rÃ   r   r#   rÄ   r   ra   r¤   )	r7   ÚlevelsÚmiZclevelsrÅ   rl   r(   r™   r)   r*   r*   r+   Ú-test_loc_setitem_consistency_slice_column_lenc  sR    

ýþüÿÿÿÿ
ÿþ
  ÿ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)   rp   )	r   rb   Ú
datetime64r#   rl   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_cpr.   rL   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.025ro   )r   Ú	from_dictr   r#   Úapplyr$   r%   )r7   r(   r)   r`   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 )NrL   rP   rO   r"   ©ra   r`   r¬   rH   r.   rð   r«   rò   )r   Úfloatrb   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< d}tjt|d	��* tjd
ddgdd�|jdddgdf< W 5 Q R X tddd
gdddgdd�}t d|iƒ}d|d< t 	||¡ d S )NrL   rP   rO   r"   rf   r  rù   rÁ   r•   rH   r.   rð   r«   rò   )
r   r  r$   rÂ   rÃ   rb   r…   r#   r   r%   )r7   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   s’   t dddgddgtd�}d|d< d}tjt|d	��, tjdddgd
d�|jtdddƒdf< W 5 Q R X t dddgddœdddgd�}t 	||¡ d S )NrH   r.   rL   r"   rf   r  rù   rÁ   r•   rð   r«   r   rÔ   rh   rr   )
r   r  r$   rÂ   rÃ   rb   r…   r#   r€   r%   )r7   r(   r™   r)   r*   r*   r+   Ú*test_loc_setitem_frame_with_inverted_sliceÚ  s    0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>rP   rð   r«   c                 S   s   g | ]}d t |ƒ ‘qS r  r   r"  r*   r*   r+   r¡   é  s     rO   rr   r"   rf   rò   rh   )r£   rb   rc   r²   ÚsetÚunionr   r  r#   r   rª   Úreindexr$   r%   )
r7   Zkeys1Zval1Úkeys2Zval2ra   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 )NrO   ÚabcdÚABCDrÑ   ©r   r   rH   )r    r"   r   rf   rè   )
r   rb   r¢   Úrandnr²   r†   r#   ru   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 )NrH   r.   rL   rh   rf   )r   rb   r  r"   r#   rf   r$   r%   rd   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 )NrH   r.   rL   rO   r    r   )rH   r.   r    r   r«   ©ra   r¬   rq   rP   rM   )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Œ   ÚbazrL   r«   rh   rH   r.   r   rì   rí   rP   rî   Z20000101Z20000102Z20000103rO   )r   r   r£   rb   rð   r#   ra   r$   r%   r   r   )r7   r(   Úrhsr)   r*   r*   r+   Ú test_loc_setitem_frame_multiples#  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 )NrH   r.   rL   rO   r"   rf   ro   r   )r   r"   r4  )r   r#   r   ru   )r7   rµ   rÙ   r(   rˆ   r*   r*   r+   Ú"test_loc_setitem_with_scalar_indexH  s    	
z9TestLocBaseIndependent.test_loc_setitem_with_scalar_indexzindex,box,expectedr.   rf   r”   rN   rL   rO   ro   rH   rZ   rP   rM   é	   rK   é   é   c              	   C   s€   t ddgddgddggddgd	�}d }t|d
 tƒrH|d
 td ƒkrHt}d}tj||d�� ||j|< W 5 Q R X t ||¡ d S )NrH   r.   rL   rO   rP   rM   r"   rf   ro   r   rÁ   r•   )r   rs   r€   rÃ   r$   rÂ   r#   r%   )r7   ra   Úboxr)   r(   Úwarnr™   r*   r*   r+   Ú test_loc_setitem_missing_columnsW  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   rH   )	r   r   Útz_localizerj   rk   Údtypesr†   r$   r¤   r¥   r*   r*   r+   Útest_loc_coercion—  s    z(TestLocBaseIndependent.test_loc_coercionc                 C   sj   dd l }td|  ddd¡|  ddd¡giƒ}|j}|jdg }t |j|¡ |jdg }t |j|¡ d S )Nr   r   éÜ  rH   iô  r.   )r   r   r>  r†   r$   r¤   )r7   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 wordsr6  r   r.   rL   )r   r>  r†   r$   r¤   r¥   r*   r*   r+   Útest_loc_coercion3²  s    z)TestLocBaseIndependent.test_loc_coercion3c                 C   sf   t dƒ d¡t dƒ d¡g}t|ddgd�}ttd�}|d ||ƒd< |d	 ||ƒd< t ||¡ d S )
Né*   r<  iš  r‹   rŒ   rr   r«   r   rH   )r   r=  r   r×   r$   r¤   )r7   Z
indexer_slÚvalsr)   r  r*   r*   r+   Útest_setitem_new_key_tz½  s    þ
z.TestLocBaseIndependent.test_setitem_new_key_tzc              	   C   s˜  t ddddddgddddddgd	œd
dd
dddgd�}d}tjt|d�� |jdd …  W 5 Q R X d}tjt|d�� |jd
d …  W 5 Q R X d}tjt|d�� |jdd…  W 5 Q R X t ddddddgddddddgd	œd
dd
dddgd�jd
d�}|jdd … }t ddddgddddgd	œddddgd�}t ||¡ |jd
d … }t ||¡ |jdd… }t dddgdddgd	œdddgd�}t ||¡ d S )NrH   r.   rL   rO   rP   rM   rN   rZ   rh   r   rr   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   FrH   )r²   rj   Úconcatr   rb   r¢   r,  rÌ   rc   Úonesra   Z	is_uniqueru   r#   Útaker$   r%   )r7   ÚlengthÚl2r`   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 )NrH   Z
index_namer   )r   ra   rq   r†   ru   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 )NrP   r.   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º  |rt jjdd�}|j |¡ tddddgiƒ}|jd d … }||k	sJt‚|d d … |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‚||jd d …d d …f ksät‚ttj dd¡ƒ}|d	 |jd d …d	f k�st‚tddddd
dgƒ}|jd d … }	|	|k	�sFt‚|d d … |k	�s\t‚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 )Nz0setting with .loc[:, 'a'] does not alter inplace©Úreasonr    rH   r.   rL   rO   rK   r   rP   rM   rN   rZ   r6  )r}   r~   ÚxfailÚnodeZ
add_markerr   r#   ru   rb   Zshares_memoryÚ_valuesrê   r¢   r,  r   )
r7   Úusing_array_managerÚrequestÚusing_copy_on_writer~   Zoriginal_dfZ	sliced_dfr(   Zoriginal_seriesZsliced_seriesr*   r*   r+   Ú&test_identity_slice_returns_new_object,  s2    ÿ "z=TestLocBaseIndependent.test_identity_slice_returns_new_objectz!accidental fix reverted - GH37497rX  c                 C   s|   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 )NrL   r    r   ro   r.   )r   Úzipr£   r³   r#   r$   r%   ra   )r7   r    rû   ÚqÚzr*   r*   r+   Útest_loc_copy_vs_viewW  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»   rH   r.   rr   r   )	rb   ÚiinfoÚmaxr   r#   r†   ru   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»   rH   r.   rr   z-1r•   rÔ   )rb   re  rf  r   r}   r˜   r5   r#   )r7   rg  r  r*   r*   r+   Ú!test_loc_uint64_disallow_negativey  s    z8TestLocBaseIndependent.test_loc_uint64_disallow_negativez,ignore:.*will attempt to set.*:FutureWarningc                 C   sR   dddg}t |d gt|ƒ dœƒ}t ddgd�}||jd d …df< t ||¡ d S ©NrH   r.   rL   ©r    rû   r    rû   ro   )r   rÌ   r#   r$   r%   ©r7   rg   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 rj  )r   rÌ   rÄ   rb   rð   r#   r$   r%   rl  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÷   rk  r    rû   ©r`   r¬   )r   r    )r   rb   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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 )NrH   r.   r    rû   ro   zFNone of \[Int64Index\(\[0, 1\], dtype='int64'\)\] 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   ra   rÄ   rb   rð   r}   r˜   r5   r#   ÚjoinÚ
ValueError)r7   rg   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 )NrH   r.   rL   rO   r   rp   )r   r#   rb   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 )NrH   r.   r   )r   r#   rb   r…   ru   )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 )NrH   r.   rL   rO   rP   rM   iÚ  iä  rr   rò   r’   rÔ   )r   r£   rb   rª   r#   r$   r¤   )r7   rg   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!  rb   r¢   )rŸ   Ú_r*   r*   r+   r¡   Ø  s     z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>rP   r"   ro   ro  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     )rb   r¢   Úseedr£   r   r×   r$   r%   r#   ra   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©Úfreqr6  rS   rL   rr   z1/4/2000rÔ   )r   ÚhourÚminuter   rb   r¢   r,  rÌ   r$   Úget_objr#   r   rt   ra   Ú
_with_freq)	r7   Úframe_or_seriesÚrngræ   rv   rˆ   rw   Úchunkr)   r*   r*   r+   Útest_loc_getitem_time_objecté  s    
z3TestLocBaseIndependent.test_loc_getitem_time_objectÚ
spmatrix_tZ
coo_matrixZ
csc_matrixZ
csr_matrixr¬   z>ignore:The behavior of .astype from SparseDtype.*FutureWarningc                 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   )rP   rN   r«   r.   )Z
fill_value)Úscipy.sparseÚgetattrÚsparserb   Úeyer   Úfrom_spmatrixr£   r#   rl   Ztoarrayr$   Zassert_numpy_array_equalr>  Ú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«   rH   )r   rj   r…   r   r#   r$   r%   rS  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Œ  rP   r.   r÷   r¿   rª   r«   rH   )
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«   r.   rL   )r   r   r#   r£   r$   r¤   )r7   rÊ   rˆ   r)   r*   r*   r+   Útest_loc_getitem_sparse_series3  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¬   rq   )r   r   r  rŠ  r   r$   r¤   )r7   rµ   r(   rˆ   r)   r*   r*   r+   Ú!test_getitem_single_row_sparse_df?  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"   rf   r”   )r#   r$   r%   )r7   Úfloat_framer–  Úidxrˆ   r)   r*   r*   r+   Útest_loc_getitem_iterableG  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©rK   rO   rÞ   Z0srK   rÊ   ©ÚstartÚperiodsr  )
r   rb   r¢   Únormalr   ra   r#   r   r$   r%   r¥   r*   r*   r+   Ú#test_loc_getitem_timedelta_0secondsN  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 )NrH   r.   r¡  r¢  rr   )r   r#   rq   r$   r¤   )r7   rï   r)   r(   rˆ   r*   r*   r+   Útest_loc_getitem_uint64_scalarV  s    
z5TestLocBaseIndependent.test_loc_getitem_uint64_scalarc                 C   sD   t dddgdddgd�}| ¡ }d|jd< d|jd	< t ||¡ d S )
Nr    r   r9   r   ç      à?rH   rr   Zzoor.   )r   r³   r#   r†   r$   r¤   ©r7   r  r)   r*   r*   r+   Ú,test_loc_setitem_int_label_with_float64indexa  s
    

zCTestLocBaseIndependent.test_loc_setitem_int_label_with_float64indexzindexer, expectedrA   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 )	NrK   rÊ   ©r	  r    rð   ©r¬   ra   rA   r  )r   r£   r   r#   ra   r$   r%   )r7   rµ   r)   Útdir(   r*   r*   r+   Ú/test_loc_setitem_listlike_with_timedelta64indexk  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 )
NrH   Zaaaaar¹   r   Zaabbar    ©Ú
categoriesr.   rL   )r   r²   r	   r#   r$   r%   )r7   r(   rw   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�}d}tjt|d	�� ||jd d …df< W 5 Q R X |d }t||jdd
�}t ||¡ d S )Nr    r   )ÚAlphaZNumericr®  r   r9   r«  rÁ   r•   r¨   )	r   r	   r$   rÂ   rÃ   r#   r   ra   r¤   )r7   r(   r¬  r™   rˆ   r)   r*   r*   r+   Ú'test_loc_setitem_single_row_categoricalŽ  s    z>TestLocBaseIndependent.test_loc_setitem_single_row_categoricalc              	   C   s¶   t dtdƒgd iƒ}t d¡|jdd…df< tdƒ|jd ksDt‚tdƒ|jd ksZt‚td	d
d
ƒ|jd< t t	¡� tdƒ|jd ksŽt‚W 5 Q R X tdƒ ¡ |jd ks²t‚d S )Nr9   z
2010-10-01rL   z
2008-08-08r   rH   )r   r9   )rH   r9   iÕ  rP   )r.   r9   z
2005-05-05)
r   r   rb   r  r#   ru   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-12rL   ÚH)rœ  r�  r  Útzr¾   r²  rÑ   r  )r   r   rb   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~  rP   rr   r8  r   rx  é   é   éH   éx   é¨   é   é   é   éJ   éK   éL   éz   é{   é|   éª   é«   é¬   )r   r   rb   r¢   r,  rÌ   r   r€   r³   r#   rÄ   r  r$   r%   r†   )
r7   r]  ra   r(   ZakeyZbkeyZaindsZbindsrˆ   r)   r*   r*   r+   Útest_loc_setitem_time_key³  s<    







z0TestLocBaseIndependent.test_loc_setitem_time_keyrF   c                 C   s¼   t  dddg¡}tdddgddd	gg|d
�}| ¡ }tjdtd�|jd d …|f< tdddgdddgg|d
�}t 	||¡ |j
dd�}tjdtd�|jd d …|f< |j
dd�}t 	||¡ d S )N)r"   rO   )rf   Ú3)r"   Ú2rH   r.   rL   rO   rP   rM   ro   )r.   r.   r«   r   rG  )r   Úfrom_tuplesr   r³   rb   ZzerosÚintr#   r$   r%   rI  )r7   rF   r  r(   rv   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 )NrH   r.   rL   r«   rO   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 )NrK   r  rA   rH   r.   rL   )r   rb   Útimedelta64r#   r   r$   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 )Nr.   rq  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,?\))
rb   r¢   r,  r   r£   rr  r}   r˜   rs  r#   )r7   rg   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   rL   )rœ  r�  rH   r.   rO   rP   rM   rN   rZ   r6  r"   rf   r”   rÑ   )r¤  r"   )rj   Úinterval_ranger   r#   r$   Úassert_almost_equal)r7   ra   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   rL   Zboth)rœ  r�  ÚclosedrH   r.   rO   rP   rM   rN   rZ   r6  r"   rf   r”   rÑ   )rœ  r�  r  rÕ  r¨   ©rH   r"   )rj   rÒ  r   r   r#   r$   r¤   )r7   ra   r(   Z	index_expr)   rˆ   r*   r*   r+   Ú test_loc_getitem_interval_index2  s      ÿ
z7TestLocBaseIndependent.test_loc_getitem_interval_index2Útpl©rH   ©rH   r.   c                 C   sR   t ddgddd�}t|d�}|j|g }t |gddd�}t|d�}t ||¡ d S )NrÙ  rÚ  r"   F©rq   Ztupleize_colsrr   )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Œ   r1  ZbofZcomposite_indexFrÛ  rÚ  )rL   rO   r"   rf   rÑ   rH   )r   r   r   r#   ru   )r7   rÝ  Zidx1Zidx2ra   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 )NrP   rL   r    r   r9   rÈ   rÏ   r‹   rŒ   r1  rÑ   Úquxr!  r.   r«   )r   rb   r¢   r,  r  r#   ra   r…   r×   r$   rÓ  rl   rd   r*   r*   r+   Ú$test_loc_setitem_single_column_mixed9  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 )NrS   rL   ÚABCro   Úeventr‹   )rK   râ  rª   r×   r"   rf   r”   rr   )r   rb   r¢   ré   Útupler  r#   r>  r   r¬   r$   r¤   r‡   r*   r*   r+   Útest_loc_setitem_cast2D  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ÚonerM   r«   )rH   rå  rN   )	r   rb   rc   Zint8r#   r>  rå  r¬   ru   rœ   r*   r*   r+   Útest_loc_setitem_cast3Q  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 )NrP   rL   rO   rH   r   r.   rr   r6  rK   r7  )r£   Úndimr#   ra   r$   rt   )r7   r„  rv   rl   r)   r*   r*   r+   Útest_loc_setitem_range_keyY  s    

z1TestLocBaseIndependent.test_loc_setitem_range_key)lrz   r{   r|   r‰   r}   r~   r   r   rš   r�   r¦   r©   r¶   r½   rÆ   rË   rÍ   rÎ   rÓ   rØ   rÚ   rÝ   rç   rë   Úfixturerñ   rb   r…   rð   rô   rö   rø   rú   rý   r  r  r  r  r  r  r(  r-  r.  r0  r3  r€   r5  r   r  r;  r?  rA  rC  rF  rJ  Zarm_slowrR  rT  rW  r`  rZ  rd  rh  ri  Úfilterwarningsrm  rn  rp  rt  ru  rv  rw  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‚   â   sr  þþóþ

$
'
*þ
4

% ÿ$
þý	
(
þý	 ÿý$
þý	$
þý	  ÿýØþ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 rV   )Úparam)r7   r^  r*   r*   r+   rµ   h  s    zTestLocWithEllipsis.indexerc                 C   s   |}|t k	r| ¡ }|S rV   )r   Úto_frame)r7   Úseries_with_simple_indexr„  rv   r*   r*   r+   rv   m  s    zTestLocWithEllipsis.objc                 C   s   ||ƒd }t  ||¡ d S )N.)r$   rt   )r7   rv   rµ   rˆ   r*   r*   r+   Útest_loc_iloc_getitem_ellipsist  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@|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Ì   ra   r#   Z
is_booleanrs   r   r}   r˜   ÚNotImplementedErrorr¤   rq   rñ  r%   )
r7   rò  rµ   rv   rF   r™   rˆ   r)   Úkey2r(   r*   r*   r+   Ú&test_loc_iloc_getitem_leading_ellipsesx  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Ì   ra   r}   r˜   r   r   )r7   rv   rµ   rF   r*   r*   r+   Ú0test_loc_iloc_getitem_ellipses_only_one_ellipsis�  s    $zDTestLocWithEllipsis.test_loc_iloc_getitem_ellipses_only_one_ellipsisN)rz   r{   r|   r}   ré  r$   r#   r†   rµ   rv   ró  rö  rø  r*   r*   r*   r+   rî  g  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    rH   r.   r9   Údimra   r`   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 )
Nr9   r    r   rH   r.   é   rP   ra   r`   )r   rb   rc   Úreshaper   r  r#   r$   Úassert_index_equalra   r`   )r7   rú  Úkeysr)   Úkwargsr(   Ú	exp_indexrx   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"   rH   )r  r.   r.   )r#   ra   r   ru   rq   )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   rH   rr   )r   Úfrom_productr   r#   r$   r¤   r†   )r7   r  r  rx   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	  rH   )r   r   r  r#   ru   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Œ   r1  r‹   rß  rå  ÚtwoÚfirstÚsecondrÿ   rH   rr   r·   )r1  rå  )r‹   r  )r   rÊ  ra  r   r#   r$   r¤   )r7   ra   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10minrL  ©r  r�  il  rH   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 )NrK   r¹   z
2010-01-01z
2010-01-10rr   z
2010-01-05r    r   r   rO   )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"   rf   rÿ   r÷   rH   r°   r.   rI   rL   ç      @rO   ç      @rP   ç      @rM   r”   rè   rÑ   r   )Úlevelr_   )r   rÊ  r   rI  rO  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   r9   Úcategoryr«   r   rL   r×   rÍ  ©r7   rˆ   r)   r*   r*   r+   Ú1test_additional_element_to_categorical_series_loc0  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   r9   r  r«   rL   rÍ  r  r*   r*   r+   Ú'test_additional_categorical_element_loc7  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 )NrH   r.   rL   r«   )r   r
   r   rb   r  r#   r$   r¤   )r7   Zany_numeric_ea_dtypeZsrsr)   r*   r*   r+   Ú&test_loc_set_nan_in_categorical_series>  s     þþþz<TestLocWithMultiIndex.test_loc_set_nan_in_categorical_seriesÚnaNc                 C   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_intoS  s    

zBTestLocWithMultiIndex.test_loc_consistency_series_enlarge_set_intoc                 C   s¢   t t ddd¡ttddgƒtdƒgdgd dgd  tdƒgd	d
gd�d�}tddgddgdd	dd�}|jjd }t 	||¡ |j
dg jjd }t 	||¡ d S )Nr.   é   r    r   rK   r   rP   rH   ZIndex1ZIndex2)r  Úcodesr   )rg   ra   Fr  )r¬  Úorderedrq   r¬   )r   rb   rc   r   r   r£   ra   r  r$   rý  r#   r¥   r*   r*   r+   Ú5test_loc_getitem_preserves_index_level_category_dtype`  s&    ýþ	ûzKTestLocWithMultiIndex.test_loc_getitem_preserves_index_level_category_dtypeÚlt_valuerS   rK   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    r8  é   é"   é-   Úaabbr   rH   r.   rL   rr   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_anymorey  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Œ   r1  r   rH   rr   )	rb   r…   r  r   r  r   r#   r$   r¤   )r7   Úlev1Úlev2r  r  rˆ   r)   r*   r*   r+   Ú'test_loc_multiindex_null_slice_na_level€  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xyrH   r.   Únumrÿ   rZ   rr   r    r   rO   )
r   r  r²   r   r£   r#   ra   Z	droplevelr$   rý  )r7   r  r  Z
loc_resultr)   r*   r*   r+   Útest_loc_drops_levelŒ  s     ÿz*TestLocWithMultiIndex.test_loc_drops_level)rz   r{   r|   r}   r~   r   r  r  r  r
  r  r  r  r  r  r  r  rb   r  rj   ZNArk   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«   rH   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«   rH   rr   rL   ©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÷   rH   rr   rI   rL   r2  r3  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«   rH   r‹   rr   rL   rŒ   rO   r2  r3  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’   r7  rH   ú
US/Pacific)Útzinfoc                    s   g | ]}ˆ t |d  d� ‘qS )rK  )Úseconds)r   r"  ©Úbaser*   r+   r¡   Å  s     zUTestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dst.<locals>.<listcomp>é   r   rr   )r   r   r£   r   r#   r$   r¤   )r7   Zidxsrˆ   r@   r)   r*   r:  r+   Ú%test_loc_setitem_incremental_with_dstÂ  s    zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstÚconvc                 C   s   | S rV   r*   rá   r*   r*   r+   râ   Ï  rã   z$TestLocSetitemWithExpansion.<lambda>c                 C   s   |   ¡ S rV   )Úto_datetime64rá   r*   r*   r+   râ   Ð  rã   c                 C   s   |   ¡ S rV   )Úto_pydatetimerá   r*   r*   r+   râ   Ñ  rã   c                 C   s
   t  | ¡S rV   )rb   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å  r\   g      Y@g      i@rr   )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"   rH   r   )r"  rf   rh   )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Ñ   r8  r  )r   r   ru   r   r#   rb   r  rÌ   Úappendr   r×   r$   r%   )r7   rœ  Úendr@   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	¡}| ¡ }t	j
td
d�� ||j|jdkdf< W 5 Q R X t|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   )rg   r`   ÚnewÚoldÚnew_colr<  r7  zmismatched timezoner•   r   )rH   r   rp   Z1s)r   r   r—   ra   r=  r   rJ  Z
tz_convertr³   r$   rÂ   rÃ   r#   r   r¤   r   )r7   r(   Úvrm   r)   r*   r*   r+   Útest_setitem_with_expansionú  s    
þz7TestLocSetitemWithExpansion.test_setitem_with_expansionc                 C   sP   t ƒ }d|jd< d|jd< d|jdtjf< |j}tddtjgƒ}t ||¡ d S )NrH   r+  r.   )rH   rH   rL   r   )r   r#   rb   Úinfr`   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 )	Nr.   r   rÑ   ZkapowrÔ   rH   ©r   rH   rr   )rÌ   Úrepeatrb   rc   rÄ   rð   r   ru   Úinsertrs   r   rª   r³   r#   r$   r%   r¤   r²   r  r  )r7   ra   ÚNÚarrÚorigrF   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   rH   r.   rL   r«   rg   rr   )r   r   ra   r#   r$   r%   r\  )r7   r¬   r  r(   rˆ   r*   r*   r+   Ú6test_loc_setitem_with_expansion_preserves_nullable_intJ  s    zRTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_preserves_nullable_intN)rz   r{   r|   r}   r~   Zslowr1  r4  r5  r6  r=  r   rA  rB  rG  rL  rN  rê  rU  rW  r*   r*   r*   r+   r0  ™  s6   



ü
ø



- ÿr0  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 )NrH   r.   rL   rO   r(  ©r"   rf   r”   c                 S   s
   | j dkS ©Nr.   ©r"   rá   r*   r*   r+   râ   c  rã   zATestLocCallable.test_frame_loc_getitem_callable.<locals>.<lambda>c                 S   s
   | j dkS )Nr   )rf   rá   r*   r*   r+   râ   f  rã   r   c                 S   s
   | j dkS rZ  r[  rá   r*   r*   r+   râ   i  rã   c                 S   s
   | j dkS ©Nrf   ro   rá   r*   r*   r+   râ   i  rã   FTc                 S   s
   | j dkS rZ  r[  rá   r*   r*   r+   râ   l  rã   c                 S   s   dS r\  r*   rá   r*   r*   r+   râ   l  rã   rf   c                 S   s
   | j dkS rZ  r[  rá   r*   r*   r+   râ   o  rã   c                 S   s   ddgS ©Nr"   rf   r*   rá   r*   r*   r+   râ   o  rã   r"   c                 S   s
   | j dkS rZ  r[  rá   r*   r*   r+   râ   r  rã   c                 S   s   ddgS r]  r*   rá   r*   r*   r+   râ   r  rã   c                 S   s   dS )NrH   r*   rá   r*   r*   r+   râ   v  rã   c                 S   s   dS r!   r*   rá   r*   r*   r+   râ   v  rã   rÖ  )	r   r²   r#   r$   r%   r"   rf   r¤   ru   ©r7   r(   rx   r*   r*   r+   Útest_frame_loc_getitem_callable]  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 )NrH   r.   rL   rO   r(  rY  c                 S   s
   | j dkS rZ  r[  rá   r*   r*   r+   râ   }  rã   zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r"   rf   c                 S   s   ddgS r]  r*   rá   r*   r*   r+   râ   €  rã   c                 S   s   ddgS r]  r*   rá   r*   r*   r+   râ   ƒ  rã   )r   r²   r#   r$   r%   r"   r¤   r^  r*   r*   r+   Ú'test_frame_loc_getitem_callable_mixturey  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 )NrH   r.   rL   rO   r(  ©ÚXr
  r*  rr   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 rc  r*   rá   r*   r*   r+   râ   Ž  rã   c                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   ‘  rã   c                 S   s   dS ©Nrb  r*   rá   r*   r*   r+   râ   ‘  rã   rb  c                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   ”  rã   c                 S   s   dgS rd  r*   rá   r*   r*   r+   râ   ”  rã   c                 S   s   dS rd  r*   rá   r*   r*   r+   râ   ˜  rã   c                 S   s   dgS rd  r*   rá   r*   r*   r+   râ   ›  rã   c                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   ž  rã   c                 S   s   ddgS rc  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 )NrH   r.   rL   rO   r(  ra  r*  rr   iìÿÿÿc                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   ª  rã   zATestLocCallable.test_frame_loc_setitem_callable.<locals>.<lambda>r"   r”   rA   c                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   °  rã   rÔ   c                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   ¶  rã   c                 S   s   dS rd  r*   rá   r*   r*   r+   râ   ¶  rã   rb  rP   rK   c                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   ¼  rã   c                 S   s   dgS rd  r*   rá   r*   r*   r+   râ   ¼  rã   rÕ   c                 S   s   dS rd  r*   rá   r*   r*   r+   râ   Ã  rã   c                 S   s   dgS rd  r*   rá   r*   r*   r+   râ   É  rã   c                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   Ï  rã   éüÿÿÿc                 S   s   ddgS rc  r*   rá   r*   r*   r+   râ   Õ  rã   )r   r²   r³   r#   r$   r%   rb   r…   )r7   r(   rx   rw   r*   r*   r+   Útest_frame_loc_setitem_callable¤  sR    " z/TestLocCallable.test_frame_loc_setitem_callableN)rz   r{   r|   r_  r`  re  rg  r*   r*   r*   r+   rX  \  s   rX  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   r9   rH   r.   rL   )r]   r^   z
2020-08-01z
2020-07-02z
2020-08-05rr   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œ  rF  r  z2017-12rÔ   )rj   Ú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Ú1Hrl  z1 daysrÔ   )r   rn  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    rL   Údaysr§  rr   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 )NrH   rP   z
2019-12-30z
2020-01-01z
2019-12-25ry  z
2019-12-19rC  rr   r.   )r   r   r€   r$   rt   r#   )r7   Ztz_aware_fixturerx  r„  rv   r)   rµ   rˆ   r*   r*   r+   Ú/test_loc_getitem_partial_slice_non_monotonicity 	  s4    ûøþþûþ


zHTestPartialStringSlicing.test_loc_getitem_partial_slice_non_monotonicity)rz   r{   r|   ri  rp  rt  rw  r}   r~   r   rz  r*   r*   r*   r+   rh  Û  s   rh  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 ©éÑ  rH   rK   r   ©r   r"  r*   r*   r+   r¡   ,	  s     zMTestLabelSlicing.test_loc_getitem_slicing_datetimes_frame.<locals>.<listcomp>)rH   r.   rL   rO   rr   r  c                 S   s   g | ]}t d d|ddƒ‘qS r|  r~  r"  r*   r*   r+   r¡   2	  s     )rH   r.   r.   rL   rO   r}  rH   rK   rO   r7  z20010101 11)r   rb   rc   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/BerlinrP   z30 min)r´  r�  r  r   rH   r.   rL   rO   rr   z2017-10-29 02:30:00+02:00rC  z2017-10-29 02:00:00+01:00)r   r   r   r#   r$   r¤   ru   )r7   r˜  Zseries2Zt_1Zt_2rˆ   r)   r*   r*   r+   Ú'test_loc_getitem_label_slice_across_dstC	  s       ÿz8TestLabelSlicing.test_loc_getitem_label_slice_across_dstra   rj  rk  r  rl  rq  rr  rs  c                 C   s8   |  ¡ }|jd |d … }|jd d… }t ||¡ d S )NrÕ   rÔ   )rn  r#   r†   r$   r¤   )r7   ra   r  rˆ   r)   r*   r*   r+   Ú-test_loc_getitem_label_slice_period_timedeltaT	  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‹ßÖË|é@rL   r.   rr   g3333c|é@g    �|é@g3333“|é@gÍÌÌÌÜ|é@)r   rb   r¢   ré   r#   rÌ   ru   )r7   ra   r(   Ús1r*   r*   r+   Ú%test_loc_getitem_slice_floats_inexactb	  s    
z6TestLabelSlicing.test_loc_getitem_slice_floats_inexactc                 C   sª   t tj d¡tjddtd�d�}t|jdd … ƒdks:t‚t|jdd … ƒdksTt‚tjddtd�}d	|d
< ||_	t|jdd … ƒdksŒt‚t|jdd … ƒdks¦t‚d S )NrK   rA   r«   rr   g      (@rZ   g      )@rN   gffffff(@r.   )
r   rb   r¢   ré   rc   r  rÌ   r#   ru   ra   )r7   r  r˜  r*   r*   r+   Ú)test_loc_getitem_float_slice_float64indexo	  s     z:TestLabelSlicing.test_loc_getitem_float_slice_float64indexzstart,stop, expected_slicer   ÚnsNr7  rH   rè   rM   rN   rO   rP   c                 C   s>   t tdƒtddƒƒ}|jt||ƒ }|j| }t ||¡ d S )Nr7  rv  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_td64obj{	  s    

z5TestLabelSlicing.test_loc_getitem_slice_label_td64objrœ  Z2018Z2020c              	   C   sL   |dddgt dƒt dƒt dƒgd�}t t¡� |j|d…  W 5 Q R X d S )	NrH   r.   rL   Z2016Z2019Z2017rr   rƒ   )r   r$   rÂ   rÃ   r#   )r7   r„  rœ  rv   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 )NrO   r  r.   Úthirdrr   )r£   r#   r$   rt   )r7   r„  rÙ   rv   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 )	NrH   r.   rL   )ÚtestrH   r.   r   rr   r«   )rg   ra   r`   )r   r   r×   r$   r%   r#   rd   r*   r*   r+   Ú*test_loc_getitem_slice_columns_mixed_dtype›	  s      ÿz;TestLabelSlicing.test_loc_getitem_slice_columns_mixed_dtype)rz   r{   r|   r  r€  r}   r~   r   rj   rm  r   r�  rƒ  r„  rb   rÏ  r€   r‡  rˆ  rŠ  rŒ  r*   r*   r*   r+   r{  %	  s0   þþ
ýþ


r{  c                   @   sH   e Zd Zej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd	„ Zd
S )ÚTestLocBooleanLabelsAndSlicesÚ
bool_valueTFc              	   C   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   ra   r„  rŽ  Úmessagerv   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Ž  rv   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   ra   r„  r�  rv   r*   r*   r+   Útest_loc_bool_slice_raises·	  s
    ÿz8TestLocBooleanLabelsAndSlices.test_loc_bool_slice_raisesN)	rz   r{   r|   r}   r~   r   r�  r‘  r’  r*   r*   r*   r+   r�  ¤	  s
   


r�  c                   @   sT   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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    rK   rÊ   r§  rL   r   rH   r.   rO   rP   rM   rN   rZ   r6  rð   r  )	r   r£   r   ra   ra  r³   r#   r$   r%   )r7   r(   Ú
conditionsÚexpected_dataZcondrg   rˆ   r)   r*   r*   r+   Ú)test_loc_setitem_bool_mask_timedeltaindexÂ	  s"    "ýüz<TestLocBooleanMask.test_loc_setitem_bool_mask_timedeltaindexr´  Nr<  c                 C   s˜   t  ddddg¡}tdd|d�}tdt  d¡i|d� d¡}| ¡ }|j|d d …f |j|d d …f< t 	||¡ | ¡ }|j| |j|< t 	||¡ d S )	NTFZ20010101rO   ©r�  r´  r    rr   rª   )
rb   r…   r   r   rc   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  rL   r.   ZABr}  rs  )r�  r  r_   r   r”   rH   )r   rb   rc   rü  r²   r   r³   ra   rj   rk   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ÚcolrH   TF)
r   r   r   r³   r†   rÙ   r#   ru   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   sB   |  ¡ }|d dk}d|j|df< d|j|jdf< t ||¡ d S )Nr"   r   rf   rH   )r³   r#   rl   r$   r%   )r7   r—  r)   ræ   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 )NrH   r.   rL   rO   rP   rM   r¹   r    rK   rA   rS   r   rr   FTr7  r8  )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_alignment)rz   r{   r|   r–  r}   r~   r   r˜  r™  r›  rì  Úskip_array_manager_invalid_testrœ  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 )ÚTestLocListliker9  c                 C   s   | S rV   r*   rá   r*   r*   r+   râ   0
  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"   rf   rL   rr   rÔ   rH   rÇ   r•   )r   rb   r  r   r£   r#   r$   r¤   rñ  r%   r}   r˜   r5   )r7   r9  Úcir  rˆ   Zser2Zci2r™   r*   r*   r+   Ú8test_loc_getitem_list_of_labels_categoricalindex_with_na0
  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«   r.   rP   rZ   r7  z
2001-01-01rè   rO   r  rÇ   r•   )rb   r…   r   r   r}   r˜   r5   r#   )r7   rF   r  r*   r*   r+   Ú1test_loc_getitem_series_label_list_missing_valuesL
  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©ra   rg   rÇ   r•   l   NZ4FçG)r   rb   r…   r}   r˜   r5   r#   r3  r*   r*   r+   Ú9test_loc_getitem_series_label_list_missing_integer_valuesU
  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  rq   gš™™™™™¹?gš™™™™™É?rÊ   r¨   c                 S   s   g | ]}|  d ¡‘qS ©rè   ©r¥  rž   r*   r*   r+   r¡   i
  s     zRTestLocListlike.test_loc_getitem_listlike_of_datetimelike_keys.<locals>.<listcomp>T)rU  c                 S   s   g | ]}|  d ¡‘qS r§  r¨  rž   r*   r*   r+   r¡   v
  s     )rq   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#   ra   rƒ  r$   r¤   r   r¬   r}   r˜   r5   )r7   r¥  r˜  r  rþ  rˆ   rw   r*   r*   r+   Ú.test_loc_getitem_listlike_of_datetimelike_keys^
  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 )NrH   r.   rO   rP   rN   rZ   ZcobraZviperZ
sidewinderZ	max_speedÚshieldrÑ   r‹   rp   )r   r†   ra   rq   r#   r   r$   r%   r¥   r*   r*   r+   Útest_loc_named_indexˆ
  s    ýz$TestLocListlike.test_loc_named_indexN)rz   r{   r|   r}   r~   r   rb   Zasarrayr²   r¡  r¢  r¤  rª  r¬  r*   r*   r*   r+   rŸ  /
  s   
		
)rŸ  z%columns, column_key, expected_columnsiÛ  r@  iÝ  rH   ZAllr.   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 )	NrL   rá  r_   r"   rf   r”   T)rV  )	r   rb   r¢   ré   r²   r†   r#   r$   r%   )r`   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 )
NrZ   rO   r¤  rH   r¿   r÷   r°   rI   ro   )rb   r¢   r,  r   r  r#   Zhstackr…   rü  r$   r%   )Z	rand_datarˆ   r•  r)   r*   r*   r+   Útest_loc_setitem_float_intindex¦
  s    $r®  c               	   C   sv   dd„ dD ƒ} t t d¡tdƒt | ¡d�}|jdd�d	d
… }t t d¡tdƒt d	ddd
g¡d�}t ||¡ d S )Nc                 S   s   g | ]}d D ]}||f‘qqS ))rN   rZ   r6  rK   r*   )rŸ   Úyrr  r*   r*   r+   r¡   ¶
  s       z)test_loc_axis_1_slice.<locals>.<listcomp>)éÞ  r’   )rK   rZ   Z
ABCDEFGHIJrÑ   rH   rG  )r°  r6  )r’   rZ   rš  )r°  rK   )r’   rN   )	r   rb   rN  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    r.   rÑ   r   rO  )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 )Nr.   rH   r°   r«   r   )r   r£   r   r×   r#   ru   )r  rˆ   r*   r*   r+   Útest_loc_mixed_int_floatÏ
  s    
r³  c               	   C   sh   t tdƒddddgd�} t t¡� d| jd d…< W 5 Q R X t ddddgddddgd�}t | |¡ d S )	NrO   r"   rf   r”   rè   rr   r.   rL   )r   r£   r$   rÂ   rÃ   r#   r¤   )r  r)   r*   r*   r+   Ú*test_loc_with_positional_slice_deprecation×
  s
    r´  c               
   C   sÞ   t ddd�} ttj d¡| d�}|d }d}||fD ]P}tjt|d�� |jd	d…  W 5 Q R X t 	t
¡� d	|jd	d…< W 5 Q R X q4tjt|d�� |jd	d…d	f  W 5 Q R X t 	t
¡� d
|jd	d…d	f< W 5 Q R X d S )Nz
2016-01-01rL   ©r�  )rL   r.   rr   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intr•   rH   r.   )r   r   rb   r¢   r}   r˜   r�   r#   r$   rÂ   rÃ   )Údtir(   r  r™   rv   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 )NrP   rL   r    r   r9   Z2012r³  r  r_   r   r.   z/None of \[TimedeltaIndex.* are in the \[index\]r•   )r   rb   r¢   r,  r   r†   r³   ra   rj   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·  rK   rr   r   rP   )rj   rm  r   rb   r¢   r,  r$   r%   r#   r²   r†   )r˜  r(   r*   r*   r+   Ú"test_loc_with_period_index_indexer  s    $r¹  c                  C   s~   t j dd¡} tddd�}ddddd	d
g}t| ||d�}t j|j|jd df< t j| d dd…< t| ||d�}t 	||¡ d S )NrZ   rM   r}  rµ  r"   rf   r”   rè   ÚEÚFrÑ   rH   rh   r   r.   )
rb   r¢   r,  r   r   r  r#   ra   r$   r%   )rE  r˜  rÅ   rw   rx   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   r9   rO  )rH   r   r   rH   r    rû   rc  rÿ   rM   rP   rÑ   r.   )r  rH  )r   r  r   r£   r#   r†   r$   r%   Zxsr¤   ru   )r*  r+  Zlev3rÅ   r(   rˆ   r)   Zaltr  Z	expected2Zalt2r  r*   r*   r+   Ú'test_loc_getitem_multiindex_tuple_level+  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 )NrH   r.   rL   rO   rP   rM   rN   rZ   r    r   r9   rV  )rg   r`   r¬   r/  )r   rb   r…   r  ÚTr—   ra   r¬   ru   r#   r   r`   r$   r¤   rÄ   r×   )r(   rm   rx   r)   r*   r*   r+   Ú/test_loc_getitem_nullable_index_with_duplicatesI  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 )NrH   r.   rL   rO   r]   Zuint8ro  )r.   r]   r¸   Úuint16©r   r#   r$   r%   )rÙ   r(   r)   r*   r*   r+   Útest_loc_setitem_uint8_upcast]  s    
rÂ  zfill_val,exp_dtypez
2022-01-06zdatetime64[ns]z
2022-01-07ú
US/EasternrC  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¬   rK   r7  r8  r¶  r    r_   rx  )ú
2022-01-08r    rÄ  r«   T)Úexact)	r   r   r´  r   r#   rE  r$   rý  ra   )Zfill_valZ	exp_dtyperg   ra   r(   Zexpected_indexr*   r*   r+   Ú0test_loc_setitem_using_datetimelike_str_as_indexh  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ÚabcrP   r]   r    r   r9   )r   rH   r.   r]   )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   rf   )rq   r  r"   r÷   r”   r°   r4  ÚQrI   ÚWr»  r  ZONEZTWOZVALUESrÑ   T)rE  r   )r   r   r—   r#   ru   )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¡  rL   )r¢  rO   c                 C   s$   t dddœƒ}|j| |ks t‚d S )NrL   rO   )r¡  r¢  )r   r#   ru   )r7   rï   r)   r  r*   r*   r+   rh  –  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 )NrL   rO   rN   rP   r.   é   )	ra   r$   r¤   r#   r&  r†   ÚtruncateÚmedianru   )	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 )NrP   rÍ  r.   rH   r   z"Timestamp\('2000-01-10 00:00:00'\)r•   )ra   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 )NrK   r   rA   r.   rr   rO   rL   r7  rM   rZ   rP   r6  rÔ   z^3$r•   )r   rb   r¢   r,  r²   r£   r³   r†   rê   ru   rl   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 )NrK   )rí  ra   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 )NrP   rZ   r8  z\['foo'\] not in indexr•   r‹   )r²   ra   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 )NrP   rK   rÍ  r   r.   )ra   r³   r#   r$   r¤   )r7   rÑ  Úindicesr×  rw   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 )NrK   r   rA   r.   rr   rO   rM   rP   z\[5\] not in indexr•   )r   rb   r¢   r,  r²   r£   r…   r³   r#   r$   r¤   r}   r˜   r5   Ú	Exception)	r7   r  rÒ  Zarr_indsr×  rw   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¦  rL   rÃ  r—  r    r   r9   rr   r©  rC  r   )r   r   r³   r   r#   ru   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   rO   rP   rM   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â  rS  r)   r  r*   r*   r+   Ú#test_loc_iloc_setitem_with_listlike*  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)rf   rä  é   r   r%  r£  r÷  r•   rH   )r   r   rÊ  r}   r˜   r   r#   )r7   rµ   r  r™   r*   r*   r+   Ú+test_loc_series_getitem_too_many_dimensions<  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 )	NrL   rO   rN   rP   rK   rÍ  rM   r<  )ra   r³   r#   r$   r¤   r†   ru   )r7   rÐ  rÒ  rˆ   r)   rÓ  rÔ  r*   r*   r+   Útest_loc_setitemJ  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jklrh   r«   ZnewAZnewBr   rÁ  )r7   r¬   r(   r)   r*   r*   r+   Útest_loc_assign_dict_to_rowd  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Ù   ro   rM   rÊ   r§  r‹   )r   rÙ   rH   r_   )r   r   r#   r$   r%   r  r*   r*   r+   Ú,test_loc_setitem_dict_timedelta_multiple_setn  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 )NrH   r.   r    rÑ   rM   rN   r   r9   r×   r«   )r    r   r9   rr   )r   r#   r   rb   r  r$   r%   rd   r*   r*   r+   Ú3test_loc_set_multiple_items_in_multiple_new_columnsy  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Ú2000rA   rf   r›  rr   z
2000-01-14r6  )rj   rm  r   r£   r#   ru   )r7   ra   r'   r*   r*   r+   Ú test_getitem_loc_str_periodindex‰  s    z.TestLocSeries.test_getitem_loc_str_periodindex) rz   r{   r|   r}   r~   r   rh  rÕ  rÖ  rÙ  rÚ  rÛ  rÜ  rÞ  rà  rá  rb   r…   rj   r²   rã  rã  r   r€   rç  rè  rê  rì  rž  rë  rì  rî  r*   r*   r*   r+   rÌ  •  s.   
	$

	

rÌ  )TÚ__doc__Úcollectionsr   r   r   r   r   rÛ   Zdateutil.tzr   Únumpyrb   r}   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrì  Zpandasrj   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr$   Zpandas.api.typesr   Zpandas.core.apir   Zpandas.core.indexingr   Zpandas.tests.indexing.commonr   r~   r   r  r,   r-   r‚   rî  rù  r0  rX  rh  r{  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"þþ
	 %           < w DJnfýþ
	


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