U
    sVc                     @   s  d dl mZm Z  d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dl m!Z! G dd dZ"G d	d
 d
Z#G dd dZ$G dd dZ%G dd dZ&G dd dZ'G dd dZ(dd Z)dd Z*dd Z+dd Z,G dd dZ-G dd  d Z.ej/0d!ej1eed"d#eed"d$ej2ed%d&ed&d#gd'd(d"d)d*ej1ed$d%d&d#d+d,d-d.d/g	eej2d%ej2d#ej2d,ej2d.ej2g	e3ddd$d0d*ej1ed1d1d2d2geej2d1ej2d2ge4d(e3ddd$d3d*ej1ee5d/eej2ej2ej2ej2ej2d#d+d,d-d.g
e3dd#d4d*ej1ed"d$d%geej2d$d%gd d5d*ej1ed2geej2ge4d(d d6d*ej1ed2d1geej2d1ge4d(d d7d*gG d8d9 d9e.Z6G d:d; d;e.Z7G d<d= d=e.Z8G d>d? d?e.Z9G d@dA dAe.Z:G dBdC dCe.Z;ej/0dDed"d$d%geej2d$d%gfedEdFdGgeej2dFdGgfee dHd"d"e dHd"d$e dHd"d%geee dHd"d$e dHd"d%gfedIdJdKgeddJdKgfgG dLdM dMe.Z<G dNdO dOe.Z=G dPdQ dQe.Z>ej/0dRedFdGgedSdTgejd$dU d$dU d" gej?d(gG dVdW dWe.Z@ej/0dRdXeAdXgG dYdZ dZe.ZBej/0dRd[d\d]gG d^d_ d_e.ZCG d`da dae.ZDej/0dbeEd"ejFfeAdXejAfgG dcdd ddeDZGej/0dRd"dedfd1gej/0dge4gG dhdi dieDZHej/0dbd"ejIfdeejIfdfejIfd1e4fgG djdk dkeDZJej/0dbd"e4fdle4fd%e4fdee4fdfe4fd1eKfgG dmdn dneDZLej/0dbd"ejMfdeej?fdfejIfd1e4fgG dodp dpeDZNej/0dbd"ej?fdeej?fdfejIfd1e4fgG dqdr dreDZOej/0dbd"ejPfej1deejPej/jQdsdtdudfejIfd1e4f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 dvdw dweDZWej/0dbedxdyfd"e4fdze4fgG d{d| d|eDZXej/0dbedxd}d~dfedxdd~e4fedxe4fd"e4fgG dd deDZYej/0dbeddfd"e4fdze4fgG dd deDZZej/0dRdIeddded"d$ddgej/0dge4gG dd deDZ[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfej/0degd$d+ej/0dd1d2d2d2d2gd1d2gd2ggej/0ddFe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                   @   sX   e Zd Zdd Zdd Zdd Zdd Zej	d	d
ddgdd Z
dd Zdd ZdS )TestSetitemDT64Valuesc                 C   s   t tddd}d |d< |d tks(td |dd< |d tksDttj|d< |d tks^ttj|dd< |d tks|td S )	Nz1/1/2000
   periods               )r   r   r   AssertionErrornpnanselfseries r)   M/tmp/pip-unpacked-wheel-xj8nt62q/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   sN   t dddgdddgd}t |d< |jt ks6t|d t ksJtd S )Nr-   r/   r   Dater.   otherr0   )r   r   todayr;   r#   r'   serr)   r)   r*   test_setitem_with_string_index>   s    z4TestSetitemDT64Values.test_setitem_with_string_indexc                 C   sT   t dddd}ddddg}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    r0   r   )r   r   r3   r$   r%   ilocr5   r6   )r'   arrr1   r8   r9   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*t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st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/   r0   2012-01-01 00:00r   r   dtyper#   r   r3   r5   r6   )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.t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stt td|d	td|d	td|d	g}| }|||ddg< t|| d S )NrA   z
2016-11-06rI   r   rJ   rL   rM   z2016-11-06 00:00-04:00rN   z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00rP   r-   rQ   r/   r0   z2016-11-06 00:00rO   rR   rS   )r'   rU   rC   rV   rW   r?   rX   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 s`tt	
|| d S )
NXrT   Tr    M8[ns]r   r1   rT   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   rD   allvaluesr#   r5   r6   )r'   r?   indexervaluer9   r)   r)   r*   0test_object_series_setitem_dt64array_exact_match   s    
zFTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_matchN)__name__
__module____qualname__r+   r:   r@   rF   pytestmarkparametrizerY   rZ   rk   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   sF   t tddtddd}d}tjt|d d|d< W 5 Q R X d S )Nr   r   r0   z2index -11 is out of bounds for axis 0 with size 10matchfooi)r   r5   Zrands_arrayro   raises
IndexError)r'   r?   msgr)   r)   r*   #test_setitem_negative_out_of_bounds   s    z<TestSetitemScalarIndexer.test_setitem_negative_out_of_boundsri   	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   rf   r\   *   r0   r   r5   r6   )r'   ri   rz   r?   Zidxrr9   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{   r0   )r   r4   r5   r6   )r'   r1   Z	exp_valuer?   r9   r)   r)   r*   test_setitem_series   s    z,TestSetitemScalarIndexer.test_setitem_seriesN)rl   rm   rn   ry   ro   rp   rq   r5   r4   atr}   r$   r%   r~   r)   r)   r)   r*   rr      s   rr   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   sd   d}t jt|jddd d|dd< W 5 Q R X t jt|jddd d|d	d< W 5 Q R X d S )
NzUcannot do slice indexing on DatetimeIndex with these indexers \[{key}\] of type floatz4\.0)keyrs   r   g      @g      $@z4\.5g      @)ro   rv   	TypeErrorformat)r'   datetime_seriesrx   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 s4td|d d< |dk sPtd S )Nr   r0   r   ir   )r   rangelistrg   r#   r>   r)   r)   r*   test_setitem_slice   s
    z$TestSetitemSlices.test_setitem_slicec              
   C   sd   t tjdddddddddgd	}d
