a
    GGb                 	   @   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  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" ddl#m$Z% ddl&m'Z' ddl(m)Z) dd	l*m+Z+m,Z, dd
l-m.Z. G dd de.Z/G dd dZ0G dd dZ1G dd dZ2G dd dZ3G dd dZ4G dd dZ5G dd dZ6G dd de.Z7G dd dZ8G dd  d Z9ej:;d!g d"d#d$gdd%gfg d&d#d$gdd%gfg d&d#d'gdd(gfgd)d* Z<d+d, Z=d-d. Z>d/d0 Z?d1d2 Z@d3d4 ZAd5d6 ZBd7d8 ZCd9d: ZDd;d< ZEd=d> ZFG d?d@ d@ZGdS )Az$ test label based indexing with loc     )
namedtuple)datedatetimetime	timedeltaN)gettz)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndex
IndexSlice
MultiIndexPeriodSeriesSparseDtype	Timedelta	Timestamp
date_rangetimedelta_rangeto_datetimeto_timedelta)	is_scalar)Float64Index)IndexingError_one_ellipsis_message)Basec                   @   s   e Z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dd Zejdedggedgdedddf edgddfedgedgdddgfedggedgddedgddfgdd ZdS ) TestLocc                 C   s   | j dddgtd d S )Nloc   labelstypsfailscheck_resultKeyErrorself r)   =lib/python3.9/site-packages/pandas/tests/indexing/test_loc.pytest_loc_getitem_int/   s    zTestLoc.test_loc_getitem_intc                 C   s   | j dddgtd d S )Nr   cemptyr!   r$   r'   r)   r)   r*   test_loc_getitem_label4   s    zTestLoc.test_loc_getitem_labelc                 C   s   | j ddg dtd | j dddgtd | j dddgtd | j ddg dtd | j dddgtd | j ddd	gd
td | j dddgd
td d S )Nr   f)intsuintsr    mixedtsr!   floats   )r0   r1   r2   r    r3   r   r"   Zaxesr#   r$   r'   r)   r)   r*   #test_loc_getitem_label_out_of_range9   s    z+TestLoc.test_loc_getitem_label_out_of_rangec                 C   s8   | j dg dg dtd | j dg dg dtd d S )Nr   r      r   r0   r1   r4   r!   )r9         @Ar$   r'   r)   r)   r*   test_loc_getitem_label_listF   s    z#TestLoc.test_loc_getitem_label_listc                 C   sn   | j dg ddgtd | j dg dg ddtd | j dg d	g dd
td | j dg ddgdtd d S )Nr   r8   r-   r!   )r   r   
   r:   r   r6   )         r9   ))r9   r?   )r9      )r      Zmultir$   r'   r)   r)   r*   (test_loc_getitem_label_list_with_missingO   s    z0TestLoc.test_loc_getitem_label_list_with_missingc                 C   s    | j dg dddgdtd d S )Nr   )r5      (   r0   r1   r9   r6   r$   r'   r)   r)   r*   !test_loc_getitem_label_list_fails^   s    z)TestLoc.test_loc_getitem_label_list_failsc                 C   s   d S Nr)   r'   r)   r)   r*   !test_loc_getitem_label_array_liked   s    z)TestLoc.test_loc_getitem_label_array_likec                 C   s    g d}| j d|dgtd d S )NTFTFr   r-   r!   )r%   
IndexError)r(   br)   r)   r*   test_loc_getitem_booli   s    zTestLoc.test_loc_getitem_boolc                 C   s   | j dtddg dtd | j dtdddgdtd	 | j dtd
ddgdtd	 | j dtd
ddgdtd	 | j dtd
dd
dgdtd	 d S )Nr   r9   r?   )r    r2   r-   r3   r4   r!   Z20130102Z20130104r3   r6   r      r2   r   rB   )r%   slice	TypeErrorr&   r'   r)   r)   r*   test_loc_getitem_label_sliceo   s    z$TestLoc.test_loc_getitem_label_slicec                 C   sp   t ddgddgddggddgg dd}td|jd	< t ddgd
dgddggddgg dd}t|| d S )Nr5   a   col1col2)r>   r9   r9   columnsindexr   )r9   rT   r   r9   )r
   nparanger   tmassert_frame_equalr(   dfexpectedr)   r)   r*    test_setitem_from_duplicate_axis   s     z(TestLoc.test_setitem_from_duplicate_axisc                 C   s   t g ddtjdgtdtjtdgdd}t dgtdgd	d}|j|j|d
  d
dgf< t g dg dtdtdtdgdd}t	
|| d S )Nr9   r   r?   String 1String 2z2019-06-11 11:00:00z2019-06-11 12:00:00)Zchannelr<   B)dataString 3r<   rd   r<   rd   )rb   rf   rc   )r
   rY   ZNaNr   pdNaTvaluesr   Zisnar[   r\   )r(   r^   df2r_   r)   r)   r*   test_column_types_consistent   s.    
z$TestLoc.test_column_types_consistentzobj, key, expr9   FrW   NnamerX   c                 C   s6   |j | }t|ttfr&t|| n||ks2J d S rH   )r   
isinstancer
   r   r[   assert_equal)r(   objkeyexpresr)   r)   r*   #test_loc_getitem_single_boolean_arg   s    
