o
    i                 	   @   s  d Z ddlmZ ddlmZmZmZmZ ddlZddlm	Z	 ddl
ZddlZddlmZ ddlm  mZ ddlZddlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& ddl'm(Z) ddl*m+Z+ dd	l,m-Z- dd
l.m/Z/ ddl0m1Z1 ej23dej4ej4dgdej4ej4gg d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j23d*g d+d,d-gdd.gfg d/d,d-gdd.gfg d/d,d0gdd1gfgd2d3 ZAd4d5 ZBd6d7 ZCd8d9 ZDd:d; ZEd<d= ZFd>d? ZGd@dA ZHdBdC ZIdDdE ZJdFdG ZKdHdI ZLej23dJdKeMdKeNdKgdLdM ZOej23dNe"dOdPfe"dQdRdSdTfgdUdV ZPdWdX ZQdYdZ ZRG d[d\ d\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a)FTTFTc                 C   sP   t d| i}||jd d df< t d|i}t| | t| |  d S NA)r   loctmassert_frame_equalisnanotna)series
new_seriesexpected_serdfexpected r-   Y/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/indexing/test_loc.pytest_not_change_nan_loc.   s
   	r/   c                   @   s  e Zd Zdd Zdd Zejddg ddgdd	gdgd
g ddgd
dgdgd
dgdgd
d	gdggdd Zejdg dg dgg dg dggdd Z	ejdg ddgdgg dg ddgg dg ddgg ddgdggdd Z
dd  Zd!d" Zd#d$ Zejd%edd&g d'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.d/ Zd0d1 Zd2d3 Zejd4edgged5gd6eddd5f edgd5d7fedged5gd8d5dgfedgged5gd8d5edgd5d7fgd9d: ZdS );TestLocc                 C      | j dddgtd d S )Nr#      labelstypsfailscheck_resultKeyErrorselfr-   r-   r.   test_loc_getitem_int?      zTestLoc.test_loc_getitem_intc                 C   r1   )Nr#   cemptyr4   r7   r:   r-   r-   r.   test_loc_getitem_labelD   r=   zTestLoc.test_loc_getitem_labelzkey, typs, axesf)intsuintsr3   mixedtsNfloats   )rB   rC   rD   r3   rE   r   c                 C      | j d|||td d S Nr#   r5   axesr6   r7   r;   keyr5   rK   r-   r-   r.   #test_loc_getitem_label_out_of_rangeI   s   z+TestLoc.test_loc_getitem_label_out_of_rangez	key, typsr      r2   )rB   rC   rF   )rP         @r"   c                 C   s   | j d||td d S )Nr#   r4   r7   )r;   rM   r5   r-   r-   r.   test_loc_getitem_label_listY   s   	z#TestLoc.test_loc_getitem_label_listr?   )r   r2   
   )         rP   ))rP   rT   )rP      )r2      multic                 C   rH   rI   r7   rL   r-   r-   r.   (test_loc_getitem_label_list_with_missingd   s   z0TestLoc.test_loc_getitem_label_list_with_missingc                 C   s    | j dg dddgdtd d S )Nr#   )rG      (   rB   rC   rP   rJ   r7   r:   r-   r-   r.   !test_loc_getitem_label_list_failsq   s   
z)TestLoc.test_loc_getitem_label_list_failsc                 C      d S Nr-   r:   r-   r-   r.   !test_loc_getitem_label_array_likew   s   z)TestLoc.test_loc_getitem_label_array_likec                 C   s    g d}| j d|dgtd d S )NTFTFr#   r?   r4   )r8   
IndexError)r;   r   r-   r-   r.   test_loc_getitem_bool|   s   zTestLoc.test_loc_getitem_boolzslc, typs, axes, failsrT   )r3   rD   r?   rE   rF   2013010220130104r2      rD   rW   c                 C   s   | j d||||d d S rI   )r8   )r;   slcr5   rK   r6   r-   r-   r.   test_loc_getitem_label_slice   s   
z$TestLoc.test_loc_getitem_label_slicec                 C   sp   t ddgddgddggddgg dd}td|jd	< t ddgd
dgddggddgg dd}t|| d S )NrG   r       col1col2)rS   rP   rP   columnsindexr2   )rP   rj   r   rP   )r   nparanger#   r$   r%   r;   r+   r,   r-   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rP   r2   rT   String 1String 2z2019-06-11 11:00:00z2019-06-11 12:00:00)channelr"   B)dataString 3r"   rw   r"   rw   )rt   ry   ru   )r   ro   NaNr   pdNaTvaluesr#   r&   r$   r%   )r;   r+   df2r,   r-   r-   r.   test_column_types_consistent   s.   
z$TestLoc.test_column_types_consistentzobj, key, expFrm   namern   c                 C   s8   |j | }t|ttfrt|| d S ||ksJ d S r_   )r#   
isinstancer   r   r$   assert_equal)r;   objrM   expresr-   r-   r.   #test_loc_getitem_single_boolean_arg   s   
z+TestLoc.test_loc_getitem_single_boolean_arg)__name__
__module____qualname__r<   r@   pytestmarkparametrizerN   rR   rZ   r]   r`   rc   slice	TypeErrorr9   rh   rr   r   r   r   r   r   r   r-   r-   r-   r.   r0   >   sx    








$r0   c                   @   s  e Zd Zdd Zejddedddffdedd	dffd
edddffdededdffdeddd	ffdeddedffdedddffgdd Zdd Z	dd Z
dd Zdd Zdd Zd d! Zd"d# Zejd$d%d&gg d'gd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zejd8d9 Zejd:d;ejd;ejd<ejg d=ejd<gd>d? Zd@dA ZdBdC ZdDdE Z dFdG Z!dHdI Z"ejdJg dKdLdM Z#dNdO Z$dPdQ Z%dRdS Z&dTdU Z'dVdW Z(dXdY Z)dZd[ Z*d\d] Z+d^d_ Z,ejd`dage-dbdadbedaggejdcddgeddggdedf Z.ejdgd;dhgg difdje/g dkdldmej0ej0gg dkgg didnfdodpdqgfdjdrge/dodhej0ej0gg dsdtduej0ej0ggg didnfdog dvfejg dwejd<e/dodhej0gg dwdtduej0ggg dvdnfe-dodldbg dxfg dwg dyge/dodhej0ej0gg dzg d{gg didnfe-dodldbg d|fejg dwg dygejd<e/dodhej0ej0gg d}g d~gg didnfe-dbdbdbdadpgfe/djdrgddgddggdadpgdne/g dg dg dgg dvdnfgdd Z1dd Z2dd Z3dd Z4dd Z5dd Z6ejj7ejdddgddggdd Z8dd Z9dd Z:dd Z;ejj<dddd Z=dd Z>dd Z?ej@ddd ZAej@ddd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIejdg dejdejejJeKgeLjMej@ddd ZNdd ZOeLjMddÄ ZPddń ZQejd`ddgddɄ ZRejdeSejeTeUgdd̄ ZVdd΄ ZWejddeTdogfdeTdhgfgddӄ ZXddՄ ZYejdd;g dעfe-dmdrg dآfdldtgg d٢fgddۄ ZZdd݄ Z[dd߄ Z\dd Z]ejdddggdd Z^dd Z_ejddadagdae-dbfgdd Z`dd Zadd Zbdd Zcdd Zddd Zeejdddgdd Zfdd Zgdd Zhdd Zid d Zjdd ZkdbS (  TestLocBaseIndependentc                 C   sH   t tddd}|jtdgd d  }|jdd  }t|| d S )N20212022r   z2021/6/1r      )r   r   r#   ro   arrayilocr$   r%   r;   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   s   t tdddgtdtddgtddtd	gg d
g ddg d}tjt|d |j|  W d   dS 1 s>w   Y  dS )a  
        parse_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   x1x2r   r   r   r   r   r   rs   rS   rG   r[   )r"   rw   CV1V2r"   rw   r   matchN)r   r   	set_indexr   raisesr9   r#   )r;   msgrM   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   sT   t ddgi}tjtdd |jd d df  W d    d S 1 s#w   Y  d S )Nr    rP   u   אr   r   r   r   r9   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)rG   rX   c                 S   s   g | ]}d |d  qS )ABCDErX   r-   .0xr-   r-   r.   
