a
    d                     @   s  d dl mZm Z  d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dl m!Z! G dd dZ"G d	d
 d
Z#G dd dZ$G dd dZ%G dd dZ&G dd dZ'G dd dZ(dd Z)dd Z*dd Z+dd Z,G dd dZ-G dd  d Z.ej/0d!ej1eed"d#eed"d$ej2ed%d&ed&d#gd'd(d"e3d)d*ej1eg d+eej2d%ej2d#ej2d,ej2d-ej2g	e4ddd$dd.d*ej1eg d/eej2d0ej2d1ge5d(e4ddd$e3d2d*ej1ee6d3eej2ej2ej2ej2ej2d#d4d,d5d-g
e4dd#dd6d*ej1eg d7eej2d$d%gd dd8d*ej1ed1geej2ge5d(d e3d9d*ej1ed1d0geej2d0ge5d(d e3d:d*gG d;d< d<e.Z7G d=d> d>e.Z8G d?d@ d@e.Z9G dAdB dBe.Z:G dCdD dDe.Z;G dEdF dFe.Z<ej/0dGeg d7eej2d$d%gdfeg dHeej2dIdJgdfee dKd"d"e dKd"d$e dKd"d%geee dKd"d$e dKd"d%gdfeg dLeg dMdfgG dNdO dOe.Z=G dPdQ dQe.Z>G dRdS dSe.Z?ej/0dTedIdJgdfedUdVge3fejd$dW d$dW d" gej@d(e3fgG dXdY dYe.ZAej/0dZd[eBd[gG d\d] d]e.ZCej/0dZg d^G d_d` d`e.ZDG dadb dbe.ZEej/0dceFd"ejGdfeBd[ejBe3fgG ddde deeEZHej/0dZg dfej/0dge5gG dhdi dieEZIej/0dcd"ejJdfdjejJdfdkejJdfd0e5e3fgG dldm dmeEZKej/0dcd"e5e3fdne5e3fd%e5e3fdje5e3fdke5e3fd0eLdfgG dodp dpeEZMej/0dcd"ejNdfdjej@e3fdkejJe3fd0e5e3fgG dqdr dreEZOej/0dcd"ej@dfdjej@dfdkejJe3fd0e5e3fgG dsdt dteEZPej/0dcd"ejQdfej1djejQdej/jRdudvdwdkejJe3fd0e5e3feSd$ejQdfeTd$ejQdfeTeUejTjVej@e3feWd$ejQdfeNd$ejQdfg	G dxdy dyeEZXej/0dcedzd{dfd"e5e3fd|e5e3fgG d}d~ d~eEZYej/0dcedzddddfedzddddfedze5e3fd"e5e3fgG dd deEZZej/0dcedddfd"e5e3fd|e5e3fgG dd deEZ[ej/0dZdeddded"d$ddgej/0dge5gG dd deEZ\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgej/0dehd$d4ej/0dg dd0d1gd1ggej/0ddIej2eiejjVeiejjkgej/0ddd dd dd gdd Zldd ZmdS )    )datedatetimeN)IndexingError)is_list_like)NACategorical	DataFrameDatetimeIndexIndexIntervalIntervalIndex
MultiIndexNaTPeriodSeries	Timedelta	Timestamparrayconcat
date_rangeinterval_rangeperiod_rangetimedelta_range)BDayc                   @   sV   e Zd Zdd Zdd Zdd Zdd Zej	d	g d
dd Z
dd Zdd ZdS )TestSetitemDT64Valuesc                 C   s   t tddd}d |d< |d tu s(J d |dd< |d tu sDJ tj|d< |d tu s^J tj|dd< |d tu s|J d S )	Nz1/1/2000
   periods               )r   r   r   npnanselfseries r(   r/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/series/indexing/test_setitem.pytest_setitem_none_nan(   s    
z+TestSetitemDT64Values.test_setitem_none_nanc                 C   s@   t ddg}tddg|d}| }d|jg < t|| d S )N)a   )b   r,   r.   indexr   )r   from_tuplesr   copyloctmassert_series_equal)r&   idxresultexpectedr(   r(   r)   #test_setitem_multiindex_empty_slice6   s
    
z9TestSetitemDT64Values.test_setitem_multiindex_empty_slicec                 C   sL   t g dg dtd}t |d< |jt ks4J |d t ksHJ d S )Nr,   r.   r   )Dater-   otherr0   dtyper;   )r   objectr   todayr;   r&   serr(   r(   r)   test_setitem_with_string_index>   s    z4TestSetitemDT64Values.test_setitem_with_string_indexc                 C   sP   t dddd}g d}t||d}| }tj|d< tj|jd< t|| d S )	NZ2017r    
US/Easternr   tz)r   r,   )r   r.   )r   r   )r   r    r/   rG   r   )r   r   r2   r#   r$   ilocr4   r5   )r&   arrr0   r7   r8   r(   r(   r)   )test_setitem_tuple_with_datetimetz_valuesF   s    
z?TestSetitemDT64Values.test_setitem_tuple_with_datetimetz_valuesrF   )rD   UTCz
Asia/Tokyoc                 C   s   t tddd|d}|jd| dks*J t td|dtd	|dtd
|dg}| }td|d||d< t|| t td|dtd|dgddgd}|jd| dksJ t td|dtd	|dtd|dg}| }|||ddg< t|| d S )N
2016-01-01Hr   freqr   rF   datetime64[ns, ]z2016-01-01 00:00rF   2011-01-01 00:00z2016-01-01 02:00
2011-01-01r,   
2012-01-01r.   r/   2012-01-01 00:00r   r   r>   r   r2   r4   r5   )r&   rF   indexer_sliorigexprB   valsr(   r(   r)   test_setitem_with_tzP   s2    


	


z*TestSetitemDT64Values.test_setitem_with_tzc                 C   s  d}t tddd|d}|jd| dks.J t td|d	td
|d	td|d	g}| }td|d	||d< t|| t td|d	td|d	gddgd}|jd| dksJ t td|d	td|d	td|d	g}| }|||ddg< t|| d S )NrD   z
2016-11-06rM   r   rN   rP   rQ   z2016-11-06 00:00-04:00rR   z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00rT   r,   rU   r.   r/   z2016-11-06 00:00rS   rV   rW   )r&   rX   rF   rY   rZ   rB   r[   r(   r(   r)   test_setitem_with_tz_dstu   s4    


	


z.TestSetitemDT64Values.test_setitem_with_tz_dstc                 C   sp   t dtjitd}dg}tjdgdd}||j|< t |d gdgtd}tdd	 |jD s`J t	|| d S )
NXr>   Tr    M8[ns]r   r=   c                 s   s   | ]}t |tjV  qd S N)
isinstancer#   
datetime64.0xr(   r(   r)   	<genexpr>       zYTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_match.<locals>.<genexpr>)
r   r#   r$   r?   r   rH   allvaluesr4   r5   )r&   rB   indexervaluer8   r(   r(   r)   0test_object_series_setitem_dt64array_exact_match   s    
zFTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_matchN)__name__
__module____qualname__r*   r9   rC   rJ   pytestmarkparametrizer\   r]   rm   r(   r(   r(   r)   r   '   s   

$&r   c                   @   sd   e Zd Zdd Zejdejej	gejdddgdd Z
ejd	d
dejfgdd ZdS )TestSetitemScalarIndexerc              	   C   s   t dgd dgd d}d}d}tjt|dF tjt|d d|d< W d    n1 s\0    Y  W d    n1 sz0    Y  d S )	Nr+   r   r/   z2index -11 is out of bounds for axis 0 with size 10;Series.__setitem__ treating keys as positions is deprecatedmatchfooi)r   rq   raises
IndexErrorr4   assert_produces_warningFutureWarning)r&   rB   msgwarn_msgr(   r(   r)   #test_setitem_negative_out_of_bounds   s    z<TestSetitemScalarIndexer.test_setitem_negative_out_of_boundsrk   	ser_indexr   r,   c                 C   sX   t ddgdd}||}t dg|gd|d< t t dg|gddgdd}t|| d S )Nr   r?   r_   *   r/   r   r4   r5   )r&   rk   r   rB   Zidxrr8   r(   r(   r)    test_setitem_series_object_dtype   s
    z9TestSetitemScalarIndexer.test_setitem_series_object_dtypezindex, exp_value)r   r   c                 C   s>   t ddg}t dg|gd|jd< t |dg}t|| d S )Nr   r   r/   )r   r3   r4   r5   )r&   r0   Z	exp_valuerB   r8   r(   r(   r)   test_setitem_series   s    z,TestSetitemScalarIndexer.test_setitem_seriesN)rn   ro   rp   r   rq   rr   rs   r4   r3   atr   r#   r$   r   r(   r(   r(   r)   rt      s   	rt   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestSetitemSlicesc                 C   s   d}t jt|jddd d|dd< W d    n1 s<0    Y  t jt|jddd d|d	d< W d    n1 s~0    Y  d S )
NzUcannot do slice indexing on DatetimeIndex with these indexers \[{key}\] of type floatz4\.0)keyrv   r   g      @g      $@z4\.5g      @)rq   ry   	TypeErrorformat)r&   datetime_seriesr}   r(   r(   r)   test_setitem_slice_float_raises   s    *z1TestSetitemSlices.test_setitem_slice_float_raisesc                 C   sT   t tdttdd}d|dd < |dk s4J d|d d< |dk sPJ d S )Nr   r/   r   ir   )r   rangelistri   rA   r(   r(   r)   test_setitem_slice   s
    z$TestSetitemSlices.test_setitem_slicec                 C   s^   t tjddg dd}d|d d< |d d dk sBJ |dd  dk rZJ d S )Nr.      )r.   r    r"   r   r            r/   r   r    )r   r#   randomdefault_rngstandard_normalri   anyrA   r(   r(   r)   test_setitem_slice_integers   s    z-TestSetitemSlices.test_setitem_slice_integersc                 C   sJ   t tdttdd}d|d d d< |d d d dk sFJ d S )N   r/   r   r.   )r   r4   ZmakeIntIndexastypefloatri   r%   r(   r(   r)   test_setitem_slicestep   s    z(TestSetitemSlices.test_setitem_slicestepc                 C   s\   t ddgtdf}ttjdtjd|}d||d d d< tg d|}t|| d S )	Nr   r,   Zabcder   r_   d   r    )
r   r,   r.   r   r   r   r"   r!   r   	   )	r   from_productr   r   r#   arangeint64r4   r5   )r&   rX   mir7   r8   r(   r(   r)   test_setitem_multiindex_slice   s
    z/TestSetitemSlices.test_setitem_multiindex_sliceN)rn   ro   rp   r   r   r   r   r   r(   r(   r(   r)   r      s
   
r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
jdeejegdd Zdd Zdd Zdd Zdd Zdd ZdS )TestSetitemBooleanMaskc                 C   sV   t ddgddgdd}t dgdgdd|ddg< t ddgddgdd}t|| d S )Nr,   r.   r   r=   r   TFr   r&   rB   r8   r(   r(   r)   test_setitem_mask_cast   s    z-TestSetitemBooleanMask.test_setitem_mask_castc                 C   s   t tjddtddddd}|dk}| }||  t	}t
jtdd |||< W d    n1 sx0    Y  |d	d
 }t
|| d S )Nr.   r   r   r/   r   item of incompatible dtyperv   c                 S   s   | dkrt | S | S Nr   )str)tr(   r(   r)   <lambda>  rh   zLTestSetitemBooleanMask.test_setitem_mask_align_and_promote.<locals>.<lambda>)r   r#   r   r   r   r   roundr2   mapr   r4   r{   r|   r5   )r&   tsmaskleftrightr8   r(   r(   r)   #test_setitem_mask_align_and_promote  s    &z:TestSetitemBooleanMask.test_setitem_mask_align_and_promotec                 C   st   t g d}|dk}|| t}tjtdd |||< W d    n1 sN0    Y  t g d}t|| d S )N)r   r,   r.   r   r   r   rv   )r   12r   )r   r   r   r4   r{   r|   r5   r&   rB   r   ser2r8   r(   r(   r)   test_setitem_mask_promote_strs  s    &z5TestSetitemBooleanMask.test_setitem_mask_promote_strsc                 C   sD   t g d}t g d}|| }|||< t g d}t|| d S )N)r   rx   barr   )FTTFr   r   r(   r(   r)   test_setitem_mask_promote  s    z0TestSetitemBooleanMask.test_setitem_mask_promotec                 C   s   ||  k}| }|d ||< |d }t|| ||  | }|d dd ||< |d dd |}|| || < t|| ||  d S )Nr.   r   r   )medianr2   r4   r5   Zreindex_like)r&   string_seriesr   r7   r8   r(   r(   r)   test_setitem_boolean'  s    z+TestSetitemBooleanMask.test_setitem_booleanc                 C   s   |}|j dt d| k}d}tjt|d d||< W d    n1 sL0    Y  tjt|d d|j|< W d    n1 s0    Y  d S )Nr,   rO   zsUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchrv   )shiftr   r   rq   ry   r   r3   )r&   r   r   Zmask_shiftedr}   r(   r(   r)   test_setitem_boolean_corner7  s    &z2TestSetitemBooleanMask.test_setitem_boolean_cornerc                 C   s@   |  }| }d||dk< | }d||dk< t|| d S r   )Zsort_valuesr2   r4   r5   )r&   r   Zorderedr2   r8   r(   r(   r)   $test_setitem_boolean_different_orderE  s    z;TestSetitemBooleanMask.test_setitem_boolean_different_orderfuncc                 C   s@   t g d}|g d}ddg||< t g d}t|| d S )N)Nr-   NTFTr+   cr+   r-   r   r   )r&   r   rB   r   r8   r(   r(   r)    test_setitem_boolean_python_listP  s
    z7TestSetitemBooleanMask.test_setitem_boolean_python_listc                 C   s   t g d|d}t td|d||dk< t g d|d}t|| t g d|d}t td|d|j|dk< t|| t g d|d}t td|d}|j|dk |j|dk< t|| d S )N)r   r"   r!   r   r_   r    r"   )r   r"   r.   r   r,   )r   r   r4   r5   r3   )r&   any_numeric_ea_dtyperB   r8   Zloc_serr(   r(   r)   'test_setitem_boolean_nullable_int_typesY  s    z>TestSetitemBooleanMask.test_setitem_boolean_nullable_int_typesc                 C   st   t d gd }dgd dgd  dgd  }td||< |}t d gd ttd d gd  td}t|| d S )Nr   Fr   Tr   r.   r_   )r   r   r   r?   r4   r5   )r&   rB   r   r7   r8   r(   r(   r)   Atest_setitem_with_bool_mask_and_values_matching_n_trues_in_lengthi  s    (zXTestSetitemBooleanMask.test_setitem_with_bool_mask_and_values_matching_n_trues_in_lengthc                 C   sh   t g d}tjtdd tj|d< W d    n1 s:0    Y  t tjddgtd}t|| d S )Nr   r   rv   r   FTr_   )r   r4   r{   r|   r#   r$   r?   r5   )r&   r7   r8   r(   r(   r)   test_setitem_nan_with_boolr  s    (z1TestSetitemBooleanMask.test_setitem_nan_with_boolc           	      C   s  t g ddd}tjg dtjd}tg d}| }tjtdd t |||< W d    n1 sj0    Y  t g d}t|| | }tjtdd  |j	||d	d
 W d    n1 s0    Y  t|| | }|
| t |}t|| d S )Nr:   int8r_   )      r   r   rv   )r   r.   r   TZinplace)r   r#   r   r   r2   r4   r{   r|   r5   r   where	r&   rY   Zaltr   rB   r8   r   ser3resr(   r(   r)   !test_setitem_mask_smallint_upcast|  s&    *.z8TestSetitemBooleanMask.test_setitem_mask_smallint_upcastc           	      C   s   t g ddd}t g dtjd}tg d}| }|||< t g ddd}t|| | }|j||dd t|| | }|| |}tj||d	d
 d S )Nr:   uint8r_   )   r      r   )r   r.   r   Tr   F)Zcheck_dtype)	r   r#   r   r   r2   r4   r5   r   r   r   r(   r(   r)   $test_setitem_mask_smallint_no_upcast  s    z;TestSetitemBooleanMask.test_setitem_mask_smallint_no_upcastN)rn   ro   rp   r   r   r   r   r   r   r   rq   rr   rs   r   r#   r   r   r   r   r   r   r   r   r(   r(   r(   r)   r      s   		
	
r   c                   @   s   e Zd Zdd Zdd ZdS )TestSetitemViewCopySemanticsc                 C   s   t dddd}|d }t|}|j|us,J |rJ|jjj|jjju sbJ n|jjj|jjjusbJ |jdkspJ t|jd< |jjd u sJ |j|usJ |jjj|jjjusJ |d |ksJ |jdksJ d S )NZ20130101r   rD   rE   r,   D)	r   r   _values_ndarraybase_datarO   r   rH   r&   Zusing_copy_on_writedtir   rB   r(   r(   r)   ,test_setitem_invalidates_datetime_index_freq  s    
zITestSetitemViewCopySemantics.test_setitem_invalidates_datetime_index_freqc                 C   s   t dddd}|d }t|}|j|us,J |rh|jjj|jjju sHJ |jjd jj|jjju sJ n6|jjj|jjjusJ |jjd jj|jjjusJ |jjd |usJ t|d d d< |d tu sJ |d |ksJ d S )NrL   r   
US/PacificrE   r   r   )	r   r   r   r   r   r   Z_mgrZarraysr   r   r(   r(   r)   'test_dt64tz_setitem_does_not_mutate_dti  s     zDTestSetitemViewCopySemantics.test_dt64tz_setitem_does_not_mutate_dtiN)rn   ro   rp   r   r   r(   r(   r(   r)   r     s   r   c                   @   s   e Zd Zdd Zdd ZdS )TestSetitemCallablec                 C   sD   t g dtdd}d|dd < t g dtdd}t|| d S )Nr,   r.   r   r    ABCDr/   r   c                 S   s   dS )NAr(   rf   r(   r(   r)   r     rh   z?TestSetitemCallable.test_setitem_callable_key.<locals>.<lambda>)r   r.   r   r    )r   r   r4   r5   r   r(   r(   r)   test_setitem_callable_key  s    z-TestSetitemCallable.test_setitem_callable_keyc                 C   sD   dd }t g dtd}|||dk < t dd|dg}t|| d S )	Nc                 S   s   | d S Nr,   r(   r   r(   r(   r)   r     rh   zATestSetitemCallable.test_setitem_callable_other.<locals>.<lambda>)r,   r.   r   r    r_   r   r,   r.   r    )r   r?   r4   r5   )r&   incrB   r8   r(   r(   r)   test_setitem_callable_other  s
    z/TestSetitemCallable.test_setitem_callable_otherN)rn   ro   rp   r   r   r(   r(   r(   r)   r     s   r   c                   @   sF  e Zd Zdd Zdd Zdd Zejde	de	d
 e	d gd	d
 Zdd Zdd Zdd Zejdeeddddfeeddddfeejddddfeejddddfeedddefeeddddfejeddddfejeddddfejeddddfejeddddfejejddddfejejddddfgdd Zdd ZdS )TestSetitemWithExpansionc                 C   s6   t d}ttd}d||< td|g}t|| d S )NrU   r_   /   )r   r   r?   r4   r5   )r&   r   r'   r8   r(   r(   r)   test_setitem_empty_series  s
    
z2TestSetitemWithExpansion.test_setitem_empty_seriesc                 C   s^   t g tg ddtd}td}d||< t dt|gdd}t|| |jj|jjksZJ d S )Nr   r   r_   rU   r   )r   r	   r?   r   r4   r5   r0   rO   )r&   r'   r   r8   r(   r(   r)   6test_setitem_empty_series_datetimeindex_preserves_freq  s    zOTestSetitemWithExpansion.test_setitem_empty_series_datetimeindex_preserves_freqc                 C   sV   t d}t|gdgtd}|d }tg td}d|d< ||d< |d }||ksRJ d S )Nl    Pi5 	timestampr=   r_   g     r@Zanything)r   r   r?   )r&   r   r'   r8   r7   r(   r(   r)   3test_setitem_empty_series_timestamp_preserves_dtype  s    zLTestSetitemWithExpansion.test_setitem_empty_series_timestamp_preserves_dtypetd9 daysc                 C   s   t d|gddgtd}t dg}||d< t|| t|d tsFJ t dg}td|jd< t|| t|d ts|J d S )Nrf   r   r   r=   r   )r   r?   r4   r5   rb   r   r3   )r&   r   r8   rB   r(   r(   r)   #test_append_timedelta_does_not_cast
  s    


z<TestSetitemWithExpansion.test_append_timedelta_does_not_castc                 C   sP   t td}td|d< d|d< d|d< t tdddgg dd	}t|| d S )
Nr_   rL   r+         @r-   rx   r   r   r/   )r   r?   r   r4   r5   r   r(   r(   r)   *test_setitem_with_expansion_type_promotion   s    
zCTestSetitemWithExpansion.test_setitem_with_expansion_type_promotionc                 C   sL   |  }d|jvsJ d|d< tdgdgdd}t||g}t|| d S )NZfoobarr,   r'   )r0   name)r2   r0   r   r   r4   r5   )r&   r   rB   Zappr8   r(   r(   r)   test_setitem_not_contained)  s    z3TestSetitemWithExpansion.test_setitem_not_containedc                 C   s8   t ddg|d}d|d< t g d|d}t|| d S )Nr,   r.   r_   r   )r,   r.   r   r   )r&   r   rB   r8   r(   r(   r)   test_setitem_keep_precision3  s    z4TestSetitemWithExpansion.test_setitem_keep_precisionz1na, target_na, dtype, target_dtype, indexer, warnZInt64r,   Nr.   r   float64r?   ZFloat64c           
      C   s|   t ddg|d}tj|dd |||< W d    n1 s<0    Y  |dkrVd|gndd|g}t ||d}	t||	 d S )Nr,   r.   r_   incompatible dtyperv   )r   r4   r{   r5   )
r&   naZ	target_nar>   Ztarget_dtyperk   warnrB   Zexpected_valuesr8   r(   r(   r)   test_setitem_enlarge_with_na:  s    &z5TestSetitemWithExpansion.test_setitem_enlarge_with_nac                 C   sJ   t ddg}||d< t dd|gg dd}t|| |d |u sFJ d S )Nr+   r-   r   )r   r,   r   r/   r   )r&   Znulls_fixturerB   r8   r(   r(   r)   $test_setitem_enlargement_object_noneV  s
    z=TestSetitemWithExpansion.test_setitem_enlargement_object_none)rn   ro   rp   r   r   r   rq   rr   rs   r   Zto_timedelta64Zto_pytimedeltar   r   r   r   r   r#   r$   r   r|   r   r   r(   r(   r(   r)   r     s@   	


	

r   c               	   C   sx   t d} d| j_t| dd}|jD ]N}d}tjt|d d||< W d    n1 sX0    Y  | | dks$J q$d S )Nr   Fr2   #assignment destination is read-onlyrv   r,   r   )	r#   zerosflags	writeabler   r0   rq   ry   
ValueError)r   r'   nr}   r(   r(   r)   .test_setitem_scalar_into_readonly_backing_data_  s    

&r  c                  C   sl   t d} d| j_t| dd}d}tjt|d d|dd< W d    n1 sR0    Y  |  rhJ d S )Nr   Fr   r  rv   r,   r   )	r#   r  r  r  r   rq   ry   r  r   )r   r'   r}   r(   r(   r)   -test_setitem_slice_into_readonly_backing_datan  s    
*r  c                  C   s@  t tddgddgd} |  }d|d d < t tddgddgd}t|| |  }d|d< t tddgddgd}t|| |  }d||jdk< t tddgddgd}t|| |  }d|ddg< t tddgddgd}t|| |  }dd	g|_d|d	< t tddgddgddd	gd
}t|| d S )Nr-   r+   
categoriesr,   r   FTrf   yr/   )r   r   r2   r4   r5   r0   )rY   rB   rZ   r(   r(   r)   &test_setitem_categorical_assigning_ops|  s,    
 r  c                  C   sF   t tg d} t tdtjdgg dd}tj| d< t| | d S )Nr:   r,   r   r	  )r   r   r#   r$   r4   r5   )rB   rZ   r(   r(   r)   !test_setitem_nan_into_categorical  s    
r  c                   @   sD   e Zd Zejdddgejjdg deddd Zd	d
 ZdS )TestSetitemCastinguniqueTFval)r   r   3)idsc                 C   s   t ddg}|sddg|_tjtdd |||d< W d    n1 sJ0    Y  t|jd t|ksnJ t d|gt|jd}|s|tjurt ||gtddgd}t|| d S )NTFr,   r   rv   )r>   r0   )	r   r0   r4   r{   r|   typerH   r?   r5   )r&   r  rX   r  rB   r8   r(   r(   r)   test_setitem_non_bool_into_bool  s    
*z2TestSetitemCasting.test_setitem_non_bool_into_boolc                 C   s   t g d}|j}tg d}|d d |d d< |j|u s@J tjtdd$ |dd  |dd < W d    n1 sx0    Y  t |}t|| d S )Nr   )TFNr.   r   rv   r,   )r   r   r   r4   r{   r|   r5   )r&   rB   rj   rI   r8   r(   r(   r)   &test_setitem_boolean_array_into_npbool  s    2z9TestSetitemCasting.test_setitem_boolean_array_into_npboolN)	rn   ro   rp   rq   rr   rs   r  r  r  r(   r(   r(   r)   r    s   r  c                   @   s^   e Zd ZdZejdd Zdd Zdd Zdd	 Z	d
d Z
dd Zdd Zdd Zdd ZdS )SetitemCastingEquivalentsz
    Check each of several methods that _should_ be equivalent to `obj[key] = val`

    We assume that
        - obj.index is the default Index(range(len(obj)))
        - the setitem does not expand the obj
    c                 C   s   |j |j kS )zF
        Whether we expect the setting to be in-place or not.
        r_   )r&   objr8   r(   r(   r)   
is_inplace  s    z$SetitemCastingEquivalents.is_inplacec           	      C   s>   |}|  }|j}||||< t|| | |||| d S ra   )r2   r   r4   r5   _check_inplace)	r&   r  r   r8   r  rk   r  rY   rI   r(   r(   r)   check_indexer  s    z'SetitemCastingEquivalents.check_indexerc                 C   sP   |d u r
nB|r>|j jdv r.|j|jju s<J qL|j|u sLJ nt||j d S )N)mM)r>   kindr   r   r4   Zassert_equal)r&   r  rY   rI   r  r(   r(   r)   r    s    z(SetitemCastingEquivalents._check_inplacec              	   C   s  t |tstd tj|dd$ | |||||| W d    n1 sL0    Y  |tju rtj|dd& | ||||tj| W d    q1 s0    Y  nN|tj	u rtj|dd& | ||||tj
| W d    n1 s0    Y  t||d }tj|dd$ | |||||| W d    n1 s<0    Y  |tjurt||d }	tj|dd$ | ||	|||| W d    n1 s0    Y  |g}
tj|dd$ | ||
|||| W d    n1 s0    Y  t|
}tj|dd$ | |||||| W d    n1 s20    Y  dd |fD }tj|dd$ | |||||| W d    n1 s0    Y  d S )NzNot relevant for int keyr   rv   r,   c                 s   s   | ]
}|V  qd S ra   r(   rd   r(   r(   r)   rg     rh   z9SetitemCastingEquivalents.test_int_key.<locals>.<genexpr>)rb   intrq   skipr4   r{   r  r3   r   rH   iatr   slicer#   r   )r&   r  r   r8   r   r  rX   r  rngZslcilkeyindkeygenkeyr(   r(   r)   test_int_key  s4    

2
6
4444
4z&SetitemCastingEquivalents.test_int_keyc              	   C   sX  t |tstd |tjur`tj|dd$ | |||||| W d    n1 sV0    Y  tt	t
|| }tj|dd$ | |||||| W d    n1 s0    Y  t|}	tj|dd$ | ||	|||| W d    n1 s0    Y  dd |	D }
tj|dd$ | ||
|||| W d    n1 sJ0    Y  d S )NzNot relevant for slice keyr   rv   c                 s   s   | ]
}|V  qd S ra   r(   rd   r(   r(   r)   rg      rh   z;SetitemCastingEquivalents.test_slice_key.<locals>.<genexpr>)rb   r!  rq   r  r4   r3   r{   r  r   r   lenr#   r   )r&   r  r   r8   r   r  rX   r  r#  r$  r%  r(   r(   r)   test_slice_key  s    


22
2z(SetitemCastingEquivalents.test_slice_keyc           	      C   s   t j|jtd}d||< | }t|rzt|| k rzd}tj	t
|d ||||< W d    n1 sl0    Y  d S tj|dd ||||< W d    n1 s0    Y  t|| d S )Nr_   Tz9boolean index did not match indexed array along dimensionrv   r   )r#   r  shapeboolr2   r   r'  sumrq   ry   rz   r4   r{   r5   )	r&   r  r   r8   r   r  rX   r   r}   r(   r(   r)   test_mask_key$  s    **z'SetitemCastingEquivalents.test_mask_keyc                 C   s  t j|jtd}d||< t|rtt|t|k rtd}tjt|d |	| | W d    n1 sf0    Y  d S |}	|
 }|j}