z+TestLoc.test_loc_getitem_single_boolean_arg)__name__
__module____qualname__r+   r.   r7   r=   rD   rG   rI   rM   rQ   r`   rl   pytestmarkparametrizer
   r   r   r   rw   r)   r)   r)   r*   r   .   s,   	$r   c                   @   s  e Zd Zejddedddffdedddffdeddd	ffd
ededdffdedddffdeddedffdedd	dffgdd Zdd Zdd Z	dd Z
dd Zdd Zdd Zd d! Zejd"d#d$gg d%gd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zejd6d7 Zejd8d9ejd9ejd:ejg d;ejd:gd<d= Zd>d? Zd@dA ZdBdC ZdDdE Z dFdG Z!ejdHg dIdJdK Z"dLdM Z#dNdO Z$dPdQ Z%dRdS Z&e'j(dTdU Z)dVdW Z*dXdY Z+dZd[ Z,d\d] Z-ejd^d_ge.d`d_d`ed_ggejdadbgedbggdcdd Z/ejded9dfgg dgfdhe0g didjdkej1ej1gg digg dgdlfdmdndogfdhdpge0dmdfej1ej1gg dqdrdsej1ej1ggg dgdlfdmg dtfejg duejd:e0dmdfej1gg dudrdsej1ggg dtdlfe.dmdjd`g dvfg dug dwge0dmdfej1ej1gg dxg dygg dgdlfe.dmdjd`g dzfejg dug dwgejd:e0dmdfej1ej1gg d{g d|gg dgdlfe.d`d`d`d_dngfe0dhdpgd}d~gddggd_dngdle0g dg dg dgg dtdlfgdd Z2dd Z3dd Z4dd Z5dd Z6dd Z7ejj8dd Z9dd Z:dd Z;dd Z<ejj=dddd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIejdg dejdejejJeKge'jLdd ZMdd ZNe'jLdd ZOdd ZPejdeQejeReSgdd ZTdd ZUejddeRdmgfdeRdfgfgddƄ ZVddȄ ZWejdd9g dʢfe.dkdpg dˢfdjdrgg d̢fgdd΄ ZXddЄ ZYdd҄ ZZddԄ Z[ejdddggdd؄ Z\ddڄ Z]ejdd_d_gd_e.d`fgdd݄ Z^dd߄ Z_dd Z`dd Zadd Zbdd Zcejdddgdd Zddd Zedd Zfdd Zgdd Zhd`S )TestLocBaseIndependentz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   s   t tdddgtdtddgtddtd	gg d
g ddg d}tjt|d |j|  W d   n1 sz0    Y  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   Zx1Zx2r   r   r   r   r   r   ra   )r>   r5   rE   )r<   rd   CZV1ZV2r<   rd   r   matchN)r
   r   	set_indexr{   raisesr&   r   )r(   msgrt   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   sR   t ddgi}tjtdd" |jd d df  W d    n1 sD0    Y  d S )NrR   r9   u   אr   r
   r{   r   r&   r   r(   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)r5   rC   c                 S   s   g | ]}d |d  qS )ZABCDErC   r)   .0xr)   r)   r*   
<listcomp>       z@TestLocBaseIndependent.test_loc_getitem_dups.<locals>.<listcomp>r5   rp   )r<   r   r   r<   )r
   rY   randomZrandom_sampleranger   r[   assert_series_equalr(   r^   r_   resultr)   r)   r*   test_loc_getitem_dups   s    
z,TestLocBaseIndependent.test_loc_getitem_dupsc                 C   st   t ddddtdggg ddgd}tddddtdgg ddd}|jd	 }t|| |jd }t|| d S )
Nr9   r   r   r   20130101)rR   rR   rR   rR   rR   rV   rX   ro   r   )r
   r   r   ilocr[   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sJ dddgf}| }|j|  d9  < t	|j| d|j|   d S )NZrtttiZaaaderC   float64dtypegq=
ףp?r   g(\տ)mer   r   bar2r   rr   r          @)r   r   t)
r
   listrY   rZ   r   copyr   r[   r   r\   )r(   Zdf_origindexerr^   r)   r)   r*   test_loc_setitem_dups  s2    
z,TestLocBaseIndependent.test_loc_setitem_dupsc                 C   s   t g dtg dddd}|d dk}|j|df d }||j|df< t g dtg d	ddd}t|| t g dg ddd
d}|d dk}|j|df }||j|df< t g dg ddd
d}t|| d S )N)r   r9   r9   )d   rS   i,  Zuint32r   rR   rL   rR   r9   rL   )r      i-  uint64)r
   r   r   r[   r\   )r(   Zdf1ixZnewb1r_   rk   Znewb2r)   r)   r*   test_loc_setitem_slice:  s    z-TestLocBaseIndependent.test_loc_setitem_slicec                 C   s   t dgdgdgdgd}g d}|jd d |f d|jd d |f< t dgtjdgddtjdgddtjdgddd}t|| d S )	Nr<   333333?        g      )idrR   rL   r,   rR   rL   r,   Zfloat32r   )r
   r   astyperY   arrayr[   r\   )r(   r^   colsr_   r)   r)   r*   test_loc_setitem_dtypeO  s    &	z-TestLocBaseIndependent.test_loc_setitem_dtypec                 C   s   t tdg dd}tjtdd |ddg  W d    n1 sD0    Y  t td}tjtdd |ddg  W d    n1 s0    Y  d S )	Nr?   r   rp   not in indexr   rR   dr   )r   r   r{   r   r&   r(   sr)   r)   r*   $test_getitem_label_list_with_missing`  s    *z;TestLocBaseIndependent.test_getitem_label_list_with_missingrX   TFrJ   c                 C   s`   t g d}dt| dt| }tjt|d |j|  W d    n1 sR0    Y  d S )Nra   z Boolean index has wrong length: z instead of r   )r   lenr{   r   rK   r   )r(   rX   r   r   r)   r)   r*   test_loc_getitem_bool_diff_lenk  s    z5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   s   d S rH   r)   r'   r)   r)   r*   test_loc_getitem_int_slices  s    z1TestLocBaseIndependent.test_loc_getitem_int_slicec                 C   sj   t tjdg dg dd}d}tjt|d& |jddgddgf  W d    n1 s\0    Y  d S )	N)r?   r?   r   )er/   grX   rW   zJ\"None of \[Int64Index\(\[1, 2\], dtype='int64'\)\] are in the \[index\]\"r   r9   r   )r
   rY   r   r{   r   r&   r   r(   r^   r   r)   r)   r*   test_loc_to_failw  s    z'TestLocBaseIndependent.test_loc_to_failc                 C   s  t td}d|jd< d|jd< tjtdd |jd  W d    n1 sL0    Y  d}tjt|d |jdd	g  W d    n1 s0    Y  d
}tjt|d |jdg  W d    n1 s0    Y  d|jd< tjtdd |jdd	g  W d    n1 s0    Y  d|d< d}tjt|d |jd	g  W d    n1 sZ0    Y  |d= tjt|d d|jd	g< W d    n1 s0    Y  d S )Nr   r9   r   rR   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\]\"4r?   r   zH\"None of \[Int64Index\(\[-2\], dtype='int64'\)\] are in the \[index\]\"r   )r   objectr   r{   r   r&   )r(   r   r   r)   r)   r*   test_loc_to_fail2  s.    


(,*
.,z(TestLocBaseIndependent.test_loc_to_fail2c                 C   s   t dgdggddgdgd}d}tjt|d$ |jd	gd d f  W d    n1 sX0    Y  tjt|d |jd	g  W d    n1 s0    Y  d S )
NrR   rL   r9   r   valuer   zG\"None of \[Int64Index\(\[3\], dtype='int64'\)\] are in the \[index\]\"r   r?   r   r   r)   r)   r*   test_loc_to_fail3  s    2z(TestLocBaseIndependent.test_loc_to_fail3c                 C   s   t g d}|jdg  tjttdd |jdg  W d    n1 sN0    Y  tjtdd |jddg  W d    n1 s0    Y  d S )Nra   r   z="None of [Int64Index([3], dtype='int64')] are in the [index]"r   r?   r   )r   r   r{   r   r&   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g dd}|jdd }|jt| }|j| }t|| |j|j	 }t|| |jt
j|dd }t|| d S )	N)rC   r>   size)Zalpha_0Zalpha_1Zalpha_2Zbeta_0Zbeta_1rp   c                 S   s   d| v S )NZalphar)   r   r)   r)   r*   <lambda>  r   z7TestLocBaseIndependent.test_loc_index.<locals>.<lambda>booleanr   )r
   rY   r   rX   mapr   r   r[   r\   rj   rh   )r(   r^   maskr_   r   r)   r)   r*   test_loc_index  s    
z%TestLocBaseIndependent.test_loc_indexc                 C   s   t tjddg dg dd}|jd d ddf jddd d f }|jddgk s^J |jddgk stJ t t	dgd	gd
jd }t
t	dd	gddgdd}t|| |jtksJ d S )NrB   r<   rd   r   DrV   r<   rd   r   r   r   r9   r   rR   rL   r   )r
   rY   r   randr   r   rW   allrX   r   r   r[   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-5rC   r   r   val)r
   r   r   r   rY   int64r'   r)   r)   r*   frame_for_consistency  s
    z,TestLocBaseIndependent.frame_for_consistencyr   r   r   )r   r   r   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   rC   rX   r   r   r   r   	r
   r   r   rY   r   r   r   r[   r\   )r(   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   rC   rp   r   r   r   r   r(   r   r_   r^   r)   r)   r*   (test_loc_setitem_consistency_dt64_to_str  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      ?rC   rp   r   r   r   r   r   r)   r)   r*   *test_loc_setitem_consistency_dt64_to_float   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\   r]   r)   r)   r*   'test_loc_setitem_consistency_single_row-  s    z>TestLocBaseIndependent.test_loc_setitem_consistency_single_rowc                 C   st   t ddgd}|d tj|d< t ddgd}d|jd d df< t|| t ddgd}d|d< t|| d S )Nr   yrm   r9   )r
   r   rY   r   r   r[   r\   r(   r_   r^   r)   r)   r*   "test_loc_setitem_consistency_empty5  s    z9TestLocBaseIndependent.test_loc_setitem_consistency_emptyc                 C   sN  dgd g dg dg}t j|g dd}g dg dg}t j|d	d
gd}ddddtjgg dddddtjgg dg}t|||d}t|jd d df |jd d df< t|jd d df |jd d df< |jd d df |jd d df  |jd d df< |jd d df d|jd d df< tg d|j	dd}t
|d | d S )NZRegion_1rB   )Site_1r   Site_2r   )l   BP[ l   _Z l   q=.Z l   <.Z )ZRegionZSiteZRespondentIDnames)
Respondentr   r   OtherCatr   )Z	Something	StartDateEndDatezYes/NoZSomethingElseZLevel_0ZLevel_1r<   z5/25/2015 10:59z5/25/2015 11:22Yes)r<   z5/21/2015 9:40z5/21/2015 9:52r   r   z5/20/2015 8:27z5/20/2015 8:41)r<   z5/20/2015 8:33z5/20/2015 9:09r   ZNor   )r   r   )r   r   )r   ZDurationztimedelta64[s])id  i  iH  g     @r   )r   from_arraysrY   nanr
   r   r   r   r   rX   r[   r   )r(   levelsmiZclevelsr   rj   r^   r_   r)   r)   r*   -test_loc_setitem_consistency_slice_column_lenA  sD    
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 )NZ	timestampz2017-02-11 12:41:29z1991-11-07 04:22:37zdatetime64[]r_   rn   )	r
   rY   
datetime64r   rj   r   r   r[   r   )r(   r  r^   r_   r)   r)   r*   test_loc_assign_non_ns_datetimel  s    	0&z6TestLocBaseIndependent.test_loc_assign_non_ns_datetimec                 C   s   t dg di}t|d ddd|d< |jd d df |jd d df< |jdd	gdf |jdd	gdf< t g d
g dg dg dgg dd}ddg}|| t||< t|| d S )Nr   )   CO!g   s~!g    4	8   A{?r  T)r  cachedate_dt
date_dt_cpr   r?   )r  2017-01-24 13:26:12.711r  )r  2017-01-24 13:52:05.110r  )r  2018-10-22 13:44:05.888r  )r  2018-10-23 08:08:41.025r  )r   r  r  rm   )r
   Z	from_dictr   r   Zapplyr[   r\   )r(   r^   r_   rW   r)   r)   r*   test_loc_modify_datetime~  s"    
  
z/TestLocBaseIndependent.test_loc_modify_datetimec                 C   s   t g ddgtd}tjg ddd|jg ddf< tg dg dtd	}|rdtg dg ddd	}t d|i}t|| d S )
Nr?   rC   rB   r<   rX   rW   r   ra   r   r   rB   r?   rC   r   r?   r9   r   r
   floatrY   r   r   r   r[   r\   )r(   using_array_managerr^   serr_   r)   r)   r*   #test_loc_setitem_frame_with_reindex  s     z:TestLocBaseIndependent.test_loc_setitem_frame_with_reindexc                 C   sx   t g dddgtd}d|d< tjg ddd|jg d	df< tg d
g ddd}t d|i}d|d< t|| d S )Nr  r<   rd   r  r   ra   r   r   r  r  r   r  )r(   r^   r  r_   r)   r)   r*   )test_loc_setitem_frame_with_reindex_mixed  s     z@TestLocBaseIndependent.test_loc_setitem_frame_with_reindex_mixedc                 C   sl   t g dddgtd}d|d< tjg ddd|jtdd	d
df< t g dddg dd}t|| d S )Nra   r<   rd   r  r   r   r   r?   r   r   )r?   r   r9   rg   rp   )r
   r  rY   r   r   rO   r[   r\   r]   r)   r)   r*   *test_loc_setitem_frame_with_inverted_slice  s
    $zATestLocBaseIndependent.test_loc_setitem_frame_with_inverted_slicec           
      C   s   dd t dD }tjddd}dd t dD }tjddd}tt||}t|d}tj|d	< ||j|d	f< tj|d
< ||j|d
f< t	||tj
d}t	||d}t||dj|d}	t||	 d S )Nc                 S   s   g | ]}d t | qS @strr   ir)   r)   r*   r     r   zGTestLocBaseIndependent.test_loc_setitem_empty_frame.<locals>.<listcomp>rC   r   r   c                 S   s   g | ]}d t | qS r"  r$  r&  r)   r)   r*   r     r   rB   rp   r<   rd   r   rg   )r   rY   rZ   r   setunionr
   r   r   r   r   reindexr[   r\   )
r(   Zkeys1Zval1Zkeys2Zval2rX   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sJJ |jd }|dks`J d|jd d d	d
f< |jd d d	d
f }|jd d dd f }t|| d S )NrB   ZabcdABCDr   r   r   r9   )rR   r<   r   rd   r   )	r
   rY   r   randnr   r   r   r[   r\   r   r)   r)   r*   test_loc_setitem_frame  s     



