a
    d                    @   s$  d dl mZ d dlmZmZ d dlmZ d dlZd dlZd dl	Z	d dl
mZ d dlmZmZmZ d dlm  mZ d dl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" d dl#m$Z% d	Z&G d
d dZ'G dd dZ(dd Z)dZ*dZ+G dd dZ,G dd dZ-G dd dZ.dS )    )
namedtuple)datetime	timedeltaDecimalN)iNaT)InvalidIndexErrorPerformanceWarningSettingWithCopyError)
is_integer)Categorical	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestamp
date_rangeisnanotnato_datetimezBslice indices must be integers or None or have an __index__ methodc                	   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
ejdg dg dg 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d+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Ze j!d9d: Z"d;d< Z#d=d> Z$d?d@ Z%e j!dAdB Z&dCdD Z'e j!dEdF Z(dGdH Z)dIdJ Z*dKdL Z+dMdN Z,dOdP Z-dQdR Z.dSdT Z/dUdV Z0dWdX Z1dYdZ Z2d[d\ Z3d]d^ Z4d_d` Z5dadb Z6dcdd Z7ejdedfdggdhdi Z8djdk Z9dldm Z:dndo Z;dpdq Z<drds Z=dtdu Z>dvdw Z?dxdy Z@dzd{ ZAd|d} ZBd~d ZCdd ZDdd ZEdd ZFejdeGjHeGjHIdeGjHIdgdd ZJdd ZKdd ZLejddddgdfdddgeMfgdd ZNe j!dd ZOdd ZPejdddgeGjQeGjQggdd ZRejddeGjQgdd ZSejdeTeUeVjWgdd ZXdd ZYejddgdgejdi ddigdd ZZejdi ddigdd Z[dd Z\dd Z]dd Z^ejddfdgejde_dgdd Z`ejddgdfgejdddggdd Zaejdebjcdfebjddfgdd ZedS )TestDataFrameIndexingc                 C   s   |d d }t |jdksJ | D ].\}}t |jdks@J t|j|js&J q&|j D ]\}}|| d us`J q`d|vsJ tjtdd |d  W d    n1 s0    Y  d S )N   randommatch)	lenindexitemstmZequalContentsZ_seriespytestraisesKeyError)selffloat_framesl_serieskey r)   r/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/frame/indexing/test_indexing.pytest_getitem+   s    z"TestDataFrameIndexing.test_getitemc                 C   sl   |}t g d|d}tg dg dg|d}|d }tddgdd	ggt ddg|dd}tj||d
d d S )N   r   r-   dtyper-                  columnsr-   r2   r4   r6   TZcheck_exactr   r   r   assert_frame_equal)r#   any_numeric_dtyper/   idxdfresultexpectedr)   r)   r*   6test_getitem_numeric_should_not_fallback_to_positional<   s    $zLTestDataFrameIndexing.test_getitem_numeric_should_not_fallback_to_positionalc                 C   s   |  }tjdt||d< tjdt|}||d< tjtt	
dd |d W d    n1 st0    Y  |d }t||j d S )Nr1   z$10z@awesome_domainz'df["$10"]'r   z	df["$10"])copynpr   default_rngstandard_normalr   r    r!   r"   reescape__getitem__r   Zassert_numpy_array_equalvalues)r#   r$   r>   adresr)   r)   r*   test_getitem2E   s    (z#TestDataFrameIndexing.test_getitem2c                 C   s`   |}t g d|d}tg dg dg|d}d|d< tg dg d	g|d}tj||d
d d S )Nr,   r.   r0   r3   r7   
   r-   )rM   r1   rM   )rM   r5   rM   Tr9   r:   )r#   r<   r/   r=   r>   r@   r)   r)   r*   6test_setitem_numeric_should_not_fallback_to_positionalR   s    zLTestDataFrameIndexing.test_setitem_numeric_should_not_fallback_to_positionalc                 C   s   d|d< |ddg }||ddg< t j|d |d dd t j|d |d dd d}tjt|d" |ddg |dg< W d    n1 s0    Y  tt|jd	 }d
t| dt| d}tjt|d ||d< W d    n1 s0    Y  d S )NfooEABFZcheck_namesz"Columns must be same length as keyr   r-   zLength of values \(z$\) does not match length of index \(z\))r   assert_series_equalr    r!   
ValueErrorranger   r   )r#   r$   datamsgZnewcolumndatar)   r)   r*   test_setitem_list[   s    0z'TestDataFrameIndexing.test_setitem_listc                 C   s   t dtdddgtjd}ddg|jdddgf< |j|jd ddgf }tddg|jtjdd}t	|| d	 |d< |d< d
dg|j|jd ddgf< |j|jd ddgf }td
dg|jdd}t	|| d S )Nr   r2   Ztt1Ztt2)r   r8   r/   r-   r1   )r/   name012rZ   )
r   rV   rC   int_locr   r   r8   r   rT   r#   r>   r?   r@   r)   r)   r*   test_setitem_list2n   s    z(TestDataFrameIndexing.test_setitem_list2c                    s  |j d }|j |k}|t}|j | }|| }t||j  tjtdd  ||d d   W d    n1 sr0    Y  || }	t|	| tjtdd ||  W d    n1 s0    Y  t	||j }|| }	t|	| t
t: ||j d d d }|| }	t|	| W d    n1 s20    Y  |||fD ]}
|
  |
|
dk }t fdd jD  j  jd	}|
jD ]}||vr|
| ||< q|j|
jd
}tj||dd |
jD ]6}|| j|| jkr|| j|
| jksJ qȐqFd S )NrM   zItem wrong lengthr   zBoolean array expectedr   c                    s*   i | ]"}|t  | d k | t jqS )r   )rC   wherenan).0crW   r)   r*   
<dictcomp>       z>TestDataFrameIndexing.test_getitem_boolean.<locals>.<dictcomp>r   r8   r7   F)Zcheck_dtype)r   astypeobjectr   Zassert_index_equalr    r!   rU   r;   r   assert_produces_warningUserWarningreindexZ_get_numeric_datar   r8   r/   )r#   Zmixed_float_frameZmixed_int_framedatetime_framedindexerZindexer_objZsubindexZsubframeZsubframe_objr>   ZbifZbifwrg   r)   rh   r*   test_getitem_boolean|   sL    



.&,


z*TestDataFrameIndexing.test_getitem_booleanc                 C   s@  |  }d|d< |d d|d< |d   |d< d|d< |d d|d< |d   |d< ||dk }|j}ttd	gd
 tdgd  tdgd  g dd}t|| d|j|j	dd ddgf< ||dk }|j}ttd	gd
 tdg td	g tdg td	g g dd}t|| d S )Nr-   rP   int32E1Fint64F1r   float64r4   r1   )rQ   rR   CDrP   rv   rw   ry   r   r2   )