|d d< |d d d
k sHt|dd  d
k r`td S )N   r/   r    r"   r            r0   r   )r   r$   randomrandnrg   r#   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 sFtd S )N   r0   r   r/   )r   r5   ZmakeIntIndexastypefloatrg   r#   r&   r)   r)   r*   test_setitem_slicestep   s    z(TestSetitemSlices.test_setitem_slicestepc                 C   sl   t ddgtdf}ttjdtjd|}d||d d d< tdddd	dd
ddddg
|}t|| d S )Nr   r-   Zabcder   r\   d   r    r/   r   r   r"   r!   	   )	r   from_productr   r   r$   arangeint64r5   r6   )r'   rU   mir8   r9   r)   r)   r*   test_setitem_multiindex_slice   s
    z/TestSetitemSlices.test_setitem_multiindex_sliceN)rl   rm   rn   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?   r9   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   r0   r   c                 S   s   | dkrt | S | S Nr   )str)tr)   r)   r*   <lambda>      zLTestSetitemBooleanMask.test_setitem_mask_align_and_promote.<locals>.<lambda>)r   r$   r   r   r   roundr3   mapr   r5   r6   )r'   tsmaskleftrightr9   r)   r)   r*   #test_setitem_mask_align_and_promote   s    $z:TestSetitemBooleanMask.test_setitem_mask_align_and_promotec                 C   sN   t ddddg}|dk}|| t}|||< t ddddg}t|| d S )Nr   r-   r/   12)r   r   r   r5   r6   r'   r?   r   ser2r9   r)   r)   r*   test_setitem_mask_promote_strs  s    z5TestSetitemBooleanMask.test_setitem_mask_promote_strsc                 C   sP   t ddddg}t ddddg}|| }|||< t ddddg}t|| d S )Nr   ru   barFTr|   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   )medianr3   r5   r6   Zreindex_like)r'   string_seriesr   r8   r9   r)   r)   r*   test_setitem_boolean  s    z+TestSetitemBooleanMask.test_setitem_booleanc              	   C   sj   |}|j dt d| k}d}tjt|d d||< W 5 Q R X tjt|d d|j|< W 5 Q R X d S )Nr-   rK   zsUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchrs   )shiftr   r   ro   rv   r   r4   )r'   r   r   Zmask_shiftedrx   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_valuesr3   r5   r6   )r'   r   Zorderedr3   r9   r)   r)   r*   $test_setitem_boolean_different_order7  s    z;TestSetitemBooleanMask.test_setitem_boolean_different_orderfuncc                 C   sF   t d dd g}|dddg}ddg||< t dddg}t|| d S )Nr.   TFr,   cr|   )r'   r   r?   r   r9   r)   r)   r*    test_setitem_boolean_python_listB  s
    z7TestSetitemBooleanMask.test_setitem_boolean_python_listc                 C   s   t ddddg|d}t td|d||dk< t ddddg|d}t|| t ddddg|d}t td|d|j|dk< t|| t ddddg|d}t td|d}|j|d	k |j|dk< t|| d S )
Nr   r"   r!   r   r\   r    r/   r   r-   )r   r   r5   r6   r4   )r'   any_numeric_ea_dtyper?   r9   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/   rf   )r   r   r   r   r5   r6   )r'   r?   r   r8   r9   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 dddg}tj|d< t tjddgtd}t|| d S )NTFr   r\   )r   r$   r%   rf   r5   r6   )r'   r8   r9   r)   r)   r*   test_setitem_nan_with_boold  s    
z1TestSetitemBooleanMask.test_setitem_nan_with_boolc           	      C   s   t dddgdd}tjdddgtjd}td	d
d	g}| }t |||< t dddg}t|| | }|j||d	d t|| | }|| t |}t|| d S )Nr-   r/   r   int8r\   i    i  TFZinplace)	r   r$   r   r   r3   r5   r6   r   where)	r'   rV   altr   r?   r9   r   ser3resr)   r)   r*   !test_setitem_mask_smallint_upcastk  s    z8TestSetitemBooleanMask.test_setitem_mask_smallint_upcastc                 C   s   t dddgdd}t dddgtjd}td	d
d	g}| }|||< t dddgdd}t|| | }|j||d	d t|| d S )Nr-   r/   r   uint8r\      r      TFr   )r   r$   r   r   r3   r5   r6   r   )r'   rV   r   r   r?   r9   r   r)   r)   r*   $test_setitem_mask_smallint_no_upcast~  s    z;TestSetitemBooleanMask.test_setitem_mask_smallint_no_upcastN)rl   rm   rn   r   r   r   r   r   r   r   ro   rp   rq   r   r$   r   r   r   r   r   r   r   r   r)   r)   r)   r*   r      s   	
		
	r   c                   @   s   e Zd Zdd Zdd ZdS )TestSetitemViewCopySemanticsc                 C   s   t dddd}|d }t|}|j|k	s,t|jjj|jjjk	sDt|jdksRtt|jd< |jjd kslt|j|k	szt|jjj|jjjk	st|d |kst|jdkstd S )NZ20130101r   rA   rB   r-   D)	r   r   _valuesr#   _databaserK   r   rD   r'   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|k	s,t|jjj|jjjk	sDt|jjd |k	sXt|jjd jj|jjjk	svtt|d d d< |d tkst|d |kstd S )NrH   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)rl   rm   rn   r   r   r)   r)   r)   r*   r     s   r   c                   @   s   e Zd Zdd Zdd ZdS )TestSetitemCallablec                 C   sL   t ddddgtdd}d|dd	 < t ddddgtdd}t|| d S )
Nr-   r/   r   r    ABCDr0   r   c                 S   s   dS )NAr)   rd   r)   r)   r*   r     r   z?TestSetitemCallable.test_setitem_callable_key.<locals>.<lambda>)r   r   r5   r6   r   r)   r)   r*   test_setitem_callable_key  s    z-TestSetitemCallable.test_setitem_callable_keyc                 C   sD   dd }t ddddg}|||dk < t dd|dg}t|| d S )Nc                 S   s   | d S Nr-   r)   r   r)   r)   r*   r     r   zATestSetitemCallable.test_setitem_callable_other.<locals>.<lambda>r-   r/   r   r    r   r|   )r'   incr?   r9   r)   r)   r*   test_setitem_callable_other  s
    z/TestSetitemCallable.test_setitem_callable_otherN)rl   rm   rn   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 )NrQ   r\   /   )r   r   rf   r5   r6   )r'   r   r(   r9   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sZtd S )Nr   r   r\   rQ   r   )	r   r	   rf   r   r5   r6   r1   rK   r#   )r'   r(   r   r9   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sRtd S )Nl    Pi5 	timestampr^   r\   g     r@Zanything)r   r   rf   r#   )r'   r   r(   r9   r8   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sFtt dg}td|jd< t|| t|d ts|td S )Nrd   r   r   r^   r   )r   rf   r5   r6   r`   r   r#   r4   )r'   r   r9   r?   r)   r)   r*   #test_append_timedelta_does_not_cast  s    


