o
    g s                     @   s\  d dl mZm Z  d dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ d 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%&d ej'eg d!eej(d"ej(d#ej(d$ej(d%ej(g	e)ddd&d'd(ej'eg d)eej(d*ej(d+ge*d,e)ddd&d-d(ej'ee+d.eej(ej(ej(ej(ej(d#d/d$d0d%g
e)dd#d1d(ej'eg d2eej(d&d"gd d3d(ej'ed+geej(ge*d,d d4d(ej'ed+d*geej(d*ge*d,d d5d(gG d6d7 d7e$Z,G d8d9 d9e$Z-G d:d; d;e$Z.G d<d= d=e$Z/G d>d? d?e$Z0G d@dA dAe$Z1ej%&dBeg d2eej(d&d"gfeg dCeej(dDdEgfee dFdGdGe dFdGd&e dFdGd"geee dFdGd&e dFdGd"gfeg dHeg dIfgG dJdK dKe$Z2dLdM Z3dS )N    )datedatetimeN)Categorical	DataFrameDatetimeIndexIndex
MultiIndexNaTSeries	Timedelta	Timestamp
date_rangeperiod_range)IndexingError)BDayc                   @   sN   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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   g/home/ubuntu/cloudmapper/venv/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_slice+   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&   r2   )r
   r   todayr2   r   serr   r   r    test_setitem_with_string_index3   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 )	N2017r   
US/Easternr   tz)r   r#   )r   r%   )r   r   )r   r   r&   r<   r   )r   r
   r)   r   r   ilocr+   r,   )r   arrr'   r.   r/   r   r   r    )test_setitem_tuple_with_datetimetz_values:   s   
z?TestSetitemDT64Values.test_setitem_tuple_with_datetimetz_valuesr;   )r9   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   r;   datetime64[ns, ]z2016-01-01 00:00r;   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   r)   r+   r,   )r   r;   indexer_sliorigexpr6   valsr   r   r    test_setitem_with_tzD   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 )Nr9   z
2016-11-06rB   r   rC   rE   rF   z2016-11-06 00:00-04:00rG   z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00rI   r#   rJ   r%   r&   z2016-11-06 00:00rH   rK   rL   )r   rN   r;   rO   rP   r6   rQ   r   r   r    test_setitem_with_tz_dsti   s4   


	


z.TestSetitemDT64Values.test_setitem_with_tz_dstN)__name__
__module____qualname__r!   r0   r7   r?   pytestmarkparametrizerR   rS   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
   r+   rands_arrayrW   raises
IndexError)r   r6   msgr   r   r    #test_setitem_negative_out_of_bounds   s
   
"z<TestSetitemScalarIndexer.test_setitem_negative_out_of_boundsindexer	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   objectrM   *   r&   r
   r+   r,   )r   rc   rd   r6   idxrr/   r   r   r     test_setitem_series_object_dtype   s
   z9TestSetitemScalarIndexer.test_setitem_series_object_dtypezindex, exp_value)r   rg   c                 C   s>   t ddg}t dg|gd|jd< t |dg}t|| d S )Nr   rg   r&   )r
   r*   r+   r,   )r   r'   	exp_valuer6   r/   r   r   r    test_setitem_series   s   z,TestSetitemScalarIndexer.test_setitem_seriesN)rT   rU   rV   rb   rW   rX   rY   r+   r*   atrj   r   r   rl   r   r   r   r    rZ      s    rZ   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)keyr[   r   g      @g      $@z4\.5g      @)rW   r_   	TypeErrorformat)r   datetime_seriesra   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listallr5   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   rx   r            r&   r   r   )r
   r   randomrandnrv   anyr5   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
   r+   makeIntIndexastypefloatrv   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#   abcder   rf   d   r   )
r   r#   r%   r   r   r   r   r   r   	   )	r   from_productru   r
   r   arangeint64r+   r,   )r   rN   mir.   r/   r   r   r    test_setitem_multiindex_slice   s
   z/TestSetitemSlices.test_setitem_multiindex_sliceN)rT   rU   rV   rs   rw   r   r   r   r   r   r   r    rn      s    rn   c                   @   sZ   e Z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S )TestSetitemBooleanMaskc                 C   s   ||  k}| }|d ||< |d }t|| ||  | }|d dd ||< |d dd |}|| || < t|| ||  d S )Nr%   r   r   )medianr)   r+   r,   reindex_like)r   string_seriesmaskr.   r/   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#   rD   zsUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchr[   )shiftr   r   rW   r_   r   r*   )r   rr   tsmask_shiftedra   r   r   r    test_setitem_boolean_corner   s   
