o
    d                     @   sf  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"d)d*ej1eg d+eej2d%ej2d#ej2d,ej2d-ej2g	e3ddd$d.d*ej1eg d/eej2d0ej2d1ge4d(e3ddd$d2d*ej1ee5d3eej2ej2ej2ej2ej2d#d4d,d5d-g
e3dd#d6d*ej1eg d7eej2d$d%gd d8d*ej1ed1geej2ge4d(d d9d*ej1ed1d0geej2d0ge4d(d d:d*gG d;d< d<e.Z6G d=d> d>e.Z7G d?d@ d@e.Z8G dAdB dBe.Z9G dCdD dDe.Z:G dEdF dFe.Z;ej/0dGeg d7eej2d$d%gfeg dHeej2dIdJgfee dKd"d"e dKd"d$e dKd"d%geee dKd"d$e dKd"d%gfeg dLeg dMfgG dNdO dOe.Z<G dPdQ dQe.Z=G dRdS dSe.Z>ej/0dTedIdJgedUdVgejd$dW d$dW d" gej?d(gG dXdY dYe.Z@ej/0dTdZeAdZgG d[d\ d\e.ZBej/0dTg d]G d^d_ d_e.ZCG d`da dae.ZDej/0dbeEd"ejFfeAdZejAfgG dcdd ddeDZGej/0dTg deej/0dfe4gG dgdh dheDZHej/0dbd"ejIfdiejIfdjejIfd0e4fgG dkdl dleDZJej/0dbd"e4fdme4fd%e4fdie4fdje4fd0eKfgG dndo doeDZLej/0dbd"ejMfdiej?fdjejIfd0e4fgG dpdq dqeDZNej/0dbd"ej?fdiej?fdjejIfd0e4fgG drds dseDZOej/0dbd"ejPfej1diejPej/jQdtdudvdjejIfd0e4feRd$ejPfeSd$ejPfeSeTejSjUej?feVd$ejPfeMd$ejPfg	G dwdx dxeDZWej/0dbedydzfd"e4fd{e4fgG d|d} d}eDZXej/0dbedyd~ddfedydddfedye4fd"e4fgG dd deDZYej/0dbeddfd"e4fd{e4fgG dd deDZZej/0dTdeddded"d$ddgej/0dfe4gG dd deDZ[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfej/0degd$d4ej/0dg dd0d1gd1ggej/0ddIej2eheijUeheijjgej/0ddd dd dd gdd Zkdd Zld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 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(   ]/app/.heroku/python/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,   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   sJ   t g dg dd}t |d< |jt ksJ |d t ks#J d S )Nr,   r.   r   )Dater-   otherr/   r;   )r   r   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/   rD   r   )r   r   r2   r#   r$   ilocr4   r5   )r&   arrr0   r7   r8   r(   r(   r)   )test_setitem_tuple_with_datetimetz_valuesE   s   
z?TestSetitemDT64Values.test_setitem_tuple_with_datetimetz_valuesrC   )rA   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sYJ t td|dtd	|dtd|dg}| }|||ddg< t|| d S )N
2016-01-01Hr   freqr   rC   datetime64[ns, ]z2016-01-01 00:00rC   2011-01-01 00:00z2016-01-01 02:00
2011-01-01r,   
2012-01-01r.   r/   2012-01-01 00:00r   r   dtyper   r2   r4   r5   )r&   rC   indexer_sliorigexpr?   valsr(   r(   r)   test_setitem_with_tzO   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s[J t td|d	td|d	td|d	g}| }|||ddg< t|| d S )NrA   z
2016-11-06rJ   r   rK   rM   rN   z2016-11-06 00:00-04:00rO   z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00rQ   r,   rR   r.   r/   z2016-11-06 00:00rP   rS   rT   )r&   rV   rC   rW   rX   r?   rY   r(   r(   r)   test_setitem_with_tz_dstt   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 s0J t	|| d S )
NXrU   Tr    M8[ns]r   r0   rU   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$   objectr   rE   allvaluesr4   r5   )r&   r?   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   r@   rG   pytestmarkparametrizerZ   r[   rl   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 tddtddd}d}tjt|d d|d< W d    d S 1 s'w   Y  d S )Nr   r   r/   z2index -11 is out of bounds for axis 0 with size 10matchfooi)r   r4   Zrands_arrayrp   raises
IndexError)r&   r?   msgr(   r(   r)   #test_setitem_negative_out_of_bounds   s
   
"z<TestSetitemScalarIndexer.test_setitem_negative_out_of_boundsrj   	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   rg   r]   *   r/   r   r4   r5   )r&   rj   r{   r?   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_valuer?   r8   r(   r(   r)   test_setitem_series   s   z,TestSetitemScalarIndexer.test_setitem_seriesN)rm   rn   ro   rz   rp   rq   rr   r4   r3   atr~   r#   r$   r   r(   r(   r(   r)   rs      s    rs   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)keyrt   r   g      @g      $@z4\.5g      @)rp   rw   	TypeErrorformat)r&   datetime_seriesry   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   r/   r   ir   )r   rangelistrh   r>   r(   r(   r)   test_setitem_slice   s
   z$TestSetitemSlices.test_setitem_slicec                 C   sX   t tjdg dd}d|d d< |d d dk sJ |dd  dk r*J d S )N   )r.   r    r"   r   r            r/   r   r    )r   r#   randomrandnrh   anyr>   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 s#J d S )N   r/   r   r.   )r   r4   ZmakeIntIndexastypefloatrh   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&   rV   mir7   r8   r(   r(   r)   test_setitem_multiindex_slice   s
   z/TestSetitemSlices.test_setitem_multiindex_sliceN)rm   rn   ro   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&   r?   r8   r(   r(   r)   test_setitem_mask_cast   s   z-TestSetitemBooleanMask.test_setitem_mask_castc                 C   sl   t tjdtddddd}|dk}| }||  t}|||< |dd }t	
