U
    >vf                     @   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-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dddgdddgdddg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.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Ze j!d8d9 Z"d:d; Z#d<d= Z$d>d? Z%e j!d@dA Z&dBdC Z'e j!dDdE Z(dFdG Z)dHdI Z*dJdK Z+dLdM Z,dNdO Z-dPdQ Z.dRdS Z/dTdU Z0dVdW Z1dXdY Z2dZd[ Z3d\d] Z4d^d_ Z5d`da Z6dbdc Z7ejddddgdedf Z8dgdh Z9didj Z:dkdl Z;dmdn Z<dodp Z=dqdr Z>dsdt Z?dudv Z@dwdx ZAdydz ZBd{d| ZCd}d~ ZDdd ZEdd ZFejdeGjHeGjHIdeGjHIdgdd ZJdd ZKdd ZLejdddgejdddggdd ZMe j!dd ZNdd ZOejdddgeGjPeGjPggdd ZQejddeGjPgdd ZRejdeSeTeUjVgdd ZWdd ZXejddgdgejdi ddigdd ZYejdi ddigdd ZZdd Z[dd Z\dd Z]ejdddgejde^dgdd Z_ejdddgejdddggdd Z`ejdeajbdfeajcdfgdd ZddS )TestDataFrameIndexingc              	   C   s   |d d }t |jdkst| D ].\}}t |jdks@tt|j|js&tq&|j D ]\}}|| d k	s`tq`d|ksttjt	dd |d  W 5 Q R X d S )N   randommatch)
lenindexAssertionErroritemstmZequalContentsZ_seriespytestraisesKeyError)selffloat_framesl_serieskey r*   M/tmp/pip-unpacked-wheel-vdrwu74i/pandas/tests/frame/indexing/test_indexing.pytest_getitem+   s    z"TestDataFrameIndexing.test_getitemc                 C   sr   |}t dddg|d}tdddgdddg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   dtype               columnsT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   sx   |  }tjt||d< tjt|}||d< tjtt	dd |
d W 5 Q R X |d }t||j d S )Nz$10z@awesome_domainz'df["$10"]'r   z	df["$10"])copynpr   randnr   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   sj   |}t dddg|d}tdddgdddgg|d	}d
|d< td
dd
gd
dd
gg|d	}tj||dd d S )Nr-   r   r.   r0   r1   r2   r3   r4   r5   
   Tr7   r8   )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 5 Q R X tt|jd	 }d
t| dt| d}tjt|d ||d< W 5 Q R X 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    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   r1   Ztt1Ztt2)r   r6   r/   r-   r0   )r/   name012rW   )
r   rS   rA   int_locr   r   r6   r    rQ   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 5 Q R X || }	t|	| tjtdd ||  W 5 Q R X t	||j }|| }	t|	| t
t0 ||j d d d }|| }	t|	| W 5 Q R X |||fD ]}
|
  |
|
dk }t fdd jD  j  jd	}|
jD ]}||krH|
| ||< qH|j|
jd
}tj||dd |
jD ]6}|| j|| jkr|| j|
| jkstqqd S )NrJ   zItem wrong lengthr   zBoolean array expectedr   c                    s*   i | ]"}|t  | d k | t jqS )r   )rA   wherenan).0crT   r*   r+   
<dictcomp>   s      z>TestDataFrameIndexing.test_getitem_boolean.<locals>.<dictcomp>r   r6   r5   F)Zcheck_dtype)r   astypeobjectr    Zassert_index_equalr!   r"   rR   r9   r   assert_produces_warningUserWarningreindexZ_get_numeric_datar   r6   r/   r   )r$   Zmixed_float_frameZmixed_int_framedatetime_framedindexerZindexer_objZsubindexZsubframeZsubframe_objr<   ZbifZbifwrd   r*   re   r+   test_getitem_boolean|   sL    






z*TestDataFrameIndexing.test_getitem_booleanc              
   C   sX  |  }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  ddddddddg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 ddddddddgd}t|| d S )Nr-   rM   Zint32ZE1Fint64ZF1r   float64r2   r0   rN   rO   CDr   r1   )
r@   rh   dtypesr   rA   r/   r    rQ   r]   r   )r$   rm   r<   Zcastedr=   r>   r*   r*   r+   test_getitem_boolean_casting   sD    



z2TestDataFrameIndexing.test_getitem_boolean_castinglstTFc                 C   s>   t tddd}|| }|j|j|  }t|| d S )N   r1   r2   )r   rA   arangeZreshaper]   r   r    r9   )r$   ry   r<   r=   r>   r*   r*   r+   test_getitem_boolean_list   s    z/TestDataFrameIndexing.test_getitem_boolean_listc                 C   sb   t jdd}t| dddddgd}||dk   d	7  < ||dk   d	7  < t|j| d S )
Nr3   rN   rO   rt   ru   rM   r5   r   r-   )rA   r   rB   r   r@   r    assert_almost_equalrF   )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-   rN   r6   r   )r   rA   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ddddgdddgd}|jd d	 }|j|jd d	  }t|| |jddg }|jt	ddg }t|| d S )
Nr2   r1   r-   rJ   rt   rM   r0   rg   r`   )
r   rA   r   rB   ilocr]   r   r    r9   r   r^   r*   r*   r+   test_getitem_ix_mixed_integer   s     
 z3TestDataFrameIndexing.test_getitem_ix_mixed_integerc                 C   s   t dddddgdddd	gd
dddgdddd
dgd}|dg }|jd d dgf }t|| |dg }|jd d dgf }t|| d S )N)      ?g@g	@      @      $   (   rJ      +   "   r   r      )rnar     r   r   r   r5   r1   r-   r   r   r    r9   r^   r*   r*   r+   test_getitem_ix_mixed_integer2  s    



	

z4TestDataFrameIndexing.test_getitem_ix_mixed_integer2c              	   C   s:   t |j|d  d}tjt|d |j W 5 Q R X d S )NrN   z6'DataFrame' object has no attribute 'NONEXISTENT_NAME'r   )r    rQ   rN   r!   r"   AttributeErrorZNONEXISTENT_NAME)r$   r%   rU   r*   r*   r+   test_getattr  s    z"TestDataFrameIndexing.test_getattrc                 C   s0   t dditdd}d|_|jdk s,td S )Nfoobarr-   rJ   rv   r3   )r   rS   r   allr   r$   r<   r*   r*   r+   test_setattr_column  s    z)TestDataFrameIndexing.test_setattr_columnc              	   C   s  |d d d d }||d< d|ks&t t|dks6t t|dksFt tt|jtjgd f}t||jdd}t	
|d | |d }||d< t	j
||d dd	 tjt|}||d
< |d
 |k st d|d< |d dk st d|d< |d dk st d|d< |d dk s,t |d d }d}|rPddg|d< n&tjt|d ddg|d< W 5 Q R X |d jtjkst |d ddgk st d S )NrN   r0   Zcol5   r   r   rW   Zcol6FrP   Zcol9r3   Zcol7gQ	@Zcol0rL   Zcol8zC\nA value is trying to be set on a copy of a slice from a DataFramerY   rZ   Zcol10r   )r   r   rA   ZravelZcolumn_stackrF   rb   r   r   r    rQ   r   rB   r   r!   r"   r
   r/   object_)r$   r%   using_copy_on_writer(   expr~   ZsmallerrU   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   rA   rb   r   r    r9   r]   r$   r<   r>   r*   r*   r+   test_setitem2O  s    z#TestDataFrameIndexing.test_setitem2c           	   	   C   s.  |  }|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 5 Q R X |  }|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 )Nr2   rN   r   r`   r-   r3   r0   r1   z;Must pass DataFrame or 2-d ndarray with boolean values onlyr   rg   )r@   rF   r    r}   rl   r   rA   Zputmaskr!   r"   	TypeErrorabsrb   r   r6   r9   )	r$   r%   r<   rF   r(   rU   Zdf_origmaskr>   r*   r*   r+   test_setitem_booleanZ  sH    
"
z*TestDataFrameIndexing.test_setitem_booleanc                 C   s  |d  d|d< |d jtjks&td|d< |d jtjksBttt||d< t|d jjtj	sltd|d< d|d< |d jtjkstd|d< d|d< |d jtj
kstd|d< |d jtjkstd	|d< |d jtjkstd|d< |d jtj
ks
td S )
Nru   i8r   rO   barrL         @Z	somethingr0   )rh   r/   rA   rr   r   r{   r   
issubclasstypeintegerrs   r$   r%   r*   r*   r+   test_setitem_cast  s$    z'TestDataFrameIndexing.test_setitem_castc                 C   s  t dddgdddgdtdd	}|d
= dddg|d
< d
|ksDtt|jdksVtd|d< d|d< d|d< d|t < d|t < t |jd	}d|d< d|d
< t|jdkst|j	j
tjkstd|d< |d j
tjkstd|d< |d j
tjkstd|d< d|d d kstt tdd	}d|d< d|d< |d= d|d< |d j
tjks`tdddg|d< |d j
tjkstd S )N      ?       @      @abrd   )rO   rt   r1   rv   rO   r0   Z	beginningrN   rL   rM   r   ru   date      @r-   rt   r   rY   rZ   3Z	coercible)r   rA   r{   r   r   r6   r   nowr   rF   r/   r   rr   rs   )r$   r%   r<   dmr*   r*   r+   test_setitem_corner  s:    $z)TestDataFrameIndexing.test_setitem_cornerc                 C   s   dddgdgd  t jdd}t|}||d dk j}d|j|dgf< d|j|dgf< |jd	 dksnt|jd
 dkstd S )Nr   r      r   )titlecruftr   r   r   )r-   r   )r-   r   )rA   r   r   r   r]   r   )r$   rT   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dddgtdd}td|d	< t|jdksht||d
< t|jdkst||d< t|jdkst|d jtj	kstd S )Nr1   rg   c                 S   s   g | ]}t d qS )r-   r   )rc   r'   r*   r*   r+   
<listcomp>  s     z<TestDataFrameIndexing.test_setitem_ambig.<locals>.<listcomp>rv   rL   bzrbazr   r-   r0   )
r   rS   r   rA   onesr   r6   r   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 )NrN   r`   FrP   )r    rQ   r   r]   reprr   r*   r*   r+   test_setitem_None  s        z'TestDataFrameIndexing.test_setitem_Nonec                 C   sP   t dddgdddgddd	gd
}| }|j|j|j df< t|| d S )NrY   rZ   r   Z11Z22Z33Z111Z222Z333)r   r   rd   r   )r   r@   r   r]   r   r   r    r9   r$   r<   r=   r*   r*   r+   &test_loc_setitem_boolean_mask_allfalse  s    z<TestDataFrameIndexing.test_loc_setitem_boolean_mask_allfalsec                 C   sV   t tjdd}|jd dd }tj|jd dd< t|jd dd j sRt	d S )NrJ   r3      r0   )
r   rA   r   rB   r   rb   r   rF   r   r   r   r*   r*   r+   &test_getitem_fancy_slice_integers_step  s    z<TestDataFrameIndexing.test_getitem_fancy_slice_integers_stepc              	   C   sF  t tjddtdddd}| }d|jdd< |jdd dkj sPt	| }d|jdd	< |jdd	 dkj st	|jdd
 }|j
dd	 }|dd
ddg}t|| t|| |jttdttddd d d   }tjtdd |j
dd	  W 5 Q R X tjtdd d|j
dd	< W 5 Q R X d S )NrJ   r3   r   r   r0   rv   r2   r1   r   r4   r   r`   z^3$r   )r   rA   r   rB   rS   r@   r   rF   r   r   r]   rl   r    r9   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*t| }|j d d dd f }t|d j|d jsdtd|jd d df< |s|d dk	 stt|d j|d j nt
|| d S )Nru   rt         @r2   )r   r/   rA   rs   r   r@   shares_memory_valuesr]   r   r    r9   )r$   r%   float_string_framer   Zslicedoriginalr*   r*   r+   test_fancy_getitem_slice_mixed/  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 )Nr3   rJ   r   r   )r    ZmakeTimeDataFramer   r]   r9   r@   )r$   r<   startendr=   r   r>   r*   r*   r+   "test_getitem_setitem_non_ix_labelsF  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   r0   r   r-   rg   )
r   rA   r   rB   r]   r   rl   r    r9   r6   )r$   r<   rsZxpr*   r*   r+   test_ix_multi_takeZ  s    z(TestDataFrameIndexing.test_ix_multi_takec                 C   sP   |}|j }|jD ]:}|| }|jd d d D ]}|||f || ks,tq,qd S Nr3   )r]   r6   r   r   )r$   r%   fr   coltsr;   r*   r*   r+   test_getitem_fancy_scalarf  s    
z/TestDataFrameIndexing.test_getitem_fancy_scalarc                 C   s   |}|  }|j}t|jD ]b\}}|| }|jd d d D ]@}|j|}	tj }
|
|j	|	|f< |
|||f< t
|| q<qd S r   )r@   r]   	enumerater6   r   Zget_locrA   r   rB   r   r    r9   )r$   r%   r   r>   r   jr   r   r;   ivalr*   r*   r+   test_setitem_fancy_scalarp  s    
z/TestDataFrameIndexing.test_setitem_fancy_scalarc                 C   s  |}|j }|jddgd}|d d ddddgf }t|| |j|jdd ddgd}||jdd ddddg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 )NrO   ru   r5   FTr3   rJ   rg      rv   r0   rt   )r]   rl   r    r9   r   r6   )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 )NrN   r           rg   rO   r0   )r@   rF   r]   r   r   r6   r    r9   )r$   r%   framer>   rF   r   r*   r*   r+   test_setitem_fancy_boolean  s    



z0TestDataFrameIndexing.test_setitem_fancy_booleanc                 C   sx   |j dddg }|j|jdddg  }t|| |j d d dddgf }|jd d |jdddg f }t|| d S )Nr-   r2   r   r0   r   )r   r]   r   r    r9   r6   )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 )NrN   r`   r-   r   )r]   r    r9   r@   )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dddg}tddg}|j||f }|jddgdgf }t|| | }d|jtdddgtddgf< d|jddgdgf< t|| d S )Nr1   r0   TFr   r-   r3   )	r   rA   r   rB   r   r]   r    r9   r@   )r$   r<   Zk1Zk2r=   r>   r*   r*   r+   "test_getitem_setitem_boolean_multi  s    $z8TestDataFrameIndexing.test_getitem_setitem_boolean_multic              	   C   s  t dddddg}ttjdd|d}|jdd }|ddddg}t|| t	|dksdt
|jdd }|ddg}tj||dd t	|dkst
|jdd }|d	d
g}t|| t	|dkst
|jdd }|jdd }t|| d|jdd< |dd }|dk  s0t
t ddddd
g}ttjdd|d}d}tjt|d |jdd  W 5 Q R X |jdd }|d
g}t|| t	|dkst
| }tjttd d|jdd< W 5 Q R X tjt|d |jdd dk}W 5 Q R X |j s(t
|jdd |jdd kj sPt
| }d|jdd< |jdd dkj st
|jdd |jdd kj st
|jdd }|}t|| t	|dkst
|jdd }|dddd
g}t|| t	|dkst
|jdd }|d
g}t|| t	|dksRt
|jdd
 }|ddddd
g}t|| t	|dkst
| }d|jdd
< |jdd
 }|dkj st
d S )Nr   r0   r1   r2   r3   rv   F)Zcheck_index_typer   r   r-   r   r   r   g      @r   zPcannot do positional indexing on Index with these indexers \[1.0\] of type floatr   g?g
ףp=
@)r   r   rA   r   rB   r]   rl   r    r9   r   r   r   r   r!   r"   r   r@   
_slice_msgrF   )r$   using_array_managerr   r<   r=   r>   rU   r   r*   r*   r+   !test_getitem_setitem_float_labels  sz    ((z7TestDataFrameIndexing.test_getitem_setitem_float_labelsc                 C   s
  t tjdddddddgdd	d
gd}td|d< |j}ttdgd tdg dd	d
dgd}t	|| t
|jd< t|jd rt|d jtjkst|jd t
ksttj|jd< t|jd sttj|jdd d f< t|jdd d f  rtd S )Nr3   r1   r   r   rd   rn   erL   r   r   rg   Z20010102	timestamprs   datetime64[ns]rv   )r   r   )rd   r   )r   rA   r   rB   r   rw   r   r/   r    rQ   r   r]   r   r   r   rb   r   r^   r*   r*   r+   )test_setitem_single_column_mixed_datetime*  s(    

z?TestDataFrameIndexing.test_setitem_single_column_mixed_datetimec                 C   s   t ddddddg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< d|jd< 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 )Nr         i  r-   xyi  i  r   r   abr4   r   r   r   r   )r-   r   r   r   r0   r1   z2013-01-01T00:00:00z2014-01-01T00:00:00r2   r3   r   )r   r   r   rS   pdNaTr]   rA   r   
datetime64r    r9   )r$   r>   r<   rN   r*   r*   r+   test_setitem_mixed_datetimeI  s.    




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 Nr0   rN   rO   )r]   r   rF   r    r}   r$   r%   piecer=   r>   r*   r*   r+   test_setitem_frame_floatf  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   r0   rN   rO   rg   )r@   r   r   slicer]   r    r}   rF   r$   r   r   r  r)   r*   r*   r+   test_setitem_frame_mixedm  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   r0   rL   r   rN   rO   rg   )	r@   r   r   r   r  r]   r    r}   rF   r  r*   r*   r+   'test_setitem_frame_mixed_rows_unalignedy  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 )Nr0   rN   r  rO   )	r@   r]   r   r  rA   rb   r    r}   rF   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  )r@   r]   r   r  rF   r    r}   r  r*   r*   r+    test_setitem_frame_mixed_ndarray  s
    z6TestDataFrameIndexing.test_setitem_frame_mixed_ndarrayc                 C   s   t dddgdddggddd	g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 )Nr-   r0   rL   r1   r2   r   rN   rO   rt   r5         ?)r   r@   r]   rl   r    r9   )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   r6   rF   r    r}   r  r*   r*   r+   test_setitem_frame_align  s    
z.TestDataFrameIndexing.test_setitem_frame_alignc                 C   s   t tjdddddddgd}|jd }|d d }t|| |jd }|jddg }t|| |jd }|jd }t|| d S )	Nr3   r1   rL   r   r   rv   r0   r2   )	r   rA   r   rB   r]   r    r9   r   rQ   r^   r*   r*   r+   "test_getitem_setitem_ix_duplicates  s     



z8TestDataFrameIndexing.test_getitem_setitem_ix_duplicatesc                 C   s   t tjdddddddg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 )Nr3   r1   rL   r   r   rv   r0   r2   r-   r   )r   rA   r   rB   r]   r   r    r9   )r$   r<   r=   r   r*   r*   r+   +test_getitem_ix_boolean_duplicates_multiple  s     zATestDataFrameIndexing.test_getitem_ix_boolean_duplicates_multiple
bool_valuec              	   C   sl   t ddddgi}| d}tjt|d |j|  W 5 Q R X d}tjt|d d|j|< W 5 Q R X d S )	Nr   r-   r0   r1   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<   messagerU   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$t|j|jd df }t	|sDtt
ddgi}d|d< |jd }t	|spttdgd	gdd
}|jd	gdf }t|| d S )Nr-   rM   r3   r   gGz?i  r   r   r   r[   )r   r/   r   intrA   r   r   r]   r   r   r   r   r    rQ   )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dddd
g }||jdddd
g }t
|| d S )NrJ   r2   r   r   r0   rv   r-   r   r   r4   )r   rA   r   rB   rS   r   r]   r    rQ   r  r9   rl   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 sNt	|d  }d|j
d d df< |sd|j
d d df< d|jdd< t|d |d st	t|d | d S )	NrJ   r2   r   r   r0   rv   r   r   )r   rA   r   rB   rS   r@   r   r  r   r   r]   r   r    rQ   )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 dddd
gf }|j|jdddd
g d}t
|| d S )Nr2   rJ   r   r   r0   r5   r-   r   r   r4   )r   rA   r   rB   rS   r   r]   r    rQ   r  r9   rl   r6   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	sbt
d|jd d df< |d dk st
t|d j	|d j	st
nH|rt|d j	|d j	st
d|d< |d dk st
t|| d S )	Nr2   rJ   r   r   r0   r5   r   r   )r   rA   r   rB   rS   r@   r   r  r   r   r   r]   r   r    r9   )r$   r   r   r<   r   r  r*   r*   r+   test_iloc_col_slice_view)  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ddddddg}d|j|| df< tddddddgddddddgd|d}t|| td|dd	gd
}|j|| df  d7  < t|| d S )Ni  r-   )yearmonthdayr3   )r   r   )r]   itemr   rN   rO   rg   FTr4   )rN   rO   rv   )	r   r   insertr   rA   r   r]   r    r9   )r$   Ztranger<   Zbool_idxr>   r*   r*   r+   test_loc_duplicatesB  s       z)TestDataFrameIndexing.test_loc_duplicatesc                 C   s   t tdddddd}td|i}|ddd	g |d< t|d | td|i}|ddd	g |jddd	gdf< t|d | d S )
Nz
2015-01-01r1   utc)periodstzdatesr[   r-   r   r0   )r   r   r   r    rQ   r]   )r$   columnr<   r*   r*   r+   4test_setitem_with_unaligned_tz_aware_datetime_column]  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20130101r2   r%  rv   m8[ns]r.   rN   r0   rO   r1   rt   ru   r3   rM   r   rq   r4   r`   r   GHztimedelta64[ns]r   ZABCDEFGH)r   r   r   rA   r   r]   r   Ztimedelta64r   rw   r   r/   r   r    rQ   )r$   Zone_hourr<   r=   r>   r*   r*   r+   ,test_loc_setitem_datetimelike_with_inferencej  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 5 Q R X d S )N)#   r   r   1   2   gjBz?g% t?gk?g?r   r-   )r   r-   r0   r1   r2   r   g333333?)r   r-   )r1  r-   )r2  r-   )r0  r2   testrL   z1not supported between instances|unorderable typesr   )
r   rA   rb   r@   r]   r    r9   r!   r"   r   )r$   r<   r   r>   rU   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ddddgddd	d	gg|tddgd
dd}tjtdd |d d df  W 5 Q R X 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-   rd   namesr0   r1   r2   r   r[   r   r  r   )levelscodesr6  )r   r   r   )r   from_productr   r   r!   r"   r   rS   r]   r  r    r9   r   rQ   )r$   miZdgr   r6   r>   r=   rW   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r1   r2   r3   r5   r   r  )r   rA   r   r   ZIntervalIndexZfrom_breaksr{   r   r    rQ   r]   )r$   r<   r>   rH   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   )r6   r/   )r0   )r0   r0   r   r   )r   ri   rA   zerosr]   r    r9   r   r*   r*   r+    test_setitem_array_as_cell_value  s    z6TestDataFrameIndexing.test_setitem_array_as_cell_valuec                 C   s   t ddddg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 )NrN   r-   r0   r1   Int64r.   r`   )r   r@   rF   r]   r    r9   r   coreZarraysZPandasArrayr   )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   rA   r   ri   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dddgi|d}|d }|j}dddd	d
g}tjt|d ||d< W 5 Q R X tjt|d ||g|d d< W 5 Q R X tjt|d ||d< W 5 Q R X tjt|d ||g|d d< W 5 Q R X tjt|d ||jd< W 5 Q R X tjt|d ||g|jd d< W 5 Q R X tjt|d ||jd< W 5 Q R X tjt|d ||g|jd ddf< W 5 Q R X | }| |d< tjt|d ||jd< W 5 Q R X tjt|d ||g|jd ddf< W 5 Q R X d S )NrN   r-   r0   r1   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   r   r   rO   )r   r   joinr!   r"   r   r   r@   )r$   rF  Zany_numeric_ea_dtyper<   serr~   rU   r   r*   r*   r+   .test_setting_mismatched_na_into_nullable_fails  s@     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   rv   )r   r   r]   r    r9   r   r*   r*   r+   +test_loc_expand_empty_frame_keep_index_name$  s    
zATestDataFrameIndexing.test_loc_expand_empty_frame_keep_index_namec                 C   s\   t dgtjg dddgdd}d|jd< t ddgitjdgdddgdd	}t|| d S )
Nrn   r   r   rd   r5  r   rL   )r-   r0   r1   rv   r   r   from_tuplesr]   r    r9   r   r*   r*   r+   +test_loc_expand_empty_frame_keep_midx_names+  s     
zATestDataFrameIndexing.test_loc_expand_empty_frame_keep_midx_namesr   r   r-   idxrr   c              	   C   sn   t dddgi}td , t d|dgiddgd|jd d |f< W 5 Q R X t dtj|gi}t|| d S )Nr   r-   r0   r   rv   )r   r    rj   r]   rA   rb   r9   )r$   rQ  r   r<   r>   r*   r*   r+   test_loc_setitem_rhs_frame7  s
    0z0TestDataFrameIndexing.test_loc_setitem_rhs_framec              	   C   sj   t ddgd}| }|d d  }td ( tjddgtjd|jd d df< W 5 Q R X t|| d S )Nr   r   r5   r-   r0   r.   r   )	r   r@   r    rj   rA   r   rs   r   r9   )r$   r<   r>   viewr*   r*   r+   $test_iloc_setitem_enlarge_no_warningA  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   r0   idx1idx2r5  rv   rD  r1   rd   r   r   r   r   r   )r   r   from_arraysr]   r   r    rQ   )r$   r<   r;   r=   r>   r*   r*   r+   (test_loc_internals_not_updated_correctlyK  s"    

z>TestDataFrameIndexing.test_loc_internals_not_updated_correctlyNc                 C   sR   t ddddgidd}||jdgd d f< t dtjddgidd}t|| d S Nr   r   rd   stringr.   r   r   r   r   NAr    r9   r$   r   r<   r>   r*   r*   r+    test_iloc_setitem_string_list_nab  s    z6TestDataFrameIndexing.test_iloc_setitem_string_list_nac                 C   sP   t ddddgidd}||jdd d f< t dtjddgidd}t|| d S rY  r[  r]  r*   r*   r+   test_iloc_setitem_string_naj  s    z1TestDataFrameIndexing.test_iloc_setitem_string_nafuncc                 C   sT   t ddddgidd}d|jd d |dgf< t ddddgidd}t|| d S )	Nr   r-   r0   r1   r@  r.   r3   r   r   )r$   r`  r<   r>   r*   r*   r+   /test_iloc_setitem_ea_null_slice_length_one_listr  s    zETestDataFrameIndexing.test_iloc_setitem_ea_null_slice_length_one_listc                 C   s   t tjddgdddg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 )NrN   rO   r   r   rd   firstsecondr5  rv   ZIndexer)rb  rc  )rN   r   )rN   r   )
r   r   r9  r   r   r6  r]   rO  r    r9   )r$   r<   Zindexer_tuplerQ  r=   r>   r*   r*   r+   test_loc_named_tuple_for_midxz  s       z3TestDataFrameIndexing.test_loc_named_tuple_for_midxro   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    r9   )r$   r   ro   r<   r>   r*   r*   r+   test_set_2d_casting_date_to_int  s     z5TestDataFrameIndexing.test_set_2d_casting_date_to_intrW   c                 C   sV   d}t |t|t|d}| }|ddg |j|dg ddgf< t|| d S )Nr   r   r   r   T)r   rS   r@   r]   r    r9   )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   sZ   t ddgd}| }t dgd}td  ||jd d df< W 5 Q R X t|| d S )Nr   r   r5   )r   r@   r    rj   r]   r9   )r$   r<   r>   rhsr*   r*   r+   test_loc_rhs_empty_warning  s    z0TestDataFrameIndexing.test_loc_rhs_empty_warningc                 C   s   t dddddgdddd	d
g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 )Nr   r-   r0   r1   r2   r3   r4   r   r   	   r@  r.   rv   )r   r   r   r    r9   rF   )r$   r<   ro   Zrow_indexerr=   r>   r*   r*   r+   test_iloc_ea_series_indexer  s     z1TestDataFrameIndexing.test_iloc_ea_series_indexerc              	   C   s   t dddddgdddd	d
gg}tdtjgdd}d}tjt|d |jd d |f  W 5 Q R X tjt|d |jd d |jf  W 5 Q R X d S )Nr   r-   r0   r1   r2   r3   r4   r   r   rl  r@  r.   zcannot convertr   )	r   r   r   r\  r!   r"   rR   r   rF   )r$   r<   ro   rU   r*   r*   r+   #test_iloc_ea_series_indexer_with_na  s     z9TestDataFrameIndexing.test_iloc_ea_series_indexer_with_na)Tr/   booleanc              	   C   s   t jtddddg|dtddddg|dgddgd}tddd	d
dgi|d}ttt|t |j	| }W 5 Q R X tddd	git
ddgd|dd}t|| d S )NTFr.   r   r   r5  rd   r-   r0   r1   r2   rv   )rW   r/   )r   rW  r   r   r    Zmaybe_produces_warningr	   
isinstancetupler]   r   r9   )r$   r/   ro   Zmidxr<   r=   r>   r*   r*   r+   test_loc_bool_multiindex  s    
 z.TestDataFrameIndexing.test_loc_bool_multiindexr$  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   )r$  TF)r   update)deeprs  r   )r   r   r   r@   r]   r    r9   )r$   r$  ro   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, idxr0   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 )NrY   rZ   r   r.   r-   r0   )r   rA   rb   ri   r    r9   )r$   ro   r;   r<   rj  r>   r*   r*   r+   "test_setitem_value_coercing_dtypes  s
    $$z8TestDataFrameIndexing.test_setitem_value_coercing_dtypes)e__name__
__module____qualname__r,   r?   rI   rK   rV   r_   rp   rx   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  r#  r)  r/  r4  r;  r=  r?  rC  rE  r   r   Zto_numpyrL  rM  rP  rR  rT  rX  r\  r^  r_  r   r   rA   r   ra  rd  rg  ri  rk  rm  rn  r   rr  ru  r    r]   r   rv  r*   r*   r*   r+   r   *   s   		;" 


.4*




	W

	
. 
1
	



	
r   c                   @   s   e Zd Zdd ZdS )TestDataFrameIndexingUInt64c              	   C   s   |}|d  d}d|jks t||d< t|d t|dd d|jksNtd|d< ||d< t|d t|dd |d= | }tj|j	d< tj|j	d< |d }tt
|td	d
d	gdd t|jttdtdtdgdddgd d S )NrN   rL   rt   r[   ru   rD  r-   r0   rO   TFZuint64Orv   )renamer6   r   r    rQ   r   r@   r   r   r   r   rw   rA   r/   )r$   Zuint64_framer<   r;   r   r=   r*   r*   r+   r     s,    z(TestDataFrameIndexingUInt64.test_setitemN)rw  rx  ry  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sDtt|jd tj	sZt|j
d }t|jd tsxtt|jd tj	st|jddd}t|jd tstt|jd tj	st| rd S |j}|  |dj}t|d tstt|d tj	st|j|jd  }|jd	ks0t|d
}t|tsJt|j|jd  }|jdksjt|d
}t|tj	std S )Nr-   r0   2000r+  z1 Day)rN   rO   rt   r   )ZaxisrG  rI  r,  )r   r   r   Ztimedelta_ranger]   rp  rF   r   r   rf  r   xsZ_mgrZ_rebuild_blknos_and_blklocsZfast_xsr   blocksZblknosr/   iget)r   r<   rK  Zmgrr~   Zblkr   r*   r*   r+   /test_object_casting_indexing_wraps_datetimelike  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 dddddddgddgd}tdddddd	d
g}dddddddg}t||d|d}|S Nr   r   
categorieshr   r   r   lmrh  r-   catsrF   rv   r   r   r   )r$   r  r;   rF   rB  r*   r*   r+   rB  A  s
    z$TestLocILocDataFrameCategorical.origc                 C   s\   t dddddddgddgd}tdddddd	d
g}dddddddg}t||d|d}|S Nr   r   r  r  r   r   r   r  r  rh  r-   r0   r  rv   r  )r$   Zcats1rU  Zvalues1exp_single_rowr*   r*   r+   r  I  s
    z.TestLocILocDataFrameCategorical.exp_single_rowc                 C   s\   t dddddddgddgd}tdddddd	d
g}dddddddg}t||d|d}|S r  r  )r$   Zcats2rV  Zvalues2exp_multi_rowr*   r*   r+   r  R  s
    z-TestLocILocDataFrameCategorical.exp_multi_rowc                 C   s\   t dddddddgddgd}tdddddd	d
g}dddddddg}t||d|d}|S r  r  )r$   Zcats3Zidx3Zvalues3exp_parts_cats_colr*   r*   r+   r  \  s
    z2TestLocILocDataFrameCategorical.exp_parts_cats_colc                 C   s\   t dddddddgddgd}tdddddd	d
g}dddddddg}t||d|d}|S r  r  )r$   Zcats4Zidx4Zvalues4exp_single_cats_valuer*   r*   r+   r  e  s     z5TestLocILocDataFrameCategorical.exp_single_cats_valuero   c              	   C   s   |  }tdd}|tjkr&tdd}ddgddgg|||d d f< t|| |  }tjttd& ddgddgg|||d d f< W 5 Q R X d S )Nr0   r2   r   r   r   r   rd   )	r@   r  r    r]   r9   r!   r"   r   msg1)r$   rB  r  ro   r<   r)   r*   r*   r+   #test_loc_iloc_setitem_list_of_listsp  s    


 zCTestLocILocDataFrameCategorical.test_loc_iloc_setitem_list_of_listsc              	   C   sr   |  }d}|tjtjfkr0|jd |jd f}d|||< t|| tjt	t
d d|||< W 5 Q R X d S )N)r0   r   r0   r   r   r   rd   )r@   r    r]   atr   r6   r9   r!   r"   r   r  )r$   rB  r  ro   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kr*|j| }d||||f< t|| d S )Nr   r   r   )r@   r   r    r]   r6   r9   )r$   rB  r  ro   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   sz   |  }d}|tjkr |jd }ddg|||d d f< t|| tjttd ddg|||d d f< W 5 Q R X d S )Nr0   r   r   rd   )	r@   r    r]   r   r9   r!   r"   r   r  )r$   rB  r  ro   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k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 5 Q R X ttdtd
d}tj	t
td ||||< W 5 Q R X d S )Nr0   r2   r   r   r   r   r   r  Zbbabcr   cc)r@   r  r    r]   r6   r   r9   r   r!   r"   r   msg2)	r$   rB  r  ro   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kr4tdd|jd f}ddg|||< t|| tjtt	d ddg|||< W 5 Q R X d S )	Nr0   r2   r   r   r   r   r   rd   )
r@   r  r    r]   r6   r9   r!   r"   r   r  )r$   rB  r  ro   r<   r)   r*   r*   r+   )test_loc_iloc_setitem_non_categorical_rhs  s    
zITestLocILocDataFrameCategorical.test_loc_iloc_setitem_non_categorical_rhsc                 C   sx   t dddt}tddddgi|d}|jjtks8t|tjkrP||d }n||d d df }|jjtksttd S )NZ2012r1   r+  r   r-   r0   rv   )	r   rh   ri   r   r   r/   r   r    getitem)r$   ro   r;   r<   rK  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   rb  r5  )rT   r   r   rN  )r$   r<   r>   r=   r*   r*   r+    test_loc_on_multiindex_one_level  s    
 
z@TestLocILocDataFrameCategorical.test_loc_on_multiindex_one_levelN)rw  rx  ry  r!   ZfixturerB  r  r  r  r  rz  r{  r    r]   r   r  r  Ziatr  r  r  r  r  r  r  r  r*   r*   r*   r+   r  @  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   sD   t ddgddggddgd}tjtdd	 |j|  W 5 Q R X d S 
Nr-   r0   r1   r2   r   r   r5   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_deprecatedr0   r~  c              	   C   sP   t ddgddggddgtddgd	}tjtd
d |j|  W 5 Q R X d S Nr-   r0   r1   r2   r   r   r~  r<  r   r  r   r   r   rO  r!   r"   r   r]   r  r*   r*   r+   /test_getitem_dict_and_set_deprecated_multiindex  s    zFTestDeprecatedIndexers.test_getitem_dict_and_set_deprecated_multiindexc              	   C   sD   t ddgddggddgd}tjtdd	 d|j|< W 5 Q R X d S r  r  r  r*   r*   r+   $test_setitem_dict_and_set_disallowed!  s    z;TestDeprecatedIndexers.test_setitem_dict_and_set_disallowedc              	   C   sP   t ddgddggddgtddgd	}tjtd
d d|j|< W 5 Q R X d S r  r  r  r*   r*   r+   /test_setitem_dict_and_set_disallowed_multiindex*  s    zFTestDeprecatedIndexers.test_setitem_dict_and_set_disallowed_multiindexN)
rw  rx  ry  r!   rz  r{  r  r  r  r  r*   r*   r*   r+   r    s@    0



 0

r  ).collectionsr   r   r   decimalr   rC   ZnumpyrA   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+   <module>   s@   4           R + C