a
    du                 	   @   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/ ej01dej2ej2dgdej2ej2gg dgej2dgdej2gddgggdd Z3G dd dZ4G dd dZ5G dd dZ6G dd dZ7G dd dZ8G dd dZ9G dd  d Z:G d!d" d"Z;G d#d$ d$Z<G d%d& d&Z=G d'd( d(Z>ej01d)g d*d+d,gdd-gfg d.d+d,gdd-gfg d.d+d/gdd0gfgd1d2 Z?d3d4 Z@d5d6 ZAd7d8 ZBd9d: ZCd;d< ZDd=d> ZEd?d@ ZFdAdB ZGdCdD ZHdEdF ZIdGdH ZJej01dIdJeKdJeLdJgdKdL ZMej01dMe"dNdOfe"dPdQdRdSfgdTdU ZNdVdW ZOej0PdXej0PdYdZd[ ZQd\d] 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)_one_ellipsis_message)"check_indexing_smoketest_or_raisesz 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isnaZnotna)seriesZ
new_seriesZexpected_serdfexpected r)   g/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/indexing/test_loc.pytest_not_change_nan_loc-   s
    	r+   c                   @   s  e Zd Zdd Zejdddgdd Zejdddg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ejdddgdd Z	ejdg dg dgg dg dggejddd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ejdddgd"d# Zejd$d%d&gejdddgd'd( Zd)d* Zejdddgd+d, Zejd-edd.g d/deged0d1dgdeged2d3d4gdeged2d3d4gdeged2d5d2d4gdeggejdddgd6d7 Zd8d9 Zd:d; Zejd<edgged=gd>eddd=f edgd=d?fedged=gd@d=dgfedgged=gd@d=edgd=d?fgdAdB ZdS )CTestLocc                 C   s*   t g ddgdd}|jd d u s&J d S )N)12Nr   strcolumnsdtype)   r   )r   r"   selfr'   r)   r)   r*   "test_none_values_on_string_columns>   s    z*TestLoc.test_none_values_on_string_columnskindr&   framec                 C   s$   | | d}t|ddtd d S )NZ_labelsr"   r3   failsgetfixturevaluer   KeyErrorr5   r7   requestobjr)   r)   r*   test_loc_getitem_intD   s    zTestLoc.test_loc_getitem_intc                 C   s$   | | d}t|ddtd d S )N_emptyr"   cr9   r;   r>   r)   r)   r*   test_loc_getitem_labelJ   s    zTestLoc.test_loc_getitem_labelzkey, typs, axesf)intsuintslabelsmixedtsNfloats   )rF   rG   rI   rH   rJ   r   c                 C   s4   |D ]*}| | d| }t|d||td qd S N_r"   axesr:   r;   r5   keytypsrP   r7   r?   typr@   r)   r)   r*   #test_loc_getitem_label_out_of_rangeP   s
    
z+TestLoc.test_loc_getitem_label_out_of_rangez	key, typsr      r3   )rF   rG   rK   )rW         @r!   c                 C   s2   |D ](}| | d| }t|d|td qd S )NrN   r"   r9   r;   )r5   rR   rS   r7   r?   rT   r@   r)   r)   r*   test_loc_getitem_label_listd   s    	z#TestLoc.test_loc_getitem_label_listempty)r   r3   
   )         rW   ))rW   r\   )rW      )r3      Zmultic                 C   s4   |D ]*}| | d| }t|d||td qd S rM   r;   rQ   r)   r)   r*   (test_loc_getitem_label_list_with_missingr   s
    
z0TestLoc.test_loc_getitem_label_list_with_missingrS   rF   rG   c                 C   s.   | | d| }t|dg ddtd d S )NrN   r"   )rL      (   rW   rO   r;   )r5   rS   r7   r?   r@   r)   r)   r*   !test_loc_getitem_label_list_fails   s    z)TestLoc.test_loc_getitem_label_list_failsc                 C   s   d S Nr)   r5   r)   r)   r*   !test_loc_getitem_label_array_like   s    z)TestLoc.test_loc_getitem_label_array_likec                 C   s,   | | d}g d}t|d|td d S )NrB   TFTFr"   r9   )r<   r   
IndexError)r5   r7   r?   r@   r   r)   r)   r*   test_loc_getitem_bool   s    zTestLoc.test_loc_getitem_boolzslc, typs, axes, failsr\   )rH   rI   rZ   rJ   rK   Z20130102Z20130104r3      rI   r_   c           	      C   s4   |D ]*}| | d| }t|d|||d qd S rM   )r<   r   )	r5   ZslcrS   rP   r:   r7   r?   rT   r@   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 )NrL   r      col1col2)r[   rW   rW   r1   indexr3   )rW   rn   r   rW   )r   nparanger"   r#   r$   r5   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rW   r3   r\   String 1String 2z2019-06-11 11:00:00z2019-06-11 12:00:00)Zchannelr!   B)dataString 3r!   ry   r!   ry   )rw   r{   rx   )r   rr   nanr   pdNaTvaluesr"   r%   r#   r$   )r5   r'   df2r(   r)   r)   r*   test_column_types_consistent   s.    
z$TestLoc.test_column_types_consistentzobj, key, expFr1   namerq   c                 C   s6   |j | }t|ttfr&t|| n||ks2J d S re   )r"   
isinstancer   r   r#   assert_equal)r5   r@   rR   expresr)   r)   r*   #test_loc_getitem_single_boolean_arg   s    
z+TestLoc.test_loc_getitem_single_boolean_arg)__name__
__module____qualname__r6   pytestmarkparametrizerA   rD   rU   rY   ra   rd   rg   rj   slice	TypeErrorr=   rl   ru   r   r   r   r   r   r   r)   r)   r)   r*   r,   =   s   







$r,   c                   @   s  e Zd Zdd Zejddedddffdedd	dffd
edddffdededdffdeddd	ffdeddedffdedddffgdd Zdd Z	dd Z
dd Zdd Zdd Zd d! Zd"d# Zejd$d%d&g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;dd Z<dd Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGejdg dejdejejHeIgdd ZJdd ZKdd ZLdd ZMejd`ddgddń ZNejdeOejePeQgddȄ ZRddʄ ZSejddePdogfdePdhgfgddτ ZTddф ZUejdd;g dӢfe-dmdrg dԢfdldtgg dբfgddׄ ZVddل ZWddۄ ZXdd݄ ZYejdddggdd ZZdd Z[ejddadagdae-dbfgdd Z\dd Z]dd Z^dd Z_dd Z`dd Zaejdddgdd Zbdd Zcdd Zddd Zedd Zfdd ZgdbS (   TestLocBaseIndependentc                 C   sH   t tddd}|jtdgd d  }|jdd  }t|| d S )NZ20212022r   z2021/6/1r      )r   r   r"   rr   arrayilocr#   r$   r5   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   n1 sz0    Y  dS )a(  
        parse_datetime_string_with_reso return parameter if type not matched.
        PeriodIndex.get_loc takes returned value from parse_datetime_string_with_reso
        as a tuple.
        If first argument is Period and a tuple has 3 items,
        process go on not raise exception
        r   x1Zx2r   r   r   r   r   r   rv   r[   rL   rb   )r!   ry   CZV1ZV2r!   ry   r   matchN)r   r   	set_indexr   raisesr=   r"   )r5   msgrR   r'   r)   r)   r*   ;test_contains_raise_error_if_period_index_is_in_multi_index  s    	zRTestLocBaseIndependent.test_contains_raise_error_if_period_index_is_in_multi_indexc                 C   sR   t ddgi}tjtdd" |jd d df  W d    n1 sD0    Y  d S )Nr   rW   u   אr   )r   r   r   r=   r"   r4   r)   r)   r*   $test_loc_getitem_missing_unicode_key+  s    z;TestLocBaseIndependent.test_loc_getitem_missing_unicode_keyc                 C   sZ   t tjdddd tdD d}|jd }|jd d df jd	 }t|| d S )
Nr3   )rL   r`   c                 S   s   g | ]}d |d  qS )ZABCDEr`   r)   .0xr)   r)   r*   
<listcomp>5      z@TestLocBaseIndependent.test_loc_getitem_dups.<locals>.<listcomp>rL   r   )r!   r   r   r!   )r   rr   randomdefault_rngranger"   r#   assert_series_equalr5   r'   r(   r   r)   r)   r*   test_loc_getitem_dups0  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 )
NrW   r3   r   r   20130101)r   r   r   r   r   rp   rq   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sJ dddgf}| }|j|  d9  < t	|j| d|j|   d S )NZrtttiZaaader`   float64r2   gq=
ףp?r3   g(\տ)mer   r   bar2r   rr   r          @)r   r   t)
r   listrr   rs   r   copyr"   r#   r   r$   )r5   df_origindexerr'   r)   r)   r*   test_loc_setitem_dupsO  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 }tjtdd ||j|df< W d    n1 s0    Y  t g dg ddd
d}t|| d S )N)r   rW   rW   )d   rm   ,  Zuint32r   r   r   r   rW   r   )r      i-  uint64item of incompatible dtyper   )r   r   r"   r#   r$   assert_produces_warningFutureWarning)r5   Zdf1ixZnewb1r(   r   Znewb2r)   r)   r*   test_loc_setitem_slicer  s"    ,z-TestLocBaseIndependent.test_loc_setitem_slicec                 C   s   t dgdgdgdgd}g d}|jd d |f d|jd d |f< t dgtjdgdd	tjdgdd	tjdgdd	d}t|| d S )
Nr!   333333?        g      )idr   r   rC   r   r   rC   float32r   r   )r   r"   astyperr   r   r#   r$   )r5   r'   colsr(   r)   r)   r*   test_loc_setitem_dtype  s    &	z-TestLocBaseIndependent.test_loc_setitem_dtypec                 C   s   t tdg dd}tjtdd |ddg  W d    n1 sD0    Y  t td}tjtdd |ddg  W d    n1 s0    Y  d S )	Nr\   r   r   not in indexr   r   dr   )r   r   r   r   r=   )r5   sr)   r)   r*   $test_getitem_label_list_with_missing  s    *z;TestLocBaseIndependent.test_getitem_label_list_with_missingrq   TFrh   c                 C   s`   t g d}dt| dt| }tjt|d |j|  W d    n1 sR0    Y  d S )Nrv   z Boolean index has wrong length: z instead of r   )r   lenr   r   ri   r"   )r5   rq   r   r   r)   r)   r*   test_loc_getitem_bool_diff_len  s    z5TestLocBaseIndependent.test_loc_getitem_bool_diff_lenc                 C   s   d S re   r)   rf   r)   r)   r*   test_loc_getitem_int_slice  s    z1TestLocBaseIndependent.test_loc_getitem_int_slicec                 C   s~   t tjddg dg dd}dt j d}tjt|d& |j	d	dgd	dgf  W d    n1 sp0    Y  d S )
Nr3   r\   r\   r   )erE   grq   r1   z$\"None of \[Index\(\[1, 2\], dtype=''\)\] are in the \[index\]\"r   rW   )
r   rr   r   r   int_r2   r   r   r=   r"   r5   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 sL0    Y  dt j d	}tjt|d |jdd
g  W d    n1 s0    Y  d}tjt|d |jdg  W d    n1 s0    Y  d|jd< tjtdd |jdd
g  W d    n1 s 0    Y  d|d< dt j d	}tjt|d |jd
g  W d    n1 sv0    Y  |d= tjt|d d|jd
g< W d    n1 s0    Y  d S )Nr   rW   r3   r   z^-1$r   z&\"None of \[Index\(\[-1, -2\], dtype='r   zE\"None of \[Index\(\['4'\], dtype='object'\)\] are in the \[index\]\"4r\   r   z"\"None of \[Index\(\[-2\], dtype='r   )	r   objectr"   r   r   r=   rr   r   r2   r5   r   r   r)   r)   r*   test_loc_to_fail2  s.    