<listcomp>      z@TestLocBaseIndependent.test_loc_getitem_dups.<locals>.<listcomp>rG   r   )r"   r   r   r"   )r   ro   randomrandom_sampleranger#   r$   assert_series_equalr;   r+   r,   r   r-   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 )
NrP   r2   r   r   20130101)r    r    r    r    r    rl   rn   r   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`J dddgf}| }|j|  d9  < t	|j| d|j|   d S )NrtttiaaaderX   float64dtypegq=
ףp?r2   g(\տ)mer   r   bar2r   rr   r          @)r   r   t)
r   listro   rp   r   copyr#   r$   r   r%   )r;   df_origindexerr+   r-   r-   r.   test_loc_setitem_dups5  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   rP   rP   )d   ri   ,  uint32r   r    r   r    rP   r   )r      i-  uint64)r   r   r#   r$   r%   )r;   df1ixnewb1r,   r   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}g d}d}tjt|d |jd d |f d	|jd d |f< W d    n1 s8w   Y  t dgtjdgd	d
tjdgd	d
tjdgd	d
d}t|| d S )Nr"   333333?        g      )idr    r   r>   r    r   r>   .will attempt to set the values inplace insteadr   float32r   )	r   r$   assert_produces_warningDeprecationWarningr#   astypero   r   r%   )r;   r+   colsr   r,   r-   r-   r.   test_loc_setitem_dtypen  s   (	z-TestLocBaseIndependent.test_loc_setitem_dtypec                 C   s   t tdg dd}tjtdd |ddg  W d    n1 s"w   Y  t td}tjtdd |ddg  W d    d S 1 sFw   Y  d S )	NrT   r   r   not in indexr   r    dr   )r   r   r   r   r9   r;   sr-   r-   r.   $test_getitem_label_list_with_missing  s   "z;TestLocBaseIndependent.test_getitem_label_list_with_missingrn   TFra   c                 C   sb   t g d}dt| dt| }tjt|d |j|  W d    d S 1 s*w   Y  d S )Nrs   z Boolean index has wrong length: z instead of r   )r   lenr   r   rb   r#   )r;   rn   r   r   r-   r-   r.   test_loc_getitem_bool_diff_len  s
   "z5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   r^   r_   r-   r:   r-   r-   r.   test_loc_getitem_int_slice  s   z1TestLocBaseIndependent.test_loc_getitem_int_slicec                 C   sl   t tjdg dg dd}d}tjt|d |jddgddgf  W d    d S 1 s/w   Y  d S )	N)rT   rT   r   )erA   grn   rm   zJ\"None of \[Int64Index\(\[1, 2\], dtype='int64'\)\] are in the \[index\]\"r   rP   r2   )r   ro   r   r   r   r9   r#   r;   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 d    n1 s&w   Y  d}tjt|d |jdd	g  W d    n1 sFw   Y  d
}tjt|d |jdg  W d    n1 sew   Y  d|jd< tjtdd |jdd	g  W d    n1 sw   Y  d|d< d}tjt|d |jd	g  W d    n1 sw   Y  |d= tjt|d d|jd	g< W d    d S 1 sw   Y  d S )Nr   rP   r2   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\]\"4rT   r   zH\"None of \[Int64Index\(\[-2\], dtype='int64'\)\] are in the \[index\]\"r   )r   objectr#   r   r   r9   )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 s,w   Y  tjt|d |jd	g  W d    d S 1 sJw   Y  d S )
Nr    r   rP   r2   valuer   zG\"None of \[Int64Index\(\[3\], dtype='int64'\)\] are in the \[index\]\"r   rT   r   r   r-   r-   r.   test_loc_to_fail3  s   "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 s'w   Y  tjtdd |jddg  W d    d S 1 sFw   Y  d S )Nrs   r2   z="None of [Int64Index([3], dtype='int64')] are in the [index]"r   rT   r   )r   r#   r   r   r9   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)rX   rS   size)alpha_0alpha_1alpha_2beta_0beta_1r   c                 S   s   d| v S )Nalphar-   r   r-   r-   r.   <lambda>      z7TestLocBaseIndependent.test_loc_index.<locals>.<lambda>booleanr   )r   ro   r   rn   mapr#   r   r$   r%   r~   r|   )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 s:J t t	dgd	gd
jd }t
t	dd	gddgdd}t|| |jtksbJ d S )NrW   r"   rw   r   Drl   r"   rw   r   r2   r   rP   r   r    r   r   )r   ro   r   randr#   r   rm   allrn   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-5rX   r   r   val)r   r   r   r   ro   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   rX   rn   r   r   r  r   	r   r   r   ro   r  r   r#   r$   r%   )r;   r  r  r,   r+   r-   r-   r.   test_loc_setitem_consistency"  s   z3TestLocBaseIndependent.test_loc_setitem_consistencyc                 C   R   t tdtddttdtjdd}| }d|jd d df< t|| d S )Nr   rX   r   r   r  r   r  r;   r  r,   r+   r-   r-   r.   (test_loc_setitem_consistency_dt64_to_str3  s   z?TestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_strc                 C   r  )N      ?rX   r   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   20180101string)r   r   r   r#   r$   r%   rq   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 d    n1 s1w   Y  t|| t ddgd}d|d< t|| d S )Nr   yr   rP   )r   r   ro   r  r$   r   r#   r%   r;   r,   r+   r-   r-   r.   "test_loc_setitem_consistency_emptyV  s   z9TestLocBaseIndependent.test_loc_setitem_consistency_emptyc           	      C   s
  dgd g dg dg}t j|g dd}g dg dg}t j|d	d
gd}ddddtjgg dddddtjgg dg}t|||d}d}tjt|d t|j	d d df |j	d d df< W d    n1 siw   Y  tjt|d t|j	d d df |j	d d df< W d    n1 sw   Y  tjd |d! |j	d d df |j	d d df  |j	d d df< W d    n1 sw   Y  tjd |d |j	d d df 
d|j	d d df< W d    n1 sw   Y  tg d|jdd}t|d | d S )NRegion_1rW   )Site_1r)  Site_2r*  )l   BP[ l   _Z l   q=.Z l   <.Z )RegionSiteRespondentIDnames)
Respondentr0  r0  OtherCatr1  )	Something	StartDateEndDatezYes/NoSomethingElseLevel_0Level_1r"   z5/25/2015 10:59z5/25/2015 11:22Yes)r"   z5/21/2015 9:40z5/21/2015 9:52r8  r8  z5/20/2015 8:27z5/20/2015 8:41)r"   z5/20/2015 8:33z5/20/2015 9:09r8  Nor   r   r   )r0  r3  )r0  r4  )r0  Durationztimedelta64[s])id  i  iH  g     @r   )r   from_arraysro   nanr   r$   r   r   r   r#   r   r   rn   r   )	r;   levelsmiclevelsr   r~   r+   r   r,   r-   r-   r.   -test_loc_setitem_consistency_slice_column_lenc  sV   
zDTestLocBaseIndependent.test_loc_setitem_consistency_slice_column_lenunit)YMr  hmr   msusc                 C   s   t dtdtdgi}|jd d df jd| d|jd d |f< |jd d df jd| d|d< t|jd d df |d}t|jd d |f | d S )N	timestampz2017-02-11 12:41:29z1991-11-07 04:22:37zdatetime64[]r,   r   )	r   ro   
datetime64r#   r~   r   r   r$   r   )r;   rA  r+   r,   r-   r-   r.   test_loc_assign_non_ns_datetime  s   0	&z6TestLocBaseIndependent.test_loc_assign_non_ns_datetimec                 C   s   t dg di}t|d ddd|d< |jd d df |jd d df< |jdd	gdf |jdd	gdf< t g d
g dg dg dgg dd}ddg}|| t||< t|| d S )Nr   )   CO!g   s~!g    4	8   A{?rF  T)rA  cachedate_dt
date_dt_cpr2   rT   )rL  2017-01-24 13:26:12.711rS  )rM  2017-01-24 13:52:05.110rT  )rN  2018-10-22 13:44:05.888rU  )rO  2018-10-23 08:08:41.025rV  )r   rQ  rR  r   )r   	from_dictr   r#   applyr$   r%   )r;   r+   r,   rm   r-   r-   r.   test_loc_modify_datetime  s"   
  
z/TestLocBaseIndependent.test_loc_modify_datetimec                 C   sf   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	}t d|i}t|| d S )
NrT   rX   rW   r"   rn   rm   r   rs   r  r   rW   rT   rX   r2   rT   rP   r  )r   floatro   r   r#   r   r$   r%   )r;   r+   serr,   r-   r-   r.   #test_loc_setitem_frame_with_reindex  s
    z:TestLocBaseIndependent.test_loc_setitem_frame_with_reindexc                 C   s   t g dddgtd}d|d< d}tjt|d tjg dd	d
|jg ddf< W d    n1 s3w   Y  tg dg dd	d}t d|i}d|d< t	|| d S )NrZ  r"   rw   r[  r#  r   r   rs   r  r   r\  r]  r  )
r   r^  r$   r   r   ro   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   s   t g dddgtd}d|d< d}tjt|d tjg ddd	|jtd
dddf< W d    n1 s5w   Y  t g dddg dd}t	|| d S )Nrs   r"   rw   r[  r#  r   r   r  r   rT   r   r   )rT   r2   rP   rz   r   )
r   r^  r$   r   r   ro   r   r#   r   r%   )r;   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      g | ]}d t | qS @strr   ir-   r-   r.   r     r   zGTestLocBaseIndependent.test_loc_setitem_empty_frame.<locals>.<listcomp>rX   r  r   c                 S   rc  rd  rf  rh  r-   r-   r.   r     r   rW   r   r"   rw   r  rz   )r   ro   rp   r   setunionr   r<  r#   r   r   reindexr$   r%   )
r;   keys1val1keys2val2rn   r+   sera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s%J |jd }|dks0J d|jd d d	d
f< |jd d d	d
f }|jd d dd f }t|| d S )NrW   abcdABCDr   r   r   rP   )r    r"   r   rw   r  )	r   ro   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 )Nrs   rz   rw   )r   ro   r<  r"   r#   rw   r$   r%   rq   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 )NrP   r2   rT   rW   r    r   )rP   r2   r    r   r   rn   r   r   rX   rU   )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   bazrT   r   rz   rP   r2   r   )r   r}  r}  )rP   r2   r2   r  r  rX   r  200001012000010220000103)r   rP   r   rP   r2   rW   )r   r   r   ro   r  r#   rn   r$   r%   r   r   )r;   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|r"|d
ks$J d S )NrP   r2   rT   rW   r"   rw   r   r   )r   r"   r  )r   r#   r   )r;   r   r   r+   r   r-   r-   r.   "test_loc_setitem_with_scalar_indexH  s   	
z9TestLocBaseIndependent.test_loc_setitem_with_scalar_indexzindex,box,expectedr2   r  rV   )rV   rV   rV   rV   rT   rW   r   rP   r   r  rf   )rT   rW   rV   rf   rX   rU   r   rV   rf   	   )rw   r   r  rS         )rT   rV   rf   r  )rX   rS   r  r  )r   r"   r  )rf   rW   rV   r  )r  rU   rS   r  r  rS   r  r  )rV   r2   rf   )r  rW   rS   )r  rU   r  c                 C   s   t ddgddgddggddgd	}d }t|d
 tr$|d
 td kr$t}d}tj||d ||j|< W d    n1 s=w   Y  t|| d S )NrP   r2   rT   rW   rX   rU   r"   rw   r   r   r   r   )r   r   r   r   r$   r   r#   r%   )r;   rn   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   rP   )	r   r   tz_localizer|   r}   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     rP   i  r2   )r   r   r  r   r$   r   )r;   r   r+   r,   r   r-   r-   r.   test_loc_coercion2  s   z)TestLocBaseIndependent.test_loc_coercion2c                 C   sZ   t ddgd gd  i}|j}|jdd }t|j| |jdd  }t|j| d S )Ntextz
some wordsr  r   r2   rT   )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   r   r   r   rP   )r   r  r   r   r$   r   )r;   
indexer_sl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 s*w   Y  d	}tjt|d |jd
d   W d    n1 sJw   Y  d}tjt|d |jdd  W d    n1 sjw   Y  t g dg ddg ddjd
d}|jdd  }t g dg ddg dd}t|| |jd
d  }t|| |jdd }t g dg ddg dd}t|| d S )NrP   r2   rT   rW   rX   rU   )rT   rW   rX   rU   rV   rf   rz   )r   rP   r   rP   r2   rT   r   z5'Cannot get left slice bound for non-unique label: 1'r   rP   z5'Cannot get left slice bound for non-unique label: 0'r   r2   axis)r2   rW   rX   rU   )rW   rU   rV   rf   )rP   rP   r2   rT   )r2   rW   rX   )rW   rU   rV   )rP   rP   r2   )r   r   r   r9   r#   
sort_indexr$   r%   )r;   r+   r   r   r,   r-   r-   r.   test_loc_non_unique  s8   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u s1J t|}|j| }t|dgtt	t|t|fdgt| |d||dd  g}t|| d S )NABCDEFGr   r   FrP   )r   r|   concatr   ro   r   rw  r   rp   onesrn   	is_uniquer#   taker$   r%   )r;   lengthl2rm   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J |jddg jj}|dks,J d S )NrP   
index_namer   )r   rn   r   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 )NrX   r2   r   T)check_index_typecheck_column_type)r$   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s$J |d d  |us.J t|d j	|d j	s<J g d|jd d df< |rV|d g dk
 sUJ n
|d dk
 s`J ||jd d d d f u soJ ttjdd}|d |jd d df u sJ tg d	}|jd d  }	|	|usJ |d d  |usJ g d