|	| |}|tu r|jtkr|t}n4|d u r|jtkr|jtksJ |
 }d || < t|| | ||	|
| d S )Nr_   Tz4operands could not be broadcast together with shapesrv   )r#   r  r)  r*  r   r'  rq   ry   r  r   r2   r   r   r>   r?   ZfillnaZisnar4   r5   r  )r&   r  r   r8   r   r  r  r   r}   rY   rI   r   r(   r(   r)   test_series_where5  s&    ,z+SetitemCastingEquivalents.test_series_wherec           	      C   sH   t j|jtd}d||< t|| |}t||jd}t|| d S Nr_   T)	r#   r  r)  r*  r
   r   r>   r4   assert_index_equal)	r&   r  r   r8   r   r  r   r   Zexpected_idxr(   r(   r)   test_index_whereP  s
    z*SetitemCastingEquivalents.test_index_wherec                 C   sB   t j|jtd}d||< t|||}t|t||jd d S r.  )	r#   r  r)  r*  r
   Zputmaskr4   r/  r>   )r&   r  r   r8   r   r  r   r   r(   r(   r)   test_index_putmaskX  s    z,SetitemCastingEquivalents.test_index_putmaskN)rn   ro   rp   __doc__rq   fixturer  r  r  r&  r(  r,  r-  r0  r1  r(   r(   r(   r)   r    s   

$r  zobj,expected,key,warnr,   r   r.   r   r    zinterval[float64]r_   Zinterval_int_na_value)id)	r.   r   r    r   r"   r!   r   r   r   r!   r   Zint_series_slice_key_step)TTFFTFZbool_series_slice_key_stepr   r"   r   Zint_series_slice_keyr:   Zint_series_int_keyZbool_series_int_key_change_allZbool_series_int_keyc                   @   s0   e Zd Zejejeddegddd Z	dS )TestSetitemCastingEquivalentsNaNNparamsc                 C   s   |j S )z
        NA values that should generally be valid_na for *all* dtypes.

        Include both python float NaN and np.float64; only np.float64 has a
        `dtype` attribute.
        paramr&   requestr(   r(   r)   r    s    z!TestSetitemCastingEquivalents.val)
