o
    թZh                     @   s	  d dl mZm Z  d dl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 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 Z0G dd  d Z1G d!d" d"Z2ej34d#ej5eed$d%eed$d&ej6ed'd(ed(d%gd)d*d$e7d+d,ej5eg d-eej6d'ej6d%ej6d.ej6d/ej6g	e8ddd&dd0d,ej5eg d1eej6d2ej6d3ge9d*e8ddd&e7d4d,ej5ee:d5eej6ej6ej6ej6ej6d%d6d.d7d/g
e8dd%dd8d,ej5eg d9eej6d&d'gd dd:d,ej5ed3geej6ge9d*d e7d;d,ej5ed3d2geej6d2ge9d*d e7d<d,gG d=d> d>e2Z;G d?d@ d@e2Z<G dAdB dBe2Z=G dCdD dDe2Z>G dEdF dFe2Z?G dGdH dHe2Z@ej34dIeg d9eej6d&d'gdfeg dJeej6dKdLgdfee dMd$d$e dMd$d&e dMd$d'geee dMd$d&e dMd$d'gdfeg dNeg dOdfgG dPdQ dQe2ZAG dRdS dSe2ZBG dTdU dUe2ZCej34dVedKdLgdfedWdXge7fejd&dY d&dY d$ gejDd*e7fgG dZd[ d[e2ZEej34d\d]eFd]gG d^d_ d_e2ZGej34d\g d`G dadb dbe2ZHG dcdd dde2ZIej34deeJd$ejKdfeFd]ejFe7fgG dfdg dgeIZLej34d\g dhej34die9gG djdk dkeIZMej34ded$ejNdfdlejNdfdmejNdfd2e9e7fgG dndo doeIZOej34ded$e9e7fdpe9e7fd'e9e7fdle9e7fdme9e7fd2ePdfgG dqdr dreIZQej34ded$ejRdfdlejDe7fdmejNe7fd2e9e7fgG dsdt dteIZSej34ded$ejDdfdlejDdfdmejNe7fd2e9e7fgG dudv dveIZTej34ded$ejUdfej5dlejUdej3jVe pDeoDeW dwkdxdydzdmejNe7fd2e9e7feXd&ejUdfeYd&ejUdfeYeZejYj[ejDe7fe\d&ejUdfeRd&ejUdfg	G d{d| d|eIZ]ej34deed}d~dfd$e9e7fde9e7fgG dd deIZ^ej34deed}ddddfed}ddddfed}e9e7fd$e9e7fgG dd deIZ_ej34deedddfd$e9e7fde9e7fgG dd deIZ`ej34d\deddded$d&ddgej34die9gG dd deIZadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd Zkdd Zlej34demd&d6ej34dg dd2d3gd3ggej34ddKej6eneoj[eneojpgej34ddd dd dd gdd Zqdd ZrdS )    )datedatetime)DecimalN)np_version_gte1p24)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 s"J 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*   `/var/www/html/lang_env/lib/python3.10/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.   r0   indexr   )r   from_tuplesr   copyloctmassert_series_equal)r(   idxresultexpectedr*   r*   r+   #test_setitem_multiindex_empty_slice8   s
   
z9TestSetitemDT64Values.test_setitem_multiindex_empty_slicec                 C   sL   t g dg dtd}t |d< |jt ksJ |d t ks$J d S )Nr.   r0   r    )Dater/   otherr2   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   r0   )r   r    )r   r"   r1   rI   r   )r   r   r4   r%   r&   ilocr6   r7   )r(   arrr2   r9   r:   r*   r*   r+   )test_setitem_tuple_with_datetimetz_valuesH   s   
z?TestSetitemDT64Values.test_setitem_tuple_with_datetimetz_valuesrH   )rF   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|jd}| }td|d||d< t|| t td|dtd|dgddg|jd}|jd| dks^J t td|dtd	|dtd|dg|jd}| }|||ddg< t|| d S )N
2016-01-01hr    freqr   rH   datetime64[ns, ]z2016-01-01 00:00rH   2011-01-01 00:00z2016-01-01 02:00r@   
2011-01-01r.   
2012-01-01r0   r?   2012-01-01 00:00r   r   r@   r   r4   r6   r7   )r(   rH   indexer_sliorigexprD   valsr*   r*   r+   test_setitem_with_tzR   s8   






	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|jd}| }td|d	||d< t|| t td|d	td|d	gddg|jd}|jd| dks`J t td|d	td|d	td|d	g|jd}| }|||ddg< t|| d S )NrF   z
2016-11-06rO   r    rP   rR   rS   z2016-11-06 00:00-04:00rT   z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00rV   rW   r.   rX   r0   r?   z2016-11-06 00:00rU   rY   rZ   )r(   r[   rH   r\   r]   rD   r^   r*   r*   r+   test_setitem_with_tz_dstz   s:   






	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 s0J t	|| d S )
NXrV   Tr"   M8[ns]r   r?   c                 s   s    | ]	}t |tjV  qd S N)
isinstancer%   
datetime64.0xr*   r*   r+   	<genexpr>   s    zYTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_match.<locals>.<genexpr>)
r   r%   r&   rA   r   rJ   allvaluesr6   r7   )r(   rD   indexervaluer:   r*   r*   r+   0test_object_series_setitem_dt64array_exact_match   s   
zFTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_matchN)__name__
__module____qualname__r,   r;   rE   rL   pytestmarkparametrizer_   r`   rn   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, tjt|d d|d< W d    n1 s.w   Y  W d    d S W d    d S 1 sFw   Y  d S )	Nr-   r   r1   z5index -11|-1 is out of bounds for axis 0 with size 10;Series.__setitem__ treating keys as positions is deprecatedmatchfooi)r   rr   raises
IndexErrorr6   assert_produces_warningFutureWarning)r(   rD   msgwarn_msgr*   r*   r+   #test_setitem_negative_out_of_bounds   s   
"z<TestSetitemScalarIndexer.test_setitem_negative_out_of_boundsrl   	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   rA   rV   *   r1   r   r6   r7   )r(   rl   r   rD   Zidxrr:   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   r1   )r   r5   r6   r7   )r(   r2   Z	exp_valuerD   r:   r*   r*   r+   test_setitem_series   s   z,TestSetitemScalarIndexer.test_setitem_seriesN)ro   rp   rq   r   rr   rs   rt   r6   r5   atr   r%   r&   r   r*   r*   r*   r+   ru      s    
ru   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w   Y  t jt|jddd d|d	d< W d    d S 1 s@w   Y  d S )
NzUcannot do slice indexing on DatetimeIndex with these indexers \[{key}\] of type floatz4\.0)keyrw   r   g      @g      $@z4\.5g      @)rr   rz   	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 sJ d|d d< |dk s(J d S )Nr   r1   r   ir!   )r   rangelistrj   rC   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 s!J |dd  dk r-J d S )Nr0      )r0   r"   r$   r   r            r1   r   r"   )r   r%   randomdefault_rngstandard_normalrj   anyrC   r*   r*   r+   test_setitem_slice_integers   s   z-TestSetitemSlices.test_setitem_slice_integersc                 C   sP   t tjdtjdtjdtjdd}d|d d d< |d d d dk s&J d S )N   rV   r1   r   r0   )r   r%   arangefloat64int64rj   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   rV   d   r"   )
r   r.   r0   r    r   r!   r$   r#   r   	   )	r   from_productr   r   r%   r   r   r6   r7   )r(   r[   mir9   r:   r*   r*   r+   test_setitem_multiindex_slice   s
   z/TestSetitemSlices.test_setitem_multiindex_sliceN)ro   rp   rq   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.   r0   r   r?   r   TFr   r(   rD   r:   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 s<w   Y  |d	d
 }t
