a
    Pf                     @   sH  d dl m Z  d dlZd dlZd dlm  mZ d dlm	Z
 d dlmZ d dlmZmZmZm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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Z0G dd dZ1dd Z2dd Z3dS )    )datetimeN)	_registry)is_object_dtype)CategoricalDtypeDatetimeTZDtypeIntervalDtypePeriodDtype)Categorical	DataFrameDatetimeIndexIndexIntervalIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timestampcut
date_rangenotnaperiod_range)SparseArray)BDayc                   @   sp  e Zd Zdd Zejdg d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d Zdd Zdd Zdd Zejded ed!fed"d#d$ed%d&fed'd(d)ed*d(d+fgd,d- Zejd.d/d0 ejD d1d2g d3d4 Zd5d6 Zejd7g d8d9d: Zejd7g d8d;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$ejdg dEdFdG Z%ejdHdIdIggdJdK Z&dLdM Z'dNdO Z(ejdPg dQg dRgdSdT Z)dUdV Z*dWdX Z+dYdZ Z,d[d\ Z-d]d^ Z.ejd_g d`g dadbfg dcg dadbfg ddg dadbfg deg dfdgfg dhg didjfg dkg didlfgdmdn Z/dodp Z0ejdqg drdse1g dtg dtg dtgg drdufdvdwgdsdxge1g dyg dzg d{gg drdufg d|e2j3g d}e2j4d~e1g d}g d}g d}gg d|dufg dg d}g dg dge1g dg dg dgg drdufg de2j3g d}g dg dge2j4d~e1g dg dg dgg drdufddvge1dsdxgddgddggddvgdue1g dg dg dgg d|dufgdd Z5dd Z6dd Z7dd Z8dd Z9dd Z:dd Z;e<j=dd Z>ejdi ddigdd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdS )TestDataFrameSetItemc                 C   sv   G dd dt }dg}t|}tddgi|d}d|d< d	||d
< tddgddg|d
d	gi|d}t|| d S )Nc                   @   s   e Zd ZdS )z@TestDataFrameSetItem.test_setitem_str_subclass.<locals>.mystringN)__name__
__module____qualname__ r   r   a/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/frame/indexing/test_setitem.pymystring-   s   r!   z2020-10-22 01:21:00+00:00a   index   b   c)strr   r
   tmZassert_equal)selfr!   datar%   dfexpectedr   r   r    test_setitem_str_subclass+   s    "z.TestDataFrameSetItem.test_setitem_str_subclassdtype)int32int64uint32Zuint64float32float64c                 C   sD   t jdddt|}t j||d||< || jj|ks@J d S )Nr&   r#   
   r1   )nprandomdefault_rngintegerslenarrayr1   name)r,   r1   float_framearrr   r   r    test_setitem_dtype8   s    z'TestDataFrameSetItem.test_setitem_dtypec                 C   s@   t jdt|df}||ddg< t|ddg j| d S )Nr&   AB)r9   r:   r;   standard_normalr=   r+   Zassert_almost_equalvalues)r,   r@   r-   r   r   r    test_setitem_list_not_dataframeB   s    z4TestDataFrameSetItem.test_setitem_list_not_dataframec                 C   s*  t g dg ddtg dddd}tg dtg d	ddd
d}d}tjt|d ||d< W d    n1 st0    Y  t tjd	dddg dd}d}tjt|d& |
ddg |d< W d    n1 s0    Y  d}tjt|d t  |d< W d    n1 s0    Y  d S )Nr#   r&   r(   )def)barZbazr"   r'   r)   foor?   r$   )ghij)r"   r'   r)   r"   Zfizr%   r?   z/cannot reindex on an axis with duplicate labelsmatchZnewcolr&   r   )   rW   r"   r'   r)   rI   columnszDCannot set a DataFrame with multiple columns to the single column grr'   r)   grz7Cannot set a DataFrame without columns to the column gr)r
   r   r   pytestraises
ValueErrorr9   r:   r;   r<   groupbycount)r,   r.   sermsgr   r   r    test_setitem_error_msmgsG   s,    &4z-TestDataFrameSetItem.test_setitem_error_msmgsc                 C   sn   d}d}t t|d}tjd|}t|D ]}|||< q0t t||||t|d}t	|| d S )Nr7      r$   r&   )
r
   ranger9   r:   r;   rE   repeatZreshaper+   assert_frame_equal)r,   NKr.   Znew_colrR   r/   r   r   r    test_setitem_benchmarke   s    
 z+TestDataFrameSetItem.test_setitem_benchmarkc                 C   sF  t tjddtdg dd}|dd|d  |dd	|d
  |d d|d< |j}t	t
dgd t
dg g dd}t|| |d d|d< |j}t	t
dgd t
dgd  g dd}t|| |d d|d< |j}t	t
dgd t
dgd  t
dg g dd}t|| d S )Nr&   rd   r(   rd   )r)   r'   r"   r%   rZ   r   rN   r"   rL   r)   r5   xr6   )rN   r)   rL   r'   r"   rm   r$   rW   r2   y)rN   r)   rL   r'   r"   rm   rn   )r
   r9   r:   r;   rE   arangeinsertastypedtypesr   r1   r+   assert_series_equalr,   r.   resultr/   r   r   r    test_setitem_different_dtypep   s8    *z1TestDataFrameSetItem.test_setitem_different_dtypec                 C   sL   t g dd}|j|d< g d|d< t dg dig dd}t|| d S )NrC   rD   Cr$   Xrm   rn   z)r-   r%   )r
   r%   r+   rg   r,   r.   expr   r   r    test_setitem_empty_columns   s
    
z/TestDataFrameSetItem.test_setitem_empty_columnsc                 C   sF   t dddd}ttt|d}||d< |d jtdksBJ d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50Z10s)freqr$   rC   M8[ns])r   r
   r9   ro   r=   r1   )r,   rngr.   r   r   r    %test_setitem_dt64_index_empty_columns   s    z:TestDataFrameSetItem.test_setitem_dt64_index_empty_columnsc                 C   sX   t tdd}tdddd|d< t tdddggd g ddgd	}t|| d S )