rB   rl   dtypesr   rC   r/   r   rT   r`   r   )r#   rq   r>   Zcastedr?   r@   r)   r)   r*   test_getitem_boolean_casting   sD    



z2TestDataFrameIndexing.test_getitem_boolean_castinglstTFT)TTT)FFFc                 C   s>   t tddd}|| }|j|j|  }t|| d S )N   r2   r4   )r   rC   arangeZreshaper`   r   r   r;   )r#   r   r>   r?   r@   r)   r)   r*   test_getitem_boolean_list   s    z/TestDataFrameIndexing.test_getitem_boolean_listc                 C   s`   t jdd}t| g dd}||dk   d7  < ||dk   d7  < t|j| d S )Nr1   r5   r5   )rQ   rR   r{   r|   rP   r7   r   r-   )	rC   r   rD   rE   r   rB   r   assert_almost_equalrI   )r#   arrr>   r)   r)   r*   test_getitem_boolean_iadd   s
    z/TestDataFrameIndexing.test_getitem_boolean_iaddc                 C   s>   t tddgdgtg d}tg t}||  d||< d S )Nr   r-   rQ   r8   r   )r   rC   emptyr   arraybool)r#   Zblahkr)   r)   r*   test_boolean_index_empty_corner   s    z5TestDataFrameIndexing.test_boolean_index_empty_cornerc                 C   s   t tjddg dg dd}|jd d }|j|jd d  }t	|| |jddg }|jt
ddg }t	|| d S )	Nr1   )r4   r2   )r-   rM   r{   rP   r0   rk   rc   r-   rM   )r   rC   r   rD   rE   ilocr`   r   r   r;   r   ra   r)   r)   r*   test_getitem_ix_mixed_integer   s    z3TestDataFrameIndexing.test_getitem_ix_mixed_integerc                 C   s~   t dg dg dg ddg dd}|dg }|jd d dgf }t|| |d	g }|jd d d
gf }t|| d S )N)      ?g@g	@      @)      $   (   )rM      +   "   )r   rM   r      )Zrnar     r7   r   r2   r   r-   r   r   r   r;   ra   r)   r)   r*   test_getitem_ix_mixed_integer2  s    	

z4TestDataFrameIndexing.test_getitem_ix_mixed_integer2c                 C   sN   t |j|d  d}tjt|d |j W d    n1 s@0    Y  d S )NrQ   z6'DataFrame' object has no attribute 'NONEXISTENT_NAME'r   )r   rT   rQ   r    r!   AttributeErrorZNONEXISTENT_NAME)r#   r$   rX   r)   r)   r*   test_getattr  s    z"TestDataFrameIndexing.test_getattrc                 C   s0   t dditdd}d|_|jdk s,J d S )Nfoobarr-   rM   r}   r5   )r   rV   r   allr#   r>   r)   r)   r*   test_setattr_column  s    z)TestDataFrameIndexing.test_setattr_columnc                 C   s  |d d d d }||d< d|v s&J t |dks6J t |dksFJ tt|jtjgd f}t||jdd}t	|d | |d }||d< tj	||d dd	 tj
dt |}||d
< |d
 |k sJ d|d< |d dk sJ d|d< |d dk sJ d|d< |d dk s2J |d d }d}|rVddg|d< n<tjt|d ddg|d< W d    n1 s0    Y  |d jtjksJ |d ddgk sJ d S )NrQ   r1   Zcol5   r   r   rZ   Zcol6FrS   Zcol9r5   Zcol7gQ	@Zcol0rO   Zcol8zC\nA value is trying to be set on a copy of a slice from a DataFramer\   r]   Zcol10r   )r   rC   ZravelZcolumn_stackrI   re   r   r   r   rT   r   rD   rE   r   r    r!   r
   r/   object_)r#   r$   using_copy_on_writer'   expr   ZsmallerrX   r)   r)   r*   test_setitem#  s8    ,z"TestDataFrameIndexing.test_setitemc                 C   sb   t ddgg}tj|jd< t tjtjgg}t|| t ddgg}tj|jd< t|| d S )Nr   )r   rC   re   r   r   r;   r`   r#   r>   r@   r)   r)   r*   test_setitem2Q  s    z#TestDataFrameIndexing.test_setitem2c           	      C   sD  |  }|j  }d||d dk< d||d d df dk< t|j| |d dk}||jd d d }d||< d||d d df dk< t|j| d||dk< d||dk< t|j| d||dk< d||dk< t|j| d||d d dk < t|d d |d d dk d t|j| d||d d d dk< d||dk< t|j| d	}tj	t
|d
 d||d < W d    n1 s0    Y  |  }|t|k}tj||t|k< |j  }tj||j< t||j|jd}t|| |d ||t|k< t||j|jd  t||j|jd}t|| d S )Nr4   rQ   r   rc   r-   r5   r1   r2   z;Must pass DataFrame or 2-d ndarray with boolean values onlyr   rk   )rB   rI   r   r   rp   r   rC   Zputmaskr    r!   	TypeErrorabsre   r   r8   r;   )	r#   r$   r>   rI   r'   rX   Zdf_origmaskr@   r)   r)   r*   test_setitem_boolean\  sH    
",
z*TestDataFrameIndexing.test_setitem_booleanc                 C   s  |d  d|d< |d jtjks&J d|d< |d jtjksBJ tt||d< t|d jjtjslJ d|d< d|d< |d jtjksJ d|d< d|d< |d jtj	ksJ d|d< |d jtjksJ d	|d< |d jtjksJ d|d< |d jtj	ks
J d S )
Nr|   i8r   rR   barrO         @Z	somethingr1   )
rl   r/   rC   rx   r   r   
issubclasstypeintegerrz   r#   r$   r)   r)   r*   test_setitem_cast  s$    z'TestDataFrameIndexing.test_setitem_castc                 C   s  t g dg ddtdd}|d= g d|d< d|v s>J t|jdksPJ d|d	< d
|d< d|d< d|t < d|t < t |jd}d
|d	< d|d< t|jdksJ |jj	tj
ksJ d|d< |d j	tjksJ d|d< |d j	tjksJ d|d	< d|d	 jd ksJ t tdd}d|d	< d|d
< |d
= d|d
< |d
 j	tj