|| d S )Nr0   r   r   r1   r!   item of incompatible dtyperw   c                 S   s   | dkrt | S | S Nr   )str)tr*   r*   r+   <lambda>  s    zLTestSetitemBooleanMask.test_setitem_mask_align_and_promote.<locals>.<lambda>)r   r%   r   r   r   r   roundr4   mapr   r6   r|   r}   r7   )r(   tsmaskleftrightr:   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 s'w   Y  t g d}t|| d S )N)r   r.   r0   r   r   r   rw   )r   12r   )r   r   r   r6   r|   r}   r7   r(   rD   r   ser2r:   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   ry   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 )Nr0   r   r!   )medianr4   r6   r7   Zreindex_like)r(   string_seriesr   r9   r:   r*   r*   r+   test_setitem_boolean2  s   z+TestSetitemBooleanMask.test_setitem_booleanc                 C   s   |}|j dt d| k}d}tjt|d d||< W d    n1 s&w   Y  tjt|d d|j|< W d    d S 1 sCw   Y  d S )Nr.   rQ   zsUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchrw   )shiftr   r   rr   rz   r   r5   )r(   r   r   Zmask_shiftedr~   r*   r*   r+   test_setitem_boolean_cornerB  s   
"z2TestSetitemBooleanMask.test_setitem_boolean_cornerc                 C   s@   |  }| }d||dk< | }d||dk< t|| d S r   )Zsort_valuesr4   r6   r7   )r(   r   Zorderedr4   r:   r*   r*   r+   $test_setitem_boolean_different_orderP  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   rD   r   r:   r*   r*   r+    test_setitem_boolean_python_list[  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   rV   r"   r$   )r!   r$   r0   r    r.   )r   r   r6   r7   r5   )r(   any_numeric_ea_dtyperD   r:   Zloc_serr*   r*   r+   'test_setitem_boolean_nullable_int_typesd  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!   r0   rV   )r   r   r   rA   r6   r7   )r(   rD   r   r9   r:   r*   r*   r+   Atest_setitem_with_bool_mask_and_values_matching_n_trues_in_lengtht  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w   Y  t tjddgtd}t|| d S )Nr   r   rw   r   FTrV   )r   r6   r|   r}   r%   r&   rA   r7   )r(   r9   r:   r*   r*   r+   test_setitem_nan_with_bool}  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 s5w   Y  t g d}t|| | }tjtdd |j	||d	d
 W d    n1 sdw   Y  t|| | }|
| t |}t|| d S )Nr<   int8rV   )      r   r   rw   )r   r0   r   TZinplace)r   r%   r   r   r4   r6   r|   r}   r7   r   where	r(   r\   Zaltr   rD   r:   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<   uint8rV   )   r      r   )r   r0   r   Tr   F)Zcheck_dtype)	r   r%   r   r   r4   r6   r7   r   r   r   r*   r*   r+   $test_setitem_mask_smallint_no_upcast  s   z;TestSetitemBooleanMask.test_setitem_mask_smallint_no_upcastN)ro   rp   rq   r   r   r   r   r   r   r   rr   rs   rt   r   r%   r   r   r   r   r   r   r   r   r*   r*   r*   r+   r     s    		
	