(,*
.,z(TestLocBaseIndependent.test_loc_to_fail2c                 C   s   t dgdggddgdgd}dt j d}tjt|d	$ |jd
gd d f  W d    n1 sf0    Y  tjt|d	 |jd
g  W d    n1 s0    Y  d S )Nr   r   rW   r3   valuer   z!\"None of \[Index\(\[3\], dtype='r   r   r\   )r   rr   r   r2   r   r   r=   r"   r   r)   r)   r*   test_loc_to_fail3  s    2z(TestLocBaseIndependent.test_loc_to_fail3c                 C   s   t g d}|jdg  dt j d}tjtt	|d |jdg  W d    n1 s`0    Y  tjtdd |jddg  W d    n1 s0    Y  d S )Nrv   r3   z"None of [Index([3], dtype='z')] are in the [index]r   r\   r   )
r   r"   rr   r   r2   r   r   r=   reescaper   r)   r)   r*   test_loc_getitem_list_with_fail  s    *z6TestLocBaseIndependent.test_loc_getitem_list_with_failc                 C   s   t tjdjddg dd}|jdd }|jt| }|j| }t	|| |j|j
 }t	|| |jtj|dd	 }t	|| d S )
Nr3   )r`   r[   size)Zalpha_0Zalpha_1Zalpha_2Zbeta_0Zbeta_1r   c                 S   s   d| v S )Nalphar)   r   r)   r)   r*   <lambda>  r   z7TestLocBaseIndependent.test_loc_index.<locals>.<lambda>booleanr   )r   rr   r   r   rq   mapr"   r   r#   r$   r   r~   )r5   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 sbJ |jddgk sxJ t t	dgd	gd
jd }t
t	dd	gddgdd}t|| |jtksJ d S )Nr3   r_   r_   r!   ry   r   Drp   r!   ry   r   r   rW   r   r   r   r   )r   rr   r   r   r"   r   r1   allrq   r   r   r#   r   r2   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-5r`   r   r   val)r   r   r   r   rr   int64rf   r)   r)   r*   frame_for_consistency0  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   r`   rq   r2   r   r  r   	r   r   r   rr   r  r   r"   r#   r$   )r5   r	  r  r(   r'   r)   r)   r*   test_loc_setitem_consistency9  s    z3TestLocBaseIndependent.test_loc_setitem_consistencyc                 C   sR   t tdtddttdtjdd}| }d|jd d df< t|| d S )Nr   r`   r   r   r  r   r  r5   r	  r(   r'   r)   r)   r*   (test_loc_setitem_consistency_dt64_to_strJ  s    z?TestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_strc                 C   sR   t tdtddttdtjdd}| }d|jd d df< t|| d S )N      ?r`   r   r   r  r   r  r  r)   r)   r*   *test_loc_setitem_consistency_dt64_to_floatX  s    zATestLocBaseIndependent.test_loc_setitem_consistency_dt64_to_floatc                 C   sJ   t dttdgi}d|jd d df< t dtdgi}t|| d S )Nr   Z20180101string)r   r   r   r"   r#   r$   rt   r)   r)   r*   'test_loc_setitem_consistency_single_rowe  s    z>TestLocBaseIndependent.test_loc_setitem_consistency_single_rowc                 C   s   t ddgd}t ddgd}td " d|jd d df< W d    n1 sN0    Y  t|| t ddgd}d|d< |d tj|d< t|| d S )Nr   yr   rW   )r   r#   r   r"   r$   r   rr   r  r5   r(   r'   r)   r)   r*   "test_loc_setitem_consistency_emptym  s    0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}t|jd d df |jd d df< t|jd d df |jd d df< |jdd}|jd d df |jd d df  |jd d df< |jd d df td |jd d df< t	g d|j
dd}t|d | d S )NZRegion_1r_   )Site_1r  Site_2r  )l   BP[ l   _Z l   q=.Z l   <.Z )ZRegionZSiteZRespondentIDnames)
Respondentr  r  OtherCatr  )Z	Something	StartDateEndDatezYes/NoZSomethingElseZLevel_0ZLevel_1r!   z5/25/2015 10:59z5/25/2015 11:22Yes)r!   z5/21/2015 9:40z5/21/2015 9:52r  r  z5/20/2015 8:27z5/20/2015 8:41)r!   z5/20/2015 8:33z5/20/2015 9:09r  ZNor   )r  r  )r  r  F)r   )r  ZDurationl    Xp7 )g      7@      (@g      ,@g      B@r   )r   from_arraysrr   r}   r   r   r"   Zinfer_objectsr   r   rq   r#   r   )r5   levelsmiZclevelsr   r   r'   r(   r)   r)   r*   -test_loc_setitem_consistency_slice_column_len}  sF    
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   rr   
datetime64r"   r   r   r   r#   r   )r5   r$  r'   r(   r)   r)   r*   test_loc_assign_non_ns_datetime  s    	0&z6TestLocBaseIndependent.test_loc_assign_non_ns_datetimec                 C   s   t dg di}t|d ddd|d< |jd d df |jd d df< |jdd	gdf |jdd	gdf< t g d
g dg dg dgg dd}ddg}|| t||< t|| d S )Nr   )   CO!g   s~!g    4	8   A{?r)  T)r$  cachedate_dt
date_dt_cpr3   r\   )r/  2017-01-24 13:26:12.711r6  )r0  2017-01-24 13:52:05.110r7  )r1  2018-10-22 13:44:05.888r8  )r2  2018-10-23 08:08:41.025r9  )r   r4  r5  r   )r   	from_dictr   r"   applyr#   r$   )r5   r'   r(   r1   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r\   r`   r_   r!   rq   r1   r2   rv   r  r   r_   r\   r`   r3   r\   rW   r
  )r   floatrr   r   r"   r   r#   r$   r5   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< tjg ddd|jg d	df< tg d
g ddd}t d|ti}d|d< t|| d S )Nr=  r!   ry   r>  r  rv   r  r   r?  r@  r
  )	r   rA  rr   r   r"   r   r   r#   r$   rB  r)   r)   r*   )test_loc_setitem_frame_with_reindex_mixed  s     z@TestLocBaseIndependent.test_loc_setitem_frame_with_reindex_mixedc                 C   sl   t g dddgtd}d|d< tjg ddd|jtdd	d
df< t g dddg dd}t|| d S )Nrv   r!   ry   r>  r  r  r   r\   r   r   )rX   r   r  r|   r   )r   rA  rr   r   r"   r   r#   r$   rt   r)   r)   r*   *test_loc_setitem_frame_with_inverted_slice  s
    $zATestLocBaseIndependent.test_loc_setitem_frame_with_inverted_slicec           
      C   s   dd t dD }tjddd}dd t dD }tjddd}tt||}t|d}tj|d	< ||j|d	f< tj|d