|d d< |rt
|	d d g dksJ d S t
|	d d g d
ksJ d S )Nz0setting with .loc[:, 'a'] does not alter inplacereasonr    rs   )rW   rW   rW   rW   rS   r   r  r  rT   )r   r   xfailnode
add_markerr   r#   ro   shares_memory_valuesr  r   rw  r   )
r;   using_array_managerrequestusing_copy_on_writer   original_df	sliced_dfr+   original_seriessliced_seriesr-   r-   r.   &test_identity_slice_returns_new_object,  s2     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 )NrT   r    r   r   r2   )r   zipr   r   r#   r$   r%   rn   )r;   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s$J |j|d g }|jdg }t|| |j|d |g }t|| d S )Nr   rP   r2   r   r   )ro   iinfomaxr   r#   r   r$   r   )r;   umaxr_  r   r,   r-   r-   r.   test_loc_uint64h  s   
z&TestLocBaseIndependent.test_loc_uint64c                 C   s   t dj}tddg|d |gd}tjtdd |jd  W d    n1 s)w   Y  tjtdd |jdg  W d    d S 1 sGw   Y  d S )Nr   rP   r2   r   z-1r   r   )ro   r  r  r   r   r   r9   r#   )r;   r  r_  r-   r-   r.   !test_loc_uint64_disallow_negativey  s   "z8TestLocBaseIndependent.test_loc_uint64_disallow_negativez,ignore:.*will attempt to set.*:FutureWarningc                 C   sP   g d}t |d gt| d}t ddgd}||jd d df< t|| d S Nrs   r   r%  r   r%  r   )r   r   r#   r$   r%   r;   rx   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 r  )r   r   r   ro   r  r#   r$   r%   r  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   r  r   r%  rm   r   )r   r   )r   ro   r<  r^  r#   r$   r%   r&  r-   r-   r.   *test_loc_setitem_empty_append_single_value     zATestLocBaseIndependent.test_loc_setitem_empty_append_single_valuec                 C   s   ddg}t ddgd}|jtj|_d}tjt|d ||jddgdf< W d    n1 s0w   Y  d		g d
}tjt
|d ||jdddf< W d    d S 1 sXw   Y  d S )NrP   r2   r   r%  r   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   rn   r   ro   r  r   r   r9   r#   join
ValueError)r;   rx   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 )NrP   r2   rT   rW   r   r   )r   r#   ro   r   r   r$   r   )r;   r+   r   r   r-   r-   r.   test_indexing_zerodim_np_array  r  z5TestLocBaseIndependent.test_indexing_zerodim_np_arrayc                 C   s,   t ddg}|jtd }|dksJ d S )NrP   r2   r   )r   r#   ro   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 )
Nr  rW   i  i  r   r  )rU   rX   rW   rT   r2   rP   r   r   )r   r   ro   r   r#   r$   r   )r;   rx   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=)rg  ro   r   )r   _r-   r-   r.   r         z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>rX   r"   r   r  c                 S      g | ]}t |qS r-   r^  r   r-   r-   r.   r         c                 S   r  r-   r  r   r-   r-   r.   r     r  )ro   r   seedr   r   r   r$   r%   r#   rn   r^  r   )r;   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/20005minfreqr  r[   rT   r   z1/4/2000r   )r   hourminuter   ro   r   rw  r   r$   get_objr#   r   r   rn   
_with_freq)	r;   frame_or_seriesrngr  r   r   r   chunkr,   r-   r-   r.   test_loc_getitem_time_object  s   
z3TestLocBaseIndependent.test_loc_getitem_time_object
spmatrix_t)
coo_matrix
csc_matrix
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   )rX   rV   r   r2   )
fill_value)scipy.sparsegetattrsparsero   eyer   from_spmatrixr   r#   r~   toarrayr$   assert_numpy_array_equalr  fullr   )r;   r  r   scipyrowsr   spmatrixr+   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   rP   )r   r|   r   r   r#   r$   r%   r  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  rX   r2   r   r   r   r   r   )r   r   r   r   r   r   r   r   rP   )
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   r2   r   rT   )r   r   r#   r   r$   r   )r;   r   r   r,   r-   r-   r.   test_loc_getitem_sparse_series3  s   z5TestLocBaseIndependent.test_loc_getitem_sparse_seriesr#   r   c                 C   sP   t g dg dgttd}t||d }tg dttdd}t|| d S )N)r   r         ?)r   r   r   r   r   )r   r   )r   r   r^  r  r   r$   r   )r;   r   r+   r   r,   r-   r-   r.   !test_getitem_single_row_sparse_df?  s   z8TestLocBaseIndependent.test_getitem_single_row_sparse_dfkey_typec                 C   sD   |g d}|j d d |f }|j d d g df }t|| d S )Nr   )r#   r$   r%   )r;   float_framer  idxr   r,   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rS   rW   r   0srS   r   startperiodsr  )
r   ro   r   normalr   rn   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 )NrP   r2   r  r  r   )r   r#   r   r$   r   )r;   r  r,   r+   r   r-   r-   r.   test_loc_getitem_uint64_scalarV  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         ?rP   r   zoorP   r2   )r   r   r#   r   r$   r   r;   r_  r,   r-   r-   r.   ,test_loc_setitem_int_label_with_float64indexa  s
   