z<TestSetitemWithExpansion.test_append_timedelta_does_not_castc                 C   sR   t td}td|d< d|d< d|d< t tdddgdddgd}t|| d S )	Nr\   rH   r,         @r.   ru   r   r0   )r   rf   r   r5   r6   r   r)   r)   r*   *test_setitem_with_expansion_type_promotion  s    
zCTestSetitemWithExpansion.test_setitem_with_expansion_type_promotionc                 C   sL   |  }d|jkstd|d< tdgdgdd}t||g}t|| d S )NZfoobarr-   r(   )r1   name)r3   r1   r#   r   r   r5   r6   )r'   r   r?   Zappr9   r)   r)   r*   test_setitem_not_contained
  s    z3TestSetitemWithExpansion.test_setitem_not_containedc                 C   s:   t ddg|d}d|d< t dddg|d}t|| d S )Nr-   r/   r\   r   r|   )r'   r   r?   r9   r)   r)   r*   test_setitem_keep_precision  s    z4TestSetitemWithExpansion.test_setitem_keep_precisionri   r-   r/   z"na, target_na, dtype, target_dtypeZInt64r   float64rf   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_narT   Ztarget_dtyperi   r?   Zexpected_valuesr9   r)   r)   r*   test_setitem_enlarge_with_na  s
    z5TestSetitemWithExpansion.test_setitem_enlarge_with_nac                 C   sL   t ddg}||d< t dd|gdddgd}t|| |d |ksHtd S )Nr,   r.   r   r   r-   r0   )r   r5   r6   r#   )r'   Znulls_fixturer?   r9   r)   r)   r*   $test_setitem_enlargement_object_none/  s
    z=TestSetitemWithExpansion.test_setitem_enlargement_object_noneN)rl   rm   rn   r   r   r   ro   rp   rq   r   Zto_timedelta64Zto_pytimedeltar   r   r   r   r   r$   r%   r   r   r   r)   r)   r)   r*   r     s6   	


	


r   c               
   C   sf   t d} d| j_t| }tt|D ]:}d}tjt	|d d||< W 5 Q R X | | dks&t
q&d S )Nr   F#assignment destination is read-onlyrs   r-   r   )r$   zerosflags	writeabler   r   lenro   rv   
ValueErrorr#   )r   r(   nrx   r)   r)   r*   .test_setitem_scalar_into_readonly_backing_data8  s    
r   c               	   C   sT   t d} d| j_t| }d}tjt|d d|dd< W 5 Q R X |  rPt	d S )Nr   Fr   rs   r-   r   )
r$   r   r   r   r   ro   rv   r   r   r#   )r   r(   rx   r)   r)   r*   -test_setitem_slice_into_readonly_backing_dataG  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   FTrd   yr0   )r   r   r3   r5   r6   r1   )rV   r?   rW   r)   r)   r*   &test_setitem_categorical_assigning_opsU  s,    
 r   c                  C   sJ   t tdddg} t tdtjdgdddgd}tj| d< t| | d S )Nr-   r/   r   r   )r   r   r$   r%   r5   r6   )r?   rW   r)   r)   r*   !test_setitem_nan_into_categoricalr  s    