rn   ro   rp   rq   r3  r#   r$   r   r   r  r(   r(   r(   r)   r5  `  s   Br5  c                   @   sl   e Zd Zejdd Zejeeegddd Z	ejdd Z
ejdd	 Zejd
d Zejdd ZdS )!TestSetitemTimedelta64IntoNumericc                 C   s   t dd}|S )Nr    ns)r#   timedelta64)r&   r   r(   r(   r)   r    s    z%TestSetitemTimedelta64IntoNumeric.valr7  c                 C   s   |j S ra   r9  r;  r(   r(   r)   r>     s    z'TestSetitemTimedelta64IntoNumeric.dtypec                 C   s   t d|}t|}|S )Nr   )r#   r   r   r   r&   r>   rI   rB   r(   r(   r)   r    s    z%TestSetitemTimedelta64IntoNumeric.objc                 C   s8   t d|}t|}|t}t dd|jd< |S )Nr   r    r>  r   )r#   r   r   r   r?   r?  rH   r@  r(   r(   r)   r8     s
    
z*TestSetitemTimedelta64IntoNumeric.expectedc                 C   s   dS r   r(   r&   r(   r(   r)   r     s    z%TestSetitemTimedelta64IntoNumeric.keyc                 C   s   t S ra   r|   rA  r(   r(   r)   r     s    z&TestSetitemTimedelta64IntoNumeric.warnN)rn   ro   rp   rq   r3  r  complexr  r   r>   r  r8   r   r   r(   r(   r(   r)   r=    s   




r=  c                   @   s   e Zd Zejddgd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
ejgddd Zejdd ZdS )TestSetitemDT64IntoIntr`   m8[ns]r7  c                 C   s   |j S ra   r9  r;  r(   r(   r)   r>     s    zTestSetitemDT64IntoInt.dtypec                 C   s    t dd}|dkr|| }|S )Nz2021-01-18 13:25:00r>  rE  )r#   rc   )r&   r>   r  r(   r(   r)   scalar  s    zTestSetitemDT64IntoInt.scalarc                 C   s,   t ||dgtd}t|d t|s(J |S )Nr   r_   r   )r   r?   rb   r  )r&   rF  r8   r(   r(   r)   r8     s    zTestSetitemDT64IntoInt.expectedc                 C   s   t g dS )Nr:   r   rA  r(   r(   r)   r    s    zTestSetitemDT64IntoInt.objc                 C   s
   t d dS )Nr   r!  rA  r(   r(   r)   r     s    zTestSetitemDT64IntoInt.keyNc                 C   s   |j }|d u r|S |||gS ra   r9  )r&   rF  r<  boxr(   r(   r)   r    s    zTestSetitemDT64IntoInt.valc                 C   s   t S ra   rB  rA  r(   r(   r)   r     s    zTestSetitemDT64IntoInt.warn)rn   ro   rp   rq   r3  r>   rF  r8   r  r   r   r#   r   r  r   r(   r(   r(   r)   rD    s   





rD  c                   @   sn   e Zd Zejdd Zejdd Zejdeddgddd	 Zejd
e	j
gddd Zejdd Zd
S )TestSetitemNAPeriodDtypec                 C   sN   t tdddd}tj|jd|< || tu sJtdd || D sJJ |S )N
2000-01-01r   r   r   rO   i8c                 s   s   | ]}|t u V  qd S ra   )r   rd   r(   r(   r)   rg     rh   z4TestSetitemNAPeriodDtype.expected.<locals>.<genexpr>)r   r   r   _valuer   viewri   )r&   r   rZ   r(   r(   r)   r8     s    &z!TestSetitemNAPeriodDtype.expectedc                 C   s   t tddddS )NrK  r   r   rL  )r   r   rA  r(   r(   r)   r    s    zTestSetitemNAPeriodDtype.objr   r   r7  c                 C   s   |j S ra   r9  r;  r(   r(   r)   r     s    zTestSetitemNAPeriodDtype.keyNc                 C   s   |j S ra   r9  r;  r(   r(   r)   r    s    zTestSetitemNAPeriodDtype.valc                 C   s   d S ra   r(   rA  r(   r(   r)   r     s    zTestSetitemNAPeriodDtype.warn)rn   ro   rp   rq   r3  r8   r  r!  r   r#   r$   r  r   r(   r(   r(   r)   rJ    s   



rJ  c                	   @   s   e Zd Zejg dddd Zejdd Zejdeje	e
dd	edd	gdd
d Zejdd Zejdd Zejdd Zejdd ZdS )TestSetitemNADatetimeLikeDtype)rE  r`   zdatetime64[ns, UTC]zdatetime64[ns, US/Central]r7  c                 C   s   |j S ra   r9  r;  r(   r(   r)   r>     s    z$TestSetitemNADatetimeLikeDtype.dtypec                 C   s0   t dddj}t||d}|j|ks(J t|S )NrL   r   r   r_   )r   Zasi8r
   r>   r   )r&   r>   Zi8valsr6   r(   r(   r)   r  !  s    z"TestSetitemNADatetimeLikeDtype.objNr   r>  c                 C   s   |j S ra   r9  r;  r(   r(   r)   r  (  s    
z"TestSetitemNADatetimeLikeDtype.valc                 C   s&   |t u p$|d u p$|tju p$|j|jkS ra   )r   r#   r$   r>   )r&   r  r  r(   r(   r)   r  4  s    z)TestSetitemNADatetimeLikeDtype.is_inplacec                 C   s0   |r
|j nt}t|gt|dd   |d}|S )Nr,   r_   )r>   r?   r   r   )r&   r  r  r  r>   r8   r(   r(   r)   r8   ;  s    z'TestSetitemNADatetimeLikeDtype.expectedc                 C   s   dS r   r(   rA  r(   r(   r)   r   A  s    z"TestSetitemNADatetimeLikeDtype.keyc                 C   s   |rd S t S ra   rB  )r&   r  r(   r(   r)   r   E  s    z#TestSetitemNADatetimeLikeDtype.warn)rn   ro   rp   rq   r3  r>   r  r#   r$   r   r?  rc   r  r  r8   r   r   r(   r(   r(   r)   rP    s.   



	



rP  c                   @   sR   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	dS )$TestSetitemMismatchedTZCastsToObjectc                 C   s   t tddddS )N2000r.   
US/CentralrE   r   r   rA  r(   r(   r)   r  L  s    z(TestSetitemMismatchedTZCastsToObject.objc                 C   s   t dddS )NrR  rD   rR   )r   rA  r(   r(   r)   r  P  s    z(TestSetitemMismatchedTZCastsToObject.valc                 C   s   dS r   r(   rA  r(   r(   r)   r   T  s    z(TestSetitemMismatchedTZCastsToObject.keyc                 C   s$   t |dtdddg|jd}|S )NrS  z2000-01-02 00:00:00-06:00rR   r_   )r   Z
tz_convertr   r>   )r&   r  r  r8   r(   r(   r)   r8   X  s    
z-TestSetitemMismatchedTZCastsToObject.expectedc                 C   s   d S ra   r(   rA  r(   r(   r)   r   e  s    z)TestSetitemMismatchedTZCastsToObject.warnN
rn   ro   rp   rq   r3  r  r  r   r8   r   r(   r(   r(   r)   rQ  J  s   



rQ  zobj,expected,warn)      ?       @r   rW  r   i  )rx   r   baz)Nr   rX  c                   @   s(   e Zd Zejdd Zejdd ZdS )TestSeriesNoneCoercionc                 C   s   dS r   r(   rA  r(   r(   r)   r   {  s    zTestSeriesNoneCoercion.keyc                 C   s   d S ra   r(   rA  r(   r(   r)   r    s    zTestSeriesNoneCoercion.valN)rn   ro   rp   rq   r3  r   r  r(   r(   r(   r)   rY  j  s   
rY  c                   @   sZ   e Zd Z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d Z
dS )-TestSetitemFloatIntervalWithIntIntervalValuesc                 C   sh   t td}t|}tdd}tjtdd ||d< W d    n1 sL0    Y  |jdksdJ d S )Nr          ?      ?z%Setting an item of incompatible dtyperv   r   zInterval[float64, right])	r   from_breaksr   r   r   r4   r{   r|   r>   )r&   r6   r  r  r(   r(   r)   test_setitem_example  s    
&zBTestSetitemFloatIntervalWithIntIntervalValues.test_setitem_examplec                 C   s   t td}t|S )Nr    )r   r]  r   r   )r&   r6   r(   r(   r)   r    s    z1TestSetitemFloatIntervalWithIntIntervalValues.objc                 C   s
   t ddS )Nr[  r\  )r   rA  r(   r(   r)   r    s    z1TestSetitemFloatIntervalWithIntIntervalValues.valc                 C   s   dS r   r(   rA  r(   r(   r)   r     s    z1TestSetitemFloatIntervalWithIntIntervalValues.keyc                 C   s*   |gt |dd   }t|dd}t|S )Nr,   zInterval[float64]r_   )r   r   r   )r&   r  r  datar6   r(   r(   r)   r8     s    z6TestSetitemFloatIntervalWithIntIntervalValues.expectedc                 C   s   t S ra   rB  rA  r(   r(   r)   r     s    z2TestSetitemFloatIntervalWithIntIntervalValues.warnN)rn   ro   rp   r^  rq   r3  r  r  r   r8   r   r(   r(   r(   r)   rZ    s   



rZ  c                   @   sR   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	dS )!TestSetitemRangeIntoIntegerSeriesc                 C   s   t |}ttd|d}|S Nr   r_   )r#   r>   r   r   )r&   any_int_numpy_dtyper>   rB   r(   r(   r)   r    s    
z%TestSetitemRangeIntoIntegerSeries.objc                 C   s
   t ddS )Nr.   r    )r   rA  r(   r(   r)   r    s    z%TestSetitemRangeIntoIntegerSeries.valc                 C   s
   t ddS Nr   r.   rH  rA  r(   r(   r)   r     s    z%TestSetitemRangeIntoIntegerSeries.keyc                 C   s   t |}tg d|d}|S )N)r.   r   r.   r   r    r_   )r#   r>   r   )r&   rb  r>   rZ   r(   r(   r)   r8     s    