r   c                   @      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 |r%|jjj|jjju s$J n|jjj|jjjus1J |jdks8J t|jd< |jjd u sEJ |j|usLJ |jjj|jjjusXJ |d |ks`J |jdksgJ d S )NZ20130101r    rF   rG   r.   D)	r   r   _values_ndarraybase_datarQ   r   rJ   r(   Zusing_copy_on_writedtir   rD   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 |r4|jjj|jjju s$J |jjd jj|jjju s3J n|jjj|jjjus@J |jjd jj|jjjusOJ |jjd |usYJ t|d d d< |d tu shJ |d |kspJ d S )NrN   r   
US/PacificrG   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)ro   rp   rq   r   r   r*   r*   r*   r+   r     s    r   c                   @   r   )TestSetitemCallablec                 C   sD   t g dtdd}d|dd < t g dtdd}t|| d S )Nr.   r0   r    r"   ZABCDr1   r   c                 S      dS )NAr*   rh   r*   r*   r+   r     s    z?TestSetitemCallable.test_setitem_callable_key.<locals>.<lambda>)r   r0   r    r"   )r   r   r6   r7   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     s    zATestSetitemCallable.test_setitem_callable_other.<locals>.<lambda>)r.   r0   r   r"   rV   r   r.   r0   r"   )r   rA   r6   r7   )r(   incrD   r:   r*   r*   r+   test_setitem_callable_other  s
   z/TestSetitemCallable.test_setitem_callable_otherN)ro   rp   rq   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 )NrX   rV   /   )r   r   rA   r6   r7   )r(   r   r)   r:   r*   r*   r+   test_setitem_empty_series  s
   
z2TestSetitemWithExpansion.test_setitem_empty_seriesc                 C   sj   t g ddd}tg |td}td}d||< tdt |gddd}t|| |jj|jjks3J d S )	Nr   rb   )rQ   r@   r?   rX   r   r   ns)	r   r   rA   r   Zas_unitr6   r7   r2   rQ   )r(   r   r)   r   r:   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s)J d S )Nl    Pi5 	timestampr?   rV   g     r@Zanything)r   r   rA   )r(   r   r)   r:   r9   r*   r*   r+   3test_setitem_empty_series_timestamp_preserves_dtype
  s   zLTestSetitemWithExpansion.test_setitem_empty_series_timestamp_preserves_dtypetd9 daysc                 C   s   |rt |ts|tjjdd td|gddgtd}tdg}||d< t	|| t |d ts4J tdg}td|j
d< t	|| t |d tsOJ d S )Nzinferred as stringreasonrh   r   r   r?   r   )rd   r   Zapplymarkerrr   rs   xfailr   rA   r6   r7   r5   )r(   r   using_infer_stringrequestr:   rD   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 )
NrV   rN   r-         @r/   ry   r   r   r1   )r   rA   r   r6   r7   r   r*   r*   r+   *test_setitem_with_expansion_type_promotion0  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)   )r2   name)r4   r2   r   r   r6   r7   )r(   r   rD   Zappr:   r*   r*   r+   test_setitem_not_contained9  s   z3TestSetitemWithExpansion.test_setitem_not_containedc                 C   s8   t ddg|d}d|d< t g d|d}t|| d S )Nr.   r0   rV   r   )r.   r0   r   r   )r(   r   rD   r:   r*   r*   r+   test_setitem_keep_precisionC  s   z4TestSetitemWithExpansion.test_setitem_keep_precisionz1na, target_na, dtype, target_dtype, indexer, warnZInt64r.   Nr0   r   r   rA   ZFloat64c           
      C   s|   t ddg|d}tj|dd |||< W d    n1 sw   Y  |dkr+d|gndd|g}t ||d}	t||	 d S )Nr.   r0   rV   incompatible dtyperw   )r   r6   r|   r7   )
r(   naZ	target_nar@   Ztarget_dtyperl   warnrD   Zexpected_valuesr:   r*   r*   r+   test_setitem_enlarge_with_naJ  s   
z5TestSetitemWithExpansion.test_setitem_enlarge_with_nac                 C   sx   t ddg}||d< |rt|tsdnt}t dd|gg d|d}t|| |r2|d tju  d S |d |u s:J d S )Nr-   r/   r    zstring[pyarrow_numpy])r   r.   r    r?   )r   rd   r   rA   r6   r7   r%   r&   )r(   Znulls_fixturer   rD   r@   r:   r*   r*   r+   $test_setitem_enlargement_object_nonef  s   z=TestSetitemWithExpansion.test_setitem_enlargement_object_none)ro   rp   rq   r   r   r   rr   rs   rt   r   Zto_timedelta64Zto_pytimedeltar   r   r   r   r   r%   r&   r   r}   r  r  r*   r*   r*   r+   r     sB    



	

r   c               	   C   sx   t d} d| j_t| dd}|jD ]'}d}tjt|d d||< W d    n1 s,w   Y  | | dks9J qd S )Nr!   Fr4   #assignment destination is read-onlyrw   r.   r   )	r%   zerosflags	writeabler   r2   rr   rz   
ValueError)r   r)   nr~   r*   r*   r+   .test_setitem_scalar_into_readonly_backing_dataw  s   


r  c                  C   sl   t d} d| j_t| dd}d}tjt|d d|dd< W d    n1 s)w   Y  |  r4J d S )Nr!   Fr  r  rw   r.   r    )	r%   r  r	  r
  r   rr   rz   r  r   )r   r)   r~   r*   r*   r+   -test_setitem_slice_into_readonly_backing_data  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   FTrh   yr1   )r   r	   r4   r6   r7   r2   )r\   rD   r]   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&   r6   r7   )rD   r]   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)Zidsc                 C   s   t ddg}|sddg|_tjtdd |||d< W d    n1 s%w   Y  t|jd t|ks7J t d|gt|jd}|sS|tjurSt ||gtddgd}t|| d S )NTFr.   r  rw   )r@   r2   )	r   r2   r6   r|   r}   typerJ   rA   r7   )r(   r  r[   r  rD   r:   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 s<w   Y  t |}t|| d S )Nr   )TFNr0   r  rw   r.   )r   r   r   r6   r|   r}   r7   )r(   rD   rk   rK   r:   r*   r*   r+   &test_setitem_boolean_array_into_npbool  s   z9TestSetitemCasting.test_setitem_boolean_array_into_npboolN)	ro   rp   rq   rr   rs   rt   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.
        rV   )r(   objr:   r*   r*   r+   
is_inplace  s   z$SetitemCastingEquivalents.is_inplacec           	      C   s>   |}|  }|j}||||< t|| | |||| d S rc   )r4   r   r6   r7   _check_inplace)	r(   r  r   r:   r  rl   r  r\   rK   r*   r*   r+   check_indexer  s   z'SetitemCastingEquivalents.check_indexerc                 C   sV   |d u rd S |r"|j jdv r|j|jju sJ d S |j|u s J d S t||j d S )N)mM)r@   kindr   r   r6   Zassert_equal)r(   r  r\   rK   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 s&w   Y  |tju rStj|dd | ||||tj| W d    n1 sMw   Y  n'|tj	u rztj|dd | ||||tj
| W d    n1 suw   Y  t||d }tj|dd | |||||| W d    n1 sw   Y  |tjurt||d }	tj|dd | ||	|||| W d    n1 sw   Y  |g}
tj|dd | ||
|||| W d    n1 sw   Y  t|
}tj|dd | |||||| W d    n	1 sw   Y  dd |fD }tj|dd | |||||| W d    d S 1 s@w   Y  d S )NzNot relevant for int keyr  rw   r.   c                 s       | ]}|V  qd S rc   r*   rf   r*   r*   r+   ri   #      z9SetitemCastingEquivalents.test_int_key.<locals>.<genexpr>)rd   intrr   skipr6   r|   r  r5   r   rJ   iatr   slicer%   r   )r(   r  r   r:   r  r  r[   r  rngZslcilkeyindkeygenkeyr*   r*   r+   test_int_key  sF   





$z&SetitemCastingEquivalents.test_int_keyc              	   C   sX  t |ts
td |tjur0tj|dd | |||||| W d    n1 s+w   Y  tt	t
|| }tj|dd | |||||| W d    n1 sVw   Y  t|}	tj|dd | ||	|||| W d    n1 s|w   Y  dd |	D }
tj|dd | ||
|||| W d    d S 1 sw   Y  d S )NzNot relevant for slice keyr  rw   c                 s   r#  rc   r*   rf   r*   r*   r+   ri   8  r$  z;SetitemCastingEquivalents.test_slice_key.<locals>.<genexpr>)rd   r(  rr   r&  r6   r5   r|   r  r   r   lenr%   r   )r(   r  r   r:   r  r  r[   r  r*  r+  r,  r*   r*   r+   test_slice_key'  s$   



"z(SetitemCastingEquivalents.test_slice_keyc           	      C   s   t j|jtd}d||< | }t|r>t|| k r>d}tj	t
|d ||||< W d    d S 1 s7w   Y  d S tj|dd ||||< W d    n1 sVw   Y  t|| d S )NrV   Tz9boolean index did not match indexed array along dimensionrw   r  )r%   r  shapeboolr4   r   r.  sumrr   rz   r{   r6   r|   r7   )	r(   r  r   r:   r  r  r[   r   r~   r*   r*   r+   test_mask_key<  s   
z'SetitemCastingEquivalents.test_mask_keyc                 C   s  t j|jtd}d||< t|r;t|t|k r;d}tjt|d |	| | W d    d S 1 s4w   Y  d S |}	|
 }|j}
|	| |}|tu rZ|jtkrZ|t}n|d u rt|jtkrt|jtksjJ |
 }d || < t|| | ||	|
| d S )NrV   Tz4operands could not be broadcast together with shapesrw   )r%   r  r0  r1  r   r.  rr   rz   r  r   r4   r   r   r@   rA   ZfillnaZisnar6   r7   r  )r(   r  r   r:   r  r  r  r   r~   r\   rK   r   r*   r*   r+   test_series_whereM  s,   
z+SetitemCastingEquivalents.test_series_wherec           
      C   s   t j|jtd}d||< |r6|jtkr6tjtdd t	|
| | W d    d S 1 s/w   Y  d S t	|
| |}t	||jd}	t||	 d S NrV   TzScalar mustrw   )r%   r  r0  r1  r@   rA   rr   rz   r   r   r   r6   assert_index_equal)
r(   r  r   r:   r  r  r   r   r   Zexpected_idxr*   r*   r+   test_index_whereh  s   "z*SetitemCastingEquivalents.test_index_wherec           	      C   s   t j|jtd}d||< |r5|jtkr5tjtdd t	|
|| W d    d S 1 s.w   Y  d S t	|
||}t|t	||jd d S r5  )r%   r  r0  r1  r@   rA   rr   rz   r   r   Zputmaskr6   r6  )	r(   r  r   r:   r  r  r   r   r   r*   r*   r+   test_index_putmaskt  s   "z,SetitemCastingEquivalents.test_index_putmaskN)ro   rp   rq   __doc__rr   fixturer  r  r  r-  r/  r3  r4  r7  r8  r*   r*   r*   r+   r    s    

$r  zobj,expected,key,warnr.   r!   r0   r    r"   zinterval[float64]rV   Zinterval_int_na_value)id)	r0   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      |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(   r   r*   r*   r+   r    s   z!TestSetitemCastingEquivalents.val)
ro   rp   rq   rr   r:  r%   r&   r   r   r  r*   r*   r*   r+   r<    s    Br<  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"   r   )r%   timedelta64)r(   r   r*   r*   r+   r    s   z%TestSetitemTimedelta64IntoNumeric.valr>  c                 C   r@  rc   rA  rC  r*   r*   r+   r@        z'TestSetitemTimedelta64IntoNumeric.dtypec                 C   s   t d|}t|}|S )Nr!   )r%   r   astyper   r(   r@   rK   rD   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   rG  r   rA   rE  rJ   rH  r*   r*   r+   r:     s
   
z*TestSetitemTimedelta64IntoNumeric.expectedc                 C   r   r   r*   r(   r*   r*   r+   r        z%TestSetitemTimedelta64IntoNumeric.keyc                 C      t S rc   r}   rI  r*   r*   r+   r    rJ  z&TestSetitemTimedelta64IntoNumeric.warnN)ro   rp   rq   rr   r:  r  complexr%  floatr@   r  r:   r   r  r*   r*   r*   r+   rD    s    




rD  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 )TestSetitemDT64IntoIntrb   m8[ns]r>  c                 C   r@  rc   rA  rC  r*   r*   r+   r@     rF  zTestSetitemDT64IntoInt.dtypec                 C   s    t dd}|dkr|| }|S )Nz2021-01-18 13:25:00r   rP  )r%   re   )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    rV   r   )r   rA   rd   r  )r(   rQ  r:   r*   r*   r+   r:      s   zTestSetitemDT64IntoInt.expectedc                 C      t g dS )Nr<   r   rI  r*   r*   r+   r       zTestSetitemDT64IntoInt.objc                 C   s
   t d dS )Nr   r(  rI  r*   r*   r+   r   
     
zTestSetitemDT64IntoInt.keyNc                 C   s   |j }|d u r	|S |||gS rc   rA  )r(   rQ  r   boxr*   r*   r+   r    s   zTestSetitemDT64IntoInt.valc                 C   rK  rc   rL  rI  r*   r*   r+   r    rJ  zTestSetitemDT64IntoInt.warn)ro   rp   rq   rr   r:  r@   rQ  r:   r  r   r   r%   r   r  r  r*   r*   r*   r+   rO    s    





rO  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 s%tdd || D s%J |S )N
2000-01-01r   r   r   rQ   i8c                 s   s    | ]}|t u V  qd S rc   )r   rf   r*   r*   r+   ri   !  s    z4TestSetitemNAPeriodDtype.expected.<locals>.<genexpr>)r   r   r   _valuer   viewrj   )r(   r   r]   r*   r*   r+   r:     s   &z!TestSetitemNAPeriodDtype.expectedc                 C      t tddddS )NrY  r   r   rZ  )r   r   rI  r*   r*   r+   r  $     zTestSetitemNAPeriodDtype.objr    r!   r>  c                 C   r@  rc   rA  rC  r*   r*   r+   r   (  rF  zTestSetitemNAPeriodDtype.keyNc                 C   r@  rc   rA  rC  r*   r*   r+   r  ,  rF  zTestSetitemNAPeriodDtype.valc                 C      d S rc   r*   rI  r*   r*   r+   r  0  rJ  zTestSetitemNAPeriodDtype.warn)ro   rp   rq   rr   r:  r:   r  r(  r   r%   r&   r  r  r*   r*   r*   r+   rX    s    



rX  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)rP  rb   zdatetime64[ns, UTC]zdatetime64[ns, US/Central]r>  c                 C   r@  rc   rA  rC  r*   r*   r+   r@   ;  s   z$TestSetitemNADatetimeLikeDtype.dtypec                 C   s0   t dddj}t||d}|j|ksJ t|S )NrN   r    r   rV   )r   Zasi8r   r@   r   )r(   r@   Zi8valsr8   r*   r*   r+   r  A  s   z"TestSetitemNADatetimeLikeDtype.objNr   r   c                 C   r@  rc   rA  rC  r*   r*   r+   r  H  s   
z"TestSetitemNADatetimeLikeDtype.valc                 C   s&   |t u p|d u p|tju p|j|jkS rc   )r   r%   r&   r@   )r(   r  r  r*   r*   r+   r  T  s   &z)TestSetitemNADatetimeLikeDtype.is_inplacec                 C   s0   |r|j nt}t|gt|dd   |d}|S )Nr.   rV   )r@   rA   r   r   )r(   r  r  r  r@   r:   r*   r*   r+   r:   [  s   z'TestSetitemNADatetimeLikeDtype.expectedc                 C   r   r   r*   rI  r*   r*   r+   r   a  rJ  z"TestSetitemNADatetimeLikeDtype.keyc                 C   s   |rd S t S rc   rL  )r(   r  r*   r*   r+   r  e  rT  z#TestSetitemNADatetimeLikeDtype.warn)ro   rp   rq   rr   r:  r@   r  r%   r&   r   rE  re   r  r  r:   r   r  r*   r*   r*   r+   ra  5  s0    




	


ra  c                   @   R   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   r^  )N2000r0   
US/CentralrG   r   r   rI  r*   r*   r+   r  l  r_  z(TestSetitemMismatchedTZCastsToObject.objc                 C   s   t dddS )Nrd  rF   rT   )r   rI  r*   r*   r+   r  p  rT  z(TestSetitemMismatchedTZCastsToObject.valc                 C   r   r   r*   rI  r*   r*   r+   r   t  rJ  z(TestSetitemMismatchedTZCastsToObject.keyc                 C   s$   t |dtdddg|jd}|S )Nre  z2000-01-02 00:00:00-06:00rT   rV   )r   Z
tz_convertr   r@   )r(   r  r  r:   r*   r*   r+   r:   x  s   
z-TestSetitemMismatchedTZCastsToObject.expectedc                 C   r`  rc   r*   rI  r*   r*   r+   r    rJ  z)TestSetitemMismatchedTZCastsToObject.warnN
ro   rp   rq   rr   r:  r  r  r   r:   r  r*   r*   r*   r+   rc  j  s    