zCTestLocBaseIndependent.test_loc_setitem_int_label_with_float64indexzindexer, expected)
rG   rP   r2   rT   rW   rX   rU   rV   rf   r  )
r   rP   r2   rT   rG   rG   rG   rG   rf   r  )
r   rP   r2   rG   rW   rG   rU   rV   rf   r  c                 C   s\   t tddd}tdtdid|d}d|j|j| df< t||dgdd}t|| d S )	NrS   r   rA  r   r  r   rn   rG   r[  )r   r   r   r#   rn   r$   r%   )r;   r   r,   tdir+   r-   r-   r.   /test_loc_setitem_listlike_with_timedelta64indexk  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)rP   rP   rP   rP   rP   aaaaar   )rP   r   r   rP   rP   aabbar   r    
categoriesrP   r2   rT   )r   r   r	   r#   r$   r%   )r;   r+   r   r-   r-   r.   8test_loc_setitem_categorical_values_partial_column_slice  s
   ""zOTestLocBaseIndependent.test_loc_setitem_categorical_values_partial_column_slicec                 C   s   t dgdgd}t|d g dd}d}tjt|d ||jd d df< W d    n1 s0w   Y  |d }t||jdd	}t|| d S )
Nr    r   )AlphaNumericr  r   r  r   r   r   )	r   r	   r$   r   r   r#   r   rn   r   )r;   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s"J td|jd ks-J td	d
d
|jd< tt td|jd ksGJ W d    n1 sQw   Y  td |jd kscJ d S )Nr>   z
2010-10-01rT   z
2008-08-08r   rP   )r   r>   )rP   r>   i  rX   )r2   r>   z
2005-05-05)	r   r   ro   rJ  r#   r   r$   r   FutureWarningr   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-12rT   H)r
  r  r  tzr   r%  r   r[  )r   r   ro   r   r#   r$   r%   )r;   r$  tz_naive_fixturer'  r  r,   r   r-   r-   r.   !test_loc_setitem_datetimeindex_tz  s   z8TestLocBaseIndependent.test_loc_setitem_datetimeindex_tzc           
      C   sb  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 < |rR|	
t}	t||	 | }d|j	|< |j| |j	|< t|| | }d|j	|< |j	| }|j	|  }	d|	j	d d < |r|	
t}	t||	 | }d|j	|< |j| |j	|< t|| d S )Nz
2012-01-01z
2012-01-0530minr  rX   r   r  r   r     )   H   x      )         J   K   L   z   {   |            )r   r   ro   r   rw  r   r   r   r   r#   r   r^  r$   r%   r   )
r;   r  rn   r+   akeybkeyaindsbindsr   r,   r-   r-   r.   test_loc_setitem_time_key  s<   







z0TestLocBaseIndependent.test_loc_setitem_time_keyrM   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"   rW   )rw   3)r"   2rs   rW   rX   rU   r   )r2   r2   r   )r   r2   r   )r   rX   r   rP   r  )r   from_tuplesr   r   ro   zerosintr#   r$   r%   r  )r;   rM   r>  r+   r   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 )Nrs   r   rW   r   )rW   r2   rT   r   r#   r$   r   )r;   any_int_numpy_dtyper(   r,   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 )NrS   rE  rG   rs   )r   ro   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 s-w   Y  d}tjt|d ||j	d d < W d    d S 1 sNw   Y  d S )Nr2   r  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,?\))
ro   r   rw  r   r   r  r   r   r  r#   )r;   rx   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   rT   )r
  r  rs   rC  r  r   r   rP   )r  r"   )r|   interval_ranger   r#   r$   assert_almost_equal)r;   rn   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   rT   both)r
  r  closedrs   rC  r  r   r   r2   rP   )r
  r  r  rR  rW   r"   r   rP   r"   )r|   rN  r   r   r#   r$   r   )r;   rn   r+   	index_expr,   r   r-   r-   r.    test_loc_getitem_interval_index2  s   
z7TestLocBaseIndependent.test_loc_getitem_interval_index2tplrP   rP   r2   c                 C   sR   t ddgddd}t|d}|j|g }t |gddd}t|d}t|| d S )NrW  rX  r"   Fr   tupleize_colsr   )r   r   r#   r$   r%   )r;   rV  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s5J d S )N	IndexTyper    r   r   r   r}  bofcomposite_indexFrY  rX  )rT   rW   r"   rw   r   rP   )r   r   r   r#   )r;   r\  idx1idx2rn   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 )
NrX   rT   )r    r   r>   r   r   r|  r   quxrg  r2   r   )r   ro   r   rw  r<  r#   rn   r   r   r$   rO  r~   rq   r-   r-   r.   $test_loc_setitem_single_column_mixed9  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 )Nr[   rT   ABCr   eventr   )rS   re  r   r   )r"   rw   r   re  r   )r   ro   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J td|_|jjttjks/J d S )NonerU   r   )rP   rh  rV   )r   ro   rp   int8r#   r  rh  r   r   r-   r-   r.   test_loc_setitem_cast3Q  s
   
z-TestLocBaseIndependent.test_loc_setitem_cast3c                 C   sf   |t dg dd}g d}|jdkrdgdgdgg}||jt d	< |g d
|jd}t|| d S )NrX   )rT   rW   rP   r   r2   r   )r  rS   r  r2   r  rS   r  rT   )r   rP   rS   r  r  )r   ndimr#   rn   r$   r   )r;   r  r   r~   r,   r-   r-   r.   test_loc_setitem_range_keyY  s   
z1TestLocBaseIndependent.test_loc_setitem_range_key)lr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  fixturer  ro   r   r  r  r  r!  r$  r'  r@  rK  rY  r`  ra  rb  rs  rx  ry  r{  r  r   r  r   r<  r  r  r  r  r  r  arm_slowr  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r   complextdskip_if_no_scipyr  r  r  r   r  iterr   r   r  r  r  r  r  r  r!  r#  r)  r@  rG  rJ  rL  rM  rP  rU  r[  ra  rc  rg  rj  rl  r-   r-   r-   r.   r      sl   