|| d S )Nr   r   r/   r   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   roundr2   mapr   r4   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   sF   t g d}|dk}|| t}|||< t g d}t|| d S )N)r   r,   r.   r   r   )r   12r   )r   r   r   r4   r5   r&   r?   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   rv   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 s&w   Y  tjt|d d|j|< W d    d S 1 sCw   Y  d S )Nr,   rL   zsUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchrt   )shiftr   r   rp   rw   r   r3   )r&   r   r   Zmask_shiftedry   r(   r(   r)   test_setitem_boolean_corner)  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_order7  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   r?   r   r8   r(   r(   r)    test_setitem_boolean_python_listB  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_dtyper?   r8   Zloc_serr(   r(   r)   'test_setitem_boolean_nullable_int_typesK  s   z>TestSetitemBooleanMask.test_setitem_boolean_nullable_int_typesc                 C   sv   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  d}t|| d S )Nr   Fr   Tr   r.   rg   )r   r   r   r   r4   r5   )r&   r?   r   r7   r8   r(   r(   r)   Atest_setitem_with_bool_mask_and_values_matching_n_trues_in_length[  s   *zXTestSetitemBooleanMask.test_setitem_with_bool_mask_and_values_matching_n_trues_in_lengthc                 C   s:   t g d}tj|d< t tjddgtd}t|| d S )Nr   r   FTr]   )r   r#   r$   rg   r4   r5   )r&   r7   r8   r(   r(   r)   test_setitem_nan_with_boold  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 |||< t g d}t|| | }|j||dd t|| | }|| t |}t|| d S )	Nr:   int8r]   )      r   )r   r.   r   TZinplace)	r   r#   r   r   r2   r4   r5   r   where)	r&   rW   altr   r?   r8   r   ser3resr(   r(   r)   !test_setitem_mask_smallint_upcastk  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|| d S )	Nr:   uint8r]   )   r      r   )r   r.   r   Tr   )r   r#   r   r   r2   r4   r5   r   )r&   rW   r   r   r?   r8   r   r(   r(   r)   $test_setitem_mask_smallint_no_upcast~  s   z;TestSetitemBooleanMask.test_setitem_mask_smallint_no_upcastN)rm   rn   ro   r   r   r   r   r   r   r   rp   rq   rr   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   rA   rB   r,   D)	r   r   _values_ndarraybase_datarL   r   rE   r&   Zusing_copy_on_writedtir   r?   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 )NrI   r   
US/PacificrB   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)rm   rn   ro   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,   r.   r   r    ZABCDr/   r   c                 S      dS )NAr(   re   r(   r(   r)   r     s    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   s@   dd }t g 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,   r.   r   r    r   r,   r.   r    r}   )r&   incr?   r8   r(   r(   r)   test_setitem_callable_other  s
   z/TestSetitemCallable.test_setitem_callable_otherN)rm   rn   ro   r   r   r(   r(   r(   r)   r     s    r   c                   @   s   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ddgejdeeddfeejddfeeddfejeddfejeddfejej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 )NrR   r]   /   )r   r   rg   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s-J d S )Nr   r   r]   rR   r   )r   r	   rg   r   r4   r5   r0   rL   )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s)J d S )Nl    Pi5 	timestampr_   r]   g     r@Zanything)r   r   rg   )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s#J t dg}td|jd< t|| t|d ts>J d S )Nre   r   r   r_   r   )r   rg   r4   r5   ra   r   r3   )r&   r   r8   r?   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]   rI   r+         @r-   rv   r   r   r/   )r   rg   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   r?   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   r?   r8   r(   r(   r)   test_setitem_keep_precision  s   z4TestSetitemWithExpansion.test_setitem_keep_precisionrj   r,   r.   z"na, target_na, dtype, target_dtypeZInt64r   float64rg   ZFloat64c           	      C   sN   t ddg|d}|||< |dkrd|gndd|g}t ||d}t|| d S )Nr,   r.   r]   r}   )	r&   naZ	target_narU   Ztarget_dtyperj   r?   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 s#J d S )Nr+   r-   r   )r   r,   r   r/   r}   )r&   Znulls_fixturer?   r8   r(   r(   r)   $test_setitem_enlargement_object_none7  s
   z=TestSetitemWithExpansion.test_setitem_enlargement_object_noneN)rm   rn   ro   r   r   r   rp   rq   rr   r   Zto_timedelta64Zto_pytimedeltar   r   r   r   r   r#   r$   r   r   r   r(   r(   r(   r)   r     s8    	


	


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r2   #assignment destination is read-onlyrt   r,   r   )	r#   zerosflags	writeabler   r0   rp   rw   
ValueError)r   r'   nry   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 s)w   Y  |  r4J d S )Nr   Fr   r   rt   r,   r   )	r#   r   r   r   r   rp   rw   r   r   )r   r'   ry   r(   r(   r)   -test_setitem_slice_into_readonly_backing_dataO  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   FTre   yr/   )r   r   r2   r4   r5   r0   )rW   r?   rX   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   )r?   rX   r(   r(   r)   !test_setitem_nan_into_categoricalz  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|_|||d< t|jd t|ks J t d|gt|jd}|s<|tjur<t ||gtddgd}t|| d S )NTFr,   )rU   r0   )r   r0   typerE   rg   r4   r5   )r&   r	  rV   r  r?   r8   r(   r(   r)   test_setitem_non_bool_into_bool  s   
z2TestSetitemCasting.test_setitem_non_bool_into_boolc                 C   sl   t g d}|j}tg d}|d d |d d< |j|u s J |dd  |dd < t |}t|| d S )Nr   )TFNr.   r,   )r   r   r   r4   r5   )r&   r?   ri   rF   r8   r(   r(   r)   &test_setitem_boolean_array_into_npbool  s   z9TestSetitemCasting.test_setitem_boolean_array_into_npboolN)	rm   rn   ro   rp   rq   rr   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$   z|j |j kW S  ty   Y dS w )zF
        Whether we expect the setting to be in-place or not.
        F)rU   r   )r&   objr8   r(   r(   r)   
is_inplace  s
   z$SetitemCastingEquivalents.is_inplacec           	      C   s>   |}|  }|j}||||< t|| | |||| d S r`   )r2   r   r4   r5   _check_inplace)	r&   r  r   r8   r	  rj   r  rW   rF   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)rU   kindr   r   r4   Zassert_equal)r&   r  rW   rF   r  r(   r(   r)   r    s   z(SetitemCastingEquivalents._check_inplacec                 C   s  t |tsd S | |||||| |tju r"| ||||tj| n|tju r2| ||||tj| t||d }| |||||| |tjurYt	||d }| |||||| |g}	| ||	|||| t
|	}
| ||
|||| dd |fD }| |||||| d S )Nr,   c                 s       | ]}|V  qd S r`   r(   rc   r(   r(   r)   rf         z9SetitemCastingEquivalents.test_int_key.<locals>.<genexpr>)ra   intr  r4   r3   r   rE   iatr   slicer#   r   )r&   r  r   r8   r	  rV   r  rngZslcilkeyindkeygenkeyr(   r(   r)   test_int_key  s$   




z&SetitemCastingEquivalents.test_int_keyc           
      C   s   t |tsd S |tjur| |||||| ttt|| }| |||||| t	|}| |||||| dd |D }	| ||	|||| d S )Nc                 s   r  r`   r(   rc   r(   r(   r)   rf     r  z;SetitemCastingEquivalents.test_slice_key.<locals>.<genexpr>)
ra   r  r4   r3   r  r   r   lenr#   r   )
r&   r  r   r8   r	  rV   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|| d S )Nr]   Tz9boolean index did not match indexed array along dimensionrt   )r#   r   shapeboolr2   r   r   sumrp   rw   rx   r4   r5   )r&   r  r   r8   r	  rV   r   ry   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|
| | |||	| d S )Nr]   Tz4operands could not be broadcast together with shapesrt   )r#   r   r"  r#  r   r   rp   rw   r   r   r2   r   r4   r5   r  )r&   r  r   r8   r	  r  r   ry   rW   rF   r   r(   r(   r)   test_series_where  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   rU   r4   assert_index_equal)r&   r  r   r8   r	  r   r   Zexpected_idxr(   r(   r)   test_index_where  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(  rU   )r&   r  r   r8   r	  r   r   r(   r(   r)   test_index_putmask'  s   z,SetitemCastingEquivalents.test_index_putmaskN)rm   rn   ro   __doc__rp   fixturer  r  r  r  r!  r%  r&  r)  r*  r(   r(   r(   r)   r    s    


r  zobj,expected,keyr,   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      |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	  j  s   z!TestSetitemCastingEquivalents.val)
rm   rn   ro   rp   r,  r#   r$   r   r   r	  r(   r(   r(   r)   r.  /  s    ;r.  c                   @   s^   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dS )!TestSetitemTimedelta64IntoNumericc                 C   s   t dd}|S )Nr    ns)r#   timedelta64)r&   r   r(   r(   r)   r	  y  s   z%TestSetitemTimedelta64IntoNumeric.valr0  c                 C   r2  r`   r3  r5  r(   r(   r)   rU        z'TestSetitemTimedelta64IntoNumeric.dtypec                 C   s   t d|}t|}|S )Nr   )r#   r   r   r   r&   rU   rF   r?   r(   r(   r)   r    s   z%TestSetitemTimedelta64IntoNumeric.objc                 C   s8   t d|}t|}|t}t dd|jd< |S )Nr   r    r8  r   )r#   r   r   r   rg   r9  rE   r;  r(   r(   r)   r8     s
   
z*TestSetitemTimedelta64IntoNumeric.expectedc                 C   r   r   r(   r&   r(   r(   r)   r        z%TestSetitemTimedelta64IntoNumeric.keyN)rm   rn   ro   rp   r,  r	  complexr  r   rU   r  r8   r   r(   r(   r(   r)   r7  u  s    



r7  c                   @   sx   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dS )TestSetitemDT64IntoIntr^   m8[ns]r0  c                 C   r2  r`   r3  r5  r(   r(   r)   rU     r:  zTestSetitemDT64IntoInt.dtypec                 C   s    t dd}|dkr|| }|S )Nz2021-01-18 13:25:00r8  r@  )r#   rb   )r&   rU   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   rg   ra   r  )r&   rA  r8   r(   r(   r)   r8     s   zTestSetitemDT64IntoInt.expectedc                 C      t g dS )Nr:   r   r<  r(   r(   r)   r       zTestSetitemDT64IntoInt.objc                 C   s
   t d dS )Nr   r  r<  r(   r(   r)   r        
zTestSetitemDT64IntoInt.keyNc                 C   s   |j }|d u r	|S |||gS r`   r3  )r&   rA  r6  boxr(   r(   r)   r	    s   zTestSetitemDT64IntoInt.val)rm   rn   ro   rp   r,  rU   rA  r8   r  r   r   r#   r   r	  r(   r(   r(   r)   r?    s    




r?  c                   @   s`   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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   rL   i8c                 s   s    | ]}|t u V  qd S r`   )r   rc   r(   r(   r)   rf     s    z4TestSetitemNAPeriodDtype.expected.<locals>.<genexpr>)r   r   r   _valuer   viewrh   )r&   r   rX   r(   r(   r)   r8     s   &z!TestSetitemNAPeriodDtype.expectedc                 C      t tddddS )NrI  r   r   rJ  )r   r   r<  r(   r(   r)   r       zTestSetitemNAPeriodDtype.objr   r   r0  c                 C   r2  r`   r3  r5  r(   r(   r)   r     r:  zTestSetitemNAPeriodDtype.keyNc                 C   r2  r`   r3  r5  r(   r(   r)   r	    r:  zTestSetitemNAPeriodDtype.val)rm   rn   ro   rp   r,  r8   r  r  r   r#   r$   r	  r(   r(   r(   r)   rH    s    


rH  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dS )TestSetitemNADatetimeLikeDtype)r@  r^   zdatetime64[ns, UTC]zdatetime64[ns, US/Central]r0  c                 C   r2  r`   r3  r5  r(   r(   r)   rU     s   z$TestSetitemNADatetimeLikeDtype.dtypec                 C   s0   t dddj}t||d}|j|ksJ t|S )NrI   r   r   r]   )r   Zasi8r
   rU   r   )r&   rU   Zi8valsr6   r(   r(   r)   r    s   z"TestSetitemNADatetimeLikeDtype.objNr   r8  c                 C   r2  r`   r3  r5  r(   r(   r)   r	    s   
z"TestSetitemNADatetimeLikeDtype.valc                 C   s&   |t u p|d u p|tju p|j|jkS r`   )r   r#   r$   rU   )r&   r	  r  r(   r(   r)   r    s   &z)TestSetitemNADatetimeLikeDtype.is_inplacec                 C   s0   |r|j nt}t|gt|dd   |d}|S )Nr,   r]   )rU   rg   r   r   )r&   r  r	  r  rU   r8   r(   r(   r)   r8     s   z'TestSetitemNADatetimeLikeDtype.expectedc                 C   r   r   r(   r<  r(   r(   r)   r     r=  z"TestSetitemNADatetimeLikeDtype.key)rm   rn   ro   rp   r,  rU   r  r#   r$   r   r9  rb   r	  r  r8   r   r(   r(   r(   r)   rP    s,    




	