rc  zobj,expected,warn)      ?       @r   ri  r   i  )ry   r   baz)Nr   rj  c                   @   (   e Zd Zejdd Zejdd ZdS )TestSeriesNoneCoercionc                 C   r   r   r*   rI  r*   r*   r+   r     rJ  zTestSeriesNoneCoercion.keyc                 C   r`  rc   r*   rI  r*   r*   r+   r    rJ  zTestSeriesNoneCoercion.valN)ro   rp   rq   rr   r:  r   r  r*   r*   r*   r+   rl    s
    
rl  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 s&w   Y  |jdks2J d S )Nr"         ?      ?z%Setting an item of incompatible dtyperw   r   zInterval[float64, right])	r   from_breaksr   r   r   r6   r|   r}   r@   )r(   r8   r  r  r*   r*   r+   test_setitem_example  s   

zBTestSetitemFloatIntervalWithIntIntervalValues.test_setitem_examplec                 C   s   t td}t|S )Nr"   )r   rp  r   r   )r(   r8   r*   r*   r+   r    s   z1TestSetitemFloatIntervalWithIntIntervalValues.objc                 C   
   t ddS )Nrn  ro  )r   rI  r*   r*   r+   r    rV  z1TestSetitemFloatIntervalWithIntIntervalValues.valc                 C   r   r   r*   rI  r*   r*   r+   r     rJ  z1TestSetitemFloatIntervalWithIntIntervalValues.keyc                 C   s*   |gt |dd   }t|dd}t|S )Nr.   zInterval[float64]rV   )r   r   r   )r(   r  r  datar8   r*   r*   r+   r:     s   z6TestSetitemFloatIntervalWithIntIntervalValues.expectedc                 C   rK  rc   rL  rI  r*   r*   r+   r    rJ  z2TestSetitemFloatIntervalWithIntIntervalValues.warnN)ro   rp   rq   rq  rr   r:  r  r  r   r:   r  r*   r*   r*   r+   rm    s    



rm  c                   @   rb  )!TestSetitemRangeIntoIntegerSeriesc                 C   s   t |}ttd|d}|S Nr!   rV   )r%   r@   r   r   )r(   any_int_numpy_dtyper@   rD   r*   r*   r+   r       
z%TestSetitemRangeIntoIntegerSeries.objc                 C   rr  )Nr0   r"   )r   rI  r*   r*   r+   r    rV  z%TestSetitemRangeIntoIntegerSeries.valc                 C   rr  Nr   r0   rU  rI  r*   r*   r+   r     rV  z%TestSetitemRangeIntoIntegerSeries.keyc                 C   s   t |}tg d|d}|S )N)r0   r    r0   r    r"   rV   )r%   r@   r   )r(   rv  r@   r]   r*   r*   r+   r:     rw  z*TestSetitemRangeIntoIntegerSeries.expectedc                 C   r`  rc   r*   rI  r*   r*   r+   r    rJ  z&TestSetitemRangeIntoIntegerSeries.warnNrg  r*   r*   r*   r+   rt    s    