r   c                   @   sF   e Zd Zejdddgejjddddgedd	d
 Zdd ZdS )TestSetitemCastinguniqueTFvalr   r   3)idsc                 C   s   t ddg}|sddg|_|||d< t|jd t|ks@tt d|gt|jd}|sx|tjk	rxt ||gtddgd}t|| d S )NTFr-   )rT   r1   )r   r1   typerD   r#   rf   r5   r6   )r'   r  rU   r   r?   r9   r)   r)   r*   test_setitem_non_bool_into_bool{  s    
z2TestSetitemCasting.test_setitem_non_bool_into_boolc                 C   sp   t dddg}|j}tddd g}|d d |d d< |j|ksDt|dd  |dd < t |}t|| d S )NTFr/   r-   )r   r   r   r#   r5   r6   )r'   r?   rh   rE   r9   r)   r)   r*   &test_setitem_boolean_array_into_npbool  s    z9TestSetitemCasting.test_setitem_boolean_array_into_npboolN)	rl   rm   rn   ro   rp   rq   r  r  r  r)   r)   r)   r*   r   z  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k
r$   Y dS X dS )zF
        Whether we expect the setting to be in-place or not.
        FN)rT   r   )r'   objr9   r)   r)   r*   
is_inplace  s    z$SetitemCastingEquivalents.is_inplacec           	      C   s>   |}|  }|j}||||< t|| | |||| d S r_   )r3   r   r5   r6   _check_inplace)	r'   r  r   r9   r  ri   r	  rV   rE   r)   r)   r*   check_indexer  s    z'SetitemCastingEquivalents.check_indexerc                 C   sP   |d kr
nB|r>|j jdkr.|j|jjks<tqL|j|ksLtnt||j d S )N)mM)rT   kindZ_ndarrayr   r#   r5   Zassert_equal)r'   r	  rV   rE   r  r)   r)   r*   r
    s    z(SetitemCastingEquivalents._check_inplacec                 C   s  t |tsd S | |||||| |tjkrD| ||||tj| n |tjkrd| ||||tj| t||d }| |||||| |tjk	rt	||d }| |||||| |g}	| ||	|||| t
|	}
| ||
|||| dd |fD }| |||||| d S )Nr-   c                 s   s   | ]
}|V  qd S r_   r)   rb   r)   r)   r*   re     s     z9SetitemCastingEquivalents.test_int_key.<locals>.<genexpr>)r`   intr  r5   r4   r   rD   iatr   slicer$   r   )r'   r  r   r9   r  rU   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k	r,| |||||| ttt|| }| |||||| t	|}| |||||| dd |D }	| ||	|||| d S )Nc                 s   s   | ]
}|V  qd S r_   r)   rb   r)   r)   r*   re     s     z;SetitemCastingEquivalents.test_slice_key.<locals>.<genexpr>)
r`   r  r5   r4   r  r   r   r   r$   r   )
r'   r  r   r9   r  rU   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|rft|| k rfd}tj	t
|d ||||< W 5 Q R X d S ||||< t|| d S )Nr\   Tz9boolean index did not match indexed array along dimensionrs   )r$   r   shapeboolr3   r   r   sumro   rv   rw   r5   r6   )r'   r  r   r9   r  rU   r   rx   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 5 Q R X d S |}|
 }|j}	|	| |}
t|
| | |||	| d S )Nr\   Tz4operands could not be broadcast together with shapesrs   )r$   r   r  r  r   r   ro   rv   r   r   r3   r   r5   r6   r
  )r'   r  r   r9   r  r	  r   rx   rV   rE   r   r)   r)   r*   test_series_where  s    z+SetitemCastingEquivalents.test_series_wherec                 C   sD   t j|jtd}d||< t|| |}t|t||jd d S Nr\   T)	r$   r   r  r  r
   r   r5   assert_index_equalrT   r'   r  r   r9   r  r   r   r)   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putmaskr5   r  rT   r  r)   r)   r*   test_index_putmask  s    z,SetitemCastingEquivalents.test_index_putmaskN)rl   rm   rn   __doc__ro   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)idr"   r!   r   r   r   Zint_series_slice_key_stepTFZbool_series_slice_key_stepZint_series_slice_keyZint_series_int_keyZbool_series_int_key_change_allZbool_series_int_keyc                   @   s0   e Zd Zejejeddegddd Z	dS )TestSetitemCastingEquivalentsNaNNparamsc                 C   s   |j S )z
        NA values that should generally be valid_na for *all* dtypes.

        Include both python float NaN and np.float64; only np.float64 has a
        `dtype` attribute.
        paramr'   requestr)   r)   r*   r  a  s    z!TestSetitemCastingEquivalents.val)