z-TestLocBaseIndependent.test_loc_setitem_framec                 C   sP   t g dtjd}|j|j|j|jkdf< t g dtjd}t|| d S )Nra   rg   rd   )r
   rY   r   r<   r   rd   r[   r\   r]   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 )Nr9   r   r?   rB   rR   rL   )r9   r   rR   r   r   rX   r   ro   rC   r@   )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 g dttdtjdd}|jdd }|jdd |_||jdd< t g dtg d	tjdd}t|| t t	d
dttdtjdd}t t
dt
dt
dt
dt
dgtg dtjdd}|jdd }|jdd |_||jdd< t|| d S )Nr   r   bazr?   r   rg   r9   r   r   )r   r4  r4  )r9   r   r   r   r   rC   r   Z20000101Z20000102Z20000103)r   r9   r   r9   r   rB   )r
   r   r   rY   r   r   rX   r[   r\   r   r   )r(   r^   Z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sHJ d S )Nr9   r   r?   rB   r<   rd   rm   r   )r   r<   r6  )r
   r   r   )r(   r   r   r^   r   r)   r)   r*   "test_loc_setitem_with_scalar_index   s    	
z9TestLocBaseIndependent.test_loc_setitem_with_scalar_indexzindex,box,expectedr   r   rA   )rA   rA   rA   rA   r?   rB   rm   r9   r   r   rN   )r?   rB   rA   rN   rC   r@   r   rA   rN   	   )rd   r   r   )r>         )r?   rA   rN   r9  )rC   r>   r:  r;  )r   r<   r   )rN   rB   rA   r9  )r:  r@   r>   r;  r9  r>   r:  r;  )rA   r   rN   )r9  rB   r>   )r:  r@   r;  c                 C   s<   t ddgddgddggddgd	}||j|< t|| d S )
Nr9   r   r?   rB   rC   r@   r<   rd   rm   r
   r   r[   r\   )r(   rX   boxr_   r^   r)   r)   r*    test_loc_setitem_missing_columns/  s    5"
z7TestLocBaseIndependent.test_loc_setitem_missing_columnsc                 C   sZ   t dtddtjgi}|j}|jdg }t|j| |jdg }t|j| d S )Nr   r   UTCr   r9   )	r
   r   tz_localizerh   ri   dtypesr   r[   r   r   r)   r)   r*   test_loc_coercionh  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     r9   i  r   )r   r
   rA  r   r[   r   )r(   r   r^   r_   r   r)   r)   r*   test_loc_coercion2t  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 wordsr9  r   r   r?   )r
   rA  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   rp   r   r   r9   )r   r@  r   r   r[   r   )r(   Z
indexer_slZvalsr_   r  r)   r)   r*   test_setitem_new_key_tz  s    
z.TestLocBaseIndependent.test_setitem_new_key_tzc                 C   s  t g dg ddg dd}d}tjt|d |jdd   W d    n1 sT0    Y  d	}tjt|d |jd
d   W d    n1 s0    Y  d}tjt|d |jdd  W d    n1 s0    Y  t g dg ddg ddjd
d}|jdd  }t g dg ddg dd}t|| |jd
d  }t|| |jdd }t g dg ddg dd}t|| d S )Nr9   r   r?   rB   rC   r@   )r?   rB   rC   r@   rA   rN   rg   )r   r9   r   r9   r   r?   rp   z5'Cannot get left slice bound for non-unique label: 1'r   r9   z5'Cannot get left slice bound for non-unique label: 0'r   r   axis)r   rB   rC   r@   )rB   r@   rA   rN   )r9   r9   r   r?   )r   rB   rC   )rB   r@   rA   )r9   r9   r   )r
   r{   r   r&   r   
sort_indexr[   r\   )r(   r^   r   r   r_   r)   r)   r*   test_loc_non_unique  s2    ,,,z*TestLocBaseIndependent.test_loc_non_uniquec                    s   t d  fdd} fdd}|dd}|jjdu s:J td}|j| }|||}t|| |d	d
}|jjdu s~J td
}|j| }|||}t|| d S )NZABCDEFGc              	      sJ   t ttj| t t|  dtt|t fdg|  dgS )Nr   r   )	rh   concatr
   rY   r   r.  r   rZ   ones)Zlengthl2rm   r)   r*   gen_test  s    zITestLocBaseIndependent.test_loc_non_unique_memory_error.<locals>.gen_testc              	      sL   t |}t| dgtt|t  fdg|  d| |dd  gS )Nr   r   r9   )r   rh   rN  taker
   rY   rO  )r^   r   Zlen_maskrm   r)   r*   gen_expected  s    
zMTestLocBaseIndependent.test_loc_non_unique_memory_error.<locals>.gen_expected  r   Fi 順 )r   rX   Z	is_uniquerY   rZ   r   r[   r\   )r(   rQ  rS  r^   r   r   r_   r)   rm   r*    test_loc_non_unique_memory_error  s    







z7TestLocBaseIndependent.test_loc_non_unique_memory_errorc                 C   s\   t ddgddgg}d|j_|jddg jj}|dks:J |jddg jj}|dksXJ d S )Nr9   Z
index_namer   )r
   rX   ro   r   r   r(   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 )NrC   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g di}|jd d  }||usHJ |d d  |us\J t|d j	|d j	sxJ g d|jd d df< |d dk
 sJ ||jd d d d f u sJ ttjdd}|d |jd d df u sJ tg d	}|jd d  }||usJ |d d  |us.J g d
|d d< t
|d d g d
ks\J d S )Nz0setting with .loc[:, 'a'] does not alter inplacereasonrR   ra   )rB   rB   rB   rB   r>   r   rI  r8  r?   )r{   r|   xfailZnodeZ
add_markerr
   r   rY   Zshares_memory_valuesr   r   r.  r   )	r(   r  requestr|   Zoriginal_dfZ	sliced_dfr^   Zoriginal_seriesZsliced_seriesr)   r)   r*   &test_identity_slice_returns_new_object  s*    z=TestLocBaseIndependent.test_identity_slice_returns_new_objectz!accidental fix reverted - GH37497r\  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 )Nr?   rR   rL   rm   r   )r
   zipr   r   r   r[   r\   rX   )r(   r   r   qzr)   r)   r*   test_loc_copy_vs_view.  s    z,TestLocBaseIndependent.test_loc_copy_vs_viewc                 C   s   t dj}tddg|d |gd}|j|d  }|jd }||ksHJ |j|d g }|jdg }t|| |j|d |g }t|| d S )Nr   r9   r   rp   r   )rY   iinfomaxr   r   r   r[   r   )r(   umaxr  r   r_   r)   r)   r*   test_loc_uint64?  s    