rt  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 ru  )r   r   r%   r   rI  r*   r*   r+   r    r_  z,TestSetitemFloatNDarrayIntoIntegerSeries.objc                 C   rr  rx  rU  rI  r*   r*   r+   r     rV  z,TestSetitemFloatNDarrayIntoIntegerSeries.keyc                 C   s@   |d dkr
t j}nt j}t jtd|d}||d d< t|S )Nr   r0   r!   rV   )r%   r   r   r   r   r   )r(   r  r@   Z
res_valuesr*   r*   r+   r:     s   z1TestSetitemFloatNDarrayIntoIntegerSeries.expectedN)ro   rp   rq   rr   r:  r  r   r:   r*   r*   r*   r+   r{    s    

r{  r     c                   @   D   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      t g dtjdS )Nr<   rV   r   r%   r   rI  r*   r*   r+   r  
  r_  z+TestSetitemIntoIntegerSeriesNeedsUpcast.objc                 C   r   r   r*   rI  r*   r*   r+   r     rJ  z+TestSetitemIntoIntegerSeriesNeedsUpcast.keyc                 C   r  )N)r.   r|  r    rV   )r   r%   int16rI  r*   r*   r+   r:     r_  z0TestSetitemIntoIntegerSeriesNeedsUpcast.expectedc                 C   rK  rc   rL  rI  r*   r*   r+   r    rJ  z,TestSetitemIntoIntegerSeriesNeedsUpcast.warnN	ro   rp   rq   rr   r:  r  r   r:   r  r*   r*   r*   r+   r~    s    