rP  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 )
$TestSetitemMismatchedTZCastsToObjectc                 C   rN  )N2000r.   
US/CentralrB   r   r   r<  r(   r(   r)   r    rO  z(TestSetitemMismatchedTZCastsToObject.objc                 C   s   t dddS )NrS  rA   rO   )r   r<  r(   r(   r)   r	    rD  z(TestSetitemMismatchedTZCastsToObject.valc                 C   r   r   r(   r<  r(   r(   r)   r     r=  z(TestSetitemMismatchedTZCastsToObject.keyc                 C   s$   t |dtdddg|jd}|S )NrT  z2000-01-02 00:00:00-06:00rO   r]   )r   Z
tz_convertr   rU   )r&   r  r	  r8   r(   r(   r)   r8     s   
z-TestSetitemMismatchedTZCastsToObject.expectedN	rm   rn   ro   rp   r,  r  r	  r   r8   r(   r(   r(   r)   rR    s    


rR  zobj,expected)      ?       @r   rX  r   i  )rv   r   baz)Nr   rY  c                   @   (   e Zd Zejdd Zejdd ZdS )TestSeriesNoneCoercionc                 C   r   r   r(   r<  r(   r(   r)   r   .  r=  zTestSeriesNoneCoercion.keyc                 C   s   d S r`   r(   r<  r(   r(   r)   r	  2  r=  zTestSeriesNoneCoercion.valN)rm   rn   ro   rp   r,  r   r	  r(   r(   r(   r)   r[    s
    
r[  c                   @   sL   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	dS )-TestSetitemFloatIntervalWithIntIntervalValuesc                 C   s:   t td}t|}tdd}||d< |jdksJ d S )Nr          ?      ?r   zInterval[float64, right])r   from_breaksr   r   r   rU   )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  C  s   z1TestSetitemFloatIntervalWithIntIntervalValues.objc                 C   
   t ddS )Nr]  r^  )r   r<  r(   r(   r)   r	  H  rF  z1TestSetitemFloatIntervalWithIntIntervalValues.valc                 C   r   r   r(   r<  r(   r(   r)   r   L  r=  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   P  s   z6TestSetitemFloatIntervalWithIntIntervalValues.expectedN)
rm   rn   ro   r`  rp   r,  r  r	  r   r8   r(   r(   r(   r)   r\  7  s    	


r\  c                   @   rQ  )
!TestSetitemRangeIntoIntegerSeriesc                 C   s   t |}ttd|d}|S Nr   r]   )r#   rU   r   r   )r&   any_int_numpy_dtyperU   r?   r(   r(   r)   r  [     
z%TestSetitemRangeIntoIntegerSeries.objc                 C   ra  )Nr.   r    )r   r<  r(   r(   r)   r	  a  rF  z%TestSetitemRangeIntoIntegerSeries.valc                 C   ra  Nr   r.   rE  r<  r(   r(   r)   r   e  rF  z%TestSetitemRangeIntoIntegerSeries.keyc                 C   s   t |}tg d|d}|S )N)r.   r   r.   r   r    r]   )r#   rU   r   )r&   re  rU   rX   r(   r(   r)   r8   i  rf  z*TestSetitemRangeIntoIntegerSeries.expectedNrV  r(   r(   r(   r)   rc  W  s    