ks\J g d|d< |d j	tj
ks~J d S )N)      ?       @      @abrg   )rR   r{   r2   r}   rR   r1   Z	beginningrQ   rO   rP   r   r|   date      @r-   r{   r   r   r\   r]   3Z	coercible)r   rC   r   r   r8   r   nowr   rI   r/   r   rx   rz   r   )r#   r$   r>   dmr)   r)   r*   test_setitem_corner  s:     z)TestDataFrameIndexing.test_setitem_cornerc                 C   s   g ddgd  t jddd}t|}||d dk j}d|j|dgf< d	|j|d
gf< |jd dksrJ |jd d	ksJ d S )N)r   r   r   r      r1   r   )titlecruftr   r   r   r   )r-   r   )r-   r   )rC   r   rD   r   r   r`   )r#   rW   r>   ixr)   r)   r*   test_setitem_corner2  s    z*TestDataFrameIndexing.test_setitem_corner2c                 C   s   t tdtdd}tdd tdD tdd}tg dtdd}td|d< t|jdksfJ ||d< t|jdksJ ||d	< t|jdksJ |d	 jtjksJ d S )
Nr2   rk   c                 S   s   g | ]}t d qS )r-   r   )rf   r&   r)   r)   r*   
<listcomp>  rj   z<TestDataFrameIndexing.test_setitem_ambig.<locals>.<listcomp>r}   )rO   bzrbazr   r-   r1   )	r   rV   r   rC   onesr   r8   r/   r   )r#   r   Zcoercable_seriesZuncoercable_seriesr)   r)   r*   test_setitem_ambig  s    z(TestDataFrameIndexing.test_setitem_ambigc                 C   st   |d |d < t j|jd d df |d dd t j|jd d d f |d dd t j|d  |d dd t| d S )NrQ   rc   FrS   )r   rT   r   r`   reprr   r)   r)   r*   test_setitem_None  s    z'TestDataFrameIndexing.test_setitem_Nonec                 C   sJ   t g dg dg dd}| }|j|j|j df< t|| d S )Nr   )Z11Z22Z33)Z111Z222Z333r   r   )r   rB   r   r`   r   r   r   r;   )r#   r>   r?   r)   r)   r*   &test_loc_setitem_boolean_mask_allfalse  s    z<TestDataFrameIndexing.test_loc_setitem_boolean_mask_allfalsec                 C   sZ   t tjdd}|jd dd  tj|jd dd< t|jd dd j	 sVJ d S )Nr1   rM   r5      )
r   rC   r   rD   rE   r   re   r   rI   r   r   r)   r)   r*   &test_getitem_fancy_slice_integers_step  s    z<TestDataFrameIndexing.test_getitem_fancy_slice_integers_stepc                 C   sr  t tjddtdddd}| }d|jdd< |jdd dkj	 sTJ | }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 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 sd0    Y  d S )Nr1   r   r   r   r}   r4   rM   r2   r   r6   )r4   r6   r   rM   r5   rc   z^3$r   )r   rC   r   rD   rE   rV   rB   r   rI   r   r`   rp   r   r;   listr    r!   r"   )r#   r>   cpr?   result2r@   df2r)   r)   r*   ,test_getitem_setitem_integer_slice_keyerrors  s&    *.zBTestDataFrameIndexing.test_getitem_setitem_integer_slice_keyerrorsc                 C   s   |j d d dd f }|d jtjks*J | }|j d d dd f }t|d j|d jsdJ d|jd d df< |s|d dk sJ t|d j|d j nt	
|| d S )Nr|   r{         @r4   )r   r/   rC   rz   rB   shares_memory_valuesr`   r   r   r;   )r#   r$   float_string_framer   Zslicedoriginalr)   r)   r*   test_fancy_getitem_slice_mixed3  s    z4TestDataFrameIndexing.test_fancy_getitem_slice_mixedc                 C   s   t  }|jddg \}}|j|| }||| }|dd }t || t || | }d|j||< | }d|||< | }d|dd< t || t || d S )Nr5   rM   r   r   )r   ZmakeTimeDataFramer   r`   r;   rB   )r#   r>   startendr?   r   r@   r)   r)   r*   "test_getitem_setitem_non_ix_labelsJ  s    z8TestDataFrameIndexing.test_getitem_setitem_non_ix_labelsc                 C   s   t tjdd}|j|jdkd d f }|dg}t	|| t tjdd}|j|jdk|j
dkf }|jdgdgd}t	|| d S )Nr1   r2   r1   r   r-   rk   )r   rC   r   rD   rE   r`   r   rp   r   r;   r8   )r#   r>   rsZxpr)   r)   r*   test_ix_multi_take^  s    z(TestDataFrameIndexing.test_ix_multi_takec                 C   sP   |}|j }|jD ]:}|| }|jd d d D ]}|||f || ks,J q,qd S )Nr5   )r`   r8   r   )r#   r$   fr   coltsr=   r)   r)   r*   test_getitem_fancy_scalarj  s    
z/TestDataFrameIndexing.test_getitem_fancy_scalarc           
      C   s   |}|  }|j}t|jD ]h\}}||  |jd d d D ]F}|j|}tjd	 }	|	|j
||f< |	|||f< t|| q<qd S )Nr5   r1   )rB   r`   	enumerater8   r   Zget_locrC   r   rD   rE   r   r   r;   )
r#   r$   r   r@   r   jr   r=   ivalr)   r)   r*   test_setitem_fancy_scalart  s    z/TestDataFrameIndexing.test_setitem_fancy_scalarc                 C   s  |}|j }|jddgd}|d d g df }t|| |j|jdd ddgd}||jdd g df }t|| |j|jd k}|j|j| d	}|| }t|| ||d d f }t|| |||jd
d  f }|j|j| ddgd}t|| d S )NrR   r|   r7   )FTFTr5   rM   rk      r}   r1   r{   )r`   rp   r   r;   r   r8   )r#   r$   r   r   r@   r?   Zboolvecr)   r)   r*   test_getitem_fancy_boolean  s"    z0TestDataFrameIndexing.test_getitem_fancy_booleanc                 C   s   |  }|  }|j  }|d dk}d|j|< d||j< t||j|jd}t|| |  }|  }|j  }d|j|ddgf< d||jd df< t||j|jd}t|| d S )NrQ   r           rk   rR   r1   )rB   rI   r`   r   r   r8   r   r;   )r#   r$   framer@   rI   r   r)   r)   r*   test_setitem_fancy_boolean  s    



z0TestDataFrameIndexing.test_setitem_fancy_booleanc                 C   sp   |j g d }|j|jg d  }t|| |j d d g df }|jd d |jg d f }t|| d S )N)r-   r4   r   )r1   r   r-   )r   r`   r   r   r;   r8   )r#   r$   r?   r@   r)   r)   r*   test_getitem_fancy_ints  s    z-TestDataFrameIndexing.test_getitem_fancy_intsc                 C   st   |d d d d dk}|j | }|j |d d d  }t|| | }| }d|j |< d|j |< t|| d S )NrQ   rc   r-   r   )r`   r   r;   rB   )r#   r$   r   r?   r@   r   r)   r)   r*   'test_getitem_setitem_boolean_misaligned  s    