Nr(   r$   Z20130101UTCtznsnowr   r#   r&   rl   )r
   re   r   Zas_unitr+   rg   r,   r.   r/   r   r   r    $test_setitem_timestamp_empty_columns   s    z9TestDataFrameSetItem.test_setitem_timestamp_empty_columnsc                 C   sz   t g dg d}ttddgd}dt| dt| d}tjt|d	 ||d
< W d    n1 sl0    Y  d S )N)r   r#   r#   r   r#   r&   rM   r7   rL   rY   zLength of values \(z$\) does not match length of index \(z\)rU   rN   )r	   Z
from_codesr
   re   r=   r\   r]   r^   )r,   catr.   rb   r   r   r    2test_setitem_wrong_length_categorical_dtype_raises   s    zGTestDataFrameSetItem.test_setitem_wrong_length_categorical_dtype_raisesc                 C   sJ   t g dg dd}tg d}||d< t|dd}t|d | d S )NrM         ?       @      @Zc_1Zn_1r   r   r#   
new_columnrO   )r
   r   r   r+   rs   )r,   r.   Zsp_arrayr/   r   r   r    test_setitem_with_sparse_value   s
    z3TestDataFrameSetItem.test_setitem_with_sparse_valuec                 C   s^   t g dg dd}ttg dg dd}||d< ttg ddd	}t|d | d S )
NrM   r   r   r   )r&   r#   r   r$   r   )r#   r   r   rO   )r
   r   r   r+   rs   )r,   r.   Z	sp_seriesr/   r   r   r    (test_setitem_with_unaligned_sparse_value   s
    z=TestDataFrameSetItem.test_setitem_with_unaligned_sparse_valuec                 C   s8   t ddg}tg }||d< td|i}t|| d S )Nz2003-12Dr"   )r   r
   r+   rg   )r,   r-   ru   r/   r   r   r    #test_setitem_period_preserves_dtype   s
    z8TestDataFrameSetItem.test_setitem_period_preserves_dtypec                 C   s   t tg dddtg dtdtg dtdtg dddd}t tg ddtg tdtg tdtg ddd}tg dD ]4\}}t|t|t|t|d|j|jd < qt	
|| d S )Nr   r3   r8   rH   r4   rX   r   )r
   r   float	enumerateintr9   r4   locshaper+   rg   )r,   r/   r.   idxr'   r   r   r    "test_setitem_dict_preserves_dtypes   s*    



z7TestDataFrameSetItem.test_setitem_dict_preserves_dtypesz	obj,dtypez2020-01Mr   rd   )leftrightr3   r   z
2011-01-01z
US/Easternr   s)unitr   c                 C   sH   t g dt|gd |dd}t dg di}||d< t|| d S )NrH   r(   r8   )r   objr   r   r
   r   r+   rg   )r,   r   r1   r/   r.   r   r   r    test_setitem_extension_types   s     z1TestDataFrameSetItem.test_setitem_extension_typesea_namec                 C   s   g | ]}t |jts|jqS r   )
isinstancer?   property).0r1   r   r   r    
<listcomp>  s   zTestDataFrameSetItem.<listcomp>zdatetime64[ns, UTC]	period[D]c                 C   s8   t dg}dg||< t ddg|dgi}t|| d S )Nr   r#   r
   r+   rg   )r,   r   ru   r/   r   r   r    test_setitem_with_ea_name  s    

z.TestDataFrameSetItem.test_setitem_with_ea_namec                 C   s   t jddgdd}t| }||d< tdd gdd gddd}t|| t jddgdd}||d< t|d |d  t|d 	 | d S )	Nr#   Znatdatetime64[ns]r8   new)r   r   datetime64[s]r   )
r9   r>   r   Zto_framer
   r+   rg   rs   assert_numpy_array_equalZto_numpy)r,   Zdata_nsru   r/   Zdata_sr   r   r    6test_setitem_dt64_ndarray_with_NaT_and_diff_time_units  s    zKTestDataFrameSetItem.test_setitem_dt64_ndarray_with_NaT_and_diff_time_unitsr   )rQ   mr   msr   r   Yc                 C   s   d}t d| d}t j|t jd|}|dv r:|}n
|d}tdt |it |d}|||< || j|jks|J || j|k sJ d S )	Nd   M8[]r8   )r   r   r   intsr$   	r9   r1   ro   r3   viewrq   r
   rF   allr,   r   nr1   valsZex_valsr.   r   r   r    -test_frame_setitem_datetime64_col_other_units#  s    
zBTestDataFrameSetItem.test_frame_setitem_datetime64_col_other_unitsc                 C   s   d}t d| d}t j|t jd|}|d}tdt |it |d}t j|t jdd|d	< ||d	< |d	 j|k sJ d S )
Nr   r   r   r8   r   r   r$   r   datesr   r   r   r   r    6test_frame_setitem_existing_datetime64_col_other_units8  s    
zKTestDataFrameSetItem.test_frame_setitem_existing_datetime64_col_other_unitsc                 C   s  |}|d  d}||d< t|d t|dd d|d< ||d< t|d t|dd |d= |jjd }|jjd }t|| |jj}|jj}|s|d u st	|t	|ksJ nt	|t	|ksJ |
 }	t|	jd< t|	jd	< |	d }
tt|
tg d
dd t|	j|j d S )NrD   rN   rx   rO   r   r#   r&   )r#   r#   r#   r&   )TFT)renamer+   rs   r   _mgrZarraysZassert_extension_array_equalZ_ndarraybaseidcopyr   ilocr   rr   )r,   Ztimezone_frameusing_copy_on_writer.   r   Zv1Zv2Zv1baseZv2basedf2ru   r   r   r    test_setitem_dt64tzI  s,    

z(TestDataFrameSetItem.test_setitem_dt64tzc                 C   s   t dddd}ttjdd|d}||d< t|d }tj||d	d
 |j	dksZJ |j	dkshJ |
 d}t|jtsJ t|j| d S )Nz1/1/2000rd   r%   )periodsr?   r&   rk   r$   r   FZcheck_names)r   r
   r9   r:   r;   rE   r   r+   assert_index_equalr?   Zreset_index	set_indexr   r%   r   )r,   r   r.   rsr   r   r    test_setitem_periodindexk  s    z-TestDataFrameSetItem.test_setitem_periodindexc                 C   s   t g dg dd}tddgddgddgg}||ddg< t g dg dg d	g d