< ||j|d
f< t	||tj
d}t	||d}t||dj|d}	t||	 d S )Nc                 S   s   g | ]}d t | qS @r/   r   ir)   r)   r*   r     r   zGTestLocBaseIndependent.test_loc_setitem_empty_frame.<locals>.<listcomp>r`   r  r   c                 S   s   g | ]}d t | qS rG  rI  rJ  r)   r)   r*   r      r   r_   r   r!   ry   r
  r|   )r   rr   rs   r   setunionr   r}   r"   r   r   reindexr#   r$   )
r5   Zkeys1Zval1keys2Zval2rq   r'   ZseraZserbr(   r)   r)   r*   test_loc_setitem_empty_frame  s    


z3TestLocBaseIndependent.test_loc_setitem_empty_framec                 C   s   t tjddtdtdd}|jd }d|jd< |jd }|dksNJ |jd }|dksdJ d	|jd d d
df< |jd d d
df }|jd d dd f }t	|| d S )Nr3   r   ZabcdABCDr   r   r   rW   )r   r!   r   ry   r  )
r   rr   r   r   standard_normalr   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 )Nrv   r|   ry   )r   rr   r}   r!   r"   ry   r#   r$   rt   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 )NrW   r3   r\   r_   r   r   )rW   r3   r   r   r   rq   r2   r   r`   r]   )r   r"   r   r   r   r#   r   r$   r   r)   r)   r*   #test_loc_setitem_frame_mixed_labels/  s    z:TestLocBaseIndependent.test_loc_setitem_frame_mixed_labelsc                 C   s  t g dttdtjdd}|jdd }|jdd |_||jdd< t g dtg d	tjdd}t|| t t	d
dttdtjdd}t t
dt
dt
dt
dt
dgtg dtjdd}|jdd }|jdd |_||jdd< t|| d S )Nr   r   bazr\   r   r|   rW   r3   r   )r   rY  rY  )rW   r3   r3   r  r  r`   r  Z20000101Z20000102Z20000103)r   rW   r   rW   r3   r_   )r   r   r   rr   r  r"   rq   r#   r$   r   r   )r5   r'   rhsr(   r)   r)   r*    test_loc_setitem_frame_multiples>  s:    z7TestLocBaseIndependent.test_loc_setitem_frame_multiplesr   r!   Nr   Zc                 C   sV   t ddgddggddgddti}||jd|f< |jd	 }t|rN|d
ksRJ d S )NrW   r3   r\   r_   r!   ry   r   r   )r   r!   r\  )r   r   r   r"   r   )r5   r   r   r'   r   r)   r)   r*   "test_loc_setitem_with_scalar_indexc  s    
&
z9TestLocBaseIndependent.test_loc_setitem_with_scalar_indexzindex,box,expectedr3   r   r^   )r^   r^   r^   r^   r\   r_   r   rW   r   r  rk   )r\   r_   r^   rk   r`   r]   r   r^   rk   	   )ry   r   r  r[         )r\   r^   rk   r_  )r`   r[   ra  rb  )r   r!   r  )rk   r_   r^   r_  )ra  r]   r[   rb  r_  r[   ra  rb  )r^   r3   rk   )r_  r_   r[   )ra  r]   rb  c                 C   s<   t ddgddgddggddgd	}||j|< t|| d S )
NrW   r3   r\   r_   r`   r]   r!   ry   r   r   r"   r#   r$   )r5   rq   boxr(   r'   r)   r)   r*    test_loc_setitem_missing_columnss  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   rW   )	r   r   tz_localizer~   r   dtypesr   r#   r   r   r)   r)   r*   test_loc_coercion  s    z(TestLocBaseIndependent.test_loc_coercionc                 C   s^   t dtdddtdddgi}|j}|jdg }t|j| |jdg }t|j| d S )Nr     rW   i  r3   r   )r   r   rh  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   r3   r\   )r   rh  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*   rf  i  r   r   r   r   r   rW   )r   rg  r   r   r#   r   )r5   Z
indexer_slvalsr(   rC  r)   r)   r*   test_setitem_new_key_tz  s    
z.TestLocBaseIndependent.test_setitem_new_key_tzc                 C   s  t g dg ddg dd}d}tjt|d |jdd   W d    n1 sT0    Y  d	}tjt|d |jd
d   W d    n1 s0    Y  d}tjt|d |jdd  W d    n1 s0    Y  t g dg ddg ddjd
d}|jdd  }t g dg ddg dd}t|| |jd
d  }t|| |jdd }t g dg ddg dd}t|| d S )NrW   r3   r\   r_   r`   r]   )r\   r_   r`   r]   r^   rk   r|   )r   rW   r   rW   r3   r\   r   z5'Cannot get left slice bound for non-unique label: 1'r   rW   z5'Cannot get left slice bound for non-unique label: 0'r   r3   axis)r3   r_   r`   r]   )r_   r]   r^   rk   )rW   rW   r3   r\   )r3   r_   r`   )r_   r]   r^   )rW   rW   r3   )r   r   r   r=   r"   
sort_indexr#   r$   )r5   r'   r   r   r(   r)   r)   r*   test_loc_non_unique  s2    ,,,z*TestLocBaseIndependent.test_loc_non_uniquez
length, l2  r   i 順 c              	   C   s   t d}tttjd|t|ft	||dtt
|t|fdg| |dg}|jjdu sjJ t	|}|j| }t|dgtt
t|t|fdgt| |d||dd  g}t|| d S )NZABCDEFGr3   r   r   FrW   )r   r~   concatr   rr   r   r   rS  r   rs   onesrq   Z	is_uniquer"   taker#   r$   )r5   lengthl2r1   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sXJ d S )NrW   Z
index_namer   )r   rq   r   r   r"   r5   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 )Nr`   r3   r   T)check_index_typecheck_column_type)r#   ZmakeCustomDataframer$   r"   r   r4   r)   r)   r*   !test_loc_empty_list_indexer_is_ok,  s    (( z8TestLocBaseIndependent.test_loc_empty_list_indexer_is_okc                 C   s  t dg di}|jd d  }||us*J |d d  |us>J |jd d d d f |us\J t|d j|d jsxJ g d|jd d df< |r|d g dk sJ n|d dk sJ t tjdd}|r|d |jd d df usJ n |d |jd d df u sJ t	g d}|jd d  }||usBJ |d d  |usXJ g d	|d d
< |rt|d d
 g dksJ nt|d d
 g d	ksJ d S )Nr   rv   )r_   r_   r_   r_   r3   r[   r_   r   rq  r^  r\   )
r   r"   rr   Zshares_memory_valuesr  r   r   rS  r   )r5   using_copy_on_writeZoriginal_dfZ	sliced_dfr'   Zoriginal_seriesZsliced_seriesr)   r)   r*   &test_identity_slice_returns_new_object;  s,       z=TestLocBaseIndependent.test_identity_slice_returns_new_objectc                 C   s   |st jjdd}|j| tttdtdddgd}| }|j	d d df }|d7 }t
|| | }|j	|jdf }|d7 }t
|| d S )Nz!accidental fix reverted - GH37497)reasonr\   r   r   r   r3   )r   r   ZxfailnodeZ
add_markerr   zipr   r   r"   r#   r$   rq   )r5   r?   r  r   r   r  qzr)   r)   r*   test_loc_copy_vs_viewb  s    z,TestLocBaseIndependent.test_loc_copy_vs_viewc                 C   s   t dj}tddg|d |gd}|j|d  }|jd }||ksHJ |j|d g }|jdg }t|| |j|d |g }t|| d S )Nr   rW   r3   r   r   )rr   iinfomaxr   r"   r   r#   r   )r5   umaxrC  r   r(   r)   r)   r*   test_loc_uint64v  s    
z&TestLocBaseIndependent.test_loc_uint64c                 C   s   t dj}tddg|d |gd}tjtdd |jd  W d    n1 sR0    Y  tjtdd |jdg  W d    n1 s0    Y  d S )Nr   rW   r3   r   z-1r   r   )rr   r  r  r   r   r   r=   r"   )r5   r  rC  r)   r)   r*   !test_loc_uint64_disallow_negative  s    (z8TestLocBaseIndependent.test_loc_uint64_disallow_negativec                 C   s\   g d}t |tjtjgt| tdd}t ddgd}||jd d df< t|| d S Nrv   r   r   r  r   r  r   )	r   rr   r   r}   r   r   r"   r#   r$   r5   rz   r(   r'   r)   r)   r*   *test_loc_setitem_empty_append_expands_rows  s    zATestLocBaseIndependent.test_loc_setitem_empty_append_expands_rowsc                 C   sp   g d}t |tjtjgt| tdd}t ddgd}|d tj|d< ||jd d df< t	
|| d S r  )r   rr   r   r}   r   r   r   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  r0   )r   r   )r   rr   r}   rA  r"   r#   r$   r  r)   r)   r*   *test_loc_setitem_empty_append_single_value  s    zATestLocBaseIndependent.test_loc_setitem_empty_append_single_valuec                 C   s   ddg}t ddgd}|jtj|_dt j d}tjt	|d" ||j
d	dgdf< W d    n1 sn0    Y  d
g d}tjt|d" ||j
d	ddf< W d    n1 s0    Y  d S )NrW   r3   r   r  r   z"None of \[Index\(\[0, 1\], dtype='z'\)\] are in the \[index\]r   r   |)z?cannot copy sequence with size 2 to array axis with dimension 0zCcould not broadcast input array from shape \(2,\) into shape \(0,\)z@Must have equal len keys and value when setting with an iterable)r   rq   r   rr   r  r   r2   r   r   r=   r"   join
ValueError)r5   rz   r'   r   r)   r)   r*   $test_loc_setitem_empty_append_raises  s    0z;TestLocBaseIndependent.test_loc_setitem_empty_append_raisesc                 C   sD   t ddgddgg}|jtd }tddgdd}t|| d S )NrW   r3   r\   r_   r   r   )r   r"   rr   r   r   r#   r   )r5   r'   r   r   r)   r)   r*   test_indexing_zerodim_np_array  s    z5TestLocBaseIndependent.test_indexing_zerodim_np_arrayc                 C   s,   t ddg}|jtd }|dks(J d S )NrW   r3   r   )r   r"   rr   r   )r5   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 )
Nrq  r_   i  i  r   r
  )r]   r`   r_   r\   r3   rW   r   r   )r   r   rr   r   r"   r#   r   )r5   rz   r(   r   r)   r)   r*   test_loc_reverse_assignment  s
    z2TestLocBaseIndependent.test_loc_reverse_assignmentc                 C   s   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 )	Nc                 S   s$   g | ]}t tjd  d qS )r3   g-q=)r/   rr   r   r   )r   rN   r)   r)   r*   r     r   z^TestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_type.<locals>.<listcomp>r`   r!   r   r0   c                 S   s   g | ]}t |qS r)   rA  r   r)   r)   r*   r     r   c                 S   s   g | ]}t |qS r)   r  r   r)   r)   r*   r     r   )	r   r   r   r#   r$   r"   rq   rA  r   )r5   Zcol_datar   r(   r)   r)   r*   3test_loc_setitem_str_to_small_float_conversion_type  s    zJTestLocBaseIndependent.test_loc_setitem_str_to_small_float_conversion_typec           	      C   s   t dddd}|jdk|jdk@ }ttjdt|df|d	}t	
||}|jtdd }|j| }t	|| |jd
d  }|jtdd }|dd  }|jd |_|jd |_t	|| d S )N1/1/2000z1/5/2000Z5minfreqr_  rb   r3   r\   r   z1/4/2000r   )r   hourminuter   rr   r   r   rS  r   r#   get_objr"   r   r   rq   
_with_freq)	r5   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)Z
coo_matrixZ
csc_matrixZ
csr_matrixr2   c                 C   s   t d}t||}d\}}|tj|||d|d}tj|}td|}|j	| j
}	| | }
t|	|
 |j	| jj
}	t|t|dd}
t|	|
 d S )Nscipy.sparse)r`   r^   r   r3   r   )Z
fill_value)r   importorskipgetattrrr   eyer   sparsefrom_spmatrixr   r"   r   Ztoarrayr#   Zassert_numpy_array_equalrh  fullr   )r5   r  r2   	sp_sparserowsr   Zspmatrixr'   Zitr_idxr   r(   r)   r)   r*   $test_loc_getitem_range_from_spmatrix  s    


z;TestLocBaseIndependent.test_loc_getitem_range_from_spmatrixc                 C   s<   t dtjddgtddi}|jddg }t|| d S )Nr!   r   r  r   rW   )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   t d}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`   r3   r  r   r   r   r   )r   r  r   r   r   r   r   r   rW   )r   r  r   r  r  r  r"   r   r   r#   r$   )r5   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   r3   r  r\   )r   r   r"   r   r#   r   )r5   r   r   r(   r)   r)   r*   test_loc_getitem_sparse_series=  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   )r2   r   )r   r   rA  r  r   r#   r   )r5   r   r'   r   r(   r)   r)   r*   !test_getitem_single_row_sparse_dfI  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$   )r5   float_framer  idxr   r(   r)   r)   r*   test_loc_getitem_iterableQ  s    z0TestLocBaseIndependent.test_loc_getitem_iterablec                 C   sh   t tjdjdd}tdddd|_|jtdd d d f }|jdd d d f }t	
|| d S )Nr3   r  r   Z0sr[   r   startperiodsr  )r   rr   r   r   normalr   rq   r"   r   r#   r$   r   r)   r)   r*   #test_loc_getitem_timedelta_0secondsX  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 )NrW   r3   r  r  r   )r   r"   r   r#   r   )r5   r  r(   r'   r   r)   r)   r*   test_loc_getitem_uint64_scalar`  s    
z5TestLocBaseIndependent.test_loc_getitem_uint64_scalarc                 C   sL   |}t g dtg d|dd}| }d|jd< d|jd< t|| d S )Nr   )r         ?rW   r   r   ZzoorW   r3   )r   r   r   r"   r   r#   r   )r5   float_numpy_dtyper2   rC  r(   r)   r)   r*   +test_loc_setitem_int_label_with_float_indexk  s    