z=TestDataFrameIndexing.test_getitem_setitem_boolean_misalignedc                 C   s   t tjdd}tg d}tddg}|j||f }|jddgdgf }t|| |	 }d|jtg dtddgf< d|jddgdgf< t|| d S )	Nr1   r   r   FTr   r-   r5   )
r   rC   r   rD   rE   r   r`   r   r;   rB   )r#   r>   Zk1Zk2r?   r@   r)   r)   r*   "test_getitem_setitem_boolean_multi  s    "z8TestDataFrameIndexing.test_getitem_setitem_boolean_multic                 C   s2  t g d}ttjdd|d}|jdd }|g d}t	|| t
|dks^J |jdd }|ddg}tj	||d	d
 t
|dksJ |jdd }|ddg}t	|| t
|dksJ |jdd }|jdd }t	|| d|jdd< d}tjt|d |dd }W d    n1 s>0    Y  |dk  s^J t g d}ttjdd|d}d}tjt|d |jdd  W d    n1 s0    Y  |jdd }|dg}t	|| t
|dksJ | }tjttd d|jdd< W d    n1 s:0    Y  tjt|d" |jdd dk}W d    n1 s|0    Y  |j sJ |jdd |jdd kj sJ | }d|jdd< |jdd dkj sJ |jdd |jdd kj sJ |jdd }|}t	|| t
|dksJJ |jdd }|g d}t	|| t
|dksJ |jdd }|dg}t	|| t
|dksJ |jdd }|g d}t	|| t
|dksJ | }d|jdd< |jdd }|dkj s.J d S )N)r   r1   r2   r4   r5   r1   r   r}   r   r4   )r   r1   r2   r4   r5   F)Zcheck_index_typer   r   r-   r   z3The behavior of obj\[i:j\] with a float-dtype indexr   )r   r         @r   r   zPcannot do positional indexing on Index with these indexers \[1.0\] of type floatr   g?)r   r   r   r   g
ףp=
@)r   r   rC   r   rD   rE   r`   rp   r   r;   r   r   rn   FutureWarningr   r    r!   r   rB   
_slice_msgrI   )r#   using_array_managerr   r>   r?   r@   rX   r   r)   r)   r*   !test_getitem_setitem_float_labels  s~    ,..2((z7TestDataFrameIndexing.test_getitem_setitem_float_labelsc                 C   s0  t tjddg dg dd}td|d< |j}ttdgd	 td
g g dd}t	
|| t	jtdd t|jd< W d    n1 s0    Y  t|jd rJ |d jtjksJ |jd tksJ tj|jd< t|jd sJ tj|jdd d f< t|jdd d f  r,J d S )Nr1   r5   r2   )r   r   rg   rr   e)rO   r   r   rk   Z20010102	timestamprz   r2   zdatetime64[s])rO   r   r   r   r}   %Setting an item of incompatible dtyper   )r   r   )rg   r   rr   rg   )r   rC   r   rD   rE   r   r~   r   r/   r   rT   rn   r   r   r`   r   r   re   r   ra   r)   r)   r*   )test_setitem_single_column_mixed_datetime0  s.    (z?TestDataFrameIndexing.test_setitem_single_column_mixed_datetimec                 C   s   t g dtddddddtdddtdddgd}t d	td
tdd}tj|d< tddd|jd< tjt	dd d|jd< W d    n1 s0    Y  d|jddgdf< t
dt
dgdt
dgg}||jddgddgf< t|| d S )N)r   r   r   r         i  r-   xyi  i  r   r   r   abr6   r   r   r   r   r  r   )r-   r   r  r  r1   r2   r  z2013-01-01T00:00:00r  z2014-01-01T00:00:00r4   r5   r   )r   r   r   rV   pdNaTr`   r   rn   r   rC   r   
datetime64r;   )r#   r@   r>   rQ   r)   r)   r*   test_setitem_mixed_datetimeR  s4    



(z1TestDataFrameIndexing.test_setitem_mixed_datetimec                 C   sn   |j |jd d ddgf }|j|j |jd d ddgf< |j |jdd  ddgf j}|j}t|| d S Nr1   rQ   rR   )r`   r   rI   r   r   r#   r$   piecer?   r@   r)   r)   r*   test_setitem_frame_floatr  s
    z.TestDataFrameIndexing.test_setitem_frame_floatc                 C   s~   |  }tddgddgg|jdd ddgd	}|jtd d ddgf}||j|< t|j|jdd ddgf j|j d S )
Nr   r   r   r   r   r1   rQ   rR   rk   )rB   r   r   slicer`   r   r   rI   r#   r   r   r  r(   r)   r)   r*   test_setitem_frame_mixedy  s     
z.TestDataFrameIndexing.test_setitem_frame_mixedc                 C   s   |  }tddgddgddgddggt|jd	d
 ddg ddgd}|jtd d
 ddgf}||j|< t|j|jd	d
 ddgf j|jd	d
  d S )Nr   r   r   r   r   g      @g      @g       @r   r1   rO   r   rQ   rR   rk   )	rB   r   r   r   r  r`   r   r   rI   r  r)   r)   r*   'test_setitem_frame_mixed_rows_unaligned  s    
(z=TestDataFrameIndexing.test_setitem_frame_mixed_rows_unalignedc                 C   s   |  }|j|jd d dgf }|jdd  |_|jtdd  ddgf}||j|< tj|d< t|j|jdd  ddgf j|j d S )Nr1   rQ   r  rR   )	rB   r`   r   r  rC   re   r   r   rI   r  r)   r)   r*   &test_setitem_frame_mixed_key_unaligned  s    

z<TestDataFrameIndexing.test_setitem_frame_mixed_key_unalignedc                 C   st   |  }|j|jd d ddgf }|jtdd  ddgf}|j|j|< t|j|jdd  ddgf j|j d S r  )rB   r`   r   r  rI   r   r   r  r)   r)   r*    test_setitem_frame_mixed_ndarray  s
    z6TestDataFrameIndexing.test_setitem_frame_mixed_ndarrayc                 C   s   t g dg dgg dd}| }|jd d ddgf d |jd d ddgf< |jddgd}|d7 }|d |d< t|| d S )	N)r-   r1   rO   )r2   r4   r   rQ   rR   r{   r7   rQ   rR         ?r{   )r   rB   r`   rp   r   r;   )r#   r>   r   r@   r)   r)   r*   test_setitem_frame_upcast  s    ,z/TestDataFrameIndexing.test_setitem_frame_upcastc                 C   s   |j |jd d ddgf }|jdd  |_ddg|_||j |jdd  ddgf< |j |jdd  ddgf j}|j}t|| d S r  )r`   r   r8   rI   r   r   r  r)   r)   r*   test_setitem_frame_align  s    
z.TestDataFrameIndexing.test_setitem_frame_alignc                 C   s   t tjddg dd}|jd }|d d }t|| |jd }|jddg }t|| |jd }|jd	 }t	|| d S )
Nr1   r   rO   rO   r   r   r   r}   rO   r   r4   r   r2   )
r   rC   r   rD   rE   r`   r   r;   r   rT   ra   r)   r)   r*   "test_getitem_setitem_ix_duplicates  s    



z8TestDataFrameIndexing.test_getitem_setitem_ix_duplicatesc                 C   s   t tjddg dd}|jdg }|jddg }t|| |j|d dk }||d dk }t|| |j|d dk }||d dk }t|| d S )	Nr1   r   r  r}   r   r4   r-   r   )	r   rC   r   rD   rE   r`   r   r   r;   )r#   r>   r?   r   r)   r)   r*   +test_getitem_ix_boolean_duplicates_multiple  s    zATestDataFrameIndexing.test_getitem_ix_boolean_duplicates_multiple
bool_valueTFc                 C   s   t dg di}| d}tjt|d |j|  W d    n1 sH0    Y  d}tjt|d d|j|< W d    n1 s0    Y  d S )Nr   r0   z7: boolean label can not be used without a boolean indexr   z.cannot use a single bool to index into setitemr   )r   r    r!   r"   r`   )r#   r!  r>   messagerX   r)   r)   r*   %test_getitem_setitem_ix_bool_keyerror  s    
(z;TestDataFrameIndexing.test_getitem_setitem_ix_bool_keyerrorc                 C   s   d|d< t |d jjttjfs$J |j|jd df }t|sDJ t	ddgi}d|d< |jd }t|spJ t
dgd	gdd
}|jd	gdf }t|| d S )Nr-   rP   r5   r   gGz?i  r   r	  r   r^   )r   r/   r   intrC   r   r`   r   r   r   r   r   rT   )r#   r$   r?   r>   r@   r)   r)   r*   "test_single_element_ix_dont_upcast  s    
z8TestDataFrameIndexing.test_single_element_ix_dont_upcastc                 C   s   t tjddtdddd}|jd }|jd }t	|| |jd }|jd }t	|| |jt
dd }|jdd	 }t|| |jg d
 }||jg d
 }t|| d S )Nr1   rM   r4   r   r   r}   r-   r4   r   r  r-   r1   r4   r6   )r   rC   r   rD   rE   rV   r   r`   r   rT   r  r;   rp   r   r#   r>   r?   r   r@   r)   r)   r*   test_iloc_row  s    