r~  )g      Bg    Bl            c                   @   r}  )
TestSmallIntegerSetitemUpcastc                 C   s   t g dddS )Nr<   i4rV   rS  rI  r*   r*   r+   r       z!TestSmallIntegerSetitemUpcast.objc                 C   r   r   r*   rI  r*   r*   r+   r   "  rJ  z!TestSmallIntegerSetitemUpcast.keyc                 C   s(   |d dkr	d}nd}t |ddg|dS )Nr.   r   Zf8r[  r0   r    rV   rS  )r(   r  r@   r*   r*   r+   r:   &  s   z&TestSmallIntegerSetitemUpcast.expectedc                 C   rK  rc   rL  rI  r*   r*   r+   r  .  rJ  z"TestSmallIntegerSetitemUpcast.warnNr  r*   r*   r*   r+   r    s    


r  c                   @   rk  )CoercionTestc                 C   r   r   r*   rI  r*   r*   r+   r   6  rJ  zCoercionTest.keyc                 C   s   t |}|||< t||dS )NrV   )r   r   )r(   r  r   r  	exp_dtyper^   r*   r*   r+   r:   :  s   zCoercionTest.expectedN)ro   rp   rq   rr   r:  r   r:   r*   r*   r*   r+   r  3  s
    
r  zval,exp_dtype,warnc                   @      e Zd Zejdd ZdS )TestCoercionInt8c                 C   r  )Nr   rV   r  rI  r*   r*   r+   r  G  r_  zTestCoercionInt8.objNro   rp   rq   rr   r:  r  r*   r*   r*   r+   r  A  s    r  )r.   皙?      ?      ?Tr  c                   @   rk  )TestCoercionObjectc                 C      t g dtdS )N)r-   r/   r   drV   )r   rA   rI  r*   r*   r+   r  P  r  zTestCoercionObject.objc                 C   r`  rc   r*   rI  r*   r*   r+   r  T  rJ  zTestCoercionObject.warnNro   rp   rq   rr   r:  r  r  r*   r*   r*   r+   r  L  s
    
r  r  r  c                   @   r  )TestCoercionComplexc                 C   rR  )N)r  y       @       @y      @      @y      @      @rS  rI  r*   r*   r+   r  d  rT  zTestCoercionComplex.objNr  r*   r*   r*   r+   r  Y      r  r  c                   @   r  )TestCoercionBoolc                 C   r  )N)TFTFrV   )r   r1  rI  r*   r*   r+   r  v  r  zTestCoercionBool.objNr  r*   r*   r*   r+   r  i  s    r  c                   @   r  )TestCoercionInt64c                 C   rR  )Nr   rS  rI  r*   r*   r+   r    rT  zTestCoercionInt64.objNr  r*   r*   r*   r+   r  {  r  r  c                   @   r  )TestCoercionFloat64c                 C   rR  )Nr  g@gffffff
@g@rS  rI  r*   r*   r+   r    rT  zTestCoercionFloat64.objNr  r*   r*   r*   r+   r    r  r  Zweakzbnp.float32(1.1) ends up as 1.100000023841858, so np_can_hold_element raises and we cast to float64r   )Zmarksc                       s*   e Zd Zejdd Z fddZ  ZS )TestCoercionFloat32c                 C   r  )Nr  rV   )r   r%   float32rI  r*   r*   r+   r    r_  zTestCoercionFloat32.objc              	      s.   t  ||||||| t|trtdd S )Nz!xfail not relevant for this test.)superr/  rd   rN  AssertionError)r(   r  r   r:   r  r  r[   r  	__class__r*   r+   r/    s   
z"TestCoercionFloat32.test_slice_key)ro   rp   rq   rr   r:  r  r/  __classcell__r*   r*   r  r+   r    s    
r  rX   zdatetime64[ns]rh   c                   @   rk  )TestCoercionDatetime64c                 C   r^  )NrW   r   r"   )rQ   r   rf  rI  r*   r*   r+   r    r_  zTestCoercionDatetime64.objc                 C   r`  rc   r*   rI  r*   r*   r+   r    rJ  zTestCoercionDatetime64.warnNr  r*   r*   r*   r+   r    s
    