d}|d |j|d< |d |j|d< |d j|jksJ |d j|jksJ t|| d S )N)onetwothreerH   r"   r'   r#   r(   rd   r)   rI   r#   r(   rd   r#   r#   r#   rX   )r
   r9   r>   rq   r1   r+   rg   r,   r.   rA   r/   r   r   r    'test_setitem_complete_column_with_arrayy  s    z<TestDataFrameSetItem.test_setitem_complete_column_with_arrayc                 C   sL   t ddddd}t|}tdg didd}|j|jd d < t|| d S )	Nz
2016-01-01	   r   rC   )r   r   r?   )	r   r   r   r   r   r   r   r   r   r   r8   )r   r
   Z	_na_valuer   r+   rg   )r,   r   ru   r/   r   r   r    test_setitem_period_d_dtype  s    
z0TestDataFrameSetItem.test_setitem_period_d_dtype)f8i8u8c                 C   sp   t g d|d}ttjdd|d}g d|d< t g dtd}|d	kr^t g d
td}t|j	| d S )NrH   r8   r&   )r(   r(   rY   rM   F)r#   r&   r(   Fr   )r   r   r   F)
r   r
   r9   r:   r;   rE   objectr+   r   rZ   )r,   r1   colsr.   Zexpected_colsr   r   r    $test_setitem_bool_with_numeric_index  s    z9TestDataFrameSetItem.test_setitem_bool_with_numeric_indexindexerrD   c                 C   sb   t ddgd}t dddgi}|||< t tjgd ddgd}|d d|d< t|| d S )NrC   rD   rY   r#   r&   rC   rD   r   )r
   r9   nanrq   r+   rg   )r,   r   r.   otherr/   r   r   r    #test_setitem_frame_length_0_str_key  s    z8TestDataFrameSetItem.test_setitem_frame_length_0_str_keyc              	   C   s   g dd }t td|d}d|jd< d|jd d df< d	|d
< t g dtjddtjddgtjddtjddggdd}|d tj|d< |d tj|d< ||_t	|| d S )Nrw   r&   r(   rl   )r   r(   )r   rC   )r#   rW   rD   r&   rd   rx   )r   r#   r&   r(   rW   rd   r#   rW   rd   r   r8   )
r
   re   r   r9   r   rq   r3   rZ   r+   rg   )r,   r   r.   r/   r   r   r    $test_setitem_frame_duplicate_columns  s     

z9TestDataFrameSetItem.test_setitem_frame_duplicate_columnsc                 C   s   g dd }t td|d}tjtdd d|dg< W d    n1 sJ0    Y  |jd d d df }tjtdd d|dg< W d    n1 s0    Y  d S )	Nrw   r&   r(   rl   "Columns must be same length as keyrU   )r   r(   rd   rC   )r
   re   r\   r]   r^   r   )r,   r   r.   r   r   r   r    2test_setitem_frame_duplicate_columns_size_mismatch  s    (zGTestDataFrameSetItem.test_setitem_frame_duplicate_columns_size_mismatchr   rM   )r"   r"   r"   c                 C   sf   t g dg|d}t ddggddgd}d}tjt|d ||d	< W d    n1 sX0    Y  d S )
NrH   rY   r7      rI   rJ   r   rU   r"   r
   r\   r]   r^   )r,   r   r.   rhsrb   r   r   r    #test_setitem_df_wrong_column_number  s
    z8TestDataFrameSetItem.test_setitem_df_wrong_column_numberc                 C   s   t g dgg dd}t g dgg dd}||ddg< t g dgg dd}t|| ||ddg< t g dgg d	d}t|| d S )
NrH   r"   r'   r'   rY   r7   r      r"   r'   r)   )r7   r   r   r7   )r"   r'   r'   r)   r   r,   r.   r   r/   r   r   r    /test_setitem_listlike_indexer_duplicate_columns  s    zDTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columnsc                 C   sn   t g dgg dd}t ddggddgd}d}tjt|d	 ||ddg< W d    n1 s`0    Y  d S )
NrH   r   rY   r7   r   r"   r'   r   rU   r   )r,   r.   r   rb   r   r   r    @test_setitem_listlike_indexer_duplicate_columns_not_equal_length  s
    zUTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columns_not_equal_lengthc                 C   s  t dtdi}t|d d}t|jjts0J ||d< t||d< |j	|d< t|j	|d< |
t|d< t|d jtsJ t|d jjjtsJ t|d jtsJ t|d jjjtsJ t|d jtsJ t|d jtsJ t|d sJ d	d
 }t||j||j tj||j||jdd tj||j||jdd tj||j||jdd t|d |d  tj|d |d dd t|d |d  tj|d |d dd d S )NrC   r7   rd   rD   rx   r   EFc                 S   s   t t| S N)r   r9   r>   rm   r   r   r    <lambda>      z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>Fr   )r
   re   r   r   r   
categoriesr   r9   r>   rF   rq   r   r1   r   r   r   r+   r   rD   rx   r   rs   )r,   r.   ra   r)   r   r   r    test_setitem_intervals  s0    
z+TestDataFrameSetItem.test_setitem_intervalsc                 C   s\   t dttddi}|jjddg|_t dtddgddgi}t	|| d S )NrQ   Zmncategoryr   r   )
r
   r   listrq   rQ   r   Zreorder_categoriesr	   r+   rg   r   r   r   r    test_setitem_categorical  s    z-TestDataFrameSetItem.test_setitem_categoricalc                 C   sD   t g dd}tdg|d}g |d< tdg|d}t|j|j d S )Nr   rO   rC   rZ   r%   )r   r
   r+   r   r%   )r,   r%   ru   r/   r   r   r     test_setitem_with_empty_listlike#  s
    z5TestDataFrameSetItem.test_setitem_with_empty_listlikezcols, values, expected)rx   r   r   r"   r#   r&   r(   rW   rW   )r   rx   r   r"   )rx   rD   rD   r"   )rx   rD   r"   rH   r(   )rD   rx   r"   )r(   r&   r#   r#   )rx   r"   rD   r&   c                 C   s8   t |g|d}|d |d< |d jd }||ks4J d S )NrY   r"   r   )r
   rF   )r,   r   rF   r/   r.   ru   r   r   r    test_setitem_same_column+  s    z-TestDataFrameSetItem.test_setitem_same_columnc                 C   s8  g dddgg df}t |}tddd}tjdd	d