"z2TestSetitemBooleanMask.test_setitem_boolean_cornerc                 C   s@   |  }| }d||dk< | }d||dk< t|| d S Nr   )sort_valuesr)   r+   r,   )r   r   orderedr)   r/   r   r   r    $test_setitem_boolean_different_order   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   rh   )r   r   r6   r   r/   r   r   r     test_setitem_boolean_python_list   s
   z7TestSetitemBooleanMask.test_setitem_boolean_python_listc                 C   s   t g d|d}t td|d||dk< t g d|d}t|| t g d|d}t td|d|j|dk< t|| t g d|d}t td|d}|j|dk |j|dk< t|| d S )N)r   r   r   rx   rf   r   r   )r   r   r%   r   r#   )r
   rt   r+   r,   r*   )r   any_nullable_numeric_dtyper6   r/   loc_serr   r   r    'test_setitem_boolean_nullable_int_types	  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%   re   )r
   rt   ru   r   r+   r,   )r   r6   r   r.   r/   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   FTrf   )r
   r   r   re   r+   r,   )r   r.   r/   r   r   r    test_setitem_nan_with_bool"  s   
z1TestSetitemBooleanMask.test_setitem_nan_with_boolN)rT   rU   rV   r   r   r   rW   rX   rY   ru   r   arrayr
   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 |jjj|jjjus"J |jdks)J t|jd< |jjd u s6J |j|us=J |jjj|jjjusIJ |d |ksQJ |jdksXJ d S )N20130101r   r9   r:   r#   D)r   r
   _values_databaserD   r	   r=   r   dtir   r6   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 |jjj|jjjus"J |jjd |us,J |jjd jj|jjjus;J t|d d d< |d tu sJJ |d |ksRJ d S )NrA   r   z
US/Pacificr:   r   r   )r   r
   r   r   r   _mgrarraysr	   r   r   r   r    'test_dt64tz_setitem_does_not_mutate_dti>  s   zDTestSetitemViewCopySemantics.test_dt64tz_setitem_does_not_mutate_dtiN)rT   rU   rV   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   ABCDr&   c                 S      dS )NAr   xr   r   r    <lambda>Q  s    z?TestSetitemCallable.test_setitem_callable_key.<locals>.<lambda>)r   r%   r   r   )r
   ru   r+   r,   r   r6   r/   r   r   r    test_setitem_callable_keyN  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   X  s    zATestSetitemCallable.test_setitem_callable_other.<locals>.<lambda>)r#   r%   r   r   r   r#   r%   r   rh   )r   incr6   r/   r   r   r    test_setitem_callable_otherV  s
   z/TestSetitemCallable.test_setitem_callable_otherN)rT   rU   rV   r   r   r   r   r   r    r   M  s    r   c                   @   sd   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S )TestSetitemWithExpansionc                 C   s6   t d}ttd}d||< td|g}t|| d S )NrJ   rf   /   )r   r
   re   r+   r,   )r   ro   r   r/   r   r   r    test_setitem_empty_seriesb  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   rf   rJ   r   )r
   r   re   r   r+   r,   r'   rD   )r   r   ro   r/   r   r   r    6test_setitem_empty_series_datetimeindex_preserves_freqj  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 	timestampr'   rM   rf   g     r@anything)r   r
   re   )r   r   r   r/   r.   r   r   r    3test_setitem_empty_series_timestamp_preserves_dtypes  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 )Nr   r   r   r   r   )r
   re   r+   r,   
isinstancer   r*   )r   r   r/   r6   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 )
Nrf   rA   r"         @r$   r]   r   r   r&   )r
   re   r   r+   r,   r   r   r   r    *test_setitem_with_expansion_type_promotion  s   
zCTestSetitemWithExpansion.test_setitem_with_expansion_type_promotionc                 C   sJ   |  }d|jvsJ d|d< tdgdgdd}||}t|| d S )Nfoobarr#   r   )r'   name)r)   r'   r
   appendr+   r,   )r   r   r6   appr/   r   r   r    test_setitem_not_contained  s   