r  rF   rT   zdatetime64[ns, US/Eastern]r   c                   @   rk  )TestCoercionDatetime64TZc                 C   s   d}t tddd|dS )NrF   rW   r   r"   rP   rf  )r(   rH   r*   r*   r+   r    s   zTestCoercionDatetime64TZ.objc                 C   r`  rc   r*   rI  r*   r*   r+   r    rJ  zTestCoercionDatetime64TZ.warnNr  r*   r*   r*   r+   r    s
    
r  z12 dayztimedelta64[ns]c                   @   rk  )TestCoercionTimedelta64c                 C   s   t tdddS )Nz1 dayr"   r   )r   r   rI  r*   r*   r+   r    r  zTestCoercionTimedelta64.objc                 C   r`  rc   r*   rI  r*   r*   r+   r    rJ  zTestCoercionTimedelta64.warnNr  r*   r*   r*   r+   r    s
    

r  ry   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 )TestPeriodIntervalCoercionrN   r    r   rZ  r.   r!   r>  c                 C   s
   t |jS rc   )r   rB  rC  r*   r*   r+   r    s   
zTestPeriodIntervalCoercion.objc                 C   rK  rc   rL  rI  r*   r*   r+   r    rJ  zTestPeriodIntervalCoercion.warnN)	ro   rp   rq   rr   r:  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/w   Y  t|| |  }tjtdd d|jd< W d    n1 sUw   Y  t|| |  }tjtdd d|d< W d    n1 szw   Y  t|| |  }tjtdd d|jd	< W d    n1 sw   Y  t|| |  }tjtdd d|j	d	< W d    n1 sw   Y  t|| | 
d
}|
d
}| }tjtdd d|jd< W d    n1 sw   Y  t|| | }tjtdd d|jd< W d    n	1 sw   Y  t|| | }tjtdd d|j	d< W d    n	1 sDw   Y  t|| | }tjtdd d|jd< W d    n	1 skw   Y  t|| d S )Nr   r.   r0   r   r1   )r   皙@r0   r  rw   r  r/   r.   r   )r/   r   )r.   r   )r   r4   r6   r|   r}   r   r7   r5   r'  rJ   Zto_frameassert_frame_equal)r\   r:   rD   Zorig_dfZexpected_dfdfr*   r*   r+   
test_20643  sb   


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   r1   r.   r0   r   )r   r%   r&   r4   r'  r6   r7   rJ   )r\   r:   rD   r*   r*   r+   test_20643_commentM  s   