$
'
$
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 r_   )param)r;   r  r-   r-   r.   r   h  s   zTestLocWithEllipsis.indexerc                 C   s   |}|t ur
| }|S r_   )r   to_frame)r;   series_with_simple_indexr  r   r-   r-   r.   r   m  s   zTestLocWithEllipsis.objc                 C   s   ||d }t || d S )N.)r$   r   )r;   r   r   r   r-   r-   r.   test_loc_iloc_getitem_ellipsist  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 rNt|jtrNd}tj	t
|d ||d|gf }W d    n1 sHw   Y  nt|dkrj||d|gf }|||g }t || |t ju rqdn|j}| }	||	d|gf }||	d d |gf }t || d S )Nr   z2MultiIndex does not support indexing with Ellipsisr   .)r$   r   r   rn   r#   
is_booleanr   r   r   r   NotImplementedErrorr   r   rw  r%   )
r;   rx  r   r   rM   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u st|dkrdn|jd }tjttd ||d  W d    n1 s*w   Y  tjttd ||d|gdf  W d    n1 sKw   Y  tjttd ||dd|f  W d    n1 skw   Y  tjtdd |||ddf  W d    d S 1 sw   Y  d S )Nr   r   )...Too many indexers)r$   r   r   rn   r   r   r   r   )r;   r   r   rM   r-   r-   r.   0test_loc_iloc_getitem_ellipses_only_one_ellipsis  s   $"zDTestLocWithEllipsis.test_loc_iloc_getitem_ellipses_only_one_ellipsisN)r   r   r   r   rm  r$   r#   r   r   r   ry  r}  r  r-   r-   r-   r.   rt  g  s    

rt  c                   @   s  e Zd Zejdddgg dg dgfddgg dg dgfddgddgfg dg dgfddgddgfg dg d	gfddgddgfg dg d	gfddgddgfg dg dgfd
dgddgfg dg dgfgejdddgdd Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd Zd d! Zd"d# Zd$d% Zejd&ejejd'ejfd(d) Zd*d+ Zejd,d-d.gd/d0 Zd1d2 Zd3d4 Zd'S )5TestLocWithMultiIndexzkeys, expectedr   r    )r   r   r    r    )rP   r2   rP   r2   )r    r    r   r   rP   r2   )r2   rP   r2   rP   r>   )r>   r    r    )rP   r2   rP   dimrn   rm   c                 C   s   |g dg dgi}t tdddfi |}t|}|dkr4|j|d d f }t|j	| d S |dkrJ|jd d |f }t|j
| d S d S )N)r>   r    r    r   r   )rP   rP   r2   rP   r2      rX   rn   rm   )r   ro   rp   reshaper   r;  r#   r$   assert_index_equalrn   rm   )r;   r  keysr,   kwargsr+   	exp_indexr   r-   r-   r.   'test_loc_getitem_multilevel_index_order  s   
z=TestLocWithMultiIndex.test_loc_getitem_multilevel_index_orderc                 C   s   |}|j d }|d j d }|jj|jjdd  ksJ |jj|jjdd  ks*J |j d }|d j d }|jj|jjd ksBJ |jj|jjd ksNJ d S )N  r"   rP   )r  r2   r2   )r#   rn   r/  r   )r;   /multiindex_year_month_day_dataframe_random_data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   rP   r   )r   from_productr   r#   r$   r   r   )r;   r>  r_  r   r,   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 sJ tdgddgg}t d gt| t|d}|jd }|d u s9J t dgt| t|d}|jd }|dksPJ d S )	NLevel1Level2)r  r  Level2_aLevel2_br  )r  r  rP   )r   r   r;  r#   r  r   r   )r;   r_  r   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   r}  r}  r   r   rb  rb  )rh  tworh  r  rh  r  rh  r  firstsecondr.  )rP   rP   rP   rP   rP   rP   rP   rP   r   r   )r}  rh  )r   r  )rP   rP   r   r   r   r   rP   rP   )r   rD  r  r   r#   r$   r   )r;   rn   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  10minr  r  r  il  rP   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 )NrS   r   z
2010-01-01z
2010-01-10r   z
2010-01-05r    r   r   rW   )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  bahbamr  r  r  r"   rw   r.  r   rP   r   r2   rQ   rT         @rW         @rX         @rU   r   r  r   r   )level)r   rP   rW   rl   r  )r   rD  r   r  r  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 g ddd}d|jd< t g ddd}t|| d S )Nr   categoryr   r   rT   )r    r   r>   r   r   rH  r;   r   r,   r-   r-   r.   1test_additional_element_to_categorical_series_loc0     
zGTestLocWithMultiIndex.test_additional_element_to_categorical_series_locc                 C   s:   t g ddd}d|jd< t g ddd}t|| d S )Nr   r  r   r    rT   r    r   r>   r    rH  r  r-   r-   r.   'test_additional_categorical_element_loc7  r  z=TestLocWithMultiIndex.test_additional_categorical_element_locc                 C   s   t g dttg d|dd}tj|jd< t dddtjgttg d|dd}t|| tj|jd< t dtjdtjgttg d|dd}t|| d S )Nrs   r   rT   rP   r2   )r   r
   r   ro   r<  r#   r$   r   )r;   any_numeric_ea_dtypesrsr,   r-   r-   r.   &test_loc_set_nan_in_categorical_series>  s    z<TestLocWithMultiIndex.test_loc_set_nan_in_categorical_seriesnaNc                 C   sd   t g ddd}||jd< t g ddd}||jd< t|| t ddd|gdd}t|| d S )	Nr   r  r   rT   r  r    r   r>   rH  )r;   r  srs_enlarge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 )Nr2      r    r   rS   r   rX   rP   Index1Index2)r=  codesr/  )rx   rn   Fr  )r  orderedr   r   )r   ro   rp   r   r   r   rn   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_valuer[   rS   c                 C   s~   t dg ditdg dgd}tjtdd |j|d |k d d f jdgd d f  W d    d S 1 s8w   Y  d S )	Nr    )r     "   -   aabbr   rP   r2   rT   r   z\['b'\] not in indexr   r   )r   r   r   r   r9   r#   )r;   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   r}  r   rP   r   )	ro   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xyrP   r2   )r  r  numr.  rf   r   r    r   rW   )
r   r  r   r   r   r#   rn   	droplevelr$   r  )r;   r>  r_  
loc_resultr,   r-   r-   r.   test_loc_drops_level  s   z*TestLocWithMultiIndex.test_loc_drops_level)r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  ro   r<  r|   NAr}   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g d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 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   rP   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   rP   r   rT   r   r   r#   r$   r   r;   r_  r-   r-   r.   test_loc_setitem_empty_series  
   


 z9TestLocSetitemWithExpansion.test_loc_setitem_empty_seriesc                 C   sV   t td}d|jd< t|t dgdgd d|jd< t|t ddgddgd d S )Nr   r   rP   r   rQ   rT   r  r  r-   r-   r.   #test_loc_setitem_empty_series_float  r  z?TestLocSetitemWithExpansion.test_loc_setitem_empty_series_floatc                 C   s|   t td}d|jd< t|t dg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   rP   r   r   rT   r   rW   )rP   rT   rW   )r   r   rT   r  r  r-   r-   r.   %test_loc_setitem_empty_series_str_idx  s   



 zATestLocSetitemWithExpansion.test_loc_setitem_empty_series_str_idxc                    sn   t dddtdd  fddtdD }td	g|d	 gd
}|D ]}d|j|< q!td|d
}t|| d S )Nr   r  rP   
US/Pacific)tzinfoc                    s   g | ]} t |d  d qS )r  )seconds)r   rh  baser-   r.   r     r  zUTestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dst.<locals>.<listcomp>   r   r   )r   r   r   r   r#   r$   r   )r;   idxsr   rE   r,   r-   r  r.   %test_loc_setitem_incremental_with_dst  s   zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstconvc                 C      | S r_   r-   r  r-   r-   r.   r	        z$TestLocSetitemWithExpansion.<lambda>c                 C      |   S r_   )to_datetime64r  r-   r-   r.   r	    r
  c                 C   r  r_   )to_pydatetimer  r-   r-   r.   r	    r
  c                 C   s
   t | S r_   )ro   rJ  r  r-   r-   r.   r	       
 )r;   r  r  znp.datetime64)idsc                 C   sb   t d}t d}t }d|j||df< d|j||df< tdddgi||gd}t|| d S )	Nz20130101 09:00:00z20130101 10:00:00r   rh  ri   g      Y@g      i@r   )r   r   r#   r$   r%   )r;   r  dt1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"   rP   r   )r  rw   rz   )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&  )	inclusiver  r   r   r  r[  )r   r   r   r#   ro   r<  r   appendr   r   r$   r%   )r;   r
  endrE   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 d    n1 sIw   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   )rx   rm   newoldnew_colr  r  zmismatched timezoner   r   )rP   r   r   1s)r   r   r   rn   r  r   r  