rl   rm   rn   ro   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  p  s    z%TestSetitemTimedelta64IntoNumeric.valr'  c                 C   s   |j S r_   r)  r+  r)   r)   r*   rT   v  s    z'TestSetitemTimedelta64IntoNumeric.dtypec                 C   s   t d|}t|}|S )Nr   )r$   r   r   r   r'   rT   rE   r?   r)   r)   r*   r  z  s    z%TestSetitemTimedelta64IntoNumeric.objc                 C   s8   t d|}t|}|t}t dd|jd< |S )Nr   r    r.  r   )r$   r   r   r   rf   r/  rh   r0  r)   r)   r*   r9     s
    
z*TestSetitemTimedelta64IntoNumeric.expectedc                 C   s   dS r   r)   r'   r)   r)   r*   r     s    z%TestSetitemTimedelta64IntoNumeric.keyN)rl   rm   rn   ro   r#  r  complexr  r   rT   r  r9   r   r)   r)   r)   r*   r-  l  s   



r-  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]r'  c                 C   s   |j S r_   r)  r+  r)   r)   r*   rT     s    zTestSetitemDT64IntoInt.dtypec                 C   s    t dd}|dkr|| }|S )Nz2021-01-18 13:25:00r.  r4  )r$   ra   )r'   rT   r  r)   r)   r*   scalar  s    zTestSetitemDT64IntoInt.scalarc                 C   s,   t ||dgtd}t|d t|s(t|S )Nr   r\   r   )r   rf   r`   r  r#   )r'   r5  r9   r)   r)   r*   r9     s    zTestSetitemDT64IntoInt.expectedc                 C   s   t dddgS )Nr-   r/   r   r   r1  r)   r)   r*   r    s    zTestSetitemDT64IntoInt.objc                 C   s
   t d dS )Nr   r  r1  r)   r)   r*   r     s    zTestSetitemDT64IntoInt.keyNc                 C   s   |j }|d kr|S |||gS r_   r)  )r'   r5  r,  boxr)   r)   r*   r    s    zTestSetitemDT64IntoInt.val)rl   rm   rn   ro   r#  rT   r5  r9   r  r   r   r$   r   r  r)   r)   r)   r*   r3    s   




r3  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ksJtdd || D sJt|S )N
2000-01-01r   r   r   rK   i8c                 s   s   | ]}|t kV  qd S r_   )r   rb   r)   r)   r*   re     s     z4TestSetitemNAPeriodDtype.expected.<locals>.<genexpr>)r   r   r   rj   r   viewrg   r#   )r'   r   rW   r)   r)   r*   r9     s    &z!TestSetitemNAPeriodDtype.expectedc                 C   s   t tddddS )Nr:  r   r   r;  )r   r   r1  r)   r)   r*   r    s    zTestSetitemNAPeriodDtype.objr   r   r'  c                 C   s   |j S r_   r)  r+  r)   r)   r*   r     s    zTestSetitemNAPeriodDtype.keyNc                 C   s   |j S r_   r)  r+  r)   r)   r*   r    s    zTestSetitemNAPeriodDtype.val)rl   rm   rn   ro   r#  r9   r  r  r   r$   r%   r  r)   r)   r)   r*   r9    s   


r9  c                	   @   s   e Zd Zejddddg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 )TestSetitemNADatetimeLikeDtyper4  r]   zdatetime64[ns, UTC]zdatetime64[ns, US/Central]r'  c                 C   s   |j S r_   r)  r+  r)   r)   r*   rT     s    z$TestSetitemNADatetimeLikeDtype.dtypec                 C   s0   t dddj}t||d}|j|ks(tt|S )NrH   r   r   r\   )r   Zasi8r
   rT   r#   r   )r'   rT   Zi8valsr7   r)   r)   r*   r    s    z"TestSetitemNADatetimeLikeDtype.objNr   r.  c                 C   s   |j S r_   r)  r+  r)   r)   r*   r    s    
z"TestSetitemNADatetimeLikeDtype.valc                 C   s&   |t kp$|d kp$|tjkp$|j|jkS r_   )r   r$   r%   rT   )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\   )rT   rf   r   r   )r'   r  r  r	  rT   r9   r)   r)   r*   r9     s    z'TestSetitemNADatetimeLikeDtype.expectedc                 C   s   dS r   r)   r1  r)   r)   r*   r     s    z"TestSetitemNADatetimeLikeDtype.key)rl   rm   rn   ro   r#  rT   r  r$   r%   r   r/  ra   r  r	  r9   r   r)   r)   r)   r*   r>    s*   




	


r>  c                   @   sX   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
dd Z	dS )$TestSetitemMismatchedTZCastsToObjectc                 C   s   t tddddS )N2000r/   
US/CentralrB   r   r   r1  r)   r)   r*   r    s    z(TestSetitemMismatchedTZCastsToObject.objc                 C   s   t dddS )Nr@  rA   rN   )r   r1  r)   r)   r*   r    s    z(TestSetitemMismatchedTZCastsToObject.valc                 C   s   dS r   r)   r1  r)   r)   r*   r     s    z(TestSetitemMismatchedTZCastsToObject.keyc                 C   s$   t tdddtdddgtd}|S )Nz2000-01-01 00:00:00-05:00rA   rN   z2000-01-02 00:00:00-06:00rA  r\   )r   r   rf   )r'   r9   r)   r)   r*   r9     s    

z-TestSetitemMismatchedTZCastsToObject.expectedTZautousec              	   c   sN   |j jdkr*|d}t|ts&d V  d S tjtdd d V  W 5 Q R X d S )Nr  r   mismatched timezoners   )functionrl   getfixturevaluer`   r  r5   assert_produces_warningFutureWarning)r'   r,  r   r)   r)   r*   assert_warns  s    