zBTestLocBaseIndependent.test_loc_setitem_int_label_with_float_indexzindexer, expected)
rL   rW   r3   r\   r_   r`   r]   r^   rk   r_  )
r   rW   r3   r\   rL   rL   rL   rL   rk   r_  )
r   rW   r3   rL   r_   rL   r]   r^   rk   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 )	Nr[   r   r$  r   r  r2   rq   rL   r>  )r   r   r   r"   rq   r#   r$   )r5   r   r(   tdir'   r)   r)   r*   /test_loc_setitem_listlike_with_timedelta64indexv  s    zFTestLocBaseIndependent.test_loc_setitem_listlike_with_timedelta64indexc                 C   s   t g dtdd}t g dtdd}tjtddT 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< W d    n1 s0    Y  t|| d S )N)rW   rW   rW   rW   rW   Zaaaaar   )rW   r   r   rW   rW   Zaabbar   r   r   r   
categoriesrW   r3   r\   )r   r   r#   r   r   r	   r"   r$   )r5   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}||jd d df< |d }t||jddt}t|| ||d< t|d t|dd d S )	Nr   r   )AlphaZNumericr  r   r  r   r   )	r   r	   r"   r   rq   r   r   r#   r   )r5   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sDJ td|jd ksZJ tjtd	d
" tddd|jd< W d    n1 s0    Y  td |jd ksJ d S )NrC   z
2010-10-01r\   z
2008-08-08r   rW   )r   rC   )rW   rC   zincompatible dtyper   i  r`   )r3   rC   z
2005-05-05)	r   r   rr   r-  r"   r#   r   r   r   r4   r)   r)   r*   "test_loc_setitem_datetime_coercion  s    0z9TestLocBaseIndependent.test_loc_setitem_datetime_coercionidxervarc                 C   sX   |}t ddd|d}td|dgd}t|dgtjd}||jd d |f< t|| d S )	Nz
2015-07-12r\   H)r  r  r  tzr   r  r   r>  )r   r   rr   r   r"   r#   r$   )r5   r  Ztz_naive_fixturer  r  r(   r   r)   r)   r*   !test_loc_setitem_datetimeindex_tz  s    z8TestLocBaseIndependent.test_loc_setitem_datetimeindex_tzc           
      C   sl  t dddd}ttjdt|df|d}tdd	d	}ttd
d	d	tdd	d	}g d}g d}|	 }d	|j
|< |j
| }|j
| 	 }	d	|	j
d d < |r|	t}	t||	 |	 }d	|j
|< |j| |j
|< t|| |	 }d	|j
|< |j
| }|j
| 	 }	d	|	j
d d < |r.|	t}	t||	 |	 }d	|j
|< |j| |j
|< t|| d S )Nz
2012-01-01z
2012-01-05Z30minr  r3   r`   r   rb  r         )   H   x      )         J   K   L   z   {   |            )r   r   rr   r   r   rS  r   r   r   r   r"   r   rA  r#   r$   r   )
r5   Zusing_array_managerrq   r'   ZakeyZbkeyZaindsZbindsr   r(   r)   r)   r*   test_loc_setitem_time_key  s@    







z0TestLocBaseIndependent.test_loc_setitem_time_keyrR   c                 C   s   t g d}tg dg dg|d}| }tjddd|jd d |f< tg dg d	g|d}t|| |j	d
d}tjddd|jd d |f< |j	d
d}t|| d S )N))r!   r_   )ry   3)r!   r.   rv   r_   r`   r]   r   r3   r3   r  r   )r   r3   r   )r   r`   r   rW   rr  )
r   from_tuplesr   r   rr   zerosr"   r#   r$   rt  )r5   rR   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 )Nrv   r   r_   r   )r_   r3   r\   r   r"   r#   r   )r5   Z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 )Nr[   r(  rL   rv   )r   rr   timedelta64r"   r   r#   r   )r5   rC  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ddg}tjt	|d ||j
td< W d    n1 sb0    Y  d	}tjt	|d ||j
d d < W d    n1 s0    Y  d S )
Nr3   r  r   r   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,?\))rr   r   r   rS  r   r   r  r   r   r  r"   )r5   rz   rC  r   r)   r)   r*    test_loc_setitem_2d_to_1d_raises
  s    ,z7TestLocBaseIndependent.test_loc_setitem_2d_to_1d_raisesc                 C   sP   t jddd}tg dg dg dg|g dd}d	}|jd
 }t|| d S )Nr   r\   )r  r  rv   r  r^  r   r   rW   )r  r!   )r~   interval_ranger   r"   r#   assert_almost_equal)r5   rq   r'   r(   r   r)   r)   r*   test_loc_getitem_interval_index  s    
z6TestLocBaseIndependent.test_loc_getitem_interval_indexc                 C   sr   t jdddd}tg dg dg dg|g dd	}t jdd
ddd}tddg|dd}|jd }t|| d S )Nr   r\   Zboth)r  r  closedrv   r  r^  r   r   r3   rW   )r  r  r  r  r_   r!   r   rW   r!   )r~   r  r   r   r"   r#   r   )r5   rq   r'   Z	index_expr(   r   r)   r)   r*    test_loc_getitem_interval_index2'  s    
z7TestLocBaseIndependent.test_loc_getitem_interval_index2tplrW   rW   r3   c                 C   sR   t ddgddd}t|d}|j|g }t |gddd}t|d}t|| d S )Nr  r  r!   Fr   Ztupleize_colsr   )r   r   r"   r#   r$   )r5   r   r  r'   r   r(   r)   r)   r*   +test_loc_getitem_index_single_double_tuples3  s    

zBTestLocBaseIndependent.test_loc_getitem_index_single_double_tuplesc                 C   sn   t dddg}|dd}|dd}t||gdd	d
}tddg|ddgd}|j|dd d }|dksjJ d S )N	IndexTyper   r   r   r   rY  ZbofZcomposite_indexFr  r  )r\   r_   r!   ry   r   rW   )r   r   r   r"   )r5   r  Zidx1Zidx2rq   r'   r   r)   r)   r*   !test_loc_getitem_index_namedtupleB  s    

z8TestLocBaseIndependent.test_loc_getitem_index_namedtuplec                 C   s|   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 )	Nr3   r`   r\   )r   r   rC   r   r   rX  r   quxr/   r   )r   rr   r   r   rS  r}   r"   rq   r   r   r#   r  r   rt   r)   r)   r*   $test_loc_setitem_single_column_mixedL  s    z;TestLocBaseIndependent.test_loc_setitem_single_column_mixedc                 C   s   t tjddtdd}tj|d< tjtdd d|j	d	< W d    n1 sV0    Y  |j
}ttd
gd tdg g dd}t|| d S )Nr3   )rb   r\   ABCr   eventr   r   r   )r[   r  r   r\   r   )r!   ry   r   r  r   )r   rr   r   r   tupler}   r#   r   r   r"   rh  r   r2   r   r   r)   r)   r*   test_loc_setitem_cast2W  s    
(z-TestLocBaseIndependent.test_loc_setitem_cast2c                 C   sb   t dtjdtjdi}d|jd< |jjttjks:J td|_|jjttjks^J d S )Noner]   r   )rW   r  r^   )r   rr   rs   Zint8r"   rh  r  r2   r4   r)   r)   r*   test_loc_setitem_cast3g  s
    
z-TestLocBaseIndependent.test_loc_setitem_cast3c                 C   sf   |t dg dd}g d}|jdkr6dgdgdgg}||jt d	< |g d
|jd}t|| d S )Nr`   )r\   r_   rW   r   r3   r   )r_  r[   ra  r3   r_  r[   ra  r\   )r   rW   r[   r_  ra  )r   ndimr"   rq   r#   r   )r5   r  r@   r   r(   r)   r)   r*   test_loc_setitem_range_keyo  s    
z1TestLocBaseIndependent.test_loc_setitem_range_key)hr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  fixturer	  rr   r   r  r  r  r  r  r  r#  r.  r<  rD  rE  rF  rP  rT  rU  rW  r[  r   r]  r   r}   re  ri  rk  rm  rp  ru  Zarm_slowr}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   complexr  r  r  r  r  iterr   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r)   r)   r)   r*   r      sZ  
#
'
$
1

%	
$	
"		 3
""
'








(


r   c                   @   sZ   e Zd Zejejejgddd Zejdd Z	dd Z
ejdd	d
 Zdd ZdS )TestLocWithEllipsis)paramsc                 C   s   |j S re   )param)r5   r?   r)   r)   r*   r   ~  s    zTestLocWithEllipsis.indexerc                 C   s   |}|t ur| }|S re   )r   to_frame)r5   series_with_simple_indexr  r@   r)   r)   r*   r@     s    zTestLocWithEllipsis.objc                 C   s   ||d }t || d S )N.)r#   r   )r5   r@   r   r   r)   r)   r*   test_loc_iloc_getitem_ellipsis  s    z2TestLocWithEllipsis.test_loc_iloc_getitem_ellipsis3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc           
      C   s*  |}|t ju st|dkrdn|jd }|t ju rB|jjdkrBd S |t ju rt|jtrd}tj	t
|d" ||d|gf }W d    q1 s0    Y  n8t|dkr||d|gf }|||g }t || |t ju rdn|j}| }	||	d|gf }||	d d |gf }t || d S )Nr   r   z2MultiIndex does not support indexing with Ellipsisr   .)r#   r   r   rq   r"   inferred_typer   r   r   r   NotImplementedErrorr   r   r  r$   )
r5   r  r   r@   rR   r   r   r(   key2r'   r)   r)   r*   &test_loc_iloc_getitem_leading_ellipses  s"    $2z:TestLocWithEllipsis.test_loc_iloc_getitem_leading_ellipsesc                 C   s&  |t ju st|dkrdn|jd }tjttd ||d  W d    n1 sT0    Y  tjttd$ ||d|gdf  W d    n1 s0    Y  tjttd" ||dd|f  W d    n1 s0    Y  tjtdd" |||ddf  W d    n1 s0    Y  d S )Nr   r   )...Too many indexers)r#   r   r   rq   r   r   r   r   )r5   r@   r   rR   r)   r)   r*   0test_loc_iloc_getitem_ellipses_only_one_ellipsis  s    $*20zDTestLocWithEllipsis.test_loc_iloc_getitem_ellipses_only_one_ellipsisN)r   r   r   r   r  r#   r"   r   r   r@   r  r   filterwarningsr  r!  r)   r)   r)   r*   r  }  s   



r  c                   @   s  e Zd Zejdddgg dg dgfddgg dg dgfddgddgfg dg dgfddgddgfg dg d	gfddgddgfg dg d	gfddgddgfg dg dgfd
dgddgfg dg dgfgejdddgdd Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd Zd d! Z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   )rW   r3   rW   r3   )r   r   r   r   rW   r3   )r3   rW   r3   rW   rC   )rC   r   r   )rW   r3   rW   dimrq   r1   c                 C   s   |g dg dgi}t tdddfi |}t|}|dkrf|j|d d f }t|j	| n(|dkr|jd d |f }t|j
| d S )N)rC   r   r   r   r   )rW   rW   r3   rW   r3      r`   rq   r1   )r   rr   rs   reshaper   r   r"   r#   assert_index_equalrq   r1   )r5   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s8J |jj|jjdd  ksTJ |j d }|d j d }|jj|jjd ksJ |jj|jjd ksJ d S )N  r!   rW   )r,  r3   r3   )r"   rq   r  r   )r5   Z/multiindex_year_month_day_dataframe_random_dataZymdr   result2r)   r)   r*   test_loc_preserve_names  s    