t|t|f}t|||d}|j	j
 |d d d   }}tjd| |d j|d d df |d< t|d |d  tjd| |d j||f |d< t|d |d  tjd| |d j||f |d< t|d |d  d S )N)jimjoejoliefirstlast)r   centerr   Z20141006   )r   r&   r#   i  r  r  r  )r  r
  )r  r	  )r  r	  )r  r
  )r   Zfrom_productr   r9   r:   r;   r<   r=   r
   r%   rF   r   shuffler   r+   rg   )r,   itr   r%   r   r.   rR   rS   r   r   r    test_setitem_multi_index=  s    
"z-TestDataFrameSetItem.test_setitem_multi_indexzcolumns,box,expected)rC   rD   rx   r      )r  r  r  r  rY   rx   r      )r#   r&   r  r  )r(   rW   r  r  rd      r  r  rw   )r  r  r   r8   )rD   rx   r   r   )         )r#   r  r  r   )r(   r7   r   r   )rd   r  r  r  )rx   rC   r   )r  r&   r  r   )r   rW   r7   r   )r  r  r  r  rC   r   r7   r   r   )r  r&   r  )r   rW   r7   )r   r  r   c                 C   s:   t ddgddgddggddgd	}|||< t|| d S )
Nr#   r&   r(   rW   rd   r  rC   rD   rY   r   )r,   rZ   boxr/   r.   r   r   r    !test_setitem_list_missing_columnsU  s    3"z6TestDataFrameSetItem.test_setitem_list_missing_columnsc                 C   sF   t t|d |d }||d< |d }t||jdd}t|| d S )NrC   rD   tuplesrT   )r   zipr   r%   r+   rs   )r,   r@   r  ru   r/   r   r   r    test_setitem_list_of_tuples  s
    z0TestDataFrameSetItem.test_setitem_list_of_tuplesc                 C   sT   t g dg dd}dd dD }d|j|< t g dg d	d}t|| d S )
NrH   rW   rd   r  r   c                 s   s   | ]
}|V  qd S r   r   r   rm   r   r   r    	<genexpr>  r   zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>r   r#   r   rW   r#   r#   r
   r   r+   rg   r,   r.   r   r/   r   r   r    test_setitem_iloc_generator  s
    
z0TestDataFrameSetItem.test_setitem_iloc_generatorc                 C   sX   t g dg dd}dd dD }d|j|df< t g dg dd}t|| d S )	NrH   r  r   c                 s   s   | ]
}|V  qd S r   r   r  r   r   r    r    r   zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>r   r#   r   r!  r"  r   r   r    +test_setitem_iloc_two_dimensional_generator  s
    z@TestDataFrameSetItem.test_setitem_iloc_two_dimensional_generatorc                 C   s   t ddd}t|d}t d|tjd|d< t d|dd|d< t d	|dd|d	< t d
|tjd|d
< |j}t tjtttjgtdd}t	|| d S )Nr   ZS24)r?   r1   r$   r"   )r?   r%   r1   r'   ZS64r)   rI   abcd)
r   r
   r9   r4   Zuint8rr   r   r   r+   rs   )r,   r%   r.   ru   r/   r   r   r    (test_setitem_dtypes_bytes_type_to_object  s    
z=TestDataFrameSetItem.test_setitem_dtypes_bytes_type_to_objectc                 C   s   t ddgddgdddd}td|jd	}|d
 |j|d
f< |d |j|df< t ddgddgdddd}t|| d S )Nr(   rW   rd   r  r   r3   Int64Fr$   r"   r'   )r
   rq   r   r%   r   r+   rg   )r,   ru   maskr/   r   r   r     test_boolean_mask_nullable_int64  s    z5TestDataFrameSetItem.test_boolean_mask_nullable_int64c                 C   sH   t dddgi}tddgdd|d< t dddgidd}t|| d S )Nr"   r#   r&   r'  r8   r   r   r   r   r     test_setitem_ea_dtype_rhs_series  s    z5TestDataFrameSetItem.test_setitem_ea_dtype_rhs_seriesc                 C   s   t tdtddtdd}td}t tdd}||d< tt t||d< W d    n1 st0    Y  t|| d S )Nr7   )np-array	np-matrixr$   )r7   r#   r+  r,  )	r
   r9   onesro   r+   assert_produces_warningPendingDeprecationWarningmatrixrg   )r,   r/   r"   r.   r   r   r    test_setitem_npmatrix_2d  s    
,z-TestDataFrameSetItem.test_setitem_npmatrix_2dr   rI   r"   c                 C   s   t ddgddgd|}ddd|jd d d	f< d
dd|jd d df< dd
i|jd d df< t ddgddgd|d
dgtjd
gd}t|| d S )Nr#   r&   r(   rW   r   r      )r#   r   r"   rd   r  r   r#   r)   rJ   )r)   rJ   )r
   r   r9   r   r+   rg   )r,   r   r.   r/   r   r   r    %test_setitem_aligning_dict_with_index  s    (z:TestDataFrameSetItem.test_setitem_aligning_dict_with_indexc                 C   s   t dddgi}t dddgiddgd|d< t dtjdgi}t|| t dddgi}|dt dddgiddgd t|| d S )Nr"   r#   r&   r7   r   r$   r   )r
   r9   r   r+   rg   Zisetitemr   r   r   r    test_setitem_rhs_dataframe  s     z/TestDataFrameSetItem.test_setitem_rhs_dataframec                 C   sb   t ddgddgddggd}t ddd	gi|d
|d< t tdd	g|d
ddgd}t|| d S )Nr"   r'   r#   r&   r(   rW   rZ   r-   r7   r   r8   r   r   r,   Zany_numeric_ea_dtyper.   r/   r   r   r    *test_setitem_frame_overwrite_with_ea_dtype  s    z?TestDataFrameSetItem.test_setitem_frame_overwrite_with_ea_dtypec                 C   s   t d tdddgi}tdd$ tddgtd|d< W d    n1 sP0    Y  tddgtddgtdd	}t	|| d S )
NZpyarrowr"   r#   r&   zfuture.infer_stringTr'   r8   r   )
r\   Zimportorskipr
   pdZoption_contextr   r   r   r+   rg   r   r   r   r    'test_setitem_string_option_object_index  s    