tz_convertr   r$   r   r"  r#   r   r   r   )r;   r+   vr   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 )NrP   rv  r2   )rP   rP   rT   r   )r   r#   ro   infrm   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s(J |t ||}t|t	r@|d d |ks?J n|d |ksHJ 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 )	Nr2   r   r   kapowr   rP   r   rP   r   )r   repeatro   rp   r   r  r   insertr   r   r   r   r#   r$   r%   r   r   r<  r^  )r;   rn   NarrorigrM   r  exp_datar,   r+   r_  r-   r-   r.   /test_loc_setitem_with_expansion_nonunique_index  s8   


&zKTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_nonunique_indexr   )Int32Int64UInt32UInt64Float32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   rx   r   )r   r   rn   r#   r$   r%   r  )r;   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)r   r   r   r   r   slowr  r  r  r  r  r   r  r  r  r  r  ro  r   r  r-   r-   r-   r.   r    s6    







-r  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestLocCallablec                 C   sx  t g dtdg dd}|jdd  }t||j|jdk  |jdd d d f }t||j|jdkd d f  |jd	d d
d f }t||j|jdkg df  |jdd dd f }t||j|jdkdf  |jdd dd f }t||j|jdkddgf  |jdd dd f }t||j|jdkddgf  |jdd dd f }||jd ksJ d S )NrP   r2   rT   rW   r  r   c                 S   
   | j dkS Nr2   r"   r  r-   r-   r.   r	  c  r  zATestLocCallable.test_frame_loc_getitem_callable.<locals>.<lambda>r2   c                 S   
   | j dkS )Nr   )rw   r  r-   r-   r.   r	  f  r  r   c                 S   r  r  r  r  r-   r-   r.   r	  i  r  c                 S   r  Nrw   r   r  r-   r-   r.   r	  i  r  )FTFc                 S   r  r  r  r  r-   r-   r.   r	  l  r  c                 S      dS r  r-   r  r-   r-   r.   r	  l  r  rw   c                 S   r  r  r  r  r-   r-   r.   r	  o  r  c                 S      ddgS Nr"   rw   r-   r  r-   r-   r.   r	  o  r
  r"   c                 S   r  r  r  r  r-   r-   r.   r	  r  r  c                 S   r  r  r-   r  r-   r-   r.   r	  r  r
  c                 S   r  )NrP   r-   r  r-   r-   r.   r	  v  r  c                 S   r  r!   r-   r  r-   r-   r.   r	  v  r  rS  )r   r   r#   r$   r%   r"   rw   r   r;   r+   r   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 )Nr
  r  r   c                 S   r  r  r  r  r-   r-   r.   r	  }  r  zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r"   rw   r2   rT   c                 S   r  r  r-   r  r-   r-   r.   r	    r
  c                 S   r  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 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 )Nr
  r  XrB  ru  r   c                 S   r  Nr"   r   r-   r  r-   r-   r.   r	    r
  zHTestLocCallable.test_frame_loc_getitem_callable_labels.<locals>.<lambda>r"   r   c                 S   r  r  r-   r  r-   r-   r.   r	    r
  c                 S   r  r  r-   r  r-   r-   r.   r	    r
  c                 S   r  Nr  r-   r  r-   r-   r.   r	    r  r  c                 S   r  r  r-   r  r-   r-   r.   r	    r
  c                 S      dgS r  r-   r  r-   r-   r.   r	        c                 S   r  r  r-   r  r-   r-   r.   r	    r  c                 S   r  r  r-   r  r-   r-   r.   r	    r  c                 S   r  r  r-   r  r-   r-   r.   r	    r
  c                 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_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 )Nr
  r  r  ru  r   ic                 S   r  r  r-   r  r-   r-   r.   r	    r
  zATestLocCallable.test_frame_loc_setitem_callable.<locals>.<lambda>r"   r   rG   c                 S   r  r  r-   r  r-   r-   r.   r	    r
  r   c                 S   r  r  r-   r  r-   r-   r.   r	    r
  c                 S   r  r  r-   r  r-   r-   r.   r	    r  r  rX   rS   c                 S   r  r  r-   r  r-   r-   r.   r	    r
  c                 S   r  r  r-   r  r-   r-   r.   r	    r  r   c                 S   r  r  r-   r  r-   r-   r.   r	    r  c                 S   r  r  r-   r  r-   r-   r.   r	    r  c                 S   r  r  r-   r  r-   r-   r.   r	    r
  c                 S   r  r  r-   r  r-   r-   r.   r	    r
  )r   r   r   r#   r$   r%   ro   r   )r;   r+   r   r   r-   r-   r.   test_frame_loc_setitem_callable  sR    z/TestLocCallable.test_frame_loc_setitem_callableN)r   r   r   r  r  r  r  r-   r-   r-   r.   r	  \  s
    r	  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   rs   )rj   rk   )
2020-08-01z
2020-07-02
2020-08-05r   r    r>   rP   rT   r   r!  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-01rC  r
  r  r  z2017-12r   )r|   period_range	to_seriesr#   r   r$   r   )r;   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1Hr%  z1 daysr   )r   r'  r#   r   r$   r   )r;   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   rT   daysr  r   r   0 days)r   r   r   r   r#   r$   r   )r;   r+   r,   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 )NrP   rX   z
2019-12-30z
2020-01-01z
2019-12-25r3  z
2019-12-19r  r   r2   )r   r   r   r$   r   r#   )r;   tz_aware_fixturer2  r  r   r,   r   r   r-   r-   r.   /test_loc_getitem_partial_slice_non_monotonicity 	  s4   


zHTestPartialStringSlicing.test_loc_getitem_partial_slice_non_monotonicity)r   r   r   r"  r)  r-  r1  r   r   r   r5  r-   r-   r-   r.   r    s    r  c                
   @   s   e Zd Zdd Zdd Zejdej	dddd	e
d
ddd	gdd Zdd Zdd Zejdedddeddgeddeddeddgdeddeddggdd Zejd d!d"gd#d$ Zejd%dd&gd'd( Zd)d* ZdS )+TestLabelSlicingc                 C   s  t tjddddd dD d}t tjdddd	d d
D d}||fD ]c}|jtddddd  }t|| |jd tdddd }t|| |jtddddtdddd }t|| |jtddddd  }|jdd  }t|| |jdd  }t|| q$d S )Nr  r   r   c                 S      g | ]
}t d d|ddqS   rP   rS   r   r   rh  r-   r-   r.   r   ,	      zMTestLabelSlicing.test_loc_getitem_slicing_datetimes_frame.<locals>.<listcomp>r
  r   r  c                 S   r7  r8  r:  rh  r-   r-   r.   r   2	  r;  )rP   r2   r2   rT   rW   r9  rP   rS   rW   r  z20010101 11)r   ro   rp   r#   r   r$   r%   r   )r;   	df_unique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sAJ d S )Nz2017-10-29 01:30:00zEurope/BerlinrX   z30 min)r'  r  r  )r   rP   r2   rT   rW   r   z2017-10-29 02:30:00+02:00r  z2017-10-29 02:00:00+01:00r2   rT   rW   )r   r   r   r#   r$   r   )r;   r  series2t_1t_2r   r,   r-   r-   r.   'test_loc_getitem_label_slice_across_dstC	  s   z8TestLabelSlicing.test_loc_getitem_label_slice_across_dstrn   r#  r$  rC  r%  r*  r+  r,  c                 C   s8   |  }|jd |d  }|jd d }t|| d S )Nr   r   )r'  r#   r   r$   r   )r;   rn   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|   g d}t tjdd|d}|jdd }t|dksJ |jdd }t|dks-J |jdd }t|dks<J d S )	N)gx"p|@g\Va|@g|@rT   r2   r   g3333c|@g    |@g3333|@g|@)r   ro   r   r  r#   r   )r;   rn   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J t|jdd  dks*J tjddtd}d	|d