z3TestSetitemWithExpansion.test_setitem_not_containedN)rT   rU   rV   r   r   r   rW   rX   rY   r   to_timedelta64to_pytimedeltar   r   r   r   r   r   r    r   a  s    	


	r   c               	   C   sz   t d} d| j_t| }tt|D ]'}d}tjt	|d d||< W d    n1 s-w   Y  | | dks:J qd S )Nr   F#assignment destination is read-onlyr[   r#   r   )
r   zerosflags	writeabler
   rt   lenrW   r_   
ValueError)r   r   nra   r   r   r    .test_setitem_scalar_into_readonly_backing_data  s   

r   c                  C   sh   t d} d| j_t| }d}tjt|d d|dd< W d    n1 s'w   Y  |  r2J d S )Nr   Fr   r[   r#   r   )	r   r   r   r   r
   rW   r_   r   r~   )r   r   ra   r   r   r    -test_setitem_slice_into_readonly_backing_data  s   
r   c                  C   s@  t tddgddgd} |  }d|d d < t tddgddgd}t|| |  }d|d< t tddgddgd}t|| |  }d||jdk< t tddgddgd}t|| |  }d|ddg< t tddgddgd}t|| |  }dd	g|_d|d	< t tddgddgddd	gd
}t|| d S )Nr$   r"   
categoriesr#   r   FTr   yr&   )r
   r   r)   r+   r,   r'   )rO   r6   rP   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 )Nr1   r#   r   r   )r
   r   r   r   r+   r,   )r6   rP   r   r   r    !test_setitem_nan_into_categorical  s   
r   c                   @   s<   e Zd Zejdddgejjdg deddd Zd	S )
TestSetitemCastinguniqueTFval)r   r   3)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#   )rM   r'   )r
   r'   typer=   re   r+   r,   )r   r   rN   r   r6   r/   r   r   r    test_setitem_non_bool_into_bool  s   
z2TestSetitemCasting.test_setitem_non_bool_into_boolN)rT   rU   rV   rW   rX   rY   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   r   )z\
        Indicate that we are not (yet) checking whether or not setting is inplace.
        Nr   r   r   r   r    
is_inplace     z$SetitemCastingEquivalents.is_inplacec           	      C   s>   |}|  }|j}||||< t|| | |||| d S N)r)   r   r+   r,   _check_inplace)	r   objro   r/   r   rc   r   rO   r>   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)rM   kindr   r   r+   assert_equal)r   r   rO   r>   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   .0r   r   r   r    	<genexpr>?      z9SetitemCastingEquivalents.test_int_key.<locals>.<genexpr>)r   intr   r+   r*   rm   r=   iatrt   slicer   r   )r   r   ro   r/   r   rN   r   rng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   r   r   r   r    r   P  r   z;SetitemCastingEquivalents.test_slice_key.<locals>.<genexpr>)
r   r   r+   r*   r   ru   rt   r   r   r   )
r   r   ro   r/   r   rN   r   r   r  r  r   r   r    test_slice_keyB  s   


z(SetitemCastingEquivalents.test_slice_keyc                 C   s<   t j|jtd}d||< | }||||< t|| d S Nrf   T)r   r   shapeboolr)   r+   r,   )r   r   ro   r/   r   rN   r   r   r   r    test_mask_keyS  s
   z'SetitemCastingEquivalents.test_mask_keyc           
      C   sX   t j|jtd}d||< |}| }|j}|| |}	t|	| | 	|||| d S r  )
r   r   r  r  r)   r   wherer+   r,   r   )
r   r   ro   r/   r   r   r   rO   r>   resr   r   r    test_series_where\  s   z+SetitemCastingEquivalents.test_series_wherec           
      C   s   t |j|jkrtd tj|jtd}d||< |jtkr-d}tjj	|d}|j
| t || |}	t|	t | d S )N"test not applicable for this dtyperf   Tz3Index/Series casting behavior inconsistent GH#38692)reason)r   rM   rW   skipr   r   r  r  rX   xfailnode
add_markerr	  r+   assert_index_equal)
r   r   ro   r/   r   requestr   ra   rX   r
  r   r   r    test_index_wherei  s   

z*SetitemCastingEquivalents.test_index_wherec                 C   sV   t |j|jkrtd tj|jtd}d||< t |||}t	
|t | d S )Nr  rf   T)r   rM   rW   r  r   r   r  r  putmaskr+   r  )r   r   ro   r/   r   r   r
  r   r   r    test_index_putmaskx  s   