2z<TestDataFrameSetItem.test_setitem_string_option_object_indexc                 C   s8   t ddgi}| }d}||g ||< t|| d S )Nr   r7   r
   r   r+   rg   )r,   r.   r/   Zcol_namer   r   r    test_setitem_frame_midx_columns  s
    z4TestDataFrameSetItem.test_setitem_frame_midx_columnsc                 C   s   t dtjdgddi}tdgdd|jd d df< t dtjdgddi}t|| t dtjdgddi}tdgdd|jd d df< t|| d S )Nr"   r7   r   r8   r   r'  r   )r
   r9   r>   r   r   r+   rg   r   r   r   r   r    test_loc_setitem_ea_dtype
  s    z.TestDataFrameSetItem.test_loc_setitem_ea_dtypec                 C   s   t tdgtd}tddgi}tjtdd" ||jd d df< W d    n1 sV0    Y  tjtdd ||d< W d    n1 s0    Y  tdgttdgd	dttdgd	dd
}t	|| d S )Nz
2019-12-31r8   r"   r#   ZinferrU   r'   r)   r   rM   )
r   r   r   r
   r+   r.  FutureWarningr   r   rg   )r,   r   r.   r/   r   r   r    test_setitem_object_inferring  s    0&z2TestDataFrameSetItem.test_setitem_object_inferringN)Fr   r   r   r0   r\   markparametrizerB   rG   rc   rj   rv   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ea_registryrr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r
   r9   r>   r3   r  r  r#  r$  r&  r)  r*  tdZ&skip_array_manager_not_yet_implementedr1  r4  r5  r8  r:  r<  r=  r?  r   r   r   r    r   *   s  
%
	



	



"

	
,	
		 	 	 1


	r   c                   @   s@   e Zd Zejdd Zejdd Zdd Zdd Zd	d
 Z	dS )TestSetitemTZAwareValuesc                 C   s   t ddgdd}|d}|S )Nz2013-1-1 13:00z2013-1-2 14:00rD   rO   z
US/Pacific)r   tz_localize)r,   Znaiver   r   r   r    r   )  s    
zTestSetitemTZAwareValues.idxc                 C   s.   t tj| dddd}|j|jks*J |S )Nr   r8   rD   rO   )r   r9   r>   tolistr1   )r,   r   r/   r   r   r    r/   /  s    z!TestSetitemTZAwareValues.expectedc                 C   sp   t tjdddgd}||d< |jddgdjd |d< |d }t|d		d dd
}t
|| d S )Nr&   r&   r#   rC   rY   rD   r   r#   r$   r   rO   )r
   r9   r:   r;   rE   Z	to_seriesdtZ
tz_convertr   rE  r+   rs   )r,   r   r/   r.   ru   compr   r   r    test_setitem_dt64series5  s    z0TestSetitemTZAwareValues.test_setitem_dt64seriesc                 C   s<   t tjdddgd}||d< |d }t|| d S Nr&   rG  rC   rY   rD   )r
   r9   r:   r;   rE   r+   rs   r,   r   r/   r.   ru   r   r   r    test_setitem_datetimeindex?  s    z3TestSetitemTZAwareValues.test_setitem_datetimeindexc                 C   s@   t tjdddgd}| |d< |d }t|| d S rK  )r
   r9   r:   r;   rE   Zto_pydatetimer+   rs   rL  r   r   r    .test_setitem_object_array_of_tzaware_datetimesH  s    zGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesN)
r   r   r   r\   Zfixturer   r/   rJ  rM  rN  r   r   r   r    rD  (  s   


	rD  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	dd Z
dd Zdd ZdS )!TestDataFrameSetItemWithExpansionc                 C   s   t g dg dd}|d }tddgddgdd	gg|d
dg< t| d|jd< W d    n1 sl0    Y  |rtg ddd}ntg ddd}t|| d S )NrH   )rW   rW   r  r   r"   g?g?g333333?g?      ?r)   rI   r   )r   r   rO   )r   r&   r(   )r
   r9   r>   r+   Zassert_cow_warningr   r   rs   )r,   r   warn_copy_on_writer.   ra   r/   r   r   r    test_setitem_listlike_viewsS  s    $(z=TestDataFrameSetItemWithExpansion.test_setitem_listlike_viewsc                 C   sL   t ddgddgg}ddg|d< t g dg d	gg d
d}t|| d S )Nr#   r&   r(   rW   rd   r  0 - Name)r#   r&   rd   )r(   rW   r  )r   r#   rS  rY   r   r   r   r   r    .test_setitem_string_column_numpy_dtype_raisingg  s    zPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raisingc                 C   sb   t g ddd}ttd|jd d df< t dtjtjgdtjtjggg dd}t|| d S )	Nr   r6   rZ   r1   r&   r"   r   r#   rY   )r
   r   re   r   r9   r   r+   rg   )r,   r   r.   r/   r   r   r    'test_setitem_empty_df_duplicate_columnsn  s     zITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columnsc           	      C   s2  t dtjtjddddddi}tdd	 tddd
D }|jdgdd}t	|j
tddd
d|d}|j}||d< |j}ttdt|ddgddgd}t|| ||d< |j}ttdt|ddt|ddgg dd}t|| |d }|d }t|jj| d|_t| |  d S )Nvaluer&   r   i'  r   r2   r8   c                 S   s   g | ]}| d |d  qS )z - i  r   r   rR   r   r   r    r     r   zcTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype.<locals>.<listcomp>i  T)ZbyZ	ascendingi)  F)r   labelsr   )r   orderedr$   r   )rW  r   r   )r
   r9   r>   r:   r;   r<   r	   re   sort_valuesr   rW  rF   rr   r   r1   r   r+   rs   Zassert_categorical_equalr   r?   Z