z#TestDataFrameIndexing.test_iloc_rowc                 C   s   t tjddtdddd}| }|jtdd }t	|d |d sRJ |d  }d|j
d d df< |sd|j
d d df< d|jdd< t	|d |d sJ t|d | d S )	Nr1   r&  r   r   r}   r4   r   r   )r   rC   r   rD   rE   rV   rB   r   r  r   r`   r   r   rT   )r#   r   requestr>   r   subsetZexp_colr)   r)   r*   test_iloc_row_slice_view  s    z.TestDataFrameIndexing.test_iloc_row_slice_viewc                 C   s   t tjddtdddd}|jd d df }|jd d df }t	|| |jd d df }|jd d df }t	|| |jd d t
ddf }|jd d dd	f }t|| |jd d g d
f }|j|jg d
 d}t|| d S )Nr1   r4   rM   r   r   r7   r-   r4   r   r  r'  )r   rC   r   rD   rE   rV   r   r`   r   rT   r  r;   rp   r8   r(  r)   r)   r*   test_iloc_col*  s    z#TestDataFrameIndexing.test_iloc_colc                 C   s   t tjddtdddd}| }|jd d tddf }|s|st	|d j
|d j
sfJ d|jd d df< |d dk sJ t	|d j
|d j
sJ nH|rt	|d j
|d j
sJ d|d< |d dk sJ t|| d S )	Nr1   r-  r   r   r7   r4   r   r   )r   rC   r   rD   rE   rV   rB   r   r  r   r   r`   r   r   r;   )r#   r   r   r>   r   r+  r)   r)   r*   test_iloc_col_slice_viewA  s    z.TestDataFrameIndexing.test_iloc_col_slice_viewc                 C   s   t tddddtddddd}|jdtddddd}td|dd	gd
}tg d}d|j|| df< tg dg dd|d}t|| td|dd	gd
}|j|| df  d7  < t|| d S )Ni  r-   )yearmonthdayr5   )r   r   )r`   itemr   rQ   rR   rk   )FFFFFTr6   )r   r   r   r   r6   r6   )r   r   r   r   r   r   )rQ   rR   r}   )	r   r   insertr   rC   r   r`   r   r;   )r#   Ztranger>   Zbool_idxr@   r)   r)   r*   test_loc_duplicates\  s    z)TestDataFrameIndexing.test_loc_duplicatesc                 C   s|   t tdddddd}td|i}|g d |d< t|d | td|i}|g d |jg ddf< t|d | d S )	Nz
2015-01-01r2   utc)periodstzdatesr^   )r-   r   r1   )r   r-   r1   )r   r   r   r   rT   r`   )r#   columnr>   r)   r)   r*   4test_setitem_with_unaligned_tz_aware_datetime_columnw  s    zJTestDataFrameIndexing.test_setitem_with_unaligned_tz_aware_datetime_columnc                 C   s  t dd}ttdddd}tjd| gd dd|d	< tjd
| gd dd|jd d df< tjd| gd dd|j|jd d df< tjd| gd dd|jd d df< tjd| gd dd|j|jd d df< td|d< tjd| gd dd|j|jd d df< tddd|j|jd d df< td|d< |j	}t
tdgd tdgd
  tdd}t|| d S )Nr-   )hoursZ20130101r4   r7  r}   m8[ns]r.   rQ   r1   rR   r2   r{   r|   r5   rP   r  rw   r6   rc   r   GHztimedelta64[ns]zdatetime64[ns]ZABCDEFGH)r   r   r   rC   r   r`   r   timedelta64r  r~   r   r/   r   r   rT   )r#   Zone_hourr>   r?   r@   r)   r)   r*   ,test_loc_setitem_datetimelike_with_inference  s"    
&,&,, zBTestDataFrameIndexing.test_loc_setitem_datetimelike_with_inferencec                 C   s"  t tjtjtjtjtjdtjdtjdddtjtjdtjtjdtjtjtjtjtjddtjtjtjtjdddddddd}| }d||d	k< | }d|jd
< d|jd< d|jd< d|jd< t|| d|d< d}tjt	|d d||d	k< W d    n1 s0    Y  d S )N)#   r   r   1   2   gjBz?g% t?gk?g?r   r-   )r   r-   r1   r2   r4   r  g333333?)r   r-   )rD  r-   )rE  r-   )rC  r4   testrO   z1not supported between instances|unorderable typesr   )
r   rC   re   rB   r`   r   r;   r    r!   r   )r#   r>   r   r@   rX   r)   r)   r*   #test_getitem_boolean_indexing_mixed  sH    



z9TestDataFrameIndexing.test_getitem_boolean_indexing_mixedc                 C   s:  t jddgddggd dgd}tg dg dg|tddgd	d
d}tjtdd  |d d df  W d    n1 sx0    Y  ttdd	d
}t ddgddggddgddggd dgd}tddgddgg||d}|jd d t	d dff }t
|| d}ttdd	d
}tddg||d}|d }t
|| d S )Nr  r  r   r-   rg   names)r-   r-   r1   r1   )r2   r2   r4   r4   r   r^   r   r  r   r1   )levelscodesrI  r2   r4   )r  r   r   )r   from_productr   r   r    r!   r   rV   r`   r  r   r;   r   rT   )r#   miZdgr   r8   r@   r?   rZ   r)   r)   r*   test_type_error_multiindex  s$    ."z0TestDataFrameIndexing.test_type_error_multiindexc                 C   sh   t tdtjtdd}|jd d df }|d }t	|| |j
d d df }t	|| d S )Nr2   r4   r5   r7   r   r  )r   rC   r   r  ZIntervalIndexZfrom_breaksr   r   r   rT   r`   )r#   r>   r@   rK   r)   r)   r*   ,test_getitem_interval_index_partial_indexing  s    zBTestDataFrameIndexing.test_getitem_interval_index_partial_indexingc                 C   sZ   t ddgtd}tdtdd|jd< t tdgtdgd}t|| d S )Nr   r   )r8   r/   )r1   )r1   r1   r  r   )r   rm   rC   zerosr`   r   r;   r   r)   r)   r*    test_setitem_array_as_cell_value  s    z6TestDataFrameIndexing.test_setitem_array_as_cell_valuec                 C   s   t dg didd}| }|jd d d d df |jd d < t|| tjj	|jd d d d df |jd d < t|| |j
d d d d f |j
d d < t|| d S )NrQ   r0   Int64r.   rc   )r   rB   rI   r`   r   r;   r  coreZarraysZNumpyExtensionArrayr   )r#   r>   origr)   r)   r*   $test_iloc_setitem_nullable_2d_values  s    ", z:TestDataFrameIndexing.test_iloc_setitem_nullable_2d_valuesc                 C   s2   t tjdtd}t|d |d< |dg  d S )Nr-   r-   r.   r   )r   rC   r   rm   Z
empty_liker   r)   r)   r*   ,test_getitem_segfault_with_empty_like_object  s    zBTestDataFrameIndexing.test_getitem_segfault_with_empty_like_objectnullM8[ns]r>  c                 C   s  t dg di|d}|d }|j}dg d}tjt|d ||d< W d    n1 s\0    Y  tjt|d  ||g|d d< W d    n1 s0    Y  tjt|d ||d< W d    n1 s0    Y  tjt|d  ||g|d d< W d    n1 s0    Y  tjt|d ||jd< W d    n1 sJ0    Y  tjt|d" ||g|jd d< W d    n1 s0    Y  tjt|d ||jd	< W d    n1 s0    Y  tjt|d& ||g|jd ddf< W d    n1 s0    Y  | }| |d
< tjt|d ||jd	< W d    n1 sZ0    Y  tjt|d& ||g|jd ddf< W d    n1 s0    Y  d S )NrQ   r0   r.   |)z@timedelta64\[ns\] cannot be converted to (Floating|Integer)Dtypez?datetime64\[ns\] cannot be converted to (Floating|Integer)Dtypez 'values' contains non-numeric NAz1Invalid value '.*' for dtype (U?Int|Float)\d{1,2}r   r   r1   r   r   rR   )r   r   joinr    r!   r   r   rB   )r#   rY  Zany_numeric_ea_dtyper>   serr   rX   r   r)   r)   r*   .test_setting_mismatched_na_into_nullable_fails
  s8    &.&0*2*6*zDTestDataFrameIndexing.test_setting_mismatched_na_into_nullable_failsc                 C   sL   t dgtg ddd}d|jd< t ddgitdgddd}t|| d S )Nr   r   r^   r   r-   r   r}   )r   r   r`   r   r;   r   r)   r)   r*   +test_loc_expand_empty_frame_keep_index_name>  s    