z,SetitemCastingEquivalents.test_index_putmaskN)rT   rU   rV   __doc__rW   fixturer   r   r   r  r  r  r  r  r  r   r   r   r    r     s    

	r   zobj,expected,key)	r%   r   r   r   r   r   rx   r   r   r   r   r   r   r%   int_series_slice_key_step)id)TTFFTFrf   bool_series_slice_key_stepr   r   rx   int_series_slice_keyr1   int_series_int_keybool_series_int_key_change_allbool_series_int_keyc                   @   s,   e Zd Zejejedgddd ZdS )TestSetitemCastingEquivalentsNaNparamsc                 C      |j S )zi
        One python float NaN, one np.float64.  Only np.float64 has a `dtype`
        attribute.
        paramr   r  r   r   r    r     s   z!TestSetitemCastingEquivalents.valN)	rT   rU   rV   rW   r  r   r   float64r   r   r   r   r    r     s    0r   c                   @   sl   e Zd Zejdd Zejeeegddd Z	ejdd Z
ejdd	 Zejd
d Zejdd ZdS )!TestSetitemTimedelta64IntoNumericc                 C   s   t dd}|S )Nr   ns)r   timedelta64)r   r   r   r   r    r     s   z%TestSetitemTimedelta64IntoNumeric.valr"  c                 C   r$  r   r%  r'  r   r   r    rM        z'TestSetitemTimedelta64IntoNumeric.dtypec                 C   s   t d|}t|}|S )Nr   )r   r   r   r
   r   rM   r>   r6   r   r   r    r     s   z%TestSetitemTimedelta64IntoNumeric.objc                 C   s8   t d|}t|}|t}t dd|jd< |S )Nr   r   r*  r   )r   r   r   r
   re   r+  valuesr-  r   r   r    r/     s
   
z*TestSetitemTimedelta64IntoNumeric.expectedc                 C   r   r   r   r   r   r   r    ro        z%TestSetitemTimedelta64IntoNumeric.keyc                 C   r   )zM
        Indicate we do _not_ expect the setting to be done inplace.
        Fr   r   r   r   r    r     r   z,TestSetitemTimedelta64IntoNumeric.is_inplaceN)rT   rU   rV   rW   r  r   complexr   r   rM   r   r/   ro   r   r   r   r   r    r)    s    




r)  c                   @   s   e Zd Zejddgddd Zejdd Zejdd	 Zejd
d Zejdd Z	ejde
ejgddd Zejdd ZdS )TestSetitemDT64IntoIntM8[ns]m8[ns]r"  c                 C   r$  r   r%  r'  r   r   r    rM     r,  zTestSetitemDT64IntoInt.dtypec                 C   s    t dd}|dkr|| }|S )Nz2021-01-18 13:25:00r*  r3  )r   
datetime64)r   rM   r   r   r   r    scalar  s   zTestSetitemDT64IntoInt.scalarc                 C   s,   t ||dgtd}t|d t|sJ |S )Nr   rf   r   )r
   re   r   r   )r   r5  r/   r   r   r    r/     s   zTestSetitemDT64IntoInt.expectedc                 C   s   t g dS )Nr1   )r
   r   r   r   r    r        zTestSetitemDT64IntoInt.objc                 C   s
   t d dS )Nr   )r   r   r   r   r    ro     s   
zTestSetitemDT64IntoInt.keyNc                 C   s   |j }|d u r	|S |||gS r   r%  )r   r5  r  boxr   r   r    r      s   zTestSetitemDT64IntoInt.valc                 C   r   )NFr   r   r   r   r    r     r/  z!TestSetitemDT64IntoInt.is_inplace)rT   rU   rV   rW   r  rM   r5  r/   r   ro   ru   r   r   r   r   r   r   r   r    r1    s    