z&TestLocBaseIndependent.test_loc_uint64c                 C   s   t dj}tddg|d |gd}tjtdd |jd  W d    n1 sR0    Y  tjtdd |jdg  W d    n1 s0    Y  d S )Nr   r9   r   rp   z-1r   r   )rY   rf  rg  r   r{   r   r&   r   )r(   rh  r  r)   r)   r*   !test_loc_uint64_disallow_negativeP  s    (z8TestLocBaseIndependent.test_loc_uint64_disallow_negativec                 C   sP   g d}t |d gt| d}t ddgd}||jd d df< t|| d S Nra   r   r   r   r   rm   )r
   r   r   r[   r\   r(   re   r_   r^   r)   r)   r*   *test_loc_setitem_empty_append_expands_rows]  s
    zATestLocBaseIndependent.test_loc_setitem_empty_append_expands_rowsc                 C   sd   g d}t |d gt| d}t ddgd}|d tj|d< ||jd d df< t|| d S rk  )r
   r   r   rY   r   r   r[   r\   rm  r)   r)   r*   6test_loc_setitem_empty_append_expands_rows_mixed_dtypeh  s    zMTestLocBaseIndependent.test_loc_setitem_empty_append_expands_rows_mixed_dtypec                 C   sD   t dgtjgd}t ddgtd}|jd |jd< t|| d S )Nr   rl  r   r   rW   r   )r   r   )r
   rY   r   r  r   r[   r\   r   r)   r)   r*   *test_loc_setitem_empty_append_single_values  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 d    n1 s`0    Y  d		g d
}tjt
|d" ||jdddf< W d    n1 s0    Y  d S )Nr9   r   r   r   rm   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
   rX   r   rY   r   r{   r   r&   r   join
ValueError)r(   re   r^   r   r)   r)   r*   $test_loc_setitem_empty_append_raisesz  s    0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 )Nr9   r   r?   rB   r   rn   )r
   r   rY   r   r   r[   r   )r(   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(J d S )Nr9   r   r   )r   r   rY   r   )r(   r   r   r)   r)   r*   %test_series_indexing_zerodim_np_array  s    z<TestLocBaseIndependent.test_series_indexing_zerodim_np_arrayc                 C   s\   g dd gd  }t |tddd}t tddtjd}g d|jddd	< t|| d S )
NrI  rB   i  i  rp   r   )r@   rC   rB   r?   r   r9   r   r   )r   r   rY   r   r   r[   r   )r(   re   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%  rY   r   )r   _r)   r)   r*   r     r   z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>rC   r<   rm   rp  c                 S   s   g | ]}t |qS r)   r  r   r)   r)   r*   r     r   c                 S   s   g | ]}t |qS r)   r{  r   r)   r)   r*   r     r   )rY   r   Zseedr   r
   r   r[   r\   r   rX   r  r   )r(   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freqr9  rE   r?   rp   z1/4/2000r   )r   ZhourZminuter
   rY   r   r.  r   r[   Zget_objr   r   rr   rX   
_with_freq)	r(   frame_or_seriesrngr   rs   r   ru   chunkr_   r)   r)   r*   test_loc_getitem_time_object  s    
z3TestLocBaseIndependent.test_loc_getitem_time_object
spmatrix_t)Z
coo_matrixZ
csc_matrixZ
csr_matrixr   c                 C   s   dd l }t|j|}d\}}|tj|||d|d}tj|}td|}|j| j	}	|
 | }
t|	|
 |j| jj	}	t|t|dd}
t|	|
 d S )Nr   )rC   rA   r   r   )Z
fill_value)scipy.sparsegetattrsparserY   eyer
   from_spmatrixr   r   rj   Ztoarrayr[   Zassert_numpy_array_equalrA  Zfullr   )r(   r  r   ZscipyZrowsr   Zspmatrixr^   Zitr_idxr   r_   r)   r)   r*   $test_loc_getitem_range_from_spmatrix  s    
z;TestLocBaseIndependent.test_loc_getitem_range_from_spmatrixc                 C   s<   t dtjddgtddi}|jddg }t|| d S )Nr<   r   r   r   r9   )r
   rh   r   r   r   r[   r\   rW  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g dg dgtddd	}t	|| |jtd jtd
 }tg dgtddd	}t	|| d S )Nr   )r  rC   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r9   )
r  r  r
   r  r  r   r   r   r[   r\   )r(   r  r^   r   r_   r)   r)   r*   test_loc_getitem_sparse_frame  s    z4TestLocBaseIndependent.test_loc_getitem_sparse_framec                 C   s   t g dtddd}|jtd }t ddgtddd}t|| |jtd jtd }t ddgtddd}t|| d S )Nr  r   r   r   r   r   r?   )r   r   r   r   r[   r   )r(   r   r   r_   r)   r)   r*   test_loc_getitem_sparse_series  s    z5TestLocBaseIndependent.test_loc_getitem_sparse_serieskey_typec                 C   sD   |g d}|j d d |f }|j d d g df }t|| d S )Nr   )r   r[   r\   )r(   float_framer  idxr   r_   r)   r)   r*   test_loc_getitem_iterable  s    z0TestLocBaseIndependent.test_loc_getitem_iterablec                 C   sb   t tjjdd}tdddd|_|jtdd d d f }|jdd d d f }t	|| d S )Nr>   rB   r   Z0sr>   r   startperiodsr  )
r
   rY   r   Znormalr   rX   r   r   r[   r\   r   r)   r)   r*   #test_loc_getitem_timedelta_0seconds  s
    z:TestLocBaseIndependent.test_loc_getitem_timedelta_0secondsval,expected                c                 C   s4   t ddgddgd}|j| }||_t|| d S )Nr9   r   r  r  rp   )r
   r   ro   r[   r   )r(   r   r_   r^   r   r)   r)   r*   test_loc_getitem_uint64_scalar  s    
z5TestLocBaseIndependent.test_loc_getitem_uint64_scalarc                 C   s@   t g dg dd}| }d|jd< d|jd< t|| d S )Nr   )r         ?r9   rp   Zzoor9   r   )r   r   r   r   r[   r   r(   r  r_   r)   r)   r*   ,test_loc_setitem_int_label_with_float64index(  s
    

zCTestLocBaseIndependent.test_loc_setitem_int_label_with_float64indexzindexer, expected)
r5   r9   r   r?   rB   rC   r@   rA   rN   r9  )
r   r9   r   r?   r5   r5   r5   r5   rN   r9  )
r   r9   r   r5   rB   r5   r@   rA   rN   r9  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 )	Nr>   r   r  r   r   r   rX   r5   r  )r   r   r
   r   rX   r[   r\   )r(   r   r_   tdir^   r)   r)   r*   /test_loc_setitem_listlike_with_timedelta64index2  s    zFTestLocBaseIndependent.test_loc_setitem_listlike_with_timedelta64indexc                 C   s   t g dtdd}t g d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 )N)r9   r9   r9   r9   r9   Zaaaaar   )r9   rL   rL   r9   r9   ZaabbarL   rR   
categoriesr9   r   r?   )r
   r   r   r   r[   r\   )r(   r^   ru   r)   r)   r*   8test_loc_setitem_categorical_values_partial_column_sliceL  s
    ""zOTestLocBaseIndependent.test_loc_setitem_categorical_values_partial_column_slicec                 C   s`   t dgdgd}t|d g dd}||jd d df< |d }t||jdd}t|| d S )NrR   r   )AlphaZNumericr  r   r  r   )r
   r   r   r   rX   r[   r   )r(   r^   r  r   r_   r)   r)   r*   'test_loc_setitem_single_row_categoricalU  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sDJ td|jd ksZJ td	d
d
|jd< tt& td|jd ksJ W d    n1 s0    Y  td |jd ksJ d S )Nr,   z
2010-10-01r?   z
2008-08-08r   r9   )r   r,   )r9   r,   i  rC   )r   r,   z
2005-05-05)	r
   r   rY   r	  r   r   r[   assert_produces_warningFutureWarningr   r)   r)   r*   "test_loc_setitem_datetime_coercion_  s    4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-12r?   H)r  r  r  tzr   r  r   r  )r   r
   rY   r   r   r[   r\   )r(   r  Ztz_naive_fixturer  r  r_   r   r)   r)   r*   !test_loc_setitem_datetimeindex_tzk  s    z8TestLocBaseIndependent.test_loc_setitem_datetimeindex_tzc           
      C   sd  t dddd}ttjt|d|d}tddd}ttd	ddtd
dd}g d}g d}| }d|j	|< |j	| }|j	|  }	d|	j	d d < |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~  rC   rp   r;  r   ry     )   H   x      )         J   K   L   z   {   |            )r   r
   rY   r   r.  r   r   rO   r   r   r   r  r[   r\   r   )
r(   r  rX   r^   ZakeyZbkeyZaindsZbindsr   r_   r)   r)   r*   test_loc_setitem_time_keyw  s<    







z0TestLocBaseIndependent.test_loc_setitem_time_keyrt   c                 C   s   t g d}tg dg dg|d}| }tjdtd|jd d |f< tg dg dg|d}t	|| |j
d	d
}tjdtd|jd d |f< |j
d	d
}t	|| d S )N))r<   rB   )rd   3)r<   2ra   rB   rC   r@   rm   )r   r   r   )r   r   r   )r   rC   r   r9   rJ  )r   from_tuplesr
   r   rY   Zzerosintr   r[   r\   rL  )r(   rt   r   r^   rs   r_   r)   r)   r*   ,test_loc_setitem_unsorted_multiindex_columns  s    zCTestLocBaseIndependent.test_loc_setitem_unsorted_multiindex_columnsc                 C   s:   t g d|d}d|jd< t g d|d}t|| d S )Nra   r   rB   r   )rB   r   r?   )r   r   r[   r   )r(   Zany_int_numpy_dtypeseriesr_   r)   r)   r*   test_loc_setitem_uint_drop  s    
z1TestLocBaseIndependent.test_loc_setitem_uint_dropc                 C   sl   t dtddg }tdd|jg d< t dtddg }ttdd|jg d< t|| d S )Nr>   r  r5   ra   )r   rY   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 d    n1 sZ0    Y  d}tjt|d ||j	d d < W d    n1 s0    Y  d S )Nr   rr  z,shape mismatch: value array of shape \(2,2\)z0cannot reshape array of size 4 into shape \(2,\)r   zEcould not broadcast input array from shape \(2,2\) into shape \(2,?\))
rY   r   r.  r   r   rs  r{   r   rt  r   )r(   re   r  r   r)   r)   r*    test_loc_setitem_2d_to_1d_raises  s    ,z7TestLocBaseIndependent.test_loc_setitem_2d_to_1d_raisesc                 C   sP   t jddd}tg dg dg dg|g dd}d	}|jd
 }t|| d S )Nr   r?   )r  r  ra   r  r8  r   r   r9   )r  r<   )rh   interval_ranger
   r   r[   assert_almost_equal)r(   rX   r^   r_   r   r)   r)   r*   test_loc_getitem_interval_index  s    
z6TestLocBaseIndependent.test_loc_getitem_interval_indexc                 C   sr   t jdddd}tg dg dg dg|g dd	}t jdd
ddd}tddg|dd}|jd }t|| d S )Nr   r?   Zboth)r  r  closedra   r  r8  r   r   r   r9   )r  r  r  r  rB   r<   r   r9   r<   )rh   r  r
   r   r   r[   r   )r(   rX   r^   Z	index_expr_   r   r)   r)   r*    test_loc_getitem_interval_index2  s    
z7TestLocBaseIndependent.test_loc_getitem_interval_index2tplr9   r9   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ro   Ztupleize_colsrp   )r   r
   r   r[   r\   )r(   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sjJ d S )N	IndexTyperR   rL   r   r   r4  ZbofZcomposite_indexFr  r  )r?   rB   r<   rd   r   r9   )r   r   r
   r   )r(   r  Zidx1Zidx2rX   r^   r   r)   r)   r*   !test_loc_getitem_index_namedtuple  s    

z8TestLocBaseIndependent.test_loc_getitem_index_namedtuplec                 C   sx   t tjddg dg d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 )
NrC   r?   )rR   rL   r,   r   r   r3  r   quxr%  r   r   )r
   rY   r   r.  r   r   rX   r   r   r[   r  rj   r]   r)   r)   r*   $test_loc_setitem_single_column_mixed  s    z;TestLocBaseIndependent.test_loc_setitem_single_column_mixedc                 C   sl   t tjddtdd}tj|d< d|jd< |j}tt	dgd t	d	g g d
d}t
|| d S )NrE   r?   ABCrm   eventr   )r>   r  r   r   )r<   rd   r   r  rp   )r
   rY   r   r   tupler   r   rA  r   r   r[   r   r   r)   r)   r*   test_loc_setitem_cast2  s    