zATestDataFrameIndexing.test_loc_expand_empty_frame_keep_index_namec                 C   sX   t dgtjg g ddd}d|jd< t ddgitjdgg ddd}t|| d S )Nrr   r   rH  r   rO   r0   r}   r   r   from_tuplesr`   r   r;   r   r)   r)   r*   +test_loc_expand_empty_frame_keep_midx_namesE  s    
zATestDataFrameIndexing.test_loc_expand_empty_frame_keep_midx_nameszval, idxr, warn)r  r   Nr  r   N)r-   r   Nr-   c                 C   s   t dddgi}tj|dd6 t d|dgiddgd|jd d |f< W d    n1 sZ0    Y  t dtj|gi}t|| d S )Nr   r-   r1   r  r   r   r}   )r   r   rn   r`   rC   re   r;   )r#   idxrr   warnr>   r@   r)   r)   r*   test_loc_setitem_rhs_frameQ  s    Dz0TestDataFrameIndexing.test_loc_setitem_rhs_framec                 C   s~   t ddgd}| }|d d  }td 2 tjddgtjd|jd d df< W d    n1 sd0    Y  t|| d S )Nr   r   r7   r-   r1   r.   r   )	r   rB   r   rn   rC   r   rz   r   r;   )r#   r>   r@   viewr)   r)   r*   $test_iloc_setitem_enlarge_no_warninge  s    @z:TestDataFrameIndexing.test_iloc_setitem_enlarge_no_warningc                 C   s   t ddddtjddgddggddgdd	}d
g}d|d< d|j|df< |j|df  |j|ddgf  d|j|df< |j|df }tdtjdgdggddgddd }}t|| d S )NTr-   r   )Zbool_colr   r   r1   idx1idx2rH  r}   rW  r2   rg   r   r   r   r   r   )r   r   from_arraysr`   r   r   rT   )r#   r>   r=   r?   r@   r)   r)   r*   (test_loc_internals_not_updated_correctlyo  s"    

z>TestDataFrameIndexing.test_loc_internals_not_updated_correctlyr   c                 C   sP   t dg didd}||jdgd d f< t dtjddgidd}t|| d S Nr   r   stringr.   r   r   rg   r   r   r  NAr   r;   r#   r   r>   r@   r)   r)   r*    test_iloc_setitem_string_list_na  s    z6TestDataFrameIndexing.test_iloc_setitem_string_list_nac                 C   sN   t dg didd}||jdd d f< t dtjddgidd}t|| d S rm  ro  rq  r)   r)   r*   test_iloc_setitem_string_na  s    z1TestDataFrameIndexing.test_iloc_setitem_string_nafuncc                 C   sP   t dg didd}d|jd d |dgf< t dg didd}t|| d S )Nr   r0   rS  r.   r5   r   )r5   r5   r5   r   )r#   rt  r>   r@   r)   r)   r*   /test_iloc_setitem_ea_null_slice_length_one_list  s    zETestDataFrameIndexing.test_iloc_setitem_ea_null_slice_length_one_listc                 C   s   t tjddgg dgddgdd}td|jj}|dd	d
gd}|j|d d f }t tjddgddgdd}t	|| d S )NrQ   rR   r   firstsecondrH  r}   ZIndexerr   r   )rv  rw  )rQ   r   )rQ   r   )
r   r   rL  r   r   rI  r`   rb  r   r;   )r#   r>   Zindexer_tuplerd  r?   r@   r)   r)   r*   test_loc_named_tuple_for_midx  s    z3TestDataFrameIndexing.test_loc_named_tuple_for_midxrs   r   r   c                 C   sh   t dtdtdgi|}|d tjdd |jdg|f< t dtdtdgi|}t|| d S )Nr   z
2022-12-29z
2022-12-30r-   )daysz
2022-12-31)r   r   r  	Timedeltar`   r   r;   )r#   r   rs   r>   r@   r)   r)   r*   test_set_2d_casting_date_to_int  s     z5TestDataFrameIndexing.test_set_2d_casting_date_to_intrZ   c                 C   sZ   d}t i |t|t|d}| }|ddg |j|dg ddgf< t|| d S )Nr   r
  r  r  T)r   rV   rB   r`   r   r;   )r#   r   nr>   r@   r)   r)   r*   1test_loc_setitem_reordering_with_all_true_indexer  s
     zGTestDataFrameIndexing.test_loc_setitem_reordering_with_all_true_indexerc                 C   sn   t ddgd}| }t dgd}td " ||jd d df< W d    n1 sT0    Y  t|| d S )Nr   r   r7   )r   rB   r   rn   r`   r;   )r#   r>   r@   rhsr)   r)   r*   test_loc_rhs_empty_warning  s    0z0TestDataFrameIndexing.test_loc_rhs_empty_warningc                 C   s   t g dg dg}tddgdd}tdgdd}|j||f }t ddggdgd	}t|| |j|j|jf }t|| d S )