rc  r	        @g      @A   c                   @   6   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 rd  )r   r   r#   r   r<  r(   r(   r)   r  y  rO  z,TestSetitemFloatNDarrayIntoIntegerSeries.objc                 C   ra  rg  rE  r<  r(   r(   r)   r   }  rF  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	  rU   Z
res_valuesr(   r(   r)   r8     s   z1TestSetitemFloatNDarrayIntoIntegerSeries.expectedNrm   rn   ro   rp   r,  r  r   r8   r(   r(   r(   r)   rk  p  s    	

rk     c                   @   rj  )'TestSetitemIntoIntegerSeriesNeedsUpcastc                 C      t g dtjdS )Nr:   r]   r   r#   r   r<  r(   r(   r)   r    rO  z+TestSetitemIntoIntegerSeriesNeedsUpcast.objc                 C   r   r   r(   r<  r(   r(   r)   r     r=  z+TestSetitemIntoIntegerSeriesNeedsUpcast.keyc                 C   ro  )N)r,   rm  r   r]   )r   r#   int16r<  r(   r(   r)   r8     rO  z0TestSetitemIntoIntegerSeriesNeedsUpcast.expectedNrl  r(   r(   r(   r)   rn    s    

rn  )g      Bg    Bl            c                   @   rj  )TestSmallIntegerSetitemUpcastc                 C   s   t g dddS )Nr:   i4r]   rC  r<  r(   r(   r)   r       z!TestSmallIntegerSetitemUpcast.objc                 C   r   r   r(   r<  r(   r(   r)   r     r=  z!TestSmallIntegerSetitemUpcast.keyc                 C   s(   |d dkr	d}nd}t |ddg|dS )Nr,   r   Zf8rK  r.   r   r]   rC  )r&   r	  rU   r(   r(   r)   r8     s   z&TestSmallIntegerSetitemUpcast.expectedNrl  r(   r(   r(   r)   rr    s    

rr  c                   @   rZ  )CoercionTestc                 C   r   r   r(   r<  r(   r(   r)   r     r=  zCoercionTest.keyc                 C   s   t |}|||< t||dS )Nr]   )r   r   )r&   r  r   r	  	exp_dtyperY   r(   r(   r)   r8     s   zCoercionTest.expectedN)rm   rn   ro   rp   r,  r   r8   r(   r(   r(   r)   ru    s
    
ru  zval,exp_dtypec                   @      e Zd Zejdd ZdS )TestCoercionInt8c                 C   ro  )Nr   r]   rp  r<  r(   r(   r)   r    rO  zTestCoercionInt8.objNrm   rn   ro   rp   r,  r  r(   r(   r(   r)   rx    s    rx  )r,   皙?      ?      ?Trv  c                   @   rw  )TestCoercionObjectc                 C      t g dtdS )N)r+   r-   r   dr]   )r   rg   r<  r(   r(   r)   r    rt  zTestCoercionObject.objNry  r(   r(   r(   r)   r|    s    r|  rz  r{  c                   @   rw  )TestCoercionComplexc                 C   rB  )N)r{  y       @       @y      @      @y      @      @rC  r<  r(   r(   r)   r    rD  zTestCoercionComplex.objNry  r(   r(   r(   r)   r        r  r
  c                   @   rw  )TestCoercionBoolc                 C   r}  )N)TFTFr]   )r   r#  r<  r(   r(   r)   r    rt  zTestCoercionBool.objNry  r(   r(   r(   r)   r    s    r  c                   @   rw  )TestCoercionInt64c                 C   rB  )Nr   rC  r<  r(   r(   r)   r    rD  zTestCoercionInt64.objNry  r(   r(   r(   r)   r    r  r  c                   @   rw  )TestCoercionFloat64c                 C   rB  )Nrz  g@gffffff