< ||_t|jdd  dksFJ t|jdd  dksSJ d S )NrS   rG   r   r   g      (@rf   g      )@rV   gffffff(@r2   )	r   ro   r   r  rp   r^  r   r#   rn   )r;   r_  r  r-   r-   r.   )test_loc_getitem_float_slice_float64indexo	  s    z:TestLabelSlicing.test_loc_getitem_float_slice_float64indexzstart,stop, expected_slicer   nsNr  rP   r  rU   rV   rW   rX   c                 C   s>   t tdtdd}|jt|| }|j| }t|| d S )Nr  r/  z10 days)r   r   r   r#   r   r   r$   r   )r;   r
  stopexpected_slicer_  r   r,   r-   r-   r.   $test_loc_getitem_slice_label_td64obj{	  s   

z5TestLabelSlicing.test_loc_getitem_slice_label_td64objr
  20182020c                 C   s`   |g dt dt dt dgd}tt |j|d  W d    d S 1 s)w   Y  d S )Nrs   201620192017r   r   )r   r$   r   r"  r#   )r;   r  r
  r   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 )NrW   r  r2   thirdr   )r   r#   r$   r   )r;   r  r   r   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 )	NrP   r2   rT   )testrP   r2   r   r   r   )rx   rn   rm   )r   r   r   r$   r%   r#   rq   r-   r-   r.   *test_loc_getitem_slice_columns_mixed_dtype	  s
   "z;TestLabelSlicing.test_loc_getitem_slice_columns_mixed_dtype)r   r   r   r>  rB  r   r   r   r|   r&  r   rC  rE  rF  ro   rK  r   rJ  rP  rR  rT  r-   r-   r-   r.   r6  %	  s2    



r6  c                   @   sH   e Zd Zejdddgdd Zejdddgdd Zdd	 Zd
S )TestLocBooleanLabelsAndSlices
bool_valueTFc                 C   sb   | d}|j dkr/||dd}tjt|d |j|  W d    d S 1 s(w   Y  d S d S )Nz7: boolean label can not be used without a boolean indexr  r   r  r   )inferred_typer   r   r9   r#   )r;   rn   r  rV  messager   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  rV  r   r-   r-   r.   test_loc_bool_should_not_raise	  s   z<TestLocBooleanLabelsAndSlices.test_loc_bool_should_not_raisec                 C   sR   d}||dd}t jt|d |jdd  W d    d S 1 s"w   Y  d S )NzEslice\(True, False, None\): boolean values can not be used in a slicer   r  r   TF)r   r   r   r#   )r;   rn   r  rX  r   r-   r-   r.   test_loc_bool_slice_raises	  s   "z8TestLocBooleanLabelsAndSlices.test_loc_bool_slice_raisesN)	r   r   r   r   r   r   rY  rZ  r[  r-   r-   r-   r.   rU  	  s    


rU  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}g dg dg dg}t||D ]$\}}| }d|j|df< t |ttddddgd	d
}t|| q2d S )Nr   rS   r   r  rT   )
r   rP   r2   rT   rS   rS   rS   rS   rS   rS   )
r   rP   r2   rS   rW   rX   rU   rV   rf   r  )
rS   rS   rS   rT   rW   rX   rU   rV   rf   r  r  r[  )	r   r   r   rn   r  r   r#   r$   r%   )r;   r+   
conditionsexpected_datacondrx   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 )Nra   20010101rW   r  r'  r    r   r   )
ro   r   r   r   rp   r   r   r#   r$   r%   )r;   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  rT   r2   ABr  r,  )r  r  rl   r   r   rP   )r   ro   rp   r  r   r   r   rn   r|   r}   r"   r#   r$   r%   )r;   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s8J t|| d S )Nr   l   ,GsO1colrP   TF)	r   r   r   r   r   r   r#   r$   r%   )r;   td1td2r+   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   rw   rP   )r   r#   r~   r$   r%   )r;   r  r,   r  r-   r-   r.   #test_loc_setitem_boolean_and_column
  s
   z6TestLocBooleanMask.test_loc_setitem_boolean_and_columnc                 C   sR  t g dg dd}t dg dig dd|jg ddgf< t g d	g dd}t|| t g dg dd}tg d
g dd|jg ddgf< t|| t g dg dd}tg d
g dd|jg ddf< t|| t g dg dd}| }|d }tg d
g dd|jg d< |rt|| d S t|| d S )Nrs   rC  r   r    r   )r2   rP   r   r   )FFT)rP   r2   rS   r  )r   r#   r$   r%   r   r   )r;   r  r+   r,   r   r_  r-   r-   r.   )test_loc_setitem_ndframe_values_alignment
  s&   $"z<TestLocBooleanMask.test_loc_setitem_ndframe_values_alignment)r   r   r   r`  r   r   r   rc  re  rj  rq  skip_array_manager_invalid_testrk  rl  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   r  r_   r-   r  r-   r-   r.   r	  0
  r  zTestLocListlike.<lambda>c                 C   sL  t ddtjg}ttd|d}|j|| }t|| ||| }t|| | j|| }t	||  |d d }|dd  }d}t
jt|d |j||  W d    n1 saw   Y  t
jt|d |||  W d    n1 s~w   Y  t
jt|d | j||  W d    d S 1 sw   Y  d S )	Nr"   rw   rT   r   r   rP   r   r   )r   ro   r<  r   r   r#   r$   r   rw  r%   r   r   r9   )r;   r  cir_  r   ser2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   sh   t jg ddd}tg dtdddd}tjtd	d
 |j|  W d    d S 1 s-w   Y  d S )N)
2001-01-04z
2001-01-02rs  z
2001-01-14rJ  r   )r2   rX   rf   r  z
2001-01-01r  rW   r  r   r   )ro   r   r   r   r   r   r9   r#   )r;   rM   r_  r-   r-   r.   1test_loc_getitem_series_label_list_missing_valuesL
  s   "zATestLocListlike.test_loc_getitem_series_label_list_missing_valuesc                 C   sh   t tddgtddgd}tjtdd |jtddg  W d    d S 1 s-w   Y  d S )Nl   PF
AHl   UBeNl   P2$$nrn   rx   r   r   l   NZ4FG)r   ro   r   r   r   r9   r#   r  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   sV  t ddddd}|r|d}tddg|dd	}tdtdg}|r)d
d |D }|j| }tddg|dd	}|s@|jd |_tj||dd tdtdtdg}|r\dd |D }tg dt	|d|j
ddd	}|j| }tj||dd tdtdtdg}|rdd |D }tjtdd |j|  W d    d S 1 sw   Y  d S )N
2011-01-01z
2011-01-02r  r  )r  r   皙?皙?r   r   c                 S      g | ]}| d qS r  rw  r   r-   r-   r.   r   i
      zRTestLocListlike.test_loc_getitem_listlike_of_datetimelike_keys.<locals>.<listcomp>T)r  c                 S   r{  r|  r}  r   r-   r-   r.   r   v
  r~  )rz  rz  ry  )r   r   
2011-01-03c                 S   r{  r|  r}  r   r-   r-   r.   r   
  r~  r   r   )r   rw  r   r   r#   rn   r  r$   r   r   r   r   r   r9   )r;   rw  r  r_  r  r   r   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 )NrP   r2   rW   rX   rV   rf   )cobraviper
sidewinder	max_speedshieldr   r   r  r  r   )r   r   rn   r   r#   r   r$   r%   r   r-   r-   r.   test_loc_named_index
  s   z$TestLocListlike.test_loc_named_indexN)r   r   r   r   r   r   ro   asarrayr   rr  rt  rv  r  r  r-   r-   r-   r.   rn  /
  s    
		
)rn  z%columns, column_key, expected_columns)  r  i  r  r  rP   )r  r  Allr  r2   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 )NrT   rd  rl   r   T)r  )	r   ro   r   r  r   r   r#   r$   r%   )rm   
column_key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 )Nrf   rW   r  rP   )r   r   r   rQ   r  r   )ro   r   rw  r   r<  r#   hstackr   r  r$   r%   )	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 ))rV   rf   r  rS   r-   )r   yrrE  r-   r-   r.   r   
  r  z)test_loc_axis_1_slice.<locals>.<listcomp>)  r   )rS   rf   
ABCDEFGHIJr   rP   r  r  r  r   rf   r  )r  )r  rS   )r   rV   r  )	r   ro   r  rf  r   rD  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    r2   r   r   r  )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sJ d S )Nr2   rP   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 s!w   Y  t g dg dd}t| | d S )NrW   r  r   r2   rT   )r2   r2   r2   rT   )r   r   r$   r   r"  r#   r   )r_  r,   r-   r-   r.   *test_loc_with_positional_slice_deprecation
  s   r  c               	   C   s0  t ddd} ttjd| d}|d }d}||fD ]<}tjt|d |jd	d  W d    n1 s5w   Y  t	t
 d	|jd	d< W d    n1 sQw   Y  qtjt|d |jd	dd	f  W d    n1 srw   Y  t	t
 d