Nr   r-   r1   r2   r4   r5   r6   r   r   	   r   r-   rS  r.   r5   r6   r}   )r   r   r   r   r;   rI   )r#   r>   rs   Zrow_indexerr?   r@   r)   r)   r*   test_iloc_ea_series_indexer  s    z1TestDataFrameIndexing.test_iloc_ea_series_indexerc                 C   s   t g dg dg}tdtjgdd}d}tjt|d" |jd d |f  W d    n1 s`0    Y  tjt|d$ |jd d |jf  W d    n1 s0    Y  d S )Nr  r  r   rS  r.   zcannot convertr   )	r   r   r  rp  r    r!   rU   r   rI   )r#   r>   rs   rX   r)   r)   r*   #test_iloc_ea_series_indexer_with_na  s    0z9TestDataFrameIndexing.test_iloc_ea_series_indexer_with_na)Tr/   booleanc                 C   s   t jtg d|dtg d|dgddgd}tdg di|d	}ttt|t |j	| }W d    n1 st0    Y  tdd
dgit
ddgd|dd	}t|| d S )N)TTFFr.   )TFTFr   r   rH  rg   )r-   r1   r2   r4   r}   r-   r1   TF)rZ   r/   )r   rk  r   r   r   Zmaybe_produces_warningr	   
isinstancetupler`   r   r;   )r#   r/   rs   Zmidxr>   r?   r@   r)   r)   r*   test_loc_bool_multiindex  s    (z.TestDataFrameIndexing.test_loc_bool_multiindexr6  r   c                 C   sl   t ttdddtdddg|dddgd}|jdd	}||d
  }|d |j|d
 |f< t|| d S )Ni  r-   r   r   )r6  TF)r   update)deepr  r   )r   r   r   rB   r`   r   r;   )r#   r6  rs   r>   r@   Z	update_dfr)   r)   r*   2test_loc_datetime_assignment_dtype_does_not_change  s    zHTestDataFrameIndexing.test_loc_datetime_assignment_dtype_does_not_changezindexer, idxr1   c                 C   s   t dtjgdtjgdtjggtd}t dtjgdtjgg}|||d |d d f< t dtjgdtjgdtjggtd}t|| d S )Nr\   r]   r   r.   r-   r1   )r   rC   re   rm   r   r;   )r#   rs   r=   r>   r~  r@   r)   r)   r*   "test_setitem_value_coercing_dtypes  s
    $$z8TestDataFrameIndexing.test_setitem_value_coercing_dtypes)f__name__
__module____qualname__r+   rA   rL   rN   rY   rb   rt   r   r    markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   tdZskip_array_manager_invalid_testr   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/  r5  r;  rB  rG  rN  rP  rR  rV  rX  r  r  Zto_numpyr_  r`  rc  r   rf  rh  rl  rp  rr  rs  r   r   rC   r   ru  rx  r{  r}  r  r  r  r   r  r  r   r`   r   r  r)   r)   r)   r*   r   *   s   		;"


.4*




	Y" 

	
.
1

	

	



	
r   c                   @   s   e Zd Zdd ZdS )TestDataFrameIndexingUInt64c              	   C   s$  |}|d  d}d|jvs J ||d< t|d t|dd d|jvsNJ d|d< ||d< t|d t|dd |d= | }tjtdd( tj	|j
d< tj	|j
d	< W d    n1 s0    Y  |d
 }tt|tg dd
d t|jttdtdtdgg dd d S )NrQ   rO   r{   r^   r|   zincompatible dtyper   rW  r-   r1   rR   r   Zuint64Or  r}   )renamer8   r   rT   r   rB   rn   r   r  r  r   r   r~   rC   r/   )r#   Zuint64_framer>   r=   r   r?   r)   r)   r*   r     s.    *z(TestDataFrameIndexingUInt64.test_setitemN)r  r  r  r   r)   r)   r)   r*   r    s   r  c                 C   s  t ddgtdddtjdddd}|jd }t|jd tsDJ t|jd tjsZJ |j	d }t|jd tsxJ t|jd tjsJ |j
ddd}t|jd tsJ t|jd tjsJ | rd S |j}|  |dj}t|d tsJ t|d tjsJ |j|jd  }|jd	ks0J |d
}t|tsJJ |j|jd  }|jdksjJ |d
}t|tjsJ d S )Nr-   r1   2000r=  z1 Dayr  r   )ZaxisrZ  r\  r>  )r   r   r  Ztimedelta_ranger`   r  rI   r   rz  r   xsZ_mgrZ_rebuild_blknos_and_blklocsZfast_xsr   blocksZblknosr/   iget)r   r>   r^  Zmgrr   Zblkr   r)   r)   r*   /test_object_casting_indexing_wraps_datetimelike6  s<    




r  zFCannot setitem on a Categorical with a new category( \(.*\))?, set thezCCannot set a Categorical with another, without identical categoriesc                   @   s8  e Zd Zejdd Zejdd Zejdd Zejdd Zejd	d
 Z	ej
dejejgdd Zej
dejejejejgdd Zej
dejejgdd Zej
dejejgdd Zej
dejejgdd Zej
dejejgdd Zej
dejejejgdd Zdd ZdS )TestLocILocDataFrameCategoricalc                 C   s>   t g dddgd}tg d}g d}t||d|d}|S )	N)r   r   r   r   r   r   r   r   r   
categorieshr   r   r   lmr|  r-   r-   r-   r-   r-   r-   r-   catsrI   r}   r   r   r   )r#   r  r=   rI   rU  r)   r)   r*   rU  f  s
    z$TestLocILocDataFrameCategorical.origc                 C   s>   t g dddgd}tg d}g d}t||d|d}|S )	Nr   r   r   r   r   r   r   r   r   r  r  )r-   r-   r1   r-   r-   r-   r-   r  r}   r  )r#   Zcats1ri  Zvalues1exp_single_rowr)   r)   r*   r  n  s
    z.TestLocILocDataFrameCategorical.exp_single_rowc                 C   s>   t g dddgd}tg d}g d}t||d|d}|S )	Nr   r   r   r   r   r   r   r   r   r  r  )r-   r-   r1   r1   r-   r-   r-   r  r}   r  )r#   Zcats2rj  Zvalues2exp_multi_rowr)   r)   r*   r  w  s
    z-TestLocILocDataFrameCategorical.exp_multi_rowc                 C   s>   t g dddgd}tg d}g d}t||d|d}|S )	Nr  r   r   r  r  r  r  r}   r  )r#   Zcats3Zidx3Zvalues3exp_parts_cats_colr)   r)   r*   r    s
    z2TestLocILocDataFrameCategorical.exp_parts_cats_colc                 C   s>   t g dddgd}tg d}g d}t||d|d}|S )	Nr  r   r   r  r  r  r  r}   r  )r#   Zcats4Zidx4Zvalues4exp_single_cats_valuer)   r)   r*   r    s    
z5TestLocILocDataFrameCategorical.exp_single_cats_valuers   c                 C   s   |  }tdd}|tju r&tdd}ddgddgg|||d d f< t|| |  }tjttd0 ddgddgg|||d d f< W d    n1 s0    Y  d S )Nr1   r4   r   r   r   r   rg   )	rB   r  r   r`   r;   r    r!   r   msg1)r#   rU  r  rs   r>   r(   r)   r)   r*   #test_loc_iloc_setitem_list_of_lists  s    


 zCTestLocILocDataFrameCategorical.test_loc_iloc_setitem_list_of_listsc                 C   s   |  }d}|tjtjfv r0|jd |jd f}d|||< t|| tjt	t
d d|||< W d    n1 sx0    Y  d S )N)r1   r   r1   r   r   r   rg   )rB   r   r`   atr   r8   r;   r    r!   r   r  )r#   rU  r  rs   r>   r(   r)   r)   r*   7test_loc_iloc_at_iat_setitem_single_value_in_categories  s    zWTestLocILocDataFrameCategorical.test_loc_iloc_at_iat_setitem_single_value_in_categoriesc                 C   sJ   |  }|jdk}d}|tju r*|j| }d||||f< t|| d S )Nr   r   r   )rB   r   r   r`   r8   r;   )r#   rU  r  rs   r>   r   r(   r)   r)   r*   5test_loc_iloc_setitem_mask_single_value_in_categories  s    