z-TestLocBaseIndependent.test_loc_setitem_cast2c                 C   sb   t dtjdtjdi}d|jd< |jjttjks:J td|_|jjttjks^J d S )Noner@   r   )r9   r  rA   )r
   rY   rZ   Zint8r   rA  r  r   r   r)   r)   r*   test_loc_setitem_cast3  s
    
z-TestLocBaseIndependent.test_loc_setitem_cast3)irx   ry   rz   r{   r|   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   fixturer   rY   r   r   r   r   r   r   r   r   r
  r  r  r   r!  tdZ&skip_array_manager_not_yet_implementedr+  r/  r0  r2  r5  rO   r7  r
   r   r>  rB  rD  rF  rH  rM  Zarm_slowrV  rX  r[  ra  r^  re  ri  rj  rn  ro  rq  ru  rv  rw  rx  r|  r  r   complexZskip_if_no_scipyr  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~      sX  

$
'
$
+



%	
$	
"		 3
"
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 rH   )Zparam)r(   r`  r)   r)   r*   r     s    zTestLocWithEllipsis.indexerc                 C   s   |}|t ur| }|S rH   )r   to_frame)r(   series_with_simple_indexr  rs   r)   r)   r*   rs   $  s    zTestLocWithEllipsis.objc                 C   s   ||d }t || d S )N.)r[   rr   )r(   rs   r   r   r)   r)   r*   test_loc_iloc_getitem_ellipsis+  s    z2TestLocWithEllipsis.test_loc_iloc_getitem_ellipsisc           
      C   s(  |}|t ju st|dkrdn|jd }|t ju r@|j r@d S |t ju rt|jtrd}tj	t
|d" ||d|gf }W d    q1 s0    Y  n8t|dkr||d|gf }|||g }t || |t ju rdn|j}| }	||	d|gf }||	d d |gf }t || d S )Nr   z2MultiIndex does not support indexing with Ellipsisr   .)r[   r   r   rX   r   Z
is_booleanrq   r   r{   r   NotImplementedErrorr   ro   r  r\   )
r(   r  r   rs   rt   r   r   r_   Zkey2r^   r)   r)   r*   &test_loc_iloc_getitem_leading_ellipses/  s"    $2z:TestLocWithEllipsis.test_loc_iloc_getitem_leading_ellipsesc                 C   s&  |t ju st|dkrdn|jd }tjttd ||d  W d    n1 sT0    Y  tjttd$ ||d|gdf  W d    n1 s0    Y  tjttd" ||dd|f  W d    n1 s0    Y  tjtdd" |||ddf  W d    n1 s0    Y  d S )Nr   r   )...zToo many indexers)r[   r   r   rX   r{   r   r   r   )r(   rs   r   rt   r)   r)   r*   0test_loc_iloc_getitem_ellipses_only_one_ellipsisG  s    $*20zDTestLocWithEllipsis.test_loc_iloc_getitem_ellipses_only_one_ellipsisN)rx   ry   rz   r{   r  r[   r   r   r   rs   r  r  r  r)   r)   r)   r*   r    s   

r  c                   @   s`  e Zd Zejdddgg dg dgfddgg dg dgfddgddgfg dg dgfddgddgfg dg d	gfddgddgfg dg d	gfddgddgfg dg dgfd
dgddgfg dg dgfgejdddgdd Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd Zd d! Zejd"d#d$gd%d& Zd'd( Zd)d* Zd+S ),TestLocWithMultiIndexzkeys, expectedrL   rR   )rL   rL   rR   rR   )r9   r   r9   r   )rR   rR   rL   rL   r9   r   )r   r9   r   r9   r,   )r,   rR   rR   )r9   r   r9   dimrX   rW   c                 C   s   |g dg dgi}t tdddfi |}t|}|dkrf|j|d d f }t|j	| n(|dkr|jd d |f }t|j
| d S )N)r,   rR   rR   rL   rL   )r9   r9   r   r9   r      rC   rX   rW   )r
   rY   rZ   reshaper   r   r   r[   assert_index_equalrX   rW   )r(   r  keysr_   kwargsr^   	exp_indexrv   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s8J |jj|jjdd  ksTJ |j d }|d j d }|jj|jjd ksJ |jj|jjd ksJ d S )N  r<   r9   )r  r   r   )r   rX   r   ro   )r(   Z/multiindex_year_month_day_dataframe_random_dataZymdr   result2r)   r)   r*   test_loc_preserve_namesu  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   r9   rp   )r   from_productr   r   r[   r   r   )r(   r   r  rv   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 u s0J tdgddgg}t d gt| t|d}|jd }|d u srJ t dgt| t|d}|jd }|dksJ d S )	NLevel1Level2)r  r  Level2_aZLevel2_br  )r  r  r9   )r   r   r   r   r  r   r   )r(   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g dg dddgd}tg d|d}d|jd	d
< tg d|d}t|| d S )N)r   r   r4  r4  r   r   r  r  )r  twor  r  r  r  r  r  firstsecondr   )r9   r9   r9   r9   r9   r9   r9   r9   rp   r   )r4  r  )r   r  )r9   r9   r   r   r   r   r9   r9   )r   r  rb  r   r   r[   r   )r(   rX   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10minrU  r  r  il  r9   i4  )r   r   r   r   r   r[   r   )r(   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 )Nr>   r   z
2010-01-01z
2010-01-10rp   z
2010-01-05rR   rL   r   rB   )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g dddgd}tddgddgd	d
gddgddgddgg|ddgd}|jdd}tddgddgddggddg|g dd}|jd }t|| d S )N)r   r   r	  ZbahZbamr
  r	  r
  r<   rd   r   r   r9   r   r   r;   r?         @rB         @rC         @r@   r   r   r   r   )level)r   r9   rB   rV   r	  )r   r  r
   rL  rR  r   r[   r\   )r(   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 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      rR   rL   r>   r   rC   r9   ZIndex1ZIndex2)r   Zcodesr   )re   rX   Fcategory)r  orderedro   r   )r
   rY   rZ   r   r	   r   rX   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_valuerE   r>   c                 C   s|   t dg ditdg dgd}tjtdd: |j|d |k d d f jdgd d f  W d    n1 sn0    Y  d S )	NrR   )r;     "   -   aabbr   r9   r   r?   rp   z\['b'\] not in indexr   rL   )r
   r   r{   r   r&   r   )r(   r  r^   r)   r)   r*   >test_loc_multiindex_levels_contain_values_not_in_index_anymore   s     zTTestLocWithMultiIndex.test_loc_multiindex_levels_contain_values_not_in_index_anymorec                 C   sl   t t jt jg}ddg}t||g}tddg|d}|jd d df }tdgt jgd}t|| d S )Nr   r4  r   r9   rp   )	rY   r   r   r   r   r   r   r[   r   )r(   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   sr   t jtdtdddggg dd}ttd|d}|jd	d d d d f }|jd
d d }t	|j| d S )Nabxyr9   r   )r  r  Znumr   rN   rp   rR   r   rB   )
r   r  r   r   r   r   rX   Z	droplevelr[   r  )r(   r   r  Z
loc_resultr_   r)   r)   r*   test_loc_drops_level  s    z*TestLocWithMultiIndex.test_loc_drops_levelN)rx   ry   rz   r{   r|   r}   r  r  r  r   r  r  r  r  r  r  r  r   r)   r)   r)   r*   r  Z  s2   "
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
dd Zdd Zdd Zejddd Zejdg d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   r9   iAB )r
   r   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   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 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 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 g d
g dd d S )Nr   r9   rp   r?   r   r;   r   r   rB   )r9   r?   rB   )r   r   r?   )r   r   r   r[   r   r(   r  r)   r)   r*   test_loc_setitem_empty_series)  s"    









z9TestLocSetitemWithExpansion.test_loc_setitem_empty_seriesc                    sn   t dddtdd  fddtdD }td	g|d	 gd
}|D ]}d|j|< qBtd|d
}t|| d S )Nr   r:  r9   
US/Pacific)Ztzinfoc                    s   g | ]} t |d  d qS )rT  )Zseconds)r   r&  baser)   r*   r   D  r   zUTestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dst.<locals>.<listcomp>   r   rp   )r   r   r   r   r   r[   r   )r(   Zidxsr   r3   r_   r)   r'  r*   %test_loc_setitem_incremental_with_dstA  s    zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstc                 C   s   t d}t d}dd dd dd dd fD ]R}t }d|j||d	f< d
|j||d	f< td	ddgi||gd}t|| q,d S )Nz20130101 09:00:00z20130101 10:00:00c                 S   s   | S rH   r)   r   r)   r)   r*   r   Q  r   zQTestLocSetitemWithExpansion.test_loc_setitem_datetime_keys_cast.<locals>.<lambda>c                 S   s   |   S rH   )Zto_datetime64r   r)   r)   r*   r   R  r   c                 S   s   |   S rH   )Zto_pydatetimer   r)   r)   r*   r   S  r   c                 S   s
   t | S rH   )rY   r	  r   r)   r)   r*   r   T  r   r   r  rS   g      Y@g      i@rp   )r   r
   r   r[   r\   )r(   Zdt1Zdt2Zconvr^   r_   r)   r)   r*   #test_loc_setitem_datetime_keys_castK  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<   r9   rL   )r  rd   rg   )r
   r   r   r[   r\   )r(   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}||vs@J t|d	gd
}d|j|d	f< ttjgt| dg |t|gd	gt	d}t
|| d S )Nz2017-10-29 00:00:00+0200zEurope/Madridr  z2017-10-29 03:00:00+0100z2016-10-10 03:00:00leftr  )Z	inclusiver  r   r   r;  r  )r   r   r
   r   rY   r   r   appendr   r   r[   r\   )r(   r  endr3   r  r   r_   r)   r)   r*   0test_loc_setitem_with_expansion_and_existing_dste  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 d    n1 s0    Y  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   )re   rW   newoldnew_colr?  r&  zmismatched timezoner   r   )r9   r   rn   Z1s)r
   r   r   rX   r@  r   r4  Z