z-TestLocWithMultiIndex.test_loc_preserve_namesc                 C   sf   t dgddgg}td|d}|jg  }|d d }t|| |j|jdd  }t|| d S )Nr   rW   r   )r   from_productr   r"   r#   r   r   )r5   r"  rC  r   r(   Zres2r)   r)   r*   .test_loc_getitem_multiindex_nonunique_len_zero  s    
zDTestLocWithMultiIndex.test_loc_getitem_multiindex_nonunique_len_zeroc                 C   s   t d gtdgdgg}|jd }|d u s0J tdgddgg}t d gt| t|d}|jd }|d u srJ t dgt| t|d}|jd }|dksJ d S )	NLevel1Level2)r1  r2  Level2_aZLevel2_br  )r1  r3  rW   )r   r   r   r"   r/  r   r   )r5   rC  r   Zmidxr)   r)   r*   0test_loc_getitem_access_none_value_in_multiindex  s    


zFTestLocWithMultiIndex.test_loc_getitem_access_none_value_in_multiindexc                 C   s^   t jtg dg dddgd}tg d|d}d|jd	d
< tg d|d}t|| d S )N)r   r   rY  rY  r   r   r  r  )r  twor  r5  r  r5  r  r5  firstsecondr  )rW   rW   rW   rW   rW   rW   rW   rW   r   r   )rY  r  )r   r5  )rW   rW   r   r   r   r   rW   rW   )r   r  r  r   r"   r#   r   )r5   rq   r   r(   r)   r)   r*   !test_loc_setitem_multiindex_slice   s    z7TestLocWithMultiIndex.test_loc_setitem_multiindex_slicec                 C   sJ   t dddd}ttd|}|jtdddtddd }t|| d S )Nr  Z10minrw  r  r  il  rW   i4  )r   r   r   r"   r   r#   r   )r5   timesrC  r   r)   r)   r*   7test_loc_getitem_slice_datetime_objs_with_datetimeindex  s    zMTestLocWithMultiIndex.test_loc_getitem_slice_datetime_objs_with_datetimeindexc                 C   sh   t tdtddtddd}|jddgddgf }t d	d
gd	d
gdtddgd}t|| d S )Nr[   r   z
2010-01-01z
2010-01-10r   z
2010-01-05r   r   r   r_   )r   r   r   r"   r   r#   r$   r   r)   r)   r*   3test_loc_getitem_datetime_string_with_datetimeindex  s    
zITestLocWithMultiIndex.test_loc_getitem_datetime_string_with_datetimeindexc                 C   s   t jg dddgd}tddgddgd	d
gddgddgddgg|ddgd}|jdd}tddgddgddggddg|g dd}|jd }t|| d S )N)r   r   r=  ZbahZbamr>  r=  r>  r!   ry   r  r  rW   r   r3   rX   r\         @r_         @r`         @r]   r   r  r   r   )level)r   rW   r_   rp   r=  )r   r  r   rt  rz  r"   r#   r$   )r5   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   r\   )r   r   rC   r   r   r  r5   r   r(   r)   r)   r*   1test_additional_element_to_categorical_series_locG  s    
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   rD  r   r   r\   r   r   rC   r   r  rE  r)   r)   r*   'test_additional_categorical_element_locN  s    
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 )Nrv   r   r\   rW   r3   )r   r
   r   rr   r}   r"   r#   r   )r5   Zany_numeric_ea_dtypeZsrsr(   r)   r)   r*   &test_loc_set_nan_in_categorical_seriesU  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   rD  r   r\   rG  r   r   rC   r  )r5   rJ  Zsrs_enlargeZsrs_setintor(   r)   r)   r*   ,test_loc_consistency_series_enlarge_set_intoj  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 )Nr3      r   r   r[   r   r`   rW   ZIndex1ZIndex2)r!  codesr  )rz   rq   FrD  )r  orderedr   r2   )r   rr   rs   r   r   r   rq   r!  r#   r'  r"   r   r)   r)   r*   5test_loc_getitem_preserves_index_level_category_dtypew  s&    	zKTestLocWithMultiIndex.test_loc_getitem_preserves_index_level_category_dtypelt_valuerb   r[   c                 C   s|   t dg ditdg dgd}tjtdd: |j|d |k d d f jdgd d f  W d    n1 sn0    Y  d S )	Nr   )rb     "   -   aabbr   rW   r3   r\   r   z\['b'\] not in indexr   r   )r   r   r   r   r=   r"   )r5   rP  r'   r)   r)   r*   >test_loc_multiindex_levels_contain_values_not_in_index_anymore  s     zTTestLocWithMultiIndex.test_loc_multiindex_levels_contain_values_not_in_index_anymorec                 C   sl   t t jt jg}ddg}t||g}tddg|d}|jd d df }tdgt jgd}t|| d S )Nr   rY  r   rW   r   )	rr   r   r}   r   r   r   r"   r#   r   )r5   lev1lev2r"  rC  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xyrW   r3   )rZ  r[  numr  rk   r   r   r   r_   )
r   r/  r   r   r   r"   rq   Z	droplevelr#   r'  )r5   r"  rC  Z
loc_resultr(   r)   r)   r*   test_loc_drops_level  s    z*TestLocWithMultiIndex.test_loc_drops_level)r   r   r   r   r   r   r+  r.  r0  r4  r8  r;  r<  rC  rF  rH  rI  rr   r}   r~   ZNAr   rK  rO  rV  rY  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   rW   iAB )r   r   r   r"   r#   r$   rE  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   rW   r   r\   r   r   r"   r#   r   r5   rC  r)   r)   r*   test_loc_setitem_empty_series  s
    


z9TestLocSetitemWithExpansion.test_loc_setitem_empty_seriesc                 C   sV   t td}d|jd< t|t dgdgd d|jd< t|t ddgddgd d S )Nr   r  rW   r   rX   r\   r`  ra  r)   r)   r*   #test_loc_setitem_empty_series_float  s
    


z?TestLocSetitemWithExpansion.test_loc_setitem_empty_series_floatc                 C   s|   t td}d|jd< t|t dgdgd d|jd< t|t ddgddgd d|jd< t|t g dg d	d d S )
Nr   rW   r   r   r\   r   r_   )rW   r\   r_   )r   r   r\   r`  ra  r)   r)   r*   %test_loc_setitem_empty_series_str_idx  s    



zATestLocSetitemWithExpansion.test_loc_setitem_empty_series_str_idxc                    sn   t dddtdd  fddtdD }td	g|d	 gd
}|D ]}d|j|< qBtd|d
}t|| d S )Nr   ra  rW   
US/Pacific)tzinfoc                    s   g | ]} t |d  d qS )rv  )seconds)r   rJ  baser)   r*   r     r   zUTestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dst.<locals>.<listcomp>   r   r   )r   r   r   r   r"   r#   r   )r5   Zidxsr   rJ   r(   r)   rh  r*   %test_loc_setitem_incremental_with_dst  s    zATestLocSetitemWithExpansion.test_loc_setitem_incremental_with_dstconvc                 C   s   | S re   r)   r   r)   r)   r*   r     r   z$TestLocSetitemWithExpansion.<lambda>c                 C   s   |   S re   )to_datetime64r   r)   r)   r*   r     r   c                 C   s   |   S re   )to_pydatetimer   r)   r)   r*   r     r   c                 C   s
   t | S re   )rr   r-  r   r)   r)   r*   r     r   )r5   rm  rn  znp.datetime64)idsc                 C   sb   t d}t d}t }d|j||df< d|j||df< tdddgi||gd}t|| d S )	Nz20130101 09:00:00z20130101 10:00:00r   r  rm   g      Y@g      i@r   )r   r   r"   r#   r$   )r5   rl  Zdt1Zdt2r'   r(   r)   r)   r*   #test_loc_setitem_datetime_keys_cast  s    z?TestLocSetitemWithExpansion.test_loc_setitem_datetime_keys_castc                 C   sT   t ddgi}tdg|d|jd d df< t dgtdg|dd}t|| d S )Nr!   rW   r   )rN  ry   r|   )r   r	   r"   r#   r$   )r5   rN  r   r(   r)   r)   r*   1test_loc_setitem_categorical_column_retains_dtype  s    zMTestLocSetitemWithExpansion.test_loc_setitem_categorical_column_retains_dtypec                 C   s   t ddd}t ddd}t ddd}t||ddd}||vs@J t|d	gd
}d|j|d	f< ttjgt| dg |t|gd	gt	d}t
|| d S )Nz2017-10-29 00:00:00+0200zEurope/Madridr  z2017-10-29 03:00:00+0100z2016-10-10 03:00:00leftr  )Z	inclusiver  r   r   rb  r>  )r   r   r   r"   rr   r}   r   appendr   r   r#   r$   )r5   r  endrJ   r  r   r(   r)   r)   r*   0test_loc_setitem_with_expansion_and_existing_dst  s    zLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_and_existing_dstc                 C   s   t tddgdgd}ddg|d< |djd|_||jdk djd	}| }||j	|jdkdf< t
|d
 d|j	d gdd}t|j| |j	|jdkdf td }||j	|jdkdf< t|j	|jdkdf | d S )Nz2015-03-30 20:12:32z2015-03-12 00:11:11r   )rz   r1   newoldnew_colrf  re  r   )rW   r   r   Z1s)r   r   r   rq   rg  r   ry  Z
tz_convertr   r"   r   r#   r   r   )r5   r'   vr   r(   r)   r)   r*   test_setitem_with_expansion  s    
 z7TestLocSetitemWithExpansion.test_setitem_with_expansionc                 C   sV   t  }d|jd< d|jd< d|jdtjf< |j}tddtjgtjd}t|| d S )NrW   rR  r3   )rW   rW   r\   r   r   )	r   r"   rr   infr1   r   r   r#   r'  r   r)   r)   r*   0test_loc_setitem_with_expansion_inf_upcast_empty'  s    

zLTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_inf_upcast_emptyz"ignore:indexing past lexsort depthc                 C   sf  t |std |d}t |}t|tj}t||dgd}d}||vsVJ |	t ||}t
|tr|d d |ksJ n|d |ksJ t|d tj}t||dgd}| }	||	j|df< t|	| | d }
||
j|< |d tj}t|
| | }	||	j|df< tt|tjg tjg| t|g d|d	}t|	| d S )
NzNot relevant for empty Indexr3   r   r   Zkapowr   rW   r   rW   r   )r   r   skiprepeatrr   rs   r   r  r   insertr   r   r   r   r"   r#   r$   r   r   r}   rA  )r5   rq   NarrorigrR   r*  Zexp_datar(   r'   rC  r)   r)   r*   /test_loc_setitem_with_expansion_nonunique_index2  s8    



&zKTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_nonunique_indexr2   )ZInt32Int64ZUInt32ZUInt64ZFloat32ZFloat64c                 C   sr   t g d|d}td|i}t|jd}||j|jdf< t|| t|jd}|j|j|jdf< t|| d S )NrU  r   rz   r   )r   r   rq   r"   r#   r$   r  )r5   r2   rC  r'   r   r)   r)   r*   6test_loc_setitem_with_expansion_preserves_nullable_int`  s    zRTestLocSetitemWithExpansion.test_loc_setitem_with_expansion_preserves_nullable_intN)r   r   r   r   r   Zslowr_  rb  rc  rd  rk  r   rp  rq  rv  r{  r}  r"  r  r  r)   r)   r)   r*   r^    s4   







-r^  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestLocCallablec                 C   sz  t g dtdg dd}|jdd  }t||j|jdk  |jdd d d f }t||j|jdkd d f  |jd	d d
d f }t||j|jdkg df  |jdd dd f }t||j|jdkdf  |jdd dd f }t||j|jdkddgf  |jdd dd f }t||j|jdkddgf  |jdd dd f }||jd ksvJ d S )NrW   r3   r\   r_   rT  r   c                 S   s
   | j dkS Nr3   r!   r   r)   r)   r*   r   y  r   zATestLocCallable.test_frame_loc_getitem_callable.<locals>.<lambda>r3   c                 S   s
   | j dkS )Nr   )ry   r   r)   r)   r*   r   |  r   r   c                 S   s
   | j dkS r  r  r   r)   r)   r*   r     r   c                 S   s
   | j dkS Nry   r   r   r)   r)   r*   r     r   )FTFc                 S   s
   | j dkS r  r  r   r)   r)   r*   r     r   c                 S   s   dS r  r)   r   r)   r)   r*   r     r   ry   c                 S   s
   | j dkS r  r  r   r)   r)   r*   r     r   c                 S   s   ddgS Nr!   ry   r)   r   r)   r)   r*   r     r   r!   c                 S   s
   | j dkS r  r  r   r)   r)   r*   r     r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   dS )NrW   r)   r   r)   r)   r*   r     r   c                 S   s   dS r    r)   r   r)   r)   r*   r     r   r  )r   r   r"   r#   r$   r!   ry   r   r5   r'   r   r)   r)   r*   test_frame_loc_getitem_callables  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  rT  r   c                 S   s
   | j dkS r  r  r   r)   r)   r*   r     r   zITestLocCallable.test_frame_loc_getitem_callable_mixture.<locals>.<lambda>r!   ry   r3   r\   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   )r   r   r"   r#   r$   r!   r   r  r)   r)   r*   'test_frame_loc_getitem_callable_mixture  s     z7TestLocCallable.test_frame_loc_getitem_callable_mixturec                 C   s  t g dtddtdd}|jdd  }t||jdd	g  |jd
d d d f }t||jdd	gd d f  |jdd dd f }t||jdd	gdf  |jdd dd f }t||jdd	gdgf  |jdd	gdd f }t||jdd	gdf  |jdd	gdd f }t||jdd	gdgf  |jdd df }t||jdd	gdf  |jdd dgf }t||jdd	gdgf  d S )Nr  rT  Xr%  rQ  r   c                 S   s   ddgS Nr!   r   r)   r   r)   r)   r*   r     r   zHTestLocCallable.test_frame_loc_getitem_callable_labels.<locals>.<lambda>r!   r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   dS Nr  r)   r   r)   r)   r*   r     r   r  c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   dgS r  r)   r   r)   r)   r*   r     r   c                 S   s   dS r  r)   r   r)   r)   r*   r     r   c                 S   s   dgS r  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   )r   r   r"   r#   r$   r   r  r)   r)   r*   &test_frame_loc_getitem_callable_labels  s"    z6TestLocCallable.test_frame_loc_getitem_callable_labelsc                 C   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  rT  r  rQ  r   ic                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   zATestLocCallable.test_frame_loc_setitem_callable.<locals>.<lambda>r!   r   rL   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   dS r  r)   r   r)   r)   r*   r     r   r  r`   r[   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   dgS r  r)   r   r)   r)   r*   r     r   r   c                 S   s   dS r  r)   r   r)   r)   r*   r     r   c                 S   s   dgS r  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   c                 S   s   ddgS r  r)   r   r)   r)   r*   r     r   )r   r   r   r"   r#   r$   rr   r   )r5   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  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   rv   )rn   ro   )
2020-08-01z
2020-07-02
2020-08-05r   r   rC   rW   r\   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-01r&  r  ru  r  z2017-12r   )r~   period_range	to_seriesr"   r   r#   r   )r5   pirC  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   )r5   r   rC  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   r\   daysr  r   r   0 days)r   r   r   r   r"   r#   r   )r5   r'   r(   Zslicedr)   r)   r*   #test_loc_getitem_str_timedeltaindex	  s     

z<TestPartialStringSlicing.test_loc_getitem_str_timedeltaindexindexer_endN2020-01-02 23:59:59.999999999c              	   C   s   |dgd t tdtdtdtdtdg|dd	}|dgd
 t tdtdg|dd	}td|}|| }t|| |j| }t|| d S )NrW   r`   z
2019-12-30z
2020-01-01z
2019-12-25r  z
2019-12-19rr  r   r3   )r   r   r   r#   r   r"   )r5   Ztz_aware_fixturer  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  r  r   r   r   r  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 ]}|jtddddd  }t|| |jd tdddd }t|| |jtddddtdddd }t|| |jtddddd  }|jdd  }t|| |jdd  }t|| qHd S )Nr?  r   r   c                 S   s   g | ]}t d d|ddqS   rW   r[   r   r   rJ  r)   r)   r*   r   B	  r   zMTestLabelSlicing.test_loc_getitem_slicing_datetimes_frame.<locals>.<listcomp>r  r   r@  c                 S   s   g | ]}t d d|ddqS r  r  rJ  r)   r)   r*   r   H	  r   )rW   r3   r3   r\   r_   r  rW   r[   r_   ra  z20010101 11)r   rr   rs   r"   r   r#   r$   r   )r5   Z	df_uniqueZdf_dupsr'   r   r(   r)   r)   r*   (test_loc_getitem_slicing_datetimes_frame<	  s(    "z9TestLabelSlicing.test_loc_getitem_slicing_datetimes_framec                 C   s   t ddddd}tg d|d}tddd	}td
dd	}|j|| }tddg|dd d}t|| || }d}||ksJ d S )Nz2017-10-29 01:30:00zEurope/Berlinr`   z30 min)r  r  r  )r   rW   r3   r\   r_   r   z2017-10-29 02:30:00+02:00rr  z2017-10-29 02:00:00+01:00r3   r\   r_   )r   r   r   r"   r#   r   )r5   r  Zseries2Zt_1Zt_2r   r(   r)   r)   r*   'test_loc_getitem_label_slice_across_dstY	  s    z8TestLabelSlicing.test_loc_getitem_label_slice_across_dstrq   r  r  r&  r  r  r  r  c                 C   s8   |  }|jd |d  }|jd d }t|| d S )Nr   r   )r  r"   r   r#   r   )r5   rq   rC  r   r(   r)   r)   r*   -test_loc_getitem_label_slice_period_timedeltaj	  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|@r3   r\   r3   r   g3333c|@g    |@g3333|@g|@r\   )r   rr   r   r   r"   r   )r5   rq   r'   s1r)   r)   r*   %test_loc_getitem_slice_floats_inexactx	  s    z6TestLabelSlicing.test_loc_getitem_slice_floats_inexactc                 C   s   |}t tjddtjdd|dd}t|jdd  dksDJ t|jdd  d	ks^J tjdd|d}d
|d< ||_t|jdd  dksJ t|jdd  d	ksJ d S )Nr3   r[   rL   r   r   r  rk   g      )@r^   gffffff(@)r   rr   r   r   rs   r   r"   rq   )r5   r  r2   rC  r  r)   r)   r*   'test_loc_getitem_float_slice_floatindex	  s    z8TestLabelSlicing.test_loc_getitem_float_slice_floatindexzstart,stop, expected_slicer   nsNra  rW   r  r]   r^   r_   r`   c                 C   s>   t tdtdd}|jt|| }|j| }t|| d S )Nra  r  z10 days)r   r   r   r"   r   r   r#   r   )r5   r  stopZexpected_slicerC  r   r(   r)   r)   r*   $test_loc_getitem_slice_label_td64obj	  s    

z5TestLabelSlicing.test_loc_getitem_slice_label_td64objr  Z2018Z2020c                 C   sb   |g dt dt dt dgd}tjtdd |j|d  W d    n1 sT0    Y  d S )	Nrv   Z2016Z2019Z2017r   z,Value based partial slicing on non-monotonicr   r   )r   r   r   r=   r"   )r5   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 )Nr_   r6  r3   thirdr   )r   r"   r#   r   )r5   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 )	NrW   r3   r\   )testrW   r3   r   r   r   )rz   rq   r1   )r   r   r   r#   r$   r"   rt   r)   r)   r*   *test_loc_getitem_slice_columns_mixed_dtype	  s
    z;TestLabelSlicing.test_loc_getitem_slice_columns_mixed_dtype)r   r   r   r  r  r   r   r   r~   r  r   r  r  r  rr   r  r   r  r  r  r  r)   r)   r)   r*   r  ;	  s0   