z1TestSetitemMismatchedTZCastsToObject.assert_warnsN)
rl   rm   rn   ro   r#  r  r  r   r9   rI  r)   r)   r)   r*   r?    s   





r?  zobj,expected      ?g       @r   i  ru   r   Zbazc                   @   s(   e Zd Zejdd Zejdd ZdS )TestSeriesNoneCoercionc                 C   s   dS r   r)   r1  r)   r)   r*   r   /  s    zTestSeriesNoneCoercion.keyc                 C   s   d S r_   r)   r1  r)   r)   r*   r  3  s    zTestSeriesNoneCoercion.valN)rl   rm   rn   ro   r#  r   r  r)   r)   r)   r*   rK    s   
rK  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s6td S )Nr          ?      ?r   zInterval[float64, right])r   from_breaksr   r   r   rT   r#   )r'   r7   r  r  r)   r)   r*   test_setitem_example;  s
    
zBTestSetitemFloatIntervalWithIntIntervalValues.test_setitem_examplec                 C   s   t td}t|S )Nr    )r   rO  r   r   )r'   r7   r)   r)   r*   r  D  s    z1TestSetitemFloatIntervalWithIntIntervalValues.objc                 C   s
   t ddS )NrM  rN  )r   r1  r)   r)   r*   r  I  s    z1TestSetitemFloatIntervalWithIntIntervalValues.valc                 C   s   dS r   r)   r1  r)   r)   r*   r   M  s    z1TestSetitemFloatIntervalWithIntIntervalValues.keyc                 C   s*   |gt |dd   }t|dd}t|S )Nr-   zInterval[float64]r\   )r   r   r   )r'   r  r  datar7   r)   r)   r*   r9   Q  s    z6TestSetitemFloatIntervalWithIntIntervalValues.expectedN)
rl   rm   rn   rP  ro   r#  r  r  r   r9   r)   r)   r)   r*   rL  8  s   	


rL  c                   @   sD   e Zd Zejdd Zejdd Zejdd Zejdd Zd	S )
!TestSetitemRangeIntoIntegerSeriesc                 C   s   t |}ttd|d}|S Nr   r\   )r$   rT   r   r   )r'   any_int_numpy_dtyperT   r?   r)   r)   r*   r  \  s    
z%TestSetitemRangeIntoIntegerSeries.objc                 C   s
   t ddS )Nr/   r    )r   r1  r)   r)   r*   r  b  s    z%TestSetitemRangeIntoIntegerSeries.valc                 C   s
   t ddS Nr   r/   r7  r1  r)   r)   r*   r   f  s    z%TestSetitemRangeIntoIntegerSeries.keyc                 C   s$   t |}tdddddg|d}|S )Nr/   r   r    r\   )r$   rT   r   )r'   rT  rT   rW   r)   r)   r*   r9   j  s    
z*TestSetitemRangeIntoIntegerSeries.expectedN)	rl   rm   rn   ro   r#  r  r  r   r9   r)   r)   r)   r*   rR  X  s   


rR  r        @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 rS  )r   r   r$   r   r1  r)   r)   r*   r  z  s    z,TestSetitemFloatNDarrayIntoIntegerSeries.objc                 C   s
   t ddS rU  r7  r1  r)   r)   r*   r   ~  s    z,TestSetitemFloatNDarrayIntoIntegerSeries.keyc                 C   s@   |d dkrt j}nt j}t jtd|d}||d d< t|S )Nr   r/   r   r\   )r$   r   r   r   r   r   )r'   r  rT   Z
res_valuesr)   r)   r*   r9     s    z1TestSetitemFloatNDarrayIntoIntegerSeries.expectedNrl   rm   rn   ro   r#  r  r   r9   r)   r)   r)   r*   rX  q  s   	

rX     c                   @   s6   e Zd Zejdd Zejdd Zejdd ZdS )'TestSetitemIntoIntegerSeriesNeedsUpcastc                 C   s   t dddgtjdS )Nr-   r/   r   r\   r   r$   r   r1  r)   r)   r*   r    s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.objc                 C   s   dS r   r)   r1  r)   r)   r*   r     s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.keyc                 C   s   t dddgtjdS )Nr-   rZ  r   r\   )r   r$   int16r1  r)   r)   r*   r9     s    z0TestSetitemIntoIntegerSeriesNeedsUpcast.expectedNrY  r)   r)   r)   r*   r[    s   

r[  g      Bg    Bl            c                   @   s6   e Zd Zejdd Zejdd Zejdd ZdS )TestSmallIntegerSetitemUpcastc                 C   s   t dddgddS )Nr-   r/   r   i4r\   r6  r1  r)   r)   r*   r    s    z!TestSmallIntegerSetitemUpcast.objc                 C   s   dS r   r)   r1  r)   r)   r*   r     s    z!TestSmallIntegerSetitemUpcast.keyc                 C   s(   |d dkrd}nd}t |ddg|dS )Nr-   r   Zf8r<  r/   r   r\   r6  )r'   r  rT   r)   r)   r*   r9     s    z&TestSmallIntegerSetitemUpcast.expectedNrY  r)   r)   r)   r*   r^    s   