tz_convertr   r[   r  r  r   r   r   r   )r(   r^   vrk   r_   r)   r)   r*   test_setitem_with_expansionw  s    
2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 )Nr9   r-  r   )r9   r9   r?   r   )r
   r   rY   infrW   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}||vsPJ |t ||}t|t	r|d d |ksJ n|d |ksJ 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   r9   r   r9   rp   )r   repeatrY   rZ   r   r   r
   insertrq   r   r   r   r   r[   r\   r   r   r   r  )r(   rX   r`  NarrZorigrt   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   sr   t g d|d}td|i}t|jd}||j|jdf< t|| t|jd}|j|j|jdf< t|| d S )Nr  r   re   rp   )r   r
   rX   r   r[   r\   r_  )r(   r   r  r^   r   r)   r)   r*   6test_loc_setitem_with_expansion_preserves_nullable_int  s    zRTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_preserves_nullable_intN)rx   ry   rz   r{   r|   Zslowr#  r%  r*  r+  r,  r1  r6  r8  filterwarningsr>  r}   r@  r)   r)   r)   r*   r!     s   



-r!  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestLocCallablec                 C   sz  t g dtdg dd}|jdd  }t||j|jdk  |jdd d d f }t||j|jdkd d f  |jd	d d
d f }t||j|jdkg df  |jdd dd f }t||j|jdkdf  |jdd dd f }t||j|jdkddgf  |jdd dd f }t||j|jdkddgf  |jdd dd f }||jd ksvJ d S )Nr9   r   r?   rB   r  r   c                 S   s
   | j dkS Nr   r<   r   r)   r)   r*   r     r   zATestLocCallable.test_frame_loc_getitem_callable.<locals>.<lambda>r   c                 S   s
   | j dkS )NrL   )rd   r   r)   r)   r*   r     r   rL   c                 S   s
   | j dkS rD  rE  r   r)   r)   r*   r     r   c                 S   s
   | j dkS Nrd   rm   r   r)   r)   r*   r     r   )FTFc                 S   s
   | j dkS rD  rE  r   r)   r)   r*   r     r   c                 S   s   dS rF  r)   r   r)   r)   r*   r     r   rd   c                 S   s
   | j dkS rD  rE  r   r)   r)   r*   r     r   c                 S   s   ddgS Nr<   rd   r)   r   r)   r)   r*   r     r   r<   c                 S   s
   | j dkS rD  rE  r   r)   r)   r*   r     r   c                 S   s   ddgS rG  r)   r   r)   r)   r*   r     r   c                 S   s   dS )Nr9   r)   r   r)   r)   r*   r     r   c                 S   s   dS )Nr<   r)   r   r)   r)   r*   r     r   r  )r
   r   r   r[   r\   r<   rd   r   r(   r^   rv   r)   r)   r*   test_frame_loc_getitem_callable  s        z/TestLocCallable.test_frame_loc_getitem_callablec                 C   s   t g dtdg dd}|jdd ddgf }t||j|jdkddgf  |jdd	gd
d f }t||jdd	gddgf  |jd	dd f }t||jd	ddgf  d S )NrC  r  r   c                 S   s
   | j dkS rD  rE  r   r)   r)   r*   r     r   zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r<   rd   r   r?   c                 S   s   ddgS rG  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS rG  r)   r   r)   r)   r*   r      r   )r
   r   r   r[   r\   r<   r   rH  r)   r)   r*   'test_frame_loc_getitem_callable_mixture  s     z7TestLocCallable.test_frame_loc_getitem_callable_mixturec                 C   s  t g dtddtdd}|jdd  }t||jdd	g  |jd
d d d f }t||jdd	gd d f  |jdd dd f }t||jdd	gdf  |jdd dd f }t||jdd	gdgf  |jdd	gdd f }t||jdd	gdf  |jdd	gdd f }t||jdd	gdgf  |jdd df }t||jdd	gdf  |jdd dgf }t||jdd	gdgf  d S )NrC  r  Xr  r,  rp   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 rM  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS rM  r)   r   r)   r)   r*   r     r   c                 S   s   dS NrL  r)   r   r)   r)   r*   r     r   rL  c                 S   s   ddgS rM  r)   r   r)   r)   r*   r     r   c                 S   s   dgS rN  r)   r   r)   r)   r*   r     r   c                 S   s   dS rN  r)   r   r)   r)   r*   r     r   c                 S   s   dgS rN  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS rM  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS rM  r)   r   r)   r)   r*   r     r   )r
   r   r   r[   r\   r   rH  r)   r)   r*   &test_frame_loc_getitem_callable_labels  s"    z6TestLocCallable.test_frame_loc_getitem_callable_labelsc                 C   sV  t g dtddtdd}| }d|jdd < | }d|jd	d
g< t|| | }d|jdd d d f< | }d|jd	d
gd d f< t|| | }d|jdd dd f< | }d|jd	d
gdf< t|| | }ddg|jdd dd f< | }ddg|jd	d
gdgf< t|| | }tddg|jd	d
gdd f< | }tddg|jd	d
gdf< t|| | }d|jd	d
gdd f< | }d|jd	d
gdgf< t|| | }d|jdd df< | }d|jd	d
gdf< t|| | }d|jdd dgf< | }d|jd	d
gdgf< t|| d S )NrC  r  rK  r,  rp   ic                 S   s   ddgS rM  r)   r   r)   r)   r*   r   '  r   zATestLocCallable.test_frame_loc_setitem_callable.<locals>.<lambda>r<   r   r5   c                 S   s   ddgS rM  r)   r   r)   r)   r*   r   -  r   r   c                 S   s   ddgS rM  r)   r   r)   r)   r*   r   3  r   c                 S   s   dS rN  r)   r   r)   r)   r*   r   3  r   rL  rC   r>   c                 S   s   ddgS rM  r)   r   r)   r)   r*   r   9  r   c                 S   s   dgS rN  r)   r   r)   r)   r*   r   9  r   r   c                 S   s   dS rN  r)   r   r)   r)   r*   r   @  r   c                 S   s   dgS rN  r)   r   r)   r)   r*   r   F  r   c                 S   s   ddgS rM  r)   r   r)   r)   r*   r   L  r   c                 S   s   ddgS rM  r)   r   r)   r)   r*   r   R  r   )r
   r   r   r   r[   r\   rY   r   )r(   r^   rv   ru   r)   r)   r*   test_frame_loc_setitem_callable!  sR     z/TestLocCallable.test_frame_loc_setitem_callableN)rx   ry   rz   rI  rJ  rO  rQ  r)   r)   r)   r*   rB    s   rB  c                   @   sF   e Zd Zdd Zdd Zdd Zdd Zej	d	d
dgdd Z
d
S )TestPartialStringSlicingc                 C   s^   t g dg ddtg dd}t ddgdd	gdtd
dgd}|jd }t|| d S )Nr   ra   )rT   rU   )
2020-08-01z
2020-07-02
2020-08-05rp   rR   r,   r9   r?   rS  rT  z2020-08)r
   r   r   r[   r\   r   r)   r)   r*   5test_loc_getitem_partial_string_slicing_datetimeindexY  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  r0  r  z2017-12r   )rh   period_range	to_seriesr   r   r[   r   )r(   Zpir  r   r_   r)   r)   r*   8test_loc_getitem_partial_string_slicing_with_periodindexf  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1HrX  z1 daysr   )r   rZ  r   r   r[   r   )r(   r   r  r   r_   r)   r)   r*   ;test_loc_getitem_partial_string_slicing_with_timedeltaindexn  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   r?   Zdaysr  rp   r   0 days)r
   r   r   r   r   r[   r   )r(   r^   r_   Zslicedr)   r)   r*   #test_loc_getitem_str_timedeltaindexv  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 )Nr9   rC   z
2019-12-30z
2020-01-01z
2019-12-25rc  z
2019-12-19r-  rp   r   )r   r   rO   r[   rr   r   )r(   Ztz_aware_fixturerb  r  rs   r_   r   r   r)   r)   r*   /test_loc_getitem_partial_slice_non_monotonicity}  s4    


zHTestPartialStringSlicing.test_loc_getitem_partial_slice_non_monotonicity)rx   ry   rz   rU  r[  r_  ra  r{   r|   r}   rd  r)   r)   r)   r*   rR  X  s   rR  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   r9   r>   r   r   r&  r)   r)   r*   r     r   zMTestLabelSlicing.test_loc_getitem_slicing_datetimes_frame.<locals>.<listcomp>rC  rp   r  c                 S   s   g | ]}t d d|ddqS rf  rh  r&  r)   r)   r*   r     r   )r9   r   r   r?   rB   rg  r9   r>   rB   r:  z20010101 11)r
   rY   rZ   r   r   r[   r\   r   )r(   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g d|d}tddd	}td
dd	}|j|| }tddg|dd d}t|| || }d}||ksJ d S )Nz2017-10-29 01:30:00zEurope/BerlinrC   z30 min)r  r  r  )r   r9   r   r?   rB   rp   z2017-10-29 02:30:00+02:00r-  z2017-10-29 02:00:00+01:00r   r?   rB   )r   r   r   r   r[   r   )r(   r  Zseries2Zt_1Zt_2r   r_   r)   r)   r*   'test_loc_getitem_label_slice_across_dst  s    z8TestLabelSlicing.test_loc_getitem_label_slice_across_dstrX   rV  rW  r  rX  r\  r]  r^  c                 C   s8   |  }|jd |d  }|jd d }t|| d S )Nr   r   )rZ  r   r   r[   r   )r(   rX   r  r   r_   r)   r)   r*   -test_loc_getitem_label_slice_period_timedelta  s    z>TestLabelSlicing.test_loc_getitem_label_slice_period_timedeltac                 C   s|   g d}t tjdd|d}|jdd }t|dks<J |jdd }t|dksZJ |jdd }t|dksxJ d S )	N)gx"p|@g\Va|@g|@r?   r   rp   g3333c|@g    |@g3333|@g|@)r
   rY   r   r   r   r   )r(   rX   r^   s1r)   r)   r*   %test_loc_getitem_slice_floats_inexact  s    z6TestLabelSlicing.test_loc_getitem_slice_floats_inexactc                 C   s   t tjdtjddtdd}t|jdd  dks:J t|jdd  dksTJ tjddtd}d	|d
< ||_t|jdd  dksJ t|jdd  dksJ d S )Nr>   r5   r   rp   g      (@rN   g      )@rA   gffffff(@r   )	r   rY   r   r   rZ   r  r   r   rX   )r(   r  r  r)   r)   r*   )test_loc_getitem_float_slice_float64index  s     z:TestLabelSlicing.test_loc_getitem_float_slice_float64indexzstart,stop, expected_slicer   nsNr:  r9   r   r@   rA   rB   rC   c                 C   s>   t tdtdd}|jt|| }|j| }t|| d S )Nr:  r`  z10 days)r   r   r   r   rO   r   r[   r   )r(   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   s^   |g dt dt dt dgd}tt |j|d  W d    n1 sP0    Y  d S )Nra   Z2016Z2019Z2017rp   Z2022)r   r[   r  r  r   )r(   r  r  rs   r)   r)   r*   )test_loc_getitem_slice_unordered_dt_index	  s    z:TestLabelSlicing.test_loc_getitem_slice_unordered_dt_indexr   g      ?c                 C   sN   |t d|dddgd}|j|d }|t d|dddgd}t|| d S )NrB   r  r   Zthirdrp   )r   r   r[   rr   )r(   r  r   rs   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 )	Nr9   r   r?   )testr9   r   r   rp   r   )re   rX   rW   )r
   r   r   r[   r\   r   r]   r)   r)   r*   *test_loc_getitem_slice_columns_mixed_dtype	  s
    z;TestLabelSlicing.test_loc_getitem_slice_columns_mixed_dtype)rx   ry   rz   ri  rj  r{   r|   r}   rh   rY  r   rk  rm  rn  rY   r  rO   rq  rr  rs  ru  r)   r)   r)   r*   re    s0   