r  c                   @   sH   e Zd Zejdddgdd Zejdddgdd Zdd	 Zd
S )TestLocBooleanLabelsAndSlices
bool_valueTFc                 C   s\   | d}|j dkrX||dd}tjt|d |j|  W d    n1 sN0    Y  d S )Nz7: boolean label can not be used without a boolean indexr   r   r
  r   )r  r   r   r=   r"   )r5   rq   r  r  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"   )r5   r  r  r@   r)   r)   r*   test_loc_bool_should_not_raise	  s    z<TestLocBooleanLabelsAndSlices.test_loc_bool_should_not_raisec                 C   sP   d}||dd}t jt|d |jdd  W d    n1 sB0    Y  d S )NzEslice\(True, False, None\): boolean values can not be used in a slicer   r
  r   TF)r   r   r   r"   )r5   rq   r  r  r@   r)   r)   r*   test_loc_bool_slice_raises	  s
    z8TestLocBooleanLabelsAndSlices.test_loc_bool_slice_raisesN)	r   r   r   r   r   r   r  r  r  r)   r)   r)   r*   r  	  s
   


r  c                   @   sl   e Zd Zdd Zejdddgdd Zdd	 Zd
d Z	e
jdd Zdd Zdd Zdd Zdd ZdS )TestLocBooleanMaskc                 C   s   t dtdi}ttddd|_|d dk|d dk|d dk g}g dg dg dg}t||D ]H\}}| }d|j|df< t |ttddddgd	d
}t|| qdd S )Nr   r[   r   r  r\   )
r   rW   r3   r\   r[   r[   r[   r[   r[   r[   )
r   rW   r3   r[   r_   r`   r]   r^   rk   r_  )
r[   r[   r[   r\   r_   r`   r]   r^   rk   r_  r  r>  )	r   r   r   rq   r  r   r"   r#   r$   )r5   r'   Z
conditionsexpected_dataZcondrz   r   r(   r)   r)   r*   )test_loc_setitem_bool_mask_timedeltaindex	  s"    "z<TestLocBooleanMask.test_loc_setitem_bool_mask_timedeltaindexr  Nrf  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 )Nrh   Z20010101r_   r  r  r   r   r   )
rr   r   r   r   rs   r   r   r"   r#   r$   )r5   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 )NrA  r\   r3   ZABr  r  )r  r  rp   r   r   rW   )r   rr   rs   r&  r   r   r   rq   r~   r   r!   r"   r#   r$   )r5   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spJ t|| d S )Nr   l   ,GsO1colrW   TF)	r   r   r   r   r   _valuer"   r#   r$   )r5   Ztd1Ztd2r'   Zdf_copyrC  r(   r   r)   r)   r*   'test_loc_setitem_mask_td64_series_value
  s    
z:TestLocBooleanMask.test_loc_setitem_mask_td64_series_valuec                 C   s\   |  }|d dk}d|j|df< |j  }d||jdf< t||j|jd}t|| d S )Nr!   r   ry   rW   r   )r   r"   r   r   rq   r1   r#   r$   )r5   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< |rBt|| nt|| d S )Nrv   r  r   r   r   )r3   rW   r   r   )FFT)rW   r3   r[   r`  )r   r"   r#   r$   r   r   )r5   r  r'   r(   r   rC  r)   r)   r*   )test_loc_setitem_ndframe_values_alignment.
  s&    $"z<TestLocBooleanMask.test_loc_setitem_ndframe_values_alignmentc                 C   sJ   t g g dtd}| }|d |jtjg tjddgf< t|| d S )Nr   r   r   	r   r   r   r"   rr   r   bool_r#   r$   rt   r)   r)   r*    test_loc_indexer_empty_broadcastK
  s     z3TestLocBooleanMask.test_loc_indexer_empty_broadcastc                 C   sP   t dgdgdtd}| }|d |jtjdgtjddgf< t|| d S )Nr   r  r   r   r   Fr   r  rt   r)   r)   r*   $test_loc_indexer_all_false_broadcastR
  s    "z7TestLocBooleanMask.test_loc_indexer_all_false_broadcastc                 C   s^   t dgdgdtd}t dgdgdtd}|d |jtjdgtjddgf< t|| d S )Nr   r  r   r   r   Tr   )r   r   r"   rr   r   r  r#   r$   rt   r)   r)   r*   test_loc_indexer_length_oneY
  s    "z.TestLocBooleanMask.test_loc_indexer_length_one)r   r   r   r  r   r   r   r  r  r  tdskip_array_manager_invalid_testr  r  r  r  r  r)   r)   r)   r*   r  	  s   

r  c                   @   s`   e Zd Zejddd ejegdd Z	dd Z
dd	 Zejd
ddgdd Zdd ZdS )TestLocListlikerd  c                 C   s   | S re   r)   r   r)   r)   r*   r   b
  r   zTestLocListlike.<lambda>c                 C   sL  t ddtjg}ttd|d}|j|| }t|| ||| }t|| | j|| }t	||  |d d }|dd  }d}t
jt|d |j||  W d    n1 s0    Y  t
jt|d |||  W d    n1 s0    Y  t
jt|d" | j||  W d    n1 s>0    Y  d S )	Nr!   ry   r\   r   r   rW   r   r   )r   rr   r}   r   r   r"   r#   r   r  r$   r   r   r=   )r5   rd  cirC  r   Zser2Zci2r   r)   r)   r*   8test_loc_getitem_list_of_labels_categoricalindex_with_nab
  s"    ,*zHTestLocListlike.test_loc_getitem_list_of_labels_categoricalindex_with_nac                 C   sf   t jg ddd}tg dtdddd}tjtd	d
 |j|  W d    n1 sX0    Y  d S )N)
2001-01-04z
2001-01-02r  z
2001-01-14r-  r   )r3   r`   rk   ra  z
2001-01-01r  r_   r9  r   r   )rr   r   r   r   r   r   r=   r"   )r5   rR   rC  r)   r)   r*   1test_loc_getitem_series_label_list_missing_values~
  s    zATestLocListlike.test_loc_getitem_series_label_list_missing_valuesc                 C   sf   t tddgtddgd}tjtdd$ |jtddg  W d    n1 sX0    Y  d S )Nl   PF
AHl   UBeNl   P2$$nrq   rz   r   r   l   NZ4FG)r   rr   r   r   r   r=   r"   ra  r)   r)   r*   9test_loc_getitem_series_label_list_missing_integer_values
  s    zITestLocListlike.test_loc_getitem_series_label_list_missing_integer_values	to_periodTFc                 C   sX  t ddddd}|r|d}tddg|dd	}tdtdg}|rRd
d |D }|j| }tddg|dd	}|s|jd |_tj||dd tdtdtdg}|rdd |D }tg dt	|d|j
ddd	}|j| }tj||dd tdtdtdg}|rdd |D }tjtdd |j|  W d    n1 sJ0    Y  d S )N
2011-01-01z
2011-01-02r  r  )r  r   皙?皙?r   r   c                 S   s   g | ]}| d qS r  r  r   r)   r)   r*   r   
  r   zRTestLocListlike.test_loc_getitem_listlike_of_datetimelike_keys.<locals>.<listcomp>T)r  c                 S   s   g | ]}| d qS r  r  r   r)   r)   r*   r   
  r   )r  r  r  )r   r2   
2011-01-03c                 S   s   g | ]}| d qS r  r  r   r)   r)   r*   r   
  r   r   r   )r   r  r   r   r"   rq   r  r#   r   r   r2   r   r   r=   )r5   r  r  rC  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 )NrW   r3   r_   r`   r^   rk   )cobraviperZ
sidewinderZ	max_speedZshieldr   r   r  r  r   )r   r   rq   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   rr   Zasarrayr   r  r  r  r  r  r)   r)   r)   r*   r  a
  s   
		
)r  z%columns, column_key, expected_columns)  rj  i  r  rj  rW   )r  rj  Allr  r3   c                 C   sX   t tjdd| tdd}|jd d |f }|jg d|f }tj||dd d S )Nr3   r   r
  rp   r   T)r  )	r   rr   r   r   r   r   r"   r#   r$   )r1   Z
column_keyZexpected_columnsr'   r(   r   r)   r)   r*   *test_loc_getitem_label_list_integer_labels
  s    
r  c                  C   s   t jdd} t| }t j|jd d df< t | t t jgd 	ddf}t|g dd}t
|| t| }t j|jd d df< t
|| d S )Nr3   )rk   r_   r  rk   rW   )r   r  r   rX   r  r   )rr   r   r   rS  r   r}   r"   Zhstackr   r&  r#   r$   )Z	rand_datar   r  r(   r)   r)   r*   test_loc_setitem_float_intindex
  s    $r  c                  C   sr   dd dD } t tdtdt| d}|jddd	d
 }t tdtdtg dd}t|| d S )Nc                 S   s   g | ]}d D ]}||fqqS ))r^   rk   r_  r[   r)   )r   yrr(  r)   r)   r*   r   
  r   z)test_loc_axis_1_slice.<locals>.<listcomp>)  r   )r[   rk   Z
ABCDEFGHIJr   rW   rr  r  r_  r   rk   r  )r  )r  r[   )r   r^   r  )	r   rr   ry  r  r   r  r"   r#   r$   )r   r'   r   r(   r)   r)   r*   test_loc_axis_1_slice
  s    r  c                  C   sX   t dtdttdtdgd} |  }|jddgf |jddgf< t||  d S )Nr   r3   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s0J d S )Nr3   rW   r   r   r   )r   r   r   r   r"   )rC  r   r)   r)   r*   test_loc_mixed_int_float  s    