sort_index)	r,   r.   rY  ra   r   ru   r/   Zresult1Zresult2r   r   r    -test_setitem_with_expansion_categorical_dtypew  s@    

zOTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtypec                 C   s2   t  }d|d< t dgdtj}t|| d S )Nr#   rN   rY   )r
   rq   r9   r3   r+   rg   r   r   r   r    test_setitem_scalars_no_index  s    z?TestDataFrameSetItemWithExpansion.test_setitem_scalars_no_indexc                 C   sL   d|j vsJ |d |d< d|j v s(J |d }|d }tj||dd d S )Nr   rC   Fr   )rZ   r+   rs   )r,   r@   ru   r/   r   r   r    test_setitem_newcol_tuple_key  s    z?TestDataFrameSetItemWithExpansion.test_setitem_newcol_tuple_keyc                 C   sX   t ddt d}t|tdd}tddd}t|}tj||< t|| 	 sTJ d S )	Nz1/1/2012z2/1/2012)startendr   r7   r  i  r   r#   )
r   r   r
   re   r   r   r9   r   isnanr   )r,   rZ   r-   ttsr   r   r    #test_frame_setitem_newcol_timestamp  s    
zETestDataFrameSetItemWithExpansion.test_frame_setitem_newcol_timestampc                 C   sh   t dddgi}|j|d< d|jddgdf< |jdgd d f }t dgdgddgd}t|| d S )	Nr"   r'   r   FTr#   r   r$   )r
   r%   r   r+   rg   rt   r   r   r    *test_frame_setitem_rangeindex_into_new_col  s    
zLTestDataFrameSetItemWithExpansion.test_frame_setitem_rangeindex_into_new_colc                 C   sh   t ddgddgddggd}t ddd	gi|d
|d< t ddgddgtdd	g|d
d}t|| d S )Nr"   r'   r#   r&   r(   rW   r6  r7   r   r8   r)   rM   r   r7  r   r   r     test_setitem_frame_keep_ea_dtype  s    zBTestDataFrameSetItemWithExpansion.test_setitem_frame_keep_ea_dtypec                 C   sp   t tdd}tjdddtjddddd|jd	< t td
tddggtd	gg dd}t|| d S )NabcrY   rd   r   )r   H   Z23rM   r   z0 days 00:00:05z0 days 00:01:12rl   )	r
   r   r9  Zto_timedeltar   Z	Timedeltar   r+   rg   )r,   ru   r/   r   r   r    &test_loc_expansion_with_timedelta_type  s    zHTestDataFrameSetItemWithExpansion.test_loc_expansion_with_timedelta_typeN)r   r   r   rR  rT  rV  r\  r]  r^  rd  re  rf  ri  r   r   r   r    rO  R  s   	-		rO  c                   @   s   e Zd Zdd Zejdejej	gejde
ejeejgejdg ddd Zejde
ejeejgejdg dd	d
 Zejdejej	gejde
ejeejgejdg ddd ZdS )TestDataFrameSetItemSlicingc                 C   sH   t td}d|dd < td}d|dd < t |}t|| d S )N)r   r#   r#   )r
   r9   zerosr+   rg   r   r   r   r    test_setitem_slice_position  s    
z7TestDataFrameSetItemSlicing.test_setitem_slice_positionr   r  r   rH   c                 C   sp   t g dgg dg|  g dd}|g d||dd < t g dgg dg|  g dd}t|| d S Nr   r&   rW   r  rM   rY   r   r#   r   r,   r   r  r   r.   r/   r   r   r    +test_setitem_slice_indexer_broadcasting_rhs  s    $$zGTestDataFrameSetItemSlicing.test_setitem_slice_indexer_broadcasting_rhsc                 C   sx   t g dgg dg|  g dd}|g d|jttd|d < t g dgg dg|  g dd}t|| d S rn  )r
   r   r   re   r+   rg   )r,   r   r  r.   r/   r   r   r    *test_setitem_list_indexer_broadcasting_rhs  s    $ $zFTestDataFrameSetItemSlicing.test_setitem_list_indexer_broadcasting_rhsc                 C   s|   t g dg dgg dg|  g dd}|g d||dd < t g dgg dg|d   g ddd	}t|| d S )
Nr   rz   ro  rM   rY   r   r#   r   rU  r   rp  r   r   r    0test_setitem_slice_broadcasting_rhs_mixed_dtypes  s    "zLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypesN)r   r   r   rm  r\   r@  rA  r+   setitemr   r   r9   r>   r   r9  rq  rr  rs  r   r   r   r    rj    s   	rj  c                   @   s   e Zd Zdd Zdd ZdS )TestDataFrameSetItemCallablec                 C   sL   t g dg dd}g d|dd < t g dg dd}t|| d S )Nr  r  r   )r   r   r  r  c                 S   s   dS )NrC   r   r   r   r   r    r     r   zDTestDataFrameSetItemCallable.test_setitem_callable.<locals>.<lambda>r   r|   r   r   r    test_setitem_callable  s    z2TestDataFrameSetItemCallable.test_setitem_callablec                 C   sP   dd }t ddgddggtd}|||dk< t d|g|dgg}t|| d S )Nc                 S   s   | d S )Nr#   r   r   r   r   r    inc  s    zETestDataFrameSetItemCallable.test_setitem_other_callable.<locals>.incr  r#   r8   r   )r
   r   r+   rg   )r,   rw  r.   r/   r   r   r    test_setitem_other_callable  s
    z8TestDataFrameSetItemCallable.test_setitem_other_callableN)r   r   r   rv  rx  r   r   r   r    ru    s   ru  c                   @   s   e Zd Zejejjddd dd gddgddd	 Zejj	d