re  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   s\   | d}|j dkrX||dd}tjt|d |j|  W d    n1 sN0    Y  d S )Nz7: boolean label can not be used without a boolean indexr   r   r   r   )Zinferred_typer{   r   r&   r   )r(   rX   r  rw  messagers   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   )r(   r  rw  rs   r)   r)   r*   test_loc_bool_should_not_raise-	  s    z<TestLocBooleanLabelsAndSlices.test_loc_bool_should_not_raisec                 C   sP   d}||dd}t jt|d |jdd  W d    n1 sB0    Y  d S )NzEslice\(True, False, None\): boolean values can not be used in a slicer   r   r   TF)r{   r   rP   r   )r(   rX   r  rx  rs   r)   r)   r*   test_loc_bool_slice_raises4	  s
    z8TestLocBooleanLabelsAndSlices.test_loc_bool_slice_raisesN)	rx   ry   rz   r{   r|   r}   ry  rz  r{  r)   r)   r)   r*   rv  !	  s
   


rv  c                   @   sL   e Zd Zdd Zejdddgdd Zdd	 Zd
d Z	e
jdd ZdS )TestLocBooleanMaskc                 C   s   t dtdi}ttddd|_|d dk|d dk|d dk g}g dg dg dg}t||D ]H\}}| }d|j|df< t |ttddddgd	d
}t|| qdd S )Nr   r>   r   r  r?   )
r   r9   r   r?   r>   r>   r>   r>   r>   r>   )
r   r9   r   r>   rB   rC   r@   rA   rN   r9  )
r>   r>   r>   r?   rB   rC   r@   rA   rN   r9  r   r  )	r
   r   r   rX   rb  r   r   r[   r\   )r(   r^   Z
conditionsexpected_dataZcondre   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 g d}tdd|d}tdt di|dd}| }|j|d d f |j|d d f< t	|| | }|j| |j|< t	|| d S )NrJ   Z20010101rB   r  r  rR   rp   r   )
rY   r   r   r
   rZ   r   r   r   r[   r\   )r(   r  r   r  r^   r   r)   r)   r*   +test_loc_setitem_mask_with_datetimeindex_tzU	  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  r?   r   ZABr}  r^  )r  r  rV   r   r   r9   )r
   rY   rZ   r  r   r   r   rX   rh   ri   r<   r   r[   r\   )r(   r^   r_   r   r)   r)   r*   2test_loc_setitem_mask_and_label_with_datetimeindexf	  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spJ t|| d S )Nr   l   ,GsO1colr9   TF)	r   r
   r   r   r   r   r   r[   r\   )r(   Ztd1Ztd2r^   Zdf_copyr  r_   r   r)   r)   r*   'test_loc_setitem_mask_td64_series_valueu	  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   rd   r9   )r   r   rj   r[   r\   )r(   r  r_   r   r)   r)   r*   #test_loc_setitem_boolean_and_column	  s
    z6TestLocBooleanMask.test_loc_setitem_boolean_and_column)rx   ry   rz   r~  r{   r|   r}   r  r  r  r  skip_array_manager_invalid_testr  r)   r)   r)   r*   r|  >	  s   