r  c                  C   sT   t tdg dd} tjtdd d| jd d< W d    n1 sF0    Y  d S )Nr_   r   r   $Slicing a positional slice with .locr   r3   r\   )r   r   r   r   r   r"   )rC  r)   r)   r*   %test_loc_with_positional_slice_raises  s    r  c               	   C   s>  t ddd} ttjdd| d}|d }d}||fD ]|}tjt|d	 |jd
d  W d    n1 sp0    Y  tjtdd	 d
|jd
d< W d    q:1 s0    Y  q:tjt|d	" |jd
dd
f  W d    n1 s0    Y  tjtdd	" d|jd
dd
f< W d    n1 s00    Y  d S )Nz
2016-01-01r\   r  r3   r  r   r   zOcannot do slice indexing on DatetimeIndex with these indexers \[1\] of type intr   rW   r  )	r   r   rr   r   r   r   r   r   r"   )dtir'   rC  r   r@   r)   r)   r*   #test_loc_slice_disallows_positional  s    ,.0r  c                  C   s   t tjddg dtddddd} | jg d	  } | j}t	
|j}d
}tjt|d | j|  W d    n1 s0    Y  tjt|d | d j|  W d    n1 s0    Y  d S )Nr3   r  r   Z2012r  r`   r9  rp   )r   r3   r3   r\   z/None of \[TimedeltaIndex.* are in the \[index\]r   r   )r   rr   r   r   rS  r   r   r   rq   r~   ZTimedeltaIndexZasi8r   r   r=   r"   )r'   r  r  r   r)   r)   r*   'test_loc_datetimelike_mismatched_dtypes/  s    (r  c                  C   s   t jdddd} ttjdd| d}t||j	|   t||j	t
|   t||j	t
|   t|jdd	 |j	| dd	   t||j	t
|   d S )
Nz2002-01z2003-12r&  r  r3   )r  r[   r   r   r`   )r~   r  r   rr   r   r   rS  r#   r$   r"   r   r   )r  r'   r)   r)   r*   "test_loc_with_period_index_indexerE  s    $r  c                  C   sz   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 )Nr3   )rk   r]   r  rk   r  )r!   ry   r   r  EFr   rW   r|   r   )rr   r   r   rS  r   r   r}   r"   rq   r#   r$   )ro  r  r   r   r   r)   r)   r*   %test_loc_setitem_multiindex_timestampP  s    r  c                  C   s2  g d} ddg}ddg}t j| ||gg dd}tdtd	|d
}|jd d | d |d |d ff }|jd d d df }t|| |j| d |d |d fg ddd}t|| |jd }|jd d }	|j| d |d |d fg ddd}
t	|
|	 |j| d |d |d f }|dks.J d S )Nr   r~  )rW   r   r   rW   )r   r  r  r  r]   r`   r   rV   )rB  rs  )
r   r/  r   r   r"   r   r#   r$   xsr   )rW  rX  Zlev3r   r'   r   r(   ZaltrC  Z	expected2Zalt2r-  r)   r)   r*   'test_loc_getitem_multiindex_tuple_level\  s     $&
&r   c               	   C   s   t tg dg dddtjtjggjg ddd} | d}|jjdksNJ |jd }t	dd	g|j
ddd
}t|| |jt|_|jd }t|| d S )Nr  )r`   r]   r^   rk   rW   r3   r   r  )rz   r1   r2   rC   r`   rV  )r   rr   r   r}   Tr   rq   r2   r"   r   r1   r#   r   r   r   )r'   r   r   r(   r)   r)   r*   /test_loc_getitem_nullable_index_with_duplicatesz  s    $


r  r   r   c                 C   sp   t g ddgdd}tjtdd | |jd< W d    n1 sB0    Y  t g ddgd	d}t|| d S )
Nr  rn   Zuint8r0   r   r   )r3   rn   )rW   r3   r   r_   uint16)r   r#   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/Easternrr  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  r2   )r[   ra  rb  r  r   rp   r  )
2022-01-08r   r  r   T)exact)	r   r   r  r   r"   rt  r#   r'  rq   )Zfill_valZ	exp_dtyperz   rq   r'   Zexpected_indexr)   r)   r*   0test_loc_setitem_using_datetimelike_str_as_index  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abcr`   rn   r   r   rC   )r   rW   r3   rn   )r   r   r"   r#   r$   )r'   r(   r)   r)   r*   test_loc_set_int_dtype  s    r
  z8ignore:Period with BDay freq is deprecated:FutureWarningr  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snJ d S )N)z20181101 1100z20181101 1200z20181102 1300z20181102 1400r   ry   )r   r  )r!   ry   r  )r!   r   r   )r\  QrX   )Wr  r?  )ONETWOVALUESr   r  r  T)rt  r  r   r!   r  )r   r   r   r"   )Zp_indexZ	mi_seriesr)   r)   r*   test_loc_periodindex_3_levels  s    r  c                  C   sz   t d ttg dddtg dd} tddg}|| j| jd	f< ttg d
ddtg dd}t| | d S )NZpyarrowr   zstring[pyarrow]r   )TTF)stringsro  r  r%  r  )r  r%  r   )r   r  r   r   r"   ro  r#   r$   )r'   	new_valueZexpected_dfr)   r)   r*    test_loc_setitem_pyarrow_strings  s    


r  c                   @   s  e Zd Zejdddgdd Zdd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd Zejdejejeegejdg ddd Zejdedddf dedfgd d! Zd"d# Zejd$d%d&gd'd( Zejd)d* Zd+d, Zd-d. ZdS )/TestLocSeriesr  )r  r\   )r  r_   c                 C   s$   t ddd}|j| |ks J d S )Nr\   r_   )r  r  )r   r"   )r5   r  r(   rC  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sJ |j| || ksJ d S )Nr\   r_   r^   r`   r3      )rq   r#   r   r"   rN  r   truncatemedian)	r5   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 jg d }d}tjt|d |j||  W d    n1 s`0    Y  tjt|d d|j||< W d    n1 s0    Y  d S )Nr`   r  r3   )rW   r3   r   z"Timestamp\('2000-01-10 00:00:00'\)r   r   )rq   r   r   r   r=   r"   )r5   r  r  r  Zts2r   r)   r)   r*   test_loc_getitem_not_monotonic  s    ,z,TestLocSeries.test_loc_getitem_not_monotonicc                 C   sl  t tjddttdddd}| }d|jdd< |jdd dk	 sVJ | }d|jdd< |jdd dkj
	 sJ |jdd	 }|jdd }|g d
}t|| t|| |jttdttddd  }tjtdd |jdd  W d    n1 s 0    Y  tjtdd d|jdd< W d    n1 s^0    Y  d S )Nr3   r[   r   rL   r   r_   r\   ra  r]   )r_   r]   rk   r[   r`   r_  r   z^3$r   )r   rr   r   r   rS  r   r   r   r   r  r   r"   rN  r#   r   r   r   r=   )r5   rC  cpr   r-  r(   s2r)   r)   r*   0test_loc_getitem_setitem_integer_slice_keyerrors  s&    ".z>TestLocSeries.test_loc_getitem_setitem_integer_slice_keyerrorsc                 C   s4   t |jd d }|j| }t||d d  d S )Nr[   )r  rq   r"   r#   r   )r5   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   )r5   r  r   r   r(   r)   r)   r*   test_loc_setitem_boolean%  s    
z&TestLocSeries.test_loc_setitem_booleanc                 C   sb   t |jg d }d|j|< d}tjt|d  d|j|dg < W d    n1 sT0    Y  d S )N)r`   rk   rb  r`   z\['foo'\] not in indexr   r   )r   rq   r"   r   r   r=   )r5   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)r`   r[   r  r   r3   )rq   r   r"   r#   r   )r5   r  indicesr   r   r)   r)   r*   test_basic_setitem_with_labels5  s    
z,TestLocSeries.test_basic_setitem_with_labelsc           	      C   s$  t tjddttdddd}g d}tg d}| }| }d||< d|j	|< t
|| | }| }d||< d|j	|< t
|| g d}tg d}d}tjt|d	 d||< W d    n1 s0    Y  tjt|d	 d||< W d    n1 s0    Y  d S )
Nr3   r[   r   rL   r   )r   r_   r]   r   r_   r`   r]   z\[5\] not in indexr   )r   rr   r   r   rS  r   r   r   r   r"   r#   r   r   r   r=   	Exception)	r5   rC  r  Zarr_indsr   r   Zinds_notfoundZarr_inds_notfoundr   r)   r)   r*   !test_loc_setitem_listlike_of_intsD  s,    

&z/TestLocSeries.test_loc_setitem_listlike_of_intsc                 C   s   t tddddg dd}| }tddd}||jd	< |jd	 }||ksNJ | }||jd
< |jd
 }||ksvJ | }||d	< |d	 }||ksJ d S )Nr  r\   r  r  r   r   r  rr  r   r   )r   r   r   r   r"   r   )r5   rC  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   Zabcder
  r   )r   r   r   r"   r#   r   r   )r5   r   r,  r  r(   rC  r)   r)   r*   #test_loc_iloc_setitem_with_listlikev  s    

z1TestLocSeries.test_loc_iloc_setitem_with_listliker   r!   Nc                 C   s   t tg dg dd}d}tjt|d" |j|d d f  W d    n1 sT0    Y  tjt|d" d|j|d d f< W d    n1 s0    Y  d S )N))r!   0)r!   r-   )ry   r.  )   rL  rQ  r  r   r   rW   )r   r   r  r   r   r   r"   )r5   r   rC  r   r)   r)   r*   +test_loc_series_getitem_too_many_dimensions  s    0z9TestLocSeries.test_loc_series_getitem_too_many_dimensionsc                 C   s   |j g d }| }d|j|< | }d|jg d< t|| d|jdd< d|dd< t|| |j ddg \}}d|j||< d|dd< t|| d|j|< d|j|< || dksJ || dksJ d S )Nr  r`   r[   r  r]   rj  r_   )rq   r   r"   r   r#   r   )r5   r  r  r   r(   r  r  r)   r)   r*   test_loc_setitem  s"    


zTestLocSeries.test_loc_setitemr2   r   r  c                 C   s\   t ddgddgd|d}ddd|jd	d d f< t ddgddgd|d}t|| d S )
Nr	  defZghiZjklr|   r   ZnewAZnewBr   rc  )r5   r2   r'   r(   r)   r)   r*   test_loc_assign_dict_to_row  s    z)TestLocSeries.test_loc_assign_dict_to_rowc                 C   sp   t ddgd}tddddd|jd	< tddddd|jd	< t tddddggddgd	gd
}t|| d S )Nr   r   r   r]   r   r  r   )r   r   rW   rp   )r   r   r"   r#   r$   rE  r)   r)   r*   ,test_loc_setitem_dict_timedelta_multiple_set  s    z:TestLocSeries.test_loc_setitem_dict_timedelta_multiple_setc                 C   sl   t ddgdgd}ddg|jdddgf< t ttjtjgd	d
dtjgdtjgdddgd}t|| d S )NrW   r3   r   r   r]   r^   r   rC   r   r   r   r   )r   r"   r   rr   r}   r#   r$   rt   r)   r)   r*   3test_loc_set_multiple_items_in_multiple_new_columns  s    	zATestLocSeries.test_loc_set_multiple_items_in_multiple_new_columnsc                 C   sh   d}t jt|dB tjdddd}ttd|d}|jd d	ksFJ W d    n1 sZ0    Y  d S )
Nz#Period with BDay freq is deprecatedr   2000rL   ry   r  r   z
2000-01-14r_  )r#   r   r   r~   r  r   r   r"   )r5   r   rq   r&   r)   r)   r*    test_getitem_loc_str_periodindex  s
    z.TestLocSeries.test_getitem_loc_str_periodindex) r   r   r   r   r   r   r  r  r  r"  r#  r$  r%  r'  r*  r+  rr   r   r~   r   r  r-  r   r   r0  r1  r3  r  r  r4  r5  r7  r)   r)   r)   r*   r    s.   
	$

	

r  )T__doc__collectionsr   r   r   r   r   r   Zdateutil.tzr   numpyrr   r   Zpandas.errorsr   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandasr~   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr#   Zpandas.api.typesr   Zpandas.core.indexingr   Zpandas.tests.indexing.commonr   r   r   r}   r+   r,   r   r  r#  r^  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  int16r  r  r
  r"  r  r  r  r)   r)   r)   r*   <module>   s   P 
	 ?           = w CJ  f




	