dejde
ejegdd Zejde
ejegdd Zejdejejgdd Zdd Zejdddgejdi ddgiddgigdd Zd d! Zd"d# Zd$d% Zd&S )'TestDataFrameSetItemBooleanMask	mask_typec                 C   s   | t | d kS Nr&   )r9   absr.   r   r   r    r   -  r   z(TestDataFrameSetItemBooleanMask.<lambda>c                 C   s   | t | d kjS r{  )r9   r|  rF   r}  r   r   r    r   -  r   Z	dataframer>   )Zidsc                 C   s^   |  }||}|  }tj||< |j  }tj|t|< t||j|jd}t	|| d S )Nrl   )
r   r9   r   rF   r>   r
   r%   rZ   r+   rg   )r,   rz  r@   r.   r(  ru   r/   r   r   r    test_setitem_boolean_mask*  s    

z9TestDataFrameSetItemBooleanMask.test_setitem_boolean_maskz1Currently empty indexers are treated as all False)reasonr  c                 C   s|   t dgdgdgd}|tkr,|g dd}n|g }d}tjt|d" dg|j|dgf< W d    n1 sn0    Y  d S )	Nr"   r#   rM   r   r8   z@Must have equal len keys and value when setting with an iterablerU   r'   )r
   r   r\   r]   r^   r   )r,   r  r.   r   rb   r   r   r    :test_setitem_loc_empty_indexer_raises_with_non_empty_value>  s    zZTestDataFrameSetItemBooleanMask.test_setitem_loc_empty_indexer_raises_with_non_empty_valuec                 C   sz   t dgdgdgd}|dg}d|d  |j|dgf< t dgdgdgd}t|| d|j|dgf< t|| d S )	Nr"   r#   rM   Fr7   r)   r'   r   )r
   r   r+   rg   )r,   r  r.   r   r/   r   r   r    1test_setitem_loc_only_false_indexer_dtype_changedK  s    
zQTestDataFrameSetItemBooleanMask.test_setitem_loc_only_false_indexer_dtype_changedr   c                 C   sT   t g dg dd}| }|d dk}||| d|||< t|| d S )N)r#   rW   r&   r(   r  r   r"   r(   )r
   r   r[  r+   rg   )r,   r   r.   r/   r(  r   r   r    "test_setitem_boolean_mask_aligningY  s
    zBTestDataFrameSetItemBooleanMask.test_setitem_boolean_mask_aligningc                 C   s   t g dddgd}tg d}g d}t||d|d}t g d	g d
d}tg d}g d}t||d|d}| }	|	d jg d
|	d< |d dk}
ddg||
< t||	 d S )N)r"   r"   r'   r'   r"   r"   r"   r"   r'   )r   )rQ   rR   rS   klr   r   )r#   r#   r&   r&   r#   r#   r#   )catsrF   r$   )r"   r"   r)   r)   r"   r"   r"   rM   )r#   r#   r(   r(   r#   r#   r#   r  r)   r&   )r	   r   r
   r   r   Zset_categoriesr+   rg   )r,   Zcats2Zidx2Zvalues2Zexp_multi_rowZcatsfZidxfZvaluesfr.   Z	exp_fancyr(  r   r   r    test_setitem_mask_categoricalb  s    z=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalr1   r   r3   kwargsr%   r#   rZ   rC   c                 C   s:   ||d< t f i |}| }d|||k< t|| d S )Nr1   /   r;  )r,   r1   r  r.   r   r   r   r    %test_setitem_empty_frame_with_booleany  s
    zETestDataFrameSetItemBooleanMask.test_setitem_empty_frame_with_booleanc                 C   s   t td}g d}t||tjg dg dg dgtdd}t||tt|t|fd}t||tjg dg dg d	gtdd}d
||d| k< t	|| t
jtdd& d
||jd d
 dk< W d    n1 s0    Y  d S )Nr(   rw   )        rP  r   )      ?r         @)r         @      @r8   )r%   rZ   r-   )r  r   r  )r  r  r  r  r   zItem wrong lengthrU   r&   )r   re   r
   r9   r>   r   r-  r=   r+   rg   r\   r]   r^   r%   )r,   r   r   Zdf1r   r/   r   r   r    test_setitem_boolean_indexing  s&     z=TestDataFrameSetItemBooleanMask.test_setitem_boolean_indexingc                 C   sd   t ddgddgdd}| }tddgdd	}t d
ddgiddgd|j|d
gf< t|| d S )Nr#   r&   r(   rW   r"   rM   Fr)   rO   r'   rd   r  r   r$   )r
   r   r   r   r+   rg   )r,   r.   r/   r   r   r   r    -test_loc_setitem_all_false_boolean_two_blocks  s
    $zMTestDataFrameSetItemBooleanMask.test_loc_setitem_all_false_boolean_two_blocksc                 C   sh   t ddgddgg}t ddgddgg}t tddgdd	ttjdgdd	d
}d||< t|| d S )Nr  r&   r(   rk  r   TFbooleanr8   r3  )r
   r   r9  ZNAr+   rg   )r,   r.   r/   Zboolean_indexerr   r   r    test_setitem_ea_boolean_mask  s    z<TestDataFrameSetItemBooleanMask.test_setitem_ea_boolean_maskN)r   r   r   rC  skip_array_manager_invalid_testr\   r@  rA  r~  xfailr   r9   r>   r   r  r  r+   rt  r   r  r  r  r  r  r  r   r   r   r    ry  )  s*   

	ry  c                   @   s8  e Zd Zdd Zejdddgdd Zdd	 Zejd
de	j
dgdggdddgdgggdd Zejd
de	
dgdggdgdgggdd Zejdddgejddgejjddddgejdddededfdgdd Zejd d! Zd"d# Zejd$dd%gd&d' Zd(d) Zd*d+ Zd,S )-%TestDataFrameSetitemCopyViewSemanticsc                 C   sZ   d|j vsJ |d  }||d< tj|jdd|j df< t|dd  sVJ d S )Nr   rC   rd   r7   )rZ   r   r9   r   r   Zget_locr   r   )r,   r@   r   r   r   r    test_setitem_always_copy  s
    z>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copyconsolidateTFc                 C   s   t g dg ddg dd}|ddtj |sh|rT|  t|jjdkshJ nt|jjdkshJ |d j}d	|j	dd df< t
tjtjd	d	g|jdd
}t|d | |st||j t||d jsJ d S )N)g?g @g@gffffff@)gffffff@gffffff@gffffff@g333333 @)rm   rn   )r   r#   r&   r(   r$   r&   r{   r#   *   rT   )r
   rp   r9   r   Z_consolidate_inplacer=   r   blocksZ_valuesr   r   r%   r+   rs   r   rF   Zshares_memory)r,   r  using_array_managerr   r.   Zzvalsr/   r   r   r    #test_setitem_partial_column_inplace  s     	