r^  c                   @   s(   e Zd Zejdd Zejdd ZdS )CoercionTestc                 C   s   dS r   r)   r1  r)   r)   r*   r     s    zCoercionTest.keyc                 C   s   t |}|||< t||dS )Nr\   )r   r   )r'   r  r   r  	exp_dtyperX   r)   r)   r*   r9     s    zCoercionTest.expectedN)rl   rm   rn   ro   r#  r   r9   r)   r)   r)   r*   r`    s   
r`  zval,exp_dtypec                   @   s   e Zd Zejdd ZdS )TestCoercionInt8c                 C   s   t ddddgtjdS )Nr-   r/   r   r    r\   r\  r1  r)   r)   r*   r    s    zTestCoercionInt8.objNrl   rm   rn   ro   r#  r  r)   r)   r)   r*   rb    s   rb  皙?      ?      ?ra  c                   @   s   e Zd Zejdd ZdS )TestCoercionObjectc                 C   s   t ddddgtdS )Nr,   r.   r   dr\   )r   rf   r1  r)   r)   r*   r    s    zTestCoercionObject.objNrc  r)   r)   r)   r*   rf    s   rf  c                   @   s   e Zd Zejdd ZdS )TestCoercionComplexc                 C   s   t ddddgS )Nre  y       @       @y      @      @y      @      @r6  r1  r)   r)   r*   r    s    zTestCoercionComplex.objNrc  r)   r)   r)   r*   rh    s   rh  r  c                   @   s   e Zd Zejdd ZdS )TestCoercionBoolc                 C   s   t ddddgtdS )NTFr\   )r   r  r1  r)   r)   r*   r    s    zTestCoercionBool.objNrc  r)   r)   r)   r*   ri    s   ri  c                   @   s   e Zd Zejdd ZdS )TestCoercionInt64c                 C   s   t ddddgS )Nr-   r/   r   r    r6  r1  r)   r)   r*   r    s    zTestCoercionInt64.objNrc  r)   r)   r)   r*   rj    s   rj  c                   @   s   e Zd Zejdd ZdS )TestCoercionFloat64c                 C   s   t ddddgS )Nrd  皙@ffffff
@皙@r6  r1  r)   r)   r*   r     s    zTestCoercionFloat64.objNrc  r)   r)   r)   r*   rk    s   rk  zbnp.float32(1.1) ends up as 1.100000023841858, so np_can_hold_element raises and we cast to float64)reason)Zmarksc                       s*   e Zd Zejdd Z fddZ  ZS )TestCoercionFloat32c                 C   s   t ddddgtjdS )Nrd  rl  rm  rn  r\   )r   r$   float32r1  r)   r)   r*   r    s    zTestCoercionFloat32.objc                    s.   t  |||||| t|tkr*tdd S )Nz!xfail not relevant for this test.)superr  r  r   r#   )r'   r  r   r9   r  rU   r	  	__class__r)   r*   r  "  s    z"TestCoercionFloat32.test_slice_key)rl   rm   rn   ro   r#  r  r  __classcell__r)   r)   rs  r*   rp    s   
rp  rQ   zdatetime64[ns]rd   c                   @   s   e Zd Zejdd ZdS )TestCoercionDatetime64c                 C   s   t tddddS )NrP   r   r    )rK   r   rB  r1  r)   r)   r*   r  1  s    zTestCoercionDatetime64.objNrc  r)   r)   r)   r*   rv  *  s   rv  rA   rN   zdatetime64[ns, US/Eastern]r   c                   @   s.   e Zd Zejdd Zejdddd ZdS )TestCoercionDatetime64TZc                 C   s   d}t tddd|dS )NrA   rP   r   r    rJ   rB  )r'   rC   r)   r)   r*   r  A  s    zTestCoercionDatetime64TZ.objTrC  c              	   c   s   |j jdkr*|d}t|ts&d V  d S |d}|d}|tkr|t|tr||jd k	r|tj	t
dd d V  W 5 Q R X nd V  d S )Nr  r   ra  r  rD  rs   )rE  rl   rF  r`   r  rf   r   rC   r5   rG  rH  )r'   r,  r   ra  r  r)   r)   r*   rI  F  s    



z%TestCoercionDatetime64TZ.assert_warnsN)rl   rm   rn   ro   r#  r  rI  r)   r)   r)   r*   rw  6  s   

rw  z12 dayztimedelta64[ns]c                   @   s   e Zd Zejdd ZdS )TestCoercionTimedelta64c                 C   s   t tdddS )Nz1 dayr    r   )r   r   r1  r)   r)   r*   r  _  s    zTestCoercionTimedelta64.objNrc  r)   r)   r)   r*   rx  Y  s   rx  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 )TestPeriodIntervalCoercionrH   r   r   r;  r-   r   r'  c                 C   s
   t |jS r_   )r   r*  r+  r)   r)   r*   r  j  s    zTestPeriodIntervalCoercion.objN)rl   rm   rn   ro   r#  r   r   r  r)   r)   r)   r*   r{  d  s   r{  c                  C   sT  t dddgdddgd} t dddgdddg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 )Nr   r-   r/   r,   r.   r   r0   g@r   )r.   r   )r-   r   )
r   r3   r   r5   r6   r4   r  rD   Zto_frameassert_frame_equal)rV   r9   r?   Zorig_dfZexpected_dfdfr)   r)   r*   
test_20643t  s>    