r  c                  C   s"  t g d} tjtdd | | dk  d7  < W d    n1 s"w   Y  t g d}t| | t g d} tjtdd | d  d7  < W d    n1 sSw   Y  t| | t g d} tjtdd | jd  d7  < W d    n1 sw   Y  t| | t g d} tjtdd | jd  d7  < W d    n1 sw   Y  t| | t g d} tjtdd | jd  d7  < W d    n1 sw   Y  t| | t g d} tjtdd | jd  d7  < W d    n	1 sw   Y  t| | d S )Nr<   r  rw   r0   rn  )r.   ry  r    r.   )	r   r6   r|   r}   r7   r5   rJ   r'  r   )rD   r:   r*   r*   r+   
test_15413\  s>   r  c                  C   s   t dd} t| }t t t jj}tjt	dd ||d< W d    n1 s,w   Y  t|dddd	gt jd
}t
|| d S )Nr!   r  r  rw   r   r.   r0   r    r"   rV   )r%   r   rG  r   r   iinfomaxr6   r|   r}   r7   rK   rD   r  r:   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.w   Y  |d |ks;J t|ddd	d
gdd}t
|| d S )Nr!   Zc8Zc16r  rw   r   r.   r0   r    r"   rV   )r%   r   rG  r   finfor   r  r6   r|   r}   r7   r  r*   r*   r+   test_32878_complex_itemsize  s   

r  c                 C   st   t g dg dd}tjtdd d| |d< W d    n1 s"w   Y  t g dg dtd	}t|| d S )
Nr<   r   r1   r  rw   testr/   )r.   r  r    r?   r   r6   r|   r}   rA   r7   )Z
indexer_alrD   r:   r*   r*   r+   
test_37692  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 s)w   Y  |jt	ks5J tdtdt
d}tjtdd |d|d< W d    n1 sVw   Y  |jt	ksbJ qtdtdt jd}t d| |d< |jt jks~J tdtdt jd}t d| |d< d S )	Nr   r    r?   r  rw   Tr.   rh  )r%   r   r   r   r   r6   r|   r}   r@   rA   r1  )r[   r@   rD   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 s"w   Y  t g dg dtd	}t| | d S )
Nr<   r   r1   rv   rw   ra   r   )ra   r0   r    r?   r  rD   r   r:   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 s"w   Y  t g dg dd}t| | d S )	Nr<   r   r1   rv   rw   ro  r   )ro  r0   r    )r   r6   r|   r}   r7   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   )r   @r   ffffff@r1   r   r    )r.   r0   r   r"   r!   )r.   r0   r   r"   r!   )r  r  r   r  g      @r0   r"   )r   r.   r0   r    r"   r   r   r   Bc   )r   r2   Z_should_fallback_to_positionalr6   r7   r   rp  r   r.  rG  rA   appendr   r   r   r4   r5   )	rD   r:   iir   Z	exp_indexZ	expected2r   r   Z	expected3r*   r*   r+   test_setitem_int_not_positional  s(   
r  c                  C   s~   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$   )rs  r   r   r-   )r   r0   r    )r
   popr4   r   r6   r7   r5   r  )r  r9   r:   r*   r*   r+   test_setitem_with_bool_indexer  s   r  sizer   )TFFFFitemrW  c                 C   s   t | gS rc   )r%   r   r   r*   r*   r+   r     s    r   c                 C   s   | gS rc   r*   r   r*   r*   r+   r         c                 C   s   | fS rc   r*   r   r*   r*   r+   r     r  c           	      C   s   t || }t j| td}t|}| dkr9d}tjt|d ||||< W d    d S 1 s2w   Y  d S ||||< tt j| td}|||< t	
|| d S )NrV   r.   zKcannot set using a list-like indexer with a different length than the valuerw   )r%   resizer   rN  r   r2  rr   rz   r  r6   r7   )	r  r   r  rW  Z	selectionrs  rD   r~   r:   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s!J t|| |j	|ddd |j| jks7J t|| d S )NrN   r    r   rV   ry   Tr   )
r   r   r4   r%   r  r1  r@   r6   r7   r   )r   rD   r\   r   r*   r*   r+   (test_setitem_empty_mask_dont_upcast_dt64+  s   r  )sr   r   decimalr   numpyr%   rr   Zpandas.compat.numpyr   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_testingr6   Zpandas.tseries.offsetsr   r   ru   r   r   r   r   r   r  r  r  r  r  r  rs   rt   rB  r&   r}   r(  rA   r   r<  rD  rO  rX  ra  rc  rl  rm  rt  r   r{  r  r~  r  r  Zint32r   r  r  Z
complex128r  r1  r  r   r  r  r  r   Z_get_promotion_stater   Zuint32r  r  Zuint64r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  rN  minr  r  r*   r*   r*   r+   <module>   s   T 0 4+ ! '
"


$
	
A%(5 $
'"


	


	


	


7#	"