zITestDataFrameSetitemCopyViewSemantics.test_setitem_partial_column_inplacec                 C   sf   ddgd }t ddg|d}| }|d d  }d|d< t g dg|d	}t|| t|| d S )
NrC   rD   r&   r  r   rl   r   )r  r&   r  rd   rY   r;  )r,   r   r.   df_copydf_viewr/   r   r   r    *test_setitem_duplicate_columns_not_inplace  s    zPTestDataFrameSetitemCopyViewSemantics.test_setitem_duplicate_columns_not_inplacerW  r#   r3   r8   c                 C   sl   ddg}t dddg|d}| }|d d  }||dg< t ddgddgg|d}t|| t|| d S )NrC   rD   r   r#   rl   rY   r;  )r,   rW  r  r   r.   r  r  r/   r   r   r    #test_setitem_same_dtype_not_inplace  s    
zITestDataFrameSetitemCopyViewSemantics.test_setitem_same_dtype_not_inplacer   c                 C   sl   ddg}t dddg|d}| }|d d  }||dg< t ddgddgg|d}t|| t|| d S )NrC   rD   r   r#   rl   r   rY   r;  )r,   rW  r   r.   r  r  r/   r   r   r    2test_setitem_listlike_key_scalar_value_not_inplace  s    
zXTestDataFrameSetitemCopyViewSemantics.test_setitem_listlike_key_scalar_value_not_inplacer   r"   z+Boolean indexer incorrectly setting inplace)r  strict)Zmarkszvalue, set_value)r#   rd   )r   g      @z
2020-12-31z
2021-12-31r   c                 C   s@   t d|iddgd}| }|d d  }|||< t|| d S )Nr"   r   r#   r$   r;  )r,   rW  	set_valuer   r.   r/   r   r   r   r    "test_setitem_not_operating_inplace  s
    zHTestDataFrameSetitemCopyViewSemantics.test_setitem_not_operating_inplacec                    s   dd t dD  t fdd D  d}|jjd j}t ( |jD ]}d|| |< qJW d    n1 sp0    Y  |st	|t
dt
df dksJ n&t	|t
dt
df dksJ d S )	Nc                 S   s   g | ]}d | qS )r)   r   rX  r   r   r    r   '  r   z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<listcomp>r7   c                    s   i | ]}|t t qS r   )r9   rl  r=   )r   colrY  r   r    
<dictcomp>(  r   z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<dictcomp>r$   r   r#   )re   r
   r   r  rF   r+   Zraises_chained_assignment_errorrZ   r9   r   ro   )r,   r   rQ  r.   rF   labelr   r  r    "test_setitem_column_update_inplace!  s    

,(zHTestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplacec                 C   s\   t g d}t g ddd|d< tg ddd|d< tg dg dtd}t|j| d S )	NrH   r   r8   col1col2)r3   r   r   )r   r  r  )r%   r1   )r
   r   r   r+   rs   rr   )r,   r.   Zexpected_typesr   r   r    %test_setitem_column_frame_as_category5  s    zKTestDataFrameSetitemCopyViewSemantics.test_setitem_column_frame_as_categoryr1   r'  c                 C   sb   t dtdi|d}tdgg|jtdgtdgf< t dg di|d}t|| d S )Nr"   r(   r8   r&   r   )r&   r#   r#   )r
   r9   r-  r>   r   r+   rg   )r,   r1   r.   r/   r   r   r    "test_setitem_iloc_with_numpy_array@  s    (zHTestDataFrameSetitemCopyViewSemantics.test_setitem_iloc_with_numpy_arrayc                 C   s   t g dg dgg dd}t ddgddggd	d	gd}||d	< t g d
g dgg dd}t|| t g dg dgg dd}t ddgddggd	d	gd}||d	< t g dg dgg dd}t|| d S )Nr  )rW   rd   r  r  )r"   r'   r"   r)   rY   r   r  r&   r  r"   )r   r&   r  rW   )r&   rd   r  r  rH   r  )r"   r"   r'   )r   r  r(   )r&   r  r  r   r   r   r   r    !test_setitem_frame_dup_cols_dtypeI  s    zGTestDataFrameSetitemCopyViewSemantics.test_setitem_frame_dup_cols_dtypec                 C   sl   t dgddd}td|id}|dd  }d |d< d |d< tg ddg|d d d}t|| d S )	Nz
2000-01-01r   date)r1   r?   r   Z3010Z2010r  )r   r
   r   r   r+   rg   )r,   Zdtir.   r/   r   r   r    "test_frame_setitem_empty_dataframeY  s    
zHTestDataFrameSetitemCopyViewSemantics.test_frame_setitem_empty_dataframeN)r   r   r   r  r\   r@  rA  r  r  r9   r>   r  r  paramr  r   r  rC  r  r  r  r  r  r  r   r   r   r    r    sN   
$
(
	

r  c                  C   s&  t dddgi} tjtdd" d| jd d df< W d    n1 sF0    Y  t dddgi}t| | t dddgi} tjtdd( ddd	| jd d df< W d    n1 s0    Y  t dddgi}t| | t dddgi} d
dd	| jd d df< t dd
dgi}t| | d S )Nr"   r#   r&   zincompatible dtyperU   Tr  g      @r3  r(   rW   )r
   r+   r.  r>  r   rg   r.   r/   r   r   r    'test_full_setter_loc_incompatible_dtypej  s    06r  c                  C   sl   t g dg dd} d| j| jdkddgf< t g dg dddtd	gd
d
td	gd}t| | d S )NrH   )r  rd   r  r   )r#   rg  r#   r   Gr   r   rg  )rC   rD   r   r  )r
   r   r%   r   r+   rg   r  r   r   r    )test_setitem_partial_row_multiple_columns~  s    r  )4r   numpyr9   r\   Zpandas.util._test_decoratorsutilZ_test_decoratorsrC  Zpandas.core.dtypes.baser   rB  Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.dtypesr   r   r   r   Zpandasr9  r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr+   Zpandas.core.arraysr   Zpandas.tseries.offsetsr   r   rD  rO  rj  ru  ry  r  r  r  r   r   r   r    <module>   s:   H      * . 	 :