r1  c                   @   sn   e Zd Zejdd Zejdd Zejdeddgddd	 Zejd
e	j
gddd Zejdd Zd
S )TestSetitemNAPeriodDtypec                 C   sN   t tdddd}tj|jd|< || tu s%tdd || D s%J |S )N
2000-01-01r   r   r   rD   i8c                 s   s    | ]}|t u V  qd S r   )r	   r   r   r   r    r     s    z4TestSetitemNAPeriodDtype.expected.<locals>.<genexpr>)r
   r   r	   valuer   viewrv   )r   ro   rP   r   r   r    r/     s   &z!TestSetitemNAPeriodDtype.expectedc                 C      t tddddS )Nr9  r   r   r:  )r
   r   r   r   r   r    r        zTestSetitemNAPeriodDtype.objr   r   r"  c                 C   r$  r   r%  r'  r   r   r    ro     r,  zTestSetitemNAPeriodDtype.keyNc                 C   r$  r   r%  r'  r   r   r    r     r,  zTestSetitemNAPeriodDtype.valc                 C   r   )NTr   r   r   r   r    r   "  r/  z#TestSetitemNAPeriodDtype.is_inplace)rT   rU   rV   rW   r  r/   r   r   ro   r   r   r   r   r   r   r   r    r8    s    



r8  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)r3  r2  zdatetime64[ns, UTC]zdatetime64[ns, US/Central]r"  c                 C   r$  r   r%  r'  r   r   r    rM   -  s   z$TestSetitemNADatetimeLikeDtype.dtypec                 C   s0   t dddj}t||d}|j|ksJ t|S )NrA   r   r   rf   )r   asi8r   rM   r
   )r   rM   i8valsr-   r   r   r    r   3  s   z"TestSetitemNADatetimeLikeDtype.objNr	   r*  c                 C   r$  r   r%  r'  r   r   r    r   :  s   
z"TestSetitemNADatetimeLikeDtype.valc                 C   s&   |t u p|d u p|tju p|j|jkS r   )r	   r   r   rM   )r   r   r   r   r   r    r   F  s   &z)TestSetitemNADatetimeLikeDtype.is_inplacec                 C   s0   |r|j nt}t|gt|dd   |d}|S )Nr#   rf   )rM   re   r
   ru   )r   r   r   r   rM   r/   r   r   r    r/   M  s   z'TestSetitemNADatetimeLikeDtype.expectedc                 C   r   r   r   r   r   r   r    ro   S  r/  z"TestSetitemNADatetimeLikeDtype.key)rT   rU   rV   rW   r  rM   r   r   r   r	   r+  r4  r   r   r/   ro   r   r   r   r    r@  '  s,    




	

r@  c                   @   sD   e Zd Zejdd Zejdd Zejdd Zejdd Zd	S )
$TestSetitemMismatchedTZCastsToObjectc                 C   r>  )N2000r%   
US/Centralr:   )r
   r   r   r   r   r    r   Z  r?  z(TestSetitemMismatchedTZCastsToObject.objc                 C   s   t dddS )NrD  r9   rG   )r   r   r   r   r    r   ^  r6  z(TestSetitemMismatchedTZCastsToObject.valc                 C   r   r   r   r   r   r   r    ro   b  r/  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:00r9   rG   z2000-01-02 00:00:00-06:00rE  rf   )r
   r   re   )r   r/   r   r   r    r/   f  s   

z-TestSetitemMismatchedTZCastsToObject.expectedN)	rT   rU   rV   rW   r  r   r   ro   r/   r   r   r   r    rC  X  s    


rC  zobj,expected)g      ?       @r   rF  r   i  r#   )r]   barbaz)NrG  rH  c                   @   s6   e Zd Zejdd Zejdd Zejdd ZdS )TestSeriesNoneCoercionc                 C   r   r   r   r   r   r   r    ro     r/  zTestSeriesNoneCoercion.keyc                 C   s   d S r   r   r   r   r   r    r     r/  zTestSeriesNoneCoercion.valc                 C   s   |j jdkS )Ni)rM   r   )r   r   r   r   r    r     s   z!TestSeriesNoneCoercion.is_inplaceN)rT   rU   rV   rW   r  ro   r   r   r   r   r   r    rI  r  s    

rI  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 )Nr1   )r   r   r   )r"   r$   r$   r   )TFF)r   r   r   )datar   r   r"   )r   r%   r   )r   popr
   r+   r,   r*   assert_frame_equal)dfr.   r/   r   r   r    test_setitem_with_bool_indexer  s   
rO  )4r   r   numpyr   rW   pandasr   r   r   r   r   r	   r
   r   r   r   r   pandas._testing_testingr+   pandas.core.indexingr   pandas.tseries.offsetsr   r   rZ   rn   r   r   r   r   r   r   r   r   r   r   rX   rY   r&  r   r   re   r   r   r)  r1  r8  r@  rC  rI  rO  r   r   r   r    <module>   s    4t+T#H 
"


$

/
((1$