z*TestSetitemRangeIntoIntegerSeries.expectedc                 C   s   d S ra   r(   rA  r(   r(   r)   r     s    z&TestSetitemRangeIntoIntegerSeries.warnNrU  r(   r(   r(   r)   r`    s   



r`  z	val, warn      @g      @A   c                   @   s6   e Zd Zejdd Zejdd Zejdd ZdS )(TestSetitemFloatNDarrayIntoIntegerSeriesc                 C   s   t tdtjdS ra  )r   r   r#   r   rA  r(   r(   r)   r    s    z,TestSetitemFloatNDarrayIntoIntegerSeries.objc                 C   s
   t ddS rc  rH  rA  r(   r(   r)   r     s    z,TestSetitemFloatNDarrayIntoIntegerSeries.keyc                 C   s@   |d dkrt j}nt j}t jtd|d}||d d< t|S )Nr   r.   r   r_   )r#   r   r   r   r   r   )r&   r  r>   Z
res_valuesr(   r(   r)   r8     s    z1TestSetitemFloatNDarrayIntoIntegerSeries.expectedN)rn   ro   rp   rq   r3  r  r   r8   r(   r(   r(   r)   rf    s   

rf  r     c                   @   sD   e Zd Zejdd Zejdd Zejdd Zejdd Zd	S )
'TestSetitemIntoIntegerSeriesNeedsUpcastc                 C   s   t g dtjdS )Nr:   r_   r   r#   r   rA  r(   r(   r)   r    s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.objc                 C   s   dS r   r(   rA  r(   r(   r)   r     s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.keyc                 C   s   t g dtjdS )N)r,   rg  r   r_   )r   r#   int16rA  r(   r(   r)   r8     s    z0TestSetitemIntoIntegerSeriesNeedsUpcast.expectedc                 C   s   t S ra   rB  rA  r(   r(   r)   r     s    z,TestSetitemIntoIntegerSeriesNeedsUpcast.warnN	rn   ro   rp   rq   r3  r  r   r8   r   r(   r(   r(   r)   rh    s   


rh  )g      Bg    Bl            c                   @   sD   e Zd Zejdd Zejdd Zejdd Zejdd Zd	S )
TestSmallIntegerSetitemUpcastc                 C   s   t g dddS )Nr:   i4r_   rG  rA  r(   r(   r)   r    s    z!TestSmallIntegerSetitemUpcast.objc                 C   s   dS r   r(   rA  r(   r(   r)   r     s    z!TestSmallIntegerSetitemUpcast.keyc                 C   s(   |d dkrd}nd}t |ddg|dS )Nr,   r   Zf8rM  r.   r   r_   rG  )r&   r  r>   r(   r(   r)   r8     s    z&TestSmallIntegerSetitemUpcast.expectedc                 C   s   t S ra   rB  rA  r(   r(   r)   r     s    z"TestSmallIntegerSetitemUpcast.warnNrk  r(   r(   r(   r)   rl    s   


rl  c                   @   s(   e Zd Zejdd Zejdd ZdS )CoercionTestc                 C   s   dS r   r(   rA  r(   r(   r)   r     s    zCoercionTest.keyc                 C   s   t |}|||< t||dS )Nr_   )r   r   )r&   r  r   r  	exp_dtyper[   r(   r(   r)   r8     s    zCoercionTest.expectedN)rn   ro   rp   rq   r3  r   r8   r(   r(   r(   r)   rn    s   
rn  zval,exp_dtype,warnc                   @   s   e Zd Zejdd ZdS )TestCoercionInt8c                 C   s   t g dtjdS )Nr   r_   ri  rA  r(   r(   r)   r  '  s    zTestCoercionInt8.objNrn   ro   rp   rq   r3  r  r(   r(   r(   r)   rp  !  s   rp  )r,   皙?      ?      ?Tro  c                   @   s(   e Zd Zejdd Zejdd ZdS )TestCoercionObjectc                 C   s   t g dtdS )N)r+   r-   r   dr_   )r   r?   rA  r(   r(   r)   r  0  s    zTestCoercionObject.objc                 C   s   d S ra   r(   rA  r(   r(   r)   r   4  s    zTestCoercionObject.warnNrn   ro   rp   rq   r3  r  r   r(   r(   r(   r)   rt  ,  s   
rt  rr  rs  c                   @   s   e Zd Zejdd ZdS )TestCoercionComplexc                 C   s   t g dS )N)rs  y       @       @y      @      @y      @      @rG  rA  r(   r(   r)   r  D  s    zTestCoercionComplex.objNrq  r(   r(   r(   r)   rw  9  s   rw  r  c                   @   s   e Zd Zejdd ZdS )TestCoercionBoolc                 C   s   t g dtdS )N)TFTFr_   )r   r*  rA  r(   r(   r)   r  V  s    zTestCoercionBool.objNrq  r(   r(   r(   r)   rx  I  s   rx  c                   @   s   e Zd Zejdd ZdS )TestCoercionInt64c                 C   s   t g dS )Nr   rG  rA  r(   r(   r)   r  f  s    zTestCoercionInt64.objNrq  r(   r(   r(   r)   ry  [  s   ry  c                   @   s   e Zd Zejdd ZdS )TestCoercionFloat64c                 C   s   t g dS )Nrr  g@gffffff
@g@rG  rA  r(   r(   r)   r  v  s    zTestCoercionFloat64.objNrq  r(   r(   r(   r)   rz  k  s   rz  zbnp.float32(1.1) ends up as 1.100000023841858, so np_can_hold_element raises and we cast to float64)reason)Zmarksc                       s*   e Zd Zejdd Z fddZ  ZS )TestCoercionFloat32c                 C   s   t g dtjdS )Nr{  r_   )r   r#   float32rA  r(   r(   r)   r    s    zTestCoercionFloat32.objc              	      s0   t  ||||||| t|tu r,tdd S )Nz!xfail not relevant for this test.)superr(  r  r   AssertionError)r&   r  r   r8   r   r  rX   r  	__class__r(   r)   r(    s    z"TestCoercionFloat32.test_slice_key)rn   ro   rp   rq   r3  r  r(  __classcell__r(   r(   r  r)   r}  {  s   
r}  rU   zdatetime64[ns]rf   c                   @   s(   e Zd Zejdd Zejdd ZdS )TestCoercionDatetime64c                 C   s   t tddddS )NrT   r   r    )rO   r   rT  rA  r(   r(   r)   r    s    zTestCoercionDatetime64.objc                 C   s   d S ra   r(   rA  r(   r(   r)   r     s    zTestCoercionDatetime64.warnNrv  r(   r(   r(   r)   r    s   
r  rD   rR   zdatetime64[ns, US/Eastern]r   c                   @   s(   e Zd Zejdd Zejdd ZdS )TestCoercionDatetime64TZc                 C   s   d}t tddd|dS )NrD   rT   r   r    rN   rT  )r&   rF   r(   r(   r)   r    s    zTestCoercionDatetime64TZ.objc                 C   s   d S ra   r(   rA  r(   r(   r)   r     s    zTestCoercionDatetime64TZ.warnNrv  r(   r(   r(   r)   r    s   
r  z12 dayztimedelta64[ns]c                   @   s(   e Zd Zejdd Zejdd ZdS )TestCoercionTimedelta64c                 C   s   t tdddS )Nz1 dayr    r   )r   r   rA  r(   r(   r)   r    s    zTestCoercionTimedelta64.objc                 C   s   d S ra   r(   rA  r(   r(   r)   r     s    zTestCoercionTimedelta64.warnNrv  r(   r(   r(   r)   r    s   

r  rx   Z2016Yr   Zboth)closedc                   @   sB   e Zd Zejeddddeddgddd	 Zejd
d ZdS )TestPeriodIntervalCoercionrL   r   r   rL  r,   r   r7  c                 C   s
   t |jS ra   )r   r:  r;  r(   r(   r)   r    s    zTestPeriodIntervalCoercion.objc                 C   s   t S ra   rB  rA  r(   r(   r)   r     s    zTestPeriodIntervalCoercion.warnN)	rn   ro   rp   rq   r3  r   r   r  r   r(   r(   r(   r)   r    s   
r  c                  C   s  t g dg dd} t g dg dd}|  }tjtdd d|jd< W d    n1 s^0    Y  t|| |  }tjtdd d|jd< W d    n1 s0    Y  t|| |  }tjtdd d|d< W d    n1 s0    Y  t|| |  }tjtdd d|jd	< W d    n1 sB0    Y  t|| |  }tjtdd d|j	d	< W d    n1 s0    Y  t|| | 
d
}|
d
}| }tjtdd d|jd< W d    n1 s0    Y  t|| | }tjtdd d|jd< W d    n1 s@0    Y  t|| | }tjtdd d|j	d< W d    n1 s0    Y  t|| | }tjtdd d|jd< W d    n1 s0    Y  t|| d S )Nr   r,   r.   r   r/   )r   皙@r.   r   rv   r  r-   r,   r   )r-   r   )r,   r   )r   r2   r4   r{   r|   r   r5   r3   r   rH   Zto_frameassert_frame_equal)rY   r8   rB   Zorig_dfZexpected_dfdfr(   r(   r)   
test_20643  sP    ((&**

****r  c                  C   sl   t g dg dd} t tjddgg dd}|  }d |jd< t|| |  }d |jd< t|| d S )Nr  r   r/   r,   r.   r   )r   r#   r$   r2   r   r4   r5   rH   )rY   r8   rB   r(   r(   r)   test_20643_comment)  s    