r~  c                  C   sr   t dddgdddgd} t tjddgdddgd}|  }d |jd< t|| |  }d |jd< t|| d S )Nr   r-   r/   r,   r.   r   r0   )r   r$   r%   r3   r  r5   r6   rD   )rV   r9   r?   r)   r)   r*   test_20643_comment  s    

r  c                  C   s  t dddg} | | dk  d7  < t dddg}t| | t dddg} | d  d7  < t| | t dddg} | jd  d7  < t| | t dddg} | jd  d7  < t| | t dddg} | jd  d7  < t| | t dddg} | jd  d7  < t| | d S )Nr-   r/   r   rM  rV  )r   r5   r6   r4   rD   r  r   r?   r9   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   r_  r   r-   r/   r   r    r\   )	r$   r   r   r   r   iinfomaxr5   r6   rE   r?   r  r9   r)   r)   r*   test_32878_int_itemsize  s    r  c                  C   sn   t dd} t| }t t jj}|d}||d< |d |ksHt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  r#   r5   r6   r  r)   r)   r*   test_32878_complex_itemsize  s    
r  c                 C   sN   t dddgdddgd}d| |d< t dddgdddgtd	}t|| d S )
Nr-   r/   r   r,   r.   r   r0   testr^   r   rf   r5   r6   )Z
indexer_alr?   r9   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<ttdtdtd}|d|d< |jtkstqtdtdt jd}t d| |d< |jt jksttdtdt jd}t d| |d< d S )Nr   r   r^   Tr-   rJ  )	r$   r   r   r   r   rT   rf   r#   r  )rU   rT   r?   r)   r)   r*   'test_setitem_bool_int_float_consistency  s    r  c                  C   sJ   t dddgdddgd} d| d	< t dddgdddgtd
}t| | d S )Nr-   r/   r   r,   r.   r   r0   r[   r   r^   r  r  r)   r)   r*   $test_setitem_positional_with_casting  s    r  c                  C   sH   t dddgdddgd} d| d	< t dddgdddgd}t| | d S )
Nr-   r/   r   r,   r.   r   r0   rN  r   r|   r  r)   r)   r*   .test_setitem_positional_float_into_int_coerces  s    r  c            	   
   C   s  t ddddgddddgd	} | jjr(ttd  d
| d< W 5 Q R X t ddd
dg| jd	}t| | d}tjt|d( tj	t
dd d| d< W 5 Q R X W 5 Q R X ttd
d d d }t tt||d	}| }d|jd< tjt|d d|d< W 5 Q R X t|| t| jddgg}t tt||d	}| }d|jd< tjt|d d|d< W 5 Q R X t|| d S )Nr-   r/   r   r    rd  g @r   gffffff@r0   r   z5Treating integers as positional in Series.__setitem__rs   zindex 5 is out of boundsr   r   r   r   Bc   )r   r1   Z_should_fallback_to_positionalr#   r5   rG  r6   rH  ro   rv   rw   r   rO  r   r   r3   rD   r   r   )	r?   r9   rx   iir   Z	expected2r   r   Z	expected3r)   r)   r*   3test_setitem_int_as_positional_fallback_deprecation  s0    

r  c                  C   s   t dddgdddgd} | d}d	|d
ddg< td	ddgdd}t|| d| jd
ddgdf< t ddddgi}t| | d S )Nr-   r/   r   r    r   r"   )r,   r.   r.   r   TF)rQ  r   r   r,   )r   popr   r5   r6   r4   r|  )r}  r8   r9   r)   r)   r*   test_setitem_with_bool_indexer>  s    
r  sizer   itemr8  c                 C   s   t | gS r_   )r$   r   r   r)   r)   r*   r   V  r   r   c                 C   s   | gS r_   r)   r   r)   r)   r*   r   V  r   c                 C   s   | fS r_   r)   r   r)   r)   r*   r   V  r   c           	   	   C   s   t || }t j| td}t|}| dkrZd}tjt|d ||||< W 5 Q R X n2||||< tt j| td}|||< t	
|| d S )Nr\   r-   zKcannot set using a list-like indexer with a different length than the valuers   )r$   resizer   r   r   r  ro   rv   r   r5   r6   )	r  r   r  r8  Z	selectionrQ  r?   rx   r9   r)   r)   r*   7test_setitem_bool_indexer_dont_broadcast_length1_valuesL  s    r  c                  C   s~   t ddd} t| }| }tjdtd}d||< |j| jksBtt	|| |j
|ddd |j| jksntt	|| d S )NrH   r   r   r\   ru   Tr   )r   r   r3   r$   r   r  rT   r#   r5   r6   r   )r   r?   rV   r   r)   r)   r*   (test_setitem_empty_mask_dont_upcast_dt64t  s    r  )mr   r   Znumpyr$   ro   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_testingr5   Zpandas.tseries.offsetsr   r   rr   r   r   r   r   r   r   r   r   r   r   r  rp   rq   r*  r%   r  rf   r   r%  r-  r3  r9  r>  r?  rK  rL  rR  r   rX  r]  r[  r^  r`  Zint32r   rb  rf  Z
complex128rh  r  ri  r   rj  rk  rq  Zxfailr   Zuint32r  r  Zuint64rp  rv  rw  rx  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&$
     
	 .

	&   