r|  c                   @   s`   e Zd Zejddd ejegdd Z	dd Z
dd	 Zejd
ddgdd Zdd ZdS )TestLocListliker=  c                 C   s   | S rH   r)   r   r)   r)   r*   r   	  r   zTestLocListlike.<lambda>c                 C   sL  t ddtjg}ttd|d}|j|| }t|| ||| }t|| | j|| }t	||  |d d }|dd  }d}t
jt|d |j||  W d    n1 s0    Y  t
jt|d |||  W d    n1 s0    Y  t
jt|d" | j||  W d    n1 s>0    Y  d S )	Nr<   rd   r?   rp   r   r9   r   r   )r	   rY   r   r   r   r   r[   r   r  r\   r{   r   r&   )r(   r=  Zcir  r   Zser2Zci2r   r)   r)   r*   8test_loc_getitem_list_of_labels_categoricalindex_with_na	  s"    ,*zHTestLocListlike.test_loc_getitem_list_of_labels_categoricalindex_with_nac                 C   sf   t jg ddd}tg dtdddd}tjtd	d
 |j|  W d    n1 sX0    Y  d S )N)
2001-01-04z
2001-01-02r  z
2001-01-14r	  r   )r   rC   rN   r:  z
2001-01-01r   rB   r  r   r   )rY   r   r   r   r{   r   r&   r   )r(   rt   r  r)   r)   r*   1test_loc_getitem_series_label_list_missing_values	  s    zATestLocListlike.test_loc_getitem_series_label_list_missing_valuesc                 C   sf   t tddgtddgd}tjtdd$ |jtddg  W d    n1 sX0    Y  d S )Nl   PF
AHl   UBeNl   P2$$nrX   re   r   r   l   NZ4FG)r   rY   r   r{   r   r&   r   r$  r)   r)   r*   9test_loc_getitem_series_label_list_missing_integer_values	  s    zITestLocListlike.test_loc_getitem_series_label_list_missing_integer_values	to_periodTFc                 C   sX  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}|rdd |D }tg dt	|d|j
ddd	}|j| }tj||dd tdtdtdg}|rdd |D }tjtdd |j|  W d    n1 sJ0    Y  d S )N
2011-01-01z
2011-01-02r   r  )r  ro   皙?皙?r   r   c                 S   s   g | ]}| d qS r   r  r   r)   r)   r*   r   	  r   zRTestLocListlike.test_loc_getitem_listlike_of_datetimelike_keys.<locals>.<listcomp>T)rY  c                 S   s   g | ]}| d qS r  r  r   r)   r)   r*   r   	  r   )r  r  r  )ro   r   
2011-01-03c                 S   s   g | ]}| d qS r  r  r   r)   r)   r*   r   	  r   r   r   )r   r  r   r   r   rX   r  r[   r   r   r   r{   r   r&   )r(   r  r  r  r  r   ru   r)   r)   r*   .test_loc_getitem_listlike_of_datetimelike_keys	  s>    


z>TestLocListlike.test_loc_getitem_listlike_of_datetimelike_keysc                 C   sd   t ddgddgddggg ddd	gd
}|jd d }d|j_|jtddgdd }t|| d S )Nr9   r   rB   rC   rA   rN   )cobraviperZ
sidewinderZ	max_speedZshieldr   r   r  r  rn   )r
   r   rX   ro   r   r   r[   r\   r   r)   r)   r*   test_loc_named_index	  s    z$TestLocListlike.test_loc_named_indexN)rx   ry   rz   r{   r|   r}   rY   Zasarrayr   r  r  r  r  r  r)   r)   r)   r*   r  	  s   
		
)r  z%columns, column_key, expected_columns)  rC  i  r  rC  r9   )r  rC  Allr  r   c                 C   sT   t tjdd| tdd}|jd d |f }|jg d|f }tj||dd d S )Nr?   r  rV   r   T)rZ  )	r
   rY   r   r   r   r   r   r[   r\   )rW   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|g dd}t	
|| t| }t j|jd d df< t	
|| d S )NrN   rB   r  r9   )r   r   r   r;   r  rm   )rY   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   sr   dd dD } t tdtdt| d}|jddd	d
 }t tdtdtg dd}t|| d S )Nc                 S   s   g | ]}d D ]}||fqqS ))rA   rN   r9  r>   r)   )r   Zyrr  r)   r)   r*   r   
  r   z)test_loc_axis_1_slice.<locals>.<listcomp>)  r   )r>   rN   Z
ABCDEFGHIJr   r9   rJ  r  r9  r   rN   r  )r  )r  r>   )r   rA   r  )	r
   rY   rO  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 )NrR   r   r   r   r9  )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s0J d S )Nr   r9   r   r   r   )r   r   r   r   r   )r  r   r)   r)   r*   test_loc_mixed_int_float/
  s    
r  c                  C   sp   t tdg dd} tt d| jd d< W d    n1 sB0    Y  t g dg dd}t| | d S )NrB   r   rp   r   r?   )r   r   r   r?   )r   r   r[   r  r  r   r   )r  r_   r)   r)   r*   *test_loc_with_positional_slice_deprecation7
  s
    ,r  c               	   C   s0  t ddd} ttjd| d}|d }d}||fD ]x}tjt|d |jd	d  W d    n1 sj0    Y  t	t
 d	|jd	d< W d    q41 s0    Y  q4tjt|d" |jd	dd	f  W d    n1 s0    Y  t	t
" d
|jd	dd	f< W d    n1 s"0    Y  d S )Nz
2016-01-01r?   )r  )r?   r   rp   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intr   r9   r   )r   r
   rY   r   r{   r   rP   r   r[   r  r  )dtir^   r  r   rs   r)   r)   r*   #test_loc_slice_disallows_positionalB
  s    ,.0r  c                  C   s   t tjddg dtddddd} | jg d  } | j}t	|j
}d	}tjt|d
 | j|  W d    n1 s|0    Y  tjt|d
 | d j|  W d    n1 s0    Y  d S )NrC   r?   r   Z2012r  r  rV   )r   r   r   r?   z/None of \[TimedeltaIndex.* are in the \[index\]r   rR   )r
   rY   r   r.  r   r   r   rX   rh   ZTimedeltaIndexZasi8r{   r   r&   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  r>   rp   r   rC   )rh   rY  r
   rY   r   r.  r[   r\   r   r   r   )r  r^   r)   r)   r*   "test_loc_with_period_index_indexert
  s    $r  c                  C   s2  g d} ddg}ddg}t j| ||gg dd}tdtd	|d
}|jd d | d |d |d ff }|jd d d df }t|| |j| d |d |d fg ddd}t|| |jd }|jd d }	|j| d |d |d fg ddd}
t	|
|	 |j| d |d |d f }|dks.J d S )Nr   r9  )r9   r   r   r9   )r   r   rd  r   r@   rC   r   r8   )r  rK  )
r   r  r
   r   r   r   r[   r\   Zxsr   )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g dg dddtjtjggjg ddd} | d}|jjdksNJ |jd }t	dd	g|j
ddd
}t|| |jt|_|jd }t|| d S )NrC  )rC   r@   rA   rN   r9   r   r   r?  )re   rW   r   r,   rC   r1  )r
   rY   r   r   Tr   rX   r   r   r   rW   r[   r   r   r   )r^   rk   rv   r_   r)   r)   r*   /test_loc_getitem_nullable_index_with_duplicates
  s    $


r  c                   @   s  e Zd Zejdddgdd Zdd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd Zejdejejeegejdg ddd Zejdedddf dedfgd d! Zd"d# Zejd$d%d&gd'd( Zejd)d* Zd+d, Zd-d. ZdS )/TestLocSeriesr  )r  r?   )r  rB   c                 C   s$   t ddd}|j| |ks J d S )Nr?   rB   )r  r  )r   r   )r(   r   r_   r  r)   r)   r*   ri  
  s    zTestLocSeries.test_loc_uint64c           	      C   s   |j g d }t|j| || t|jdd d |dd d  |j ddg \}}|j|| }|||}t|| || k}t|j| ||  |j| || ksJ |j| || ksJ d S )Nr?   rB   rA   rC   r      )rX   r[   r   r   r*  r   truncatemedian)	r(   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 g d }d}tjt|d |j||  W d    n1 s^0    Y  tjt|d d|j||< W d    n1 s0    Y  d S )NrC   r  r   )r9   r   r   z"Timestamp\('2000-01-10 00:00:00'\)r   r   )rX   r{   r   r&   r   )r(   r  r  r  Zts2r   r)   r)   r*   test_loc_getitem_not_monotonic
  s    ,z,TestLocSeries.test_loc_getitem_not_monotonicc                 C   sf  t tjdttdddd}| }d|jdd< |jdd dk sPJ | }d|jdd< |jdd dkj	 sJ |jdd	 }|j
dd }|g d
}t|| t|| |jttdttddd  }tjtdd |j
dd  W d    n1 s0    Y  tjtdd d|j
dd< W d    n1 sX0    Y  d S )Nr>   r   r5   r   rp   rB   r?   r:  r@   )rB   r@   rN   r>   rC   r9  r   z^3$r   )r   rY   r   r.  r   r   r   r   r   rj   r   r*  r[   r   r{   r   r&   )r(   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 )Nr>   )r  rX   r   r[   r   )r(   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   )r(   r  r   r   r_   r)   r)   r*   test_loc_setitem_boolean
  s    
z&TestLocSeries.test_loc_setitem_booleanc                 C   sb   t |jg d }d|j|< d}tjt|d  d|j|dg < W d    n1 sT0    Y  d S )N)rC   rN   r;  rC   z\['foo'\] not in indexr   r   )r   rX   r   r{   r   r&   )r(   r  r  r   r)   r)   r*   test_loc_setitem_corner
  s
    
z%TestLocSeries.test_loc_setitem_cornerc                 C   s   |j g d }| }| }d||< d|j|< t|| | }| }d||d |d < d|j|d |d < t|| d S )N)rC   r>   r  r   r   )rX   r   r   r[   r   )r(   r  indicesr  ru   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}g d}tg d}| }| }d||< d|j|< t	
|| | }| }d||< d|j|< t	
|| g d}tg d}d}tjt|d	 d||< W d    n1 s0    Y  tjt|d	 d||< W d    n1 s0    Y  d S )
Nr>   r   r5   r   rp   )r   rB   r@   r   rB   rC   r@   z\[5\] not in indexr   )r   rY   r   r.  r   r   r   r   r   r[   r   r{   r   r&   	Exception)	r(   r  r  Zarr_indsr  ru   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g dd}| }tddd}||jd	< |jd	 }||ksNJ | }||jd
< |jd
 }||ksvJ | }||d	< |d	 }||ksJ d S )Nr  r?   z
US/Easternr  r   rp   r  r-  rR   r   )r   r   r   r   r   r   )r(   r  r  r_   r   r)   r)   r*   test_loc_setitem_dt64tz_values0  s"    



z,TestLocSeries.test_loc_setitem_dt64tz_valuesarray_fnr   r  c                 C   s~   |dg| }t |ddddgtdtd}t dtdtd}||jd< t|| t dtdtd}||jd< t|| d S )Nr   Zabcder   rR   )r   r   r   r   r[   r   r   )r(   r   r  r=  r_   r  r)   r)   r*   #test_loc_iloc_setitem_with_listlikeF  s    

z1TestLocSeries.test_loc_iloc_setitem_with_listliker   r<   Nc                 C   s   t tg dg dd}d}tjt|d" |j|d d f  W d    n1 sT0    Y  tjt|d" d|j|d d f< W d    n1 s0    Y  d S )N))r<   0)r<   1)rd   r  )   r  r  r  zToo many indicesr   r9   )r   r   r  r{   r   rt  r   )r(   r   r  r   r)   r)   r*   +test_loc_series_getitem_too_many_dimensionsX  s    0z9TestLocSeries.test_loc_series_getitem_too_many_dimensionsc                 C   s   |j g d }| }d|j|< | }d|g d< t|| d|jdd< d|dd< t|| |j ddg \}}d|j||< d|dd< t|| d|j|< d|j|< || dksJ || dksJ d S )Nr  rC   r>   r  r@   r)  rB   )rX   r   r   r[   r   r   )r(   r  r  r   r_   r  r  r)   r)   r*   test_loc_setitemf  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 )
NabcdefZghiZjklrg   r   ZnewAZnewBr   r<  )r(   r   r^   r_   r)   r)   r*   test_loc_assign_dict_to_row  s    z)TestLocSeries.test_loc_assign_dict_to_rowc                 C   sp   t ddgd}tddddd|jd	< tddddd|jd	< t tddddggddgd	gd
}t|| d S )Nr   r   rm   r@   r   r  r   )r   r   r9   rV   )r
   r   r   r[   r\   r"  r)   r)   r*   ,test_loc_setitem_dict_timedelta_multiple_set  s    z:TestLocSeries.test_loc_setitem_dict_timedelta_multiple_setc                 C   sl   t ddgdgd}ddg|jdddgf< t ttjtjgd	d
dtjgdtjgdddgd}t|| d S )Nr9   r   rR   r   r@   rA   rL   r,   r   r   r   rp   )r
   r   r   rY   r   r[   r\   r]   r)   r)   r*   3test_loc_set_multiple_items_in_multiple_new_columns  s    	zATestLocSeries.test_loc_set_multiple_items_in_multiple_new_columnsc                 C   s6   t jdddd}ttd|d}|jd dks2J d S )NZ2000r5   rd   r  rp   z
2000-01-14r9  )rh   rY  r   r   r   )r(   rX   r  r)   r)   r*    test_getitem_loc_str_periodindex  s    z.TestLocSeries.test_getitem_loc_str_periodindex) rx   ry   rz   r{   r|   r}   ri  r  r  r  r  r  r  r  r  r  rY   r   rh   r   r  r  r   rO   r  r  r  r  r  r  r  r  r)   r)   r)   r*   r  
  s.   
	$

	

r  )H__doc__collectionsr   r   r   r   r   r   Zdateutil.tzr   ZnumpyrY   r{   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandasrh   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   r   Zpandas.tests.indexing.commonr   r   r~   r  r  r!  rB  rR  re  rv  r|  r  r|   r}   r  r  r  r  r  r  r  r  r  r  r  r  r)   r)   r)   r*   <module>   sr   H           ^< G :JQf
	