|jd	dd	f< W d    d S 1 sw   Y  d S )Nz
2016-01-01rT   r  )rT   r2   r   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intr   rP   r2   )r   r   ro   r   r   r   r   r#   r$   r   r"  )dtir+   r_  r   r   r-   r-   r.   #test_loc_slice_disallows_positional
  s&   "r  c                  C   s   t tjddg dtddddd} | jg d  } | j}t	|j
}d	}tjt|d
 | j|  W d    n1 s>w   Y  tjt|d
 | d j|  W d    d S 1 s]w   Y  d S )NrX   rT   r   2012r&  r  rl   )r   r2   r2   rT   z/None of \[TimedeltaIndex.* are in the \[index\]r   r    )r   ro   r   rw  r   r   r   rn   r|   TimedeltaIndexasi8r   r   r9   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-12rC  r  r,  rS   r   r   rX   )r|   r&  r   ro   r   rw  r$   r%   r#   r   r   )r  r+   r-   r-   r.   "test_loc_with_period_index_indexer  s   $r  c                  C   sv   t jdd} tddd}g d}t| ||d}t j|j|jd df< t j| d d	d
< t| ||d}t	|| d S )Nrf   rU   r  r  )r"   rw   r   r  EFr   rP   rz   r   r2   )
ro   r   rw  r   r   r<  r#   rn   r$   r%   )r  r  r   r   r   r-   r-   r.   %test_loc_setitem_multiindex_timestamp  s   r  c                  C   s0  g d} ddg}ddg}t j| ||gg dd}tdtd	|d
}|jd d | d |d |d ff }|jd d d df }t|| |j| d |d |d fg ddd}t|| |jd }|jd d }	|j| d |d |d fg ddd}
t	|
|	 |j| d |d |d f }|dksJ d S )Nr   r  )rP   r   r   rP   )r   r%  r  r.  rU   rX   r   rO   )r  r  )
r   r  r   r   r#   r   r$   r%   xsr   )r  r  lev3r   r+   r   r,   altr_  	expected2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s'J |jd }t	dd	g|j
ddd
}t|| |jt|_|jd }t|| d S )Nr
  )rX   rU   rV   rf   rP   r2   r   r  )rx   rm   r   r>   rX   rz  )r   ro   r   r<  Tr   rn   r   r#   r   rm   r$   r   r   r   )r+   r   r   r,   r-   r-   r.   /test_loc_getitem_nullable_index_with_duplicatesI  s   $


r  r   r   c                 C   sB   t g ddgdd}| |jd< t g ddgdd}t|| d S )Nr
  rj   uint8r  )r2   rj   )rP   r2   r   rW   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/Easternr  zdatetime64[ns, US/Eastern]c                 C   sj   ddd|   g}t|| j|d}tg ddg|d}d|jd	< |d
 t||d}tj|j|dd d S )Nz
2022-01-02z
2022-01-03z
2022-01-04)r'  r   )rS   r  r  r+  r    rl   r  )
2022-01-08r    r  r   T)exact)	r   r   r'  r   r#   r  r$   r  rn   )fill_val	exp_dtyperx   rn   r+   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abcrX   rj   r    r   r>   )r   rP   r2   rj   )r   r   r#   r$   r%   )r+   r,   r-   r-   r.   test_loc_set_int_dtype|  s   r  c                  C   sr   t g dddd} tg dg dg dg dg| g d	d
}|jddgddd }|j| d ddf dks7J d S )N)z20181101 1100z20181101 1200z20181102 1300z20181102 1400r   rw   )r   r  )r"   rw   r   )r"   r   r   )r  QrQ   )Wr  r  )ONETWOVALUESr   r  r  T)r  r  r   r"   r   )r   r   r   r#   )p_index	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g ddd Zejdedddf dedfgd d! Zd"d# Zejd$d%d&gd'd( Zejd)d* Zd+d, Zd-d. Zd/d0 Z dS )1TestLocSeriesr  )r  rT   )r  rW   c                 C   s$   t ddd}|j| |ksJ d S )NrT   rW   )r  r  )r   r#   )r;   r  r,   r_  r-   r-   r.   r    s   zTestLocSeries.test_loc_uint64c           	      C   s   |j g d }t|j| || t|jdd d |dd d  |j ddg \}}|j|| }|||}t|| || k}t|j| ||  |j| || ks\J |j| || ksgJ d S )NrT   rW   rV   rX   r2      )rn   r$   r   r#   rl  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/w   Y  tjt|d d|j||< W d    d S 1 sNw   Y  d S )NrX   r  r2   )rP   r2   r   z"Timestamp\('2000-01-10 00:00:00'\)r   r   )rn   r   r   r9   r#   )r;   r  r  r  ts2r   r-   r-   r.   test_loc_getitem_not_monotonic  s   "z,TestLocSeries.test_loc_getitem_not_monotonicc                 C   sd  t tjdttdddd}| }d|jdd< |jdd dk s(J | }d|jdd< |jdd dkj	 sAJ |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 sw   Y  tjtdd d|j
dd< W d    d S 1 sw   Y  d S )NrS   r   rG   r2   r   rW   rT   r  rU   )rW   rU   rf   rS   rX   r  r   z^3$r   )r   ro   r   rw  r   r   r   r   r  r~   r#   rl  r$   r   r   r   r9   )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 )NrS   )rs  rn   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   sd   t |jg d }d|j|< d}tjt|d d|j|dg < W d    d S 1 s+w   Y  d S )N)rX   rf   r  rX   z\['foo'\] not in indexr   r   )r   rn   r#   r   r   r9   )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)rX   rS   r  r   r2   )rn   r   r#   r$   r   )r;   r  indicesr  r   r-   r-   r.   test_basic_setitem_with_labels  s   
z,TestLocSeries.test_basic_setitem_with_labelsc           	      C   s  t tjdttdddd}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 slw   Y  tjt|d	 d||< W d    d S 1 sw   Y  d S )
NrS   r   rG   r2   r   )r   rW   rU   r   rW   rX   rU   z\[5\] not in indexr   )r   ro   r   rw  r   r   r   r   r#   r$   r   r   r   r9   	Exception)	r;   r_  r  arr_indsr  r   inds_notfound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s'J | }||jd
< |jd
 }||ks;J | }||d	< |d	 }||ksMJ d S )Nrx  rT   r  rb  r   r   r  r  r    r   )r   r   r   r   r#   r   )r;   r_  r  r,   r   r-   r-   r.   test_loc_setitem_dt64tz_values  s"   



z,TestLocSeries.test_loc_setitem_dt64tz_valuesarray_fnr  r  c                 C   s~   |dg| }t |ddddgtdtd}t dtdtd}||jd< t|| t dtdtd}||jd< t|| d S )Nr   abcder  r    )r   r   r   r#   r$   r   r   )r;   r  r  r  r,   r_  r-   r-   r.   #test_loc_iloc_setitem_with_listlike*  s   

z1TestLocSeries.test_loc_iloc_setitem_with_listliker   r"   Nc                 C   s   t tg dg dd}d}tjt|d |j|d d f  W d    n1 s*w   Y  tjt|d d|j|d d f< W d    d S 1 sKw   Y  d S )N))r"   0)r"   1)rw   r  )   r  r  ru  r~  r   rP   )r   r   rD  r   r   r   r#   )r;   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 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saJ || dksiJ d S )Nr  rX   rS   r  rU   r  rW   )rn   r   r#   r$   r   r   )r;   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  defghijklrz   r   newAnewBr   r  )r;   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   r   rU   r   r  r   )r   r   rP   rl   )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 )NrP   r2   r    r   rU   rV   r   r>   r   r   r   r   )r   r#   r   ro   r<  r$   r%   rq   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sJ d S )N2000rG   rw   r	  r   z
2000-01-14r  )r|   r&  r   r   r#   )r;   rn   r(   r-   r-   r.    test_getitem_loc_str_periodindex  s   z.TestLocSeries.test_getitem_loc_str_periodindexc                 C   sz   t t. tddd}t|ddgd}tddgtj	}||j
d d df< W d    d S 1 s6w   Y  d S )NrW   r2   r    r   r   rS   r  )r$   r   r   ro   rp   r  r   r   r   int16r#   )r;   r~   r+   r  r-   r-   r.   $test_deprecation_warnings_raised_loc  s   "z2TestLocSeries.test_deprecation_warnings_raised_loc)!r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  ro   r   r|   r   rf  r  r   r   r  r  r  rq  rm  r  r  r  r  r-   r-   r-   r.   r    s2    
	$

	

r  )T__doc__collectionsr   r   r   r   r   r   dateutil.tzr   numpyro   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsrq  pandasr|   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr$   pandas.api.typesr   pandas.core.apir   pandas.core.indexingr   pandas.tests.indexing.commonr   r   r   r<  r/   r0   r   rt  r  r  r	  r  r6  rU  r\  rn  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-   r-   r-   r.   <module>   s    P 
	 %           < w DJnf
	




	