zUTestLocILocDataFrameCategorical.test_loc_iloc_setitem_mask_single_value_in_categoriesc                 C   s   |  }d}|tju r |jd }ddg|||d d f< t|| tjttd( ddg|||d d f< W d    n1 s0    Y  d S )Nr1   r   r   rg   )	rB   r   r`   r   r;   r    r!   r   r  )r#   rU  r  rs   r>   r(   r)   r)   r*   2test_loc_iloc_setitem_full_row_non_categorical_rhs  s    

zRTestLocILocDataFrameCategorical.test_loc_iloc_setitem_full_row_non_categorical_rhsc           	      C   s   |  }tdddf}|tju r4tdd|jd f}tddgddgd}||||< t|| ttd	td
d}tj	t
td ||||< W d    n1 s0    Y  ttdtd
d}tj	t
td ||||< W d    n1 s0    Y  d S )Nr1   r4   r   r   r   r   r   r  Zbbabcr   cc)rB   r  r   r`   r8   r   r;   r   r    r!   r   msg2)	r#   rU  r  rs   r>   r(   compatZsemi_compatZincompatr)   r)   r*   1test_loc_iloc_setitem_partial_col_categorical_rhs  s    
*zQTestLocILocDataFrameCategorical.test_loc_iloc_setitem_partial_col_categorical_rhsc                 C   s   |  }tdddf}|tju r4tdd|jd f}ddg|||< t|| tjtt	d  ddg|||< W d    n1 s0    Y  d S )	Nr1   r4   r   r   r   r   r   rg   )
rB   r  r   r`   r8   r;   r    r!   r   r  )r#   rU  r  rs   r>   r(   r)   r)   r*   )test_loc_iloc_setitem_non_categorical_rhs  s    
zITestLocILocDataFrameCategorical.test_loc_iloc_setitem_non_categorical_rhsc                 C   sv   t dddt}tdg di|d}|jjtks6J |tju rN||d }n||d d df }|jjtksrJ d S )NZ2012r2   r=  r   r0   r}   )r   rl   rm   r   r   r/   r   getitem)r#   rs   r=   r>   r^  r)   r)   r*   -test_getitem_preserve_object_index_with_dates  s    
zMTestLocILocDataFrameCategorical.test_getitem_preserve_object_index_with_datesc                 C   s\   t dgdggtjddgdgdd}t dggtjdgdgdd}|jd }t|| d S )	Nr   r-   )r   )r   rv  rH  )rW   r   r   ra  )r#   r>   r@   r?   r)   r)   r*    test_loc_on_multiindex_one_level  s    

z@TestLocILocDataFrameCategorical.test_loc_on_multiindex_one_levelN)r  r  r  r    ZfixturerU  r  r  r  r  r  r  r   r`   r   r  r  Ziatr  r  r  r  r  r  r  r  r)   r)   r)   r*   r  e  s2   


	









r  c                   @   s,  e Zd Zejddhddidhdfddidfddhfdddifgdd Zejddhddidhdfdfddidfdfddhfdddifgdd	 Zejddhddidhdfddidfddhfdddifgd
d Zejddhddidhdfdfddidfdfddhfdddifgdd Z	dS )TestDeprecatedIndexersr(   r-   r   c                 C   sX   t ddgddggddgd}tjtdd	 |j|  W d    n1 sJ0    Y  d S 
Nr-   r1   r2   r4   r   r   r7   as an indexer is not supportedr   r   r    r!   r   r`   r#   r(   r>   r)   r)   r*   $test_getitem_dict_and_set_deprecated(  s    z;TestDeprecatedIndexers.test_getitem_dict_and_set_deprecatedr1   r  c                 C   sd   t ddgddggddgtddgd	}tjtd
d |j|  W d    n1 sV0    Y  d S Nr-   r1   r2   r4   r   r   r  rO  r   r  r   r   r   rb  r    r!   r   r`   r  r)   r)   r*   /test_getitem_dict_and_set_deprecated_multiindex1  s    zFTestDeprecatedIndexers.test_getitem_dict_and_set_deprecated_multiindexc                 C   sX   t ddgddggddgd}tjtdd	 d|j|< W d    n1 sJ0    Y  d S r  r  r  r)   r)   r*   $test_setitem_dict_and_set_disallowedF  s    z;TestDeprecatedIndexers.test_setitem_dict_and_set_disallowedc                 C   sd   t ddgddggddgtddgd	}tjtd
d d|j|< W d    n1 sV0    Y  d S r  r  r  r)   r)   r*   /test_setitem_dict_and_set_disallowed_multiindexO  s    zFTestDeprecatedIndexers.test_setitem_dict_and_set_disallowed_multiindexN)
r  r  r  r    r  r  r  r  r  r  r)   r)   r)   r*   r  '  s<   2



2

r  c                
   @   s   e Zd Zdd ZddddejededgZ	ddge
dd	g d
gZejde	d	ded	ed	g ejdedd Zejde	ddedg ejdedd Zejde	dg ejdedd ZdS )TestSetitemValidationc                 C   s   d}t |}| }tj||d& ||j|df< | }W d    n1 sP0    Y  tj||d& ||j|df< | }W d    n1 s0    Y  d S )Nz3Setting an item of incompatible dtype is deprecatedr   r   r   )rF   rG   rB   r   rn   r   r`   )r#   r>   invalidrs   re  rX   Zorig_dfr)   r)   r*   _check_setitem_invalidh  s    
&z,TestSetitemValidation._check_setitem_invalidy      ?       @Truer\   z1.0r  r   r-   TFFr  r   rs   c                 C   s(   t dg didd}| |||t d S )Nr   r  r   r.   r   r  r   )r#   r  rs   r>   r)   r)   r*   #test_setitem_validation_scalar_bool  s    z9TestSetitemValidation.test_setitem_validation_scalar_boolTr   c                 C   sD   t dg di|d}t|r,|tjur,d }nt}| |||| d S )Nr   r0   r.   )r   r   r  r  r   r  )r#   r  Zany_int_numpy_dtypers   r>   re  r)   r)   r*   "test_setitem_validation_scalar_int  s
    z8TestSetitemValidation.test_setitem_validation_scalar_intc                 C   s(   t dg di|d}| |||t d S )Nr   )r-   r1   Nr.   r  )r#   r  Zfloat_numpy_dtypers   r>   r)   r)   r*   $test_setitem_validation_scalar_float  s    z:TestSetitemValidation.test_setitem_validation_scalar_floatN)r  r  r  r  r  r  rC   r  rA  Z_invalid_scalarsr  Z	_indexersr    r  r  rx   rz   r  r  r  r)   r)   r)   r*   r  e  s*   	r  )/collectionsr   r   r   decimalr   rF   numpyrC   r    Zpandas._libsr   Zpandas.errorsr   r	   r
   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandas.core.dtypes.commonr   Zpandasr  r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr   r   r   r  r  r  r  r  r  r  r)   r)   r)   r*   <module>   sB   4           v!+ C>