@g@rC  r<  r(   r(   r)   r    rD  zTestCoercionFloat64.objNry  r(   r(   r(   r)   r    r  r  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   ro  )Nr  r]   )r   r#   float32r<  r(   r(   r)   r    rO  zTestCoercionFloat32.objc                    s.   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	  rV   r  	__class__r(   r)   r!  !  s   z"TestCoercionFloat32.test_slice_key)rm   rn   ro   rp   r,  r  r!  __classcell__r(   r(   r  r)   r    s    
r  rR   zdatetime64[ns]re   c                   @   rw  )TestCoercionDatetime64c                 C   rN  )NrQ   r   r    )rL   r   rU  r<  r(   r(   r)   r  0  rO  zTestCoercionDatetime64.objNry  r(   r(   r(   r)   r  )  s    r  rA   rO   zdatetime64[ns, US/Eastern]r   c                   @   rw  )TestCoercionDatetime64TZc                 C   s   d}t tddd|dS )NrA   rQ   r   r    rK   rU  )r&   rC   r(   r(   r)   r  A  s   zTestCoercionDatetime64TZ.objNry  r(   r(   r(   r)   r  5  s    r  z12 dayztimedelta64[ns]c                   @   rw  )TestCoercionTimedelta64c                 C   s   t tdddS )Nz1 dayr    r   )r   r   r<  r(   r(   r)   r  M  rt  zTestCoercionTimedelta64.objNry  r(   r(   r(   r)   r  G  r  r  rv   Z2016Yr   Zboth)closedc                   @   s4   e Zd Zejeddddeddgddd	 Zd
S )TestPeriodIntervalCoercionrI   r   r   rJ  r,   r   r0  c                 C   s
   t |jS r`   )r   r4  r5  r(   r(   r)   r  X  s   
zTestPeriodIntervalCoercion.objN)rm   rn   ro   rp   r,  r   r   r  r(   r(   r(   r)   r  R  s    r  c                  C   sL  t g dg dd} t g dg dd}|  }d|jd< t|| |  }d|jd< t|| |  }d|d< t|| |  }d|jd< t|| |  }d|jd< t|| | d}|d}| }d|jd	< t	|| | }d|jd	< t	|| | }d|jd
< t	|| | }d|jd
< t	|| d S )Nr   r,   r.   r   r/   )r   皙@r.   r  r-   r,   r   )r-   r   )r,   r   )
r   r2   r   r4   r5   r3   r  rE   Zto_frameassert_frame_equal)rW   r8   r?   Zorig_dfZexpected_dfdfr(   r(   r)   
test_20643b  s>   









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   rE   )rW   r8   r?   r(   r(   r)   test_20643_comment  s   

r  c                  C   s  t g d} | | dk  d7  < t g d}t| | t g d} | d  d7  < t| | t g d} | jd  d7  < t| | t g d} | jd  d7  < t| | t g d} | jd  d7  < t| | t g d} | jd  d7  < t| | d S )Nr:   r.   r]  )r,   rh  r   r,   )r   r4   r5   r3   rE   r  r   r?   r8   r(   r(   r)   
test_15413  s&   r  c                  C   s\   t dd} t| }t t t jj}||d< t|ddddgt jd}t|| d S )	Nr   rs  r   r,   r.   r   r    r]   )	r#   r   r   r   r   iinfomaxr4   r5   rF   r?   r	  r8   r(   r(   r)   test_32878_int_itemsize  s   r  c                  C   sn   t dd} t| }t t jj}|d}||d< |d |ks$J t|ddddgdd	}t|| d S )
Nr   Zc8Zc16r   r,   r.   r   r    r]   )	r#   r   r   r   finfor   r  r4   r5   r  r(   r(   r)   test_32878_complex_itemsize  s   
r  c                 C   sF   t g dg dd}d| |d< t g dg dtd}t|| d S )Nr:   r   r/   testr-   )r,   r  r   r_   r   rg   r4   r5   )Z
indexer_alr?   r8   r(   r(   r)   
test_37692  s   r  c                 C   s   t jt jfD ].}tdtd|d}d| |d< |jtksJ tdtdtd}|d|d< |jtks4J qtdtdt jd}t d| |d< |jt jksPJ tdtdt jd}t d| |d< d S )Nr   r   r_   Tr,   rW  )r#   r   r   r   r   rU   rg   r#  )rV   rU   r?   r(   r(   r)   'test_setitem_bool_int_float_consistency  s   r  c                  C   sB   t g dg dd} d| d< t g dg dtd}t| | d S )Nr:   r   r/   r\   r   )r\   r.   r   r_   r  r  r(   r(   r)   $test_setitem_positional_with_casting  s   r  c                  C   s@   t g dg dd} d| d< t g dg dd}t| | d S )Nr:   r   r/   r^  r   )r^  r.   r   r}   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   )rz   @r   ffffff@r/   r   r   )r,   r.   r   r    r   )r,   r.   r   r    r   )rz  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   rg   appendr
   r   r   r2   r3   )	r?   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"   )rb  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itemrG  c                 C   s   t | gS r`   )r#   r   r   r(   r(   r)   r   @  s    r   c                 C   s   | gS r`   r(   r   r(   r(   r)   r   @      c                 C   s   | fS r`   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 )Nr]   r,   zKcannot set using a list-like indexer with a different length than the valuert   )r#   resizer   r   r   r$  rp   rw   r   r4   r5   )	r  r   r  rG  Z	selectionrb  r?   ry   r8   r(   r(   r)   7test_setitem_bool_indexer_dont_broadcast_length1_values6  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 )NrI   r   r   r]   rv   Tr   )
r   r   r2   r#   r   r#  rU   r4   r5   r   )r   r?   rW   r   r(   r(   r)   (test_setitem_empty_mask_dont_upcast_dt64^  s   r  )mr   r   numpyr#   rp   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   rs   r   r   r   r   r   r   r  r  r  r  r  rq   rr   r4  r$   r  rg   r   r.  r7  r?  rH  rP  rR  r[  r\  rc  r   rk  rq  rn  rr  ru  Zint32r   rx  r|  Z
complex128r  r#  r  r   r  r  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 + $+k 
"


$

:!$1$
     

.

	"