r  c                  C   s&  t g d} tjtdd$ | | dk  d7  < W d    n1 sD0    Y  t g d}t| | t g d} tjtdd  | d  d7  < W d    n1 s0    Y  t| | t g d} tjtdd" | jd  d7  < W d    n1 s0    Y  t| | t g d} tjtdd" | jd  d7  < W d    n1 sX0    Y  t| | t g d} tjtdd" | jd  d7  < W d    n1 s0    Y  t| | t g d} tjtdd" | jd  d7  < W d    n1 s0    Y  t| | d S )Nr:   r   rv   r.   r[  )r,   rd  r   r,   )	r   r4   r{   r|   r5   r3   rH   r   r   )rB   r8   r(   r(   r)   
test_154138  s2    2.0222r  c                  C   s   t dd} t| }t t t jj}tjt	dd ||d< W d    n1 sX0    Y  t|dddd	gt jd
}t
|| d S )Nr   rm  r   rv   r   r,   r.   r   r    r_   )r#   r   r   r   r   iinfomaxr4   r{   r|   r5   rI   rB   r  r8   r(   r(   r)   test_32878_int_itemsize[  s    &r  c                  C   s   t dd} t| }t t jj}|d}tjt	dd ||d< W d    n1 s\0    Y  |d |ksvJ t|ddd	d
gdd}t
|| d S )Nr   Zc8Zc16r   rv   r   r,   r.   r   r    r_   )r#   r   r   r   finfor   r  r4   r{   r|   r5   r  r(   r(   r)   test_32878_complex_itemsizef  s    
&r  c                 C   st   t g dg dd}tjtdd d| |d< W d    n1 sD0    Y  t g dg dtd	}t|| d S )
Nr:   r   r/   r   rv   testr-   )r,   r  r   r=   r   r4   r{   r|   r?   r5   )Z
indexer_alrB   r8   r(   r(   r)   
test_37692t  s
    *r  c              	   C   s&  t jt jfD ]}tdtd|d}tjtdd d| |d< W d    n1 sR0    Y  |jt	ksjJ tdtdt
d}tjtdd |d|d< W d    n1 s0    Y  |jt	ksJ qtdtdt jd}t d| |d< |jt jksJ tdtdt jd}t d| |d< d S )	Nr   r   r=   r   rv   Tr,   rV  )r#   r   r   r   r   r4   r{   r|   r>   r?   r*  )rX   r>   rB   r(   r(   r)   'test_setitem_bool_int_float_consistency}  s    **r  c                  C   st   t g dg dd} d}tjt|d d| d< W d    n1 sD0    Y  t g dg dtd	}t| | d S )
Nr:   r   r/   ru   rv   r^   r   )r^   r.   r   r=   r  rB   r~   r8   r(   r(   r)   $test_setitem_positional_with_casting  s    &r  c                  C   sr   t g dg dd} d}tjt|d d| d< W d    n1 sD0    Y  t g dg dd}t| | d S )	Nr:   r   r/   ru   rv   r\  r   )r\  r.   r   )r   r4   r{   r|   r5   r  r(   r(   r)   .test_setitem_positional_float_into_int_coerces  s    &r  c            	      C   s&  t g dg dd} | jjr J d| d< t g d| jd}t| | d| d< t g dg d	d}t| | ttdd d d
 }t tt||d}|	t
tdg}t g d|d}d|d< t|| t| jddgg}t tt||d}| }d|jd< d|d< t|| d S )Nr   )rr   @r   ffffff@r/   r   r   )r,   r.   r   r    r   )r,   r.   r   r    r   )rr  r  r   r  g      @r.   r    )r   r,   r.   r   r    r   r   r   Bc   )r   r0   Z_should_fallback_to_positionalr4   r5   r   r]  r   r'  r   r?   appendr
   r   r   r2   r3   )	rB   r8   iir   Z	exp_indexZ	expected2r   r   Z	expected3r(   r(   r)   test_setitem_int_not_positional  s(    
r  c                  C   sz   t g dg dd} | d}d|g d< tg ddd}t|| d	| jg dd
f< t d
g di}t| | d S )Nr:   )r    r   r"   )r+   r-   r-   r   )TFF)r   r   r"   )r_  r   r   r+   )r   r.   r   )r   popr   r4   r5   r3   r  )r  r7   r8   r(   r(   r)   test_setitem_with_bool_indexer  s    
r  sizer   )TFFFFitemrI  c                 C   s   t | gS ra   )r#   r   r   r(   r(   r)   r     rh   r   c                 C   s   | gS ra   r(   r   r(   r(   r)   r     rh   c                 C   s   | fS ra   r(   r   r(   r(   r)   r     rh   c           	      C   s   t || }t j| td}t|}| dkrnd}tjt|d ||||< W d    q1 sb0    Y  n2||||< tt j| td}|||< t	
|| d S )Nr_   r,   zKcannot set using a list-like indexer with a different length than the valuerv   )r#   resizer   r   r   r+  rq   ry   r  r4   r5   )	r  r   r  rI  Z	selectionr_  rB   r}   r8   r(   r(   r)   7test_setitem_bool_indexer_dont_broadcast_length1_values  s    ,r  c                  C   s~   t ddd} t| }| }tjdtd}d||< |j| jksBJ t|| |j	|ddd |j| jksnJ t|| d S )NrL   r   r   r_   rx   Tr   )
r   r   r2   r#   r  r*  r>   r4   r5   r   )r   rB   rY   r   r(   r(   r)   (test_setitem_empty_mask_dont_upcast_dt64  s    r  )nr   r   numpyr#   rq   Zpandas.errorsr   Zpandas.core.dtypes.commonr   Zpandasr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr4   Zpandas.tseries.offsetsr   r   rt   r   r   r   r   r   r  r  r  r  r  r  rr   rs   r:  r$   r|   r!  r?   r   r5  r=  rD  rJ  rP  rQ  rY  rZ  r`  r   rf  rj  rh  rl  rn  int32r   rp  rt  Z
complex128rw  r*  rx  r   ry  rz  r~  Zxfailr   Zuint32r  r  Zuint64r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r   minr  r  r(   r(   r(   r)   <module>   s  T . 4+s! 
"


$
	
A%(5 $
'"


	


	


	
	

7#	"