
    Pi)                        d dl m Z  d dlZd dlZd dlmZ d dlmZ d dl	m
Z
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
          Z' G d d          Z( G d d          Z) G d d          Z* G d d          Z+ G d d          Z, G d d          Z-d Z.d Z/d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                   v   e Zd Zd Zej                            dg d          d             Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zej                            d ed           ed          f edd           edd          f edd                              d           edd          fg          d             Zej                            d d! ej        D             d"d#gz             d$             Zd% Z ej                            d&g d'          d(             Z!ej                            d&g d'          d)             Z"d* Z#d+ Z$d, Z%d- Z&ej                            dg d.          d/             Z'ej                            d0d1d1gg          d2             Z(d3 Z)d4 Z*ej                            d5g d6g d7g          d8             Z+d9 Z,d: Z-d; Z.d< Z/d= Z0ej                            d>g d?g d@dAfg dBg d@dAfg dCg d@dAfg dDg dEdFfg dGg dHdIfg dJg dHdKfg          dL             Z1dM Z2ej                            dNg dOdP e3g dQg dQg dQgg dOR          fdSdTgdPdUg e3g dVg dWg dXgg dOR          fg dY e4j5        g dZe4j6        [           e3g dZg dZg dZgg dYR          fg d\g dZg d]g d^g e3g d_g d`g dagg dOR          fg db e4j5        g dZg d]g d^ge4j6        [           e3g dcg ddg degg dOR          fdfdSg e3dPdUgdgdhgdidjggdfdSgR           e3g dkg dlg dmgg dYR          fg          dn             Z7do Z8dp Z9dq Z:dr Z;ds Z<dt Z=du Z>ej                            dvi dwdxig          dy             Z?dz Z@d{ ZAd| ZBd} ZCd~ ZDd ZEdS )TestDataFrameSetItemc           	          G d dt                     }dg}t          |          }t          ddgi|          }d|d<   d	| |d
          <   t          ddgddg |d
          d	gi|          }t          j        ||           d S )Nc                       e Zd ZdZdS )@TestDataFrameSetItem.test_setitem_str_subclass.<locals>.mystring N)__name__
__module____qualname__	__slots__r!       |/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_setitem.pymystringr    +   s        IIIr&   r(   z2020-10-22 01:21:00+00:00a   index   b   c)strr   r   tmassert_equal)selfr(   datar,   dfexpecteds         r'   test_setitem_str_subclassz.TestDataFrameSetItem.test_setitem_str_subclass)   s    	 	 	 	 	s 	 	 	 ,,d##aSz///388C==cA3aS((3--!EUSSS
H%%%%%r&   dtype)int32int64uint32uint64float32float64c                     t           j                            d                              ddt	          |                    }t          j        ||          ||<   ||         j        j        |k    sJ d S )Nr-   r*   
   r9   )nprandomdefault_rngintegerslenarrayr9   name)r4   r9   float_framearrs       r'   test_setitem_dtypez'TestDataFrameSetItem.test_setitem_dtype6   sn    
 i##A&&//2s;7G7GHHXc777E5!',555555r&   c                     t           j                            d                              t	          |          df          }||ddg<   t          j        |ddg         j        |           d S )Nr-   AB)rC   rD   rE   standard_normalrG   r2   assert_almost_equalvalues)r4   rJ   r5   s      r'   test_setitem_list_not_dataframez4TestDataFrameSetItem.test_setitem_list_not_dataframe@   se    y$$Q''77[9I9I18MNN"&S#J
{C:6=tDDDDDr&   c                    t          g dg ddt          g dd                    }t          g dt          g d	d          d
          }d}t          j        t
          |          5  ||d<   d d d            n# 1 swxY w Y   t          t          j                            d          	                    ddd          g d          }d}t          j        t
          |          5  |
                    ddg                                          |d<   d d d            n# 1 swxY w Y   d}t          j        t
          |          5  t                      |d<   d d d            d S # 1 swxY w Y   d S )Nr*   r-   r/   )def)barbazr)   r.   r0   foorI   r+   )ghij)r)   r.   r0   r)   fizr,   rI   z/cannot reindex on an axis with duplicate labelsmatchnewcolr-   r   )   rg   r)   r.   r0   rV   columnszDCannot set a DataFrame with multiple columns to the single column grr.   r0   grz7Cannot set a DataFrame without columns to the column gr)r   r   r   pytestraises
ValueErrorrC   rD   rE   rF   groupbycount)r4   r6   sermsgs       r'   test_setitem_error_msmgsz-TestDataFrameSetItem.test_setitem_error_msmgsE   sZ   IIooo66e444
 
 
    ,,,5999
 
 

 @]:S111 	 	BxL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 I!!!$$--aF;;(((
 
 

 U]:S111 	6 	6zz3*--3355BtH	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 H]:S111 	# 	# {{BtH	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s6   ,A>>BB+-D$$D(+D(E++E/2E/c                    d}d}t          t          |                    }t          j                            d                              |          }t          |          D ]}|||<   t          t          j        ||                              ||          t          |                    }t          j	        ||           d S )NrA      r+   r-   )
r   rangerC   rD   rE   rP   repeatreshaper2   assert_frame_equal)r4   NKr6   new_colr`   r7   s          r'   test_setitem_benchmarkz+TestDataFrameSetItem.test_setitem_benchmarkc   s    U1XX&&&)''**::1==q 	 	ABqEERYw22::1a@@aQQQ
b(+++++r&   c                 4   t          t          j                            d                              d          t          j        d          g d          }|                    dd|d                    |                    dd	|d
                    |d                             d          |d<   |j        }t          t          j
        d          gdz  t          j
        d          gz   g d          }t          j        ||           |d                             d          |d<   |j        }t          t          j
        d          gdz  t          j
        d          gdz  z   g d          }t          j        ||           |d                             d          |d<   |j        }t          t          j
        d          gdz  t          j
        d          gdz  z   t          j
        d          gz   g d          }t          j        ||           d S )Nr-   ru   r/   ru   )r0   r.   r)   r,   rj   r   r\   r)   rY   r0   r>   xr?   )r\   r0   rY   r.   r)   r   r+   rg   r:   y)r\   r0   rY   r.   r)   r   r   )r   rC   rD   rE   rP   arangeinsertastypedtypesr   r9   r2   assert_series_equalr4   r6   resultr7   s       r'   test_setitem_different_dtypez1TestDataFrameSetItem.test_setitem_different_dtypen   s   I!!!$$44V<<)A,,#OO
 
 

 			!UBsG$$$
		!UBsG$$$
 S'..++3Xi  !A%))<)<(==444
 
 
 	vx000 S'..++3Xi  !A%))<)<(=(AA444
 
 
 	vx000S'..))3Xi  !A%))<)<(=(AARXgEVEVDWW999
 
 
 	vx00000r&   c                     t          g d          }|j        |d<   g d|d<   t          dg dig ddg          }t          j        ||           d S )NrN   rO   Cr+   Xr   r   z)r5   r,   rj   )r   r,   r2   ry   r4   r6   exps      r'   test_setitem_overwrite_indexz1TestDataFrameSetItem.test_setitem_overwrite_index   su     ___---(3!//3'
 
 
 	b#&&&&&r&   c                    t                      }g d|d<   t          dg di          }t          j        ||           t          t          g                     }g d|d<   t          dg di          }t          j        ||           d S )NrU   r\   ri   )r   r2   ry   r   r4   r6   r7   s      r'   test_setitem_empty_columnsz/TestDataFrameSetItem.test_setitem_empty_columns   s    
 [[II5	eYYY/00
b(+++uRyy)))II5	eYYY/00
b(+++++r&   c                     t          dddd          }t          t          j        t	          |                              }||d<   |d         j        t          j        d          k    sJ d S )	Nz1/1/2000 00:00:00z1/1/2000 1:59:5010sns)frequnitr+   rN   M8[ns])r   r   rC   r   rG   r9   )r4   rngr6   s      r'   %test_setitem_dt64_index_empty_columnsz:TestDataFrameSetItem.test_setitem_dt64_index_empty_columns   sk    ,.@uSWXXXRYs3xx001113#w} 2 2222222r&   c                     t          t          d                    }t          dd          |d<   t          t          dd          ggdz  t          d          dg          }t          j        ||           d S )Nr/   r+   20130101UTCtznowr   )r   rv   r   r2   ry   r   s      r'   $test_setitem_timestamp_empty_columnsz9TestDataFrameSetItem.test_setitem_timestamp_empty_columns   s    U1XX&&&jU3335	
u---./!3588eW
 
 
 	b(+++++r&   c                 .   t          j        g dg d          }t          t          d          dg          }dt	          |           dt	          |           d}t          j        t          |	          5  ||d
<   d d d            d S # 1 swxY w Y   d S )N)r   r*   r*   r   r*   r-   r[   rA   rY   ri   zLength of values \(z$\) does not match length of index \(z\)rd   r\   )r
   
from_codesr   rv   rG   rl   rm   rn   )r4   catr6   rr   s       r'   2test_setitem_wrong_length_categorical_dtype_raiseszGTestDataFrameSetItem.test_setitem_wrong_length_categorical_dtype_raises   s    $%7%7%7IIuRyy5'222=3s88 = =14R= = = 	 ]:S111 	 	BuI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   7B

BBc                     t          g dg dd          }t          g d          }||d<   t          |d          }t          j        |d         |           d S )Nr[         ?       @      @c_1n_1r   r   r*   
new_columnr]   )r   r   r   r2   r   )r4   r6   sp_arrayr7   s       r'   test_setitem_with_sparse_valuez3TestDataFrameSetItem.test_setitem_with_sparse_value   sj    GGHHyyy))#<(666
r,/:::::r&   c                     t          g dg dd          }t          t          g d          g d          }||d<   t          t          g d          d	          }t          j        |d         |           d S )
Nr[   r   r   r   )r-   r*   r   r+   r   )r*   r   r   r]   )r   r   r   r2   r   )r4   r6   	sp_seriesr7   s       r'   (test_setitem_with_unaligned_sparse_valuez=TestDataFrameSetItem.test_setitem_with_unaligned_sparse_value   s    GGHH;yyy11CCC	$<+iii00|DDD
r,/:::::r&   c                     t          dd          g}t          g           }||d<   t          d|idg          }t          j        ||           d S )Nz2003-12Dr)   ri   )r   r   r2   ry   )r4   r5   r   r7   s       r'   #test_setitem_period_preserves_dtypez8TestDataFrameSetItem.test_setitem_period_preserves_dtype   sY    y#&&'2sc4[3%888
fh/////r&   c           	      |   t          t          g dd          t          g dt                    t          g dt                    t          g dd          d          }t          t          g d          t          g t                    t          g t                    t          g d          d          }t          g d          D ]X\  }}t	          |          t          |          t          |          t          j        |          d|j        |j        d         <   Yt          j
        ||           d S )N)r   r*   r-   r;   rB   rU   r<   rh   r   )r   r   float	enumerateintrC   r<   locshaper2   ry   )r4   r7   r6   idxr.   s        r'   "test_setitem_dict_preserves_dtypesz7TestDataFrameSetItem.test_setitem_dict_preserves_dtypes   sD   IIIW555IIIU333IIIU333IIIX666	 
 
 Bg...Be,,,Be,,,Bh///	 
 
  			** 	 	FCXX1XX1XXYq\\	# #BF28A; 	b(+++++r&   z	obj,dtypez2020-01Mr   ru   )leftrightr;   r   z
2011-01-01z
US/Easternr   s)r   r   c                     t          g dt          |gdz  |          d          }t          dg di          }||d<   t          j        ||           d S )NrU   r/   rB   )r   objr   r   r   r   r2   ry   )r4   r   r9   r7   r6   s        r'   test_setitem_extension_typesz1TestDataFrameSetItem.test_setitem_extension_types   sh     YYYvseaiu7U7U7UVVWWyyy)**5	
b(+++++r&   ea_namec                 P    g | ]#}t          |j        t                    |j        $S r!   )
isinstancerI   property).0r9   s     r'   
<listcomp>zTestDataFrameSetItem.<listcomp>  s<     	
 	
 	
ej(33		
J	
 	
 	
r&   zdatetime64[ns, UTC]	period[D]c                     t          dg          }dg||<   t          ddg|dgi          }t          j        ||           d S )Nr   r*   r   r2   ry   )r4   r   r   r7   s       r'   test_setitem_with_ea_namez.TestDataFrameSetItem.test_setitem_with_ea_name  sO     A3#wa!gs344
fh/////r&   c                    t          j        ddgd          }t          |                                          }||d<   t	          dd gdd gdd          }t          j        ||           t          j        ddgd          }||d<   t          j        |d         |d                    t          j        |d         	                                |           d S )	Nr*   natdatetime64[ns]rB   new)r   r   datetime64[s]r   )
rC   rH   r   to_framer   r2   ry   r   assert_numpy_array_equalto_numpy)r4   data_nsr   r7   data_ss        r'   6test_setitem_dt64_ndarray_with_NaT_and_diff_time_unitszKTestDataFrameSetItem.test_setitem_dt64_ndarray_with_NaT_and_diff_time_units%  s    (Au:-=>>>))++u!TAt9==EUVVV
fh/// 1e*O<<<u
vay(1+666
#F5M$:$:$<$<fEEEEEr&   r   )r_   mr   msr   r   Yc                    d}t          j        d| d          }t          j        |t           j                                      |          }|dv r|}n|                    d          }t          dt          j        |          it          j        |                    }|||<   ||         j        |j        k    sJ ||         j        |k                                    sJ d S )	Nd   M8[]rB   )r   r   r   intsr+   	rC   r9   r   r;   viewr   r   rR   allr4   r   nr9   valsex_valsr6   s          r'   -test_frame_setitem_datetime64_col_other_unitszBTestDataFrameSetItem.test_frame_setitem_datetime64_col_other_units3  s     t''y"(+++0077;GG kk/22G	!-RYq\\BBB4$x~....47*//1111111r&   c                    d}t          j        d| d          }t          j        |t           j                                      |          }|                    d          }t          dt          j        |          it          j        |                    }t          j        |t           j                                      d          |d	<   ||d	<   |d	         j        |k                                    sJ d S )
Nr   r   r   rB   r   r   r+   r   datesr   r   s          r'   6test_frame_setitem_existing_datetime64_col_other_unitszKTestDataFrameSetItem.test_frame_setitem_existing_datetime64_col_other_unitsH  s     t''y"(+++0077++.//	!-RYq\\BBBi22277AA7 77"g-224444444r&   c                    |}|d                              d          }||d<   t          j        |d         t          |d                     d|d<   ||d<   t          j        |d         t          |d                     |d= |j        j        d         j        }|j        j        d         j        }t          j        ||           |j        j	        }|j        j	        }t          |          t          |          k    sJ |                                }t          |j        d<   t          |j        d	<   |d         }	t          j        t          |	          t          g d
d                     t          j        |j        |j                   d S )NrO   r\   r   r]   r   r*   r-   )r*   r*   r*   r-   )TFT)renamer2   r   r   _mgrblocksrR   assert_extension_array_equal_ndarraybaseidcopyr   ilocr   r   )
r4   timezone_framer6   r   v1v2v1basev2basedf2r   s
             r'   test_setitem_dt64tzz(TestDataFrameSetItem.test_setitem_dt64tzY  sh   gnnU## 3
r#ws(=(=(=>>>33
r#ws(=(=(=>>>sG
 W^A%W^A%
'B///!!&zzRZZ'''' ggiiS
uV}}f5H5H5Hs.S.S.STTT
sz2955555r&   c                    t          ddd          }t          t          j                            d                              d          |          }||d<   t          |d                   }t          j        ||d	
           |j	        dk    sJ |j	        dk    sJ |
                                                    d          }t          |j        t                    sJ t          j        |j        |           d S )Nz1/1/2000ru   r,   )periodsrI   r-   r   r+   r   Fcheck_names)r   r   rC   rD   rE   rP   r   r2   assert_index_equalrI   reset_index	set_indexr   r,   r   )r4   r   r6   rss       r'   test_setitem_periodindexz-TestDataFrameSetItem.test_setitem_periodindexx  s    :qw???ry,,Q//??GGsSSS72g;
b#59999w'!!!!x7""""^^''00"(K00000
bh,,,,,r&   c                    t          g dg dd          }t          j        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    sJ |d         j        |j        k    sJ t          j        ||           d S )N)onetwothreerU   r)   r.   r*   r/   ru   r0   rV   r*   r/   ru   r*   r*   r*   rh   )r   rC   rH   r   r9   r2   ry   r4   r6   rK   r7   s       r'   'test_setitem_complete_column_with_arrayz<TestDataFrameSetItem.test_setitem_complete_column_with_array  s   444999EEFFhAAA/00C:,,,YYYYYY	 
 
 !,,SY77 ,,SY77}"ci////}"ci////
b(+++++r&   c                     t          dddd          }t          |          }t          dg did          }|j        |j        d d <   t	          j        ||           d S )	Nz
2016-01-01	   r   rN   )r  r   rI   )	r   r   r   r   r   r   r   r   r   r   rB   )r   r   	_na_valuer   r2   ry   )r4   r   r   r7   s       r'   test_setitem_period_d_dtypez0TestDataFrameSetItem.test_setitem_period_d_dtype  su    <3GGG3QQQR
 
 
 AAA
fh/////r&   )f8i8u8c                 \   t          g d|          }t          t          j                            d                              d          |          }g d|d<   t          g dt                    }|d	k    rt          g d
t                    }t          j        |j	        |           d S )NrU   rB   r-   )r/   r/   ri   r[   F)r*   r-   r/   Fr  )r   r   r   F)
r   r   rC   rD   rE   rP   objectr2   r
  rj   )r4   r9   colsr6   expected_colss        r'   $test_setitem_bool_with_numeric_indexz9TestDataFrameSetItem.test_setitem_bool_with_numeric_index  s     YYYe,,,ry,,Q//??GGQUVVV#OO5	...f===D==!"8"8"8GGGM
bj-88888r&   indexerrO   c                    t          ddg          }t          dddgi          }|||<   t          t          j        gdz  ddgd          }|d                             d          |d<   t	          j        ||           d S )NrN   rO   ri   r*   r-   rN   rO   r   )r   rC   nanr   r2   ry   )r4   r$  r6   otherr7   s        r'   #test_setitem_frame_length_0_str_keyz8TestDataFrameSetItem.test_setitem_frame_length_0_str_key  s     Sz***3A-((7BF8a<q!f==>> ,,X66
b(+++++r&   c           
         g ddz  }t          t          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                             t          j                  |d<   |d                             t          j                  |d<   ||_        t          j	        ||           d S )Nr   r-   r/   r   )r   r/   )r   rN   )r*   rg   rO   r-   ru   r   )r   r*   r-   r/   rg   ru   r*   rg   ru   r   rB   )
r   rv   r   rC   r'  r   r;   rj   r2   ry   )r4   r!  r6   r7   s       r'   $test_setitem_frame_duplicate_columnsz9TestDataFrameSetItem.test_setitem_frame_duplicate_columns  s    "U1XXt444vqqq#v3"""Arvq!,Arvq!,
 
 
 
 qk((22qk((22
b(+++++r&   c                 \   g ddz  }t          t          d          |          }t          j        t          d          5  d|dg<   d d d            n# 1 swxY w Y   |j        d d d df         }t          j        t          d          5  d|dg<   d d d            d S # 1 swxY w Y   d S )	Nr   r-   r/   r   "Columns must be same length as keyrd   )r   r/   ru   rN   )r   rv   rl   rm   rn   r   )r4   r!  r6   r  s       r'   2test_setitem_frame_duplicate_columns_size_mismatchzGTestDataFrameSetItem.test_setitem_frame_duplicate_columns_size_mismatch  s<   "U1XXt444]:-QRRR 	" 	"!BuI	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" gaaa!en]:-QRRR 	# 	#"CJ	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   AAAB!!B%(B%r!  r[   )r)   r)   r)   c                     t          g dg|          }t          ddggddg          }d}t          j        t          |          5  ||d	<   d d d            d S # 1 swxY w Y   d S )
NrU   ri   rA      rV   rW   r.  rd   r)   r   rl   rm   rn   )r4   r!  r6   rhsrr   s        r'   #test_setitem_df_wrong_column_numberz8TestDataFrameSetItem.test_setitem_df_wrong_column_number  s     			{D111"b
S#J7772]:S111 	 	BsG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA"Ac                 &   t          g dgg d          }t          g dgg d          }||ddg<   t          g dgg d          }t          j        ||           ||ddg<   t          g dgg d	          }t          j        ||           d S )
NrU   r)   r.   r.   ri   rA   r1     r)   r.   r0   )rA   r1  r8  rA   )r)   r.   r.   r0   r   r4   r6   r3  r7   s       r'   /test_setitem_listlike_indexer_duplicate_columnszDTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columns  s    			{OOO<<<@@@C:lll^___EEE
b(+++C:.../9M9M9MNNN
b(+++++r&   c                     t          g dgg d          }t          ddggddg          }d}t          j        t          |	          5  ||ddg<   d d d            d S # 1 swxY w Y   d S )
NrU   r6  ri   rA   r1  r)   r.   r.  rd   r2  )r4   r6   r3  rr   s       r'   @test_setitem_listlike_indexer_duplicate_columns_not_equal_lengthzUTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columns_not_equal_length  s    			{OOO<<<"b
S#J7772]:S111 	! 	! BSzN	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   
AA#&A#c                    t          dt          d          i          }t          |d         d          }t          |j        j        t                    sJ ||d<   t          j        |          |d<   |j	        |d<   t          j        |j	                  |d<   |
                    t                    |d<   t          |d         j        t                    sJ t          |d         j        j        j        t                    sJ t          |d         j        t                    sJ t          |d         j        j        j        t                    sJ t          |d         j        t                    sJ t          |d         j        t                    sJ t          |d                   sJ d	 }t!          j         ||j                   ||j                             t!          j         ||j                   ||j                  d
           t!          j         ||j                   ||j                  d
           t!          j         ||j                   ||j                  d
           t!          j        |d         |d                    t!          j        |d         |d         d
           t!          j        |d         |d                    t!          j        |d         |d         d
           d S )NrN   rA   ru   rO   r   r   EFc                 D    t          t          j        |                     S N)r   rC   rH   r   s    r'   <lambda>z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>  s    eBHQKK(( r&   Fr  )r   rv   r   r   r   
categoriesr   rC   rH   rR   r   r   r9   r   r   r   r2   r
  rO   r   r   r   )r4   r6   rq   r0   s       r'   test_setitem_intervalsz+TestDataFrameSetItem.test_setitem_intervals  s   U2YY'(("S'1oo#',m<<<<<
 3(3--3*3(3:&&3**V$$3"S'-)9:::::"S'+06FFFFF"S'-)9:::::"S'+06FFFFF "S'-77777"S'-77777 r#w''''' )(
aaggqqww///
aaggqqwwEBBBB
aaggqqwwEBBBB
aaggqqwwEBBBB 	r#w3000
r#w3UCCCC 	r#w3000
r#w3UCCCCCCr&   c                 b   t          dt          t          d                                        d          i          }|j        j                            ddg          |_        t          dt          ddg                              ddg          i          }t          j	        ||           d S )Nr_   mncategoryr   r   )
r   r   listr   r_   r   reorder_categoriesr
   r2   ry   r   s      r'   test_setitem_categoricalz-TestDataFrameSetItem.test_setitem_categorical'  s    VDJJ//66zBBCDDtx**C:66+sCj))<<c3ZHHI
 
 	b(+++++r&   c                     t          g d          }t          dg|          }g |d<   t          dg|          }t          j        |j        |j                   d S )Nr   r]   rN   rj   r,   )r   r   r2   r
  r,   )r4   r,   r   r7   s       r'    test_setitem_with_empty_listlikez5TestDataFrameSetItem.test_setitem_with_empty_listlike0  sb    bu%%%C5666scU%888
flHN;;;;;r&   zcols, values, expected)r   r   r   r)   r*   r-   r/   rg   rg   )r   r   r   r)   )r   rO   rO   r)   )r   rO   r)   rU   r/   )rO   r   r)   )r/   r-   r*   r*   )r   r)   rO   r-   c                 v    t          |g|          }|d         |d<   |d         j        d         }||k    sJ d S )Nri   r)   r   )r   rR   )r4   r!  rR   r7   r6   r   s         r'   test_setitem_same_columnz-TestDataFrameSetItem.test_setitem_same_column8  sL     x...S'3C"!!!!!!r&   c                    g dddgg df}t          j        |          }t          dd          }t          j                            d                              d	d
t          |          t          |          f          }t          |||          }|j	        j
                                        |d         d d          }}t          j                            d                              |           |d         j        |d d df         |d<   t          j        |d         |d                    t          j                            d                              |           |d         j        ||f         |d<   t          j        |d         |d                    t          j                            d                              |           |d         j        ||f         |d<   t          j        |d         |d                    d S )N)jimjoejoliefirstlast)r   centerr   20141006   )r  r-   r*   i  rM  rU  rS  )rU  rW  )rT  rV  )rU  rV  )rT  rW  )r   from_productr   rC   rD   rE   rF   rG   r   r,   rR   r   shuffler   r2   ry   )r4   itr!  r,   r   r6   r`   ra   s           r'   test_setitem_multi_indexz-TestDataFrameSetItem.test_setitem_multi_indexJ  s    %$$w&79T9T9TT&r**:r222y$$Q''00D3u::s4yy:QRRtT777x##%%r"vaaay1
	a  ((+++wKOAtttG,5	
biG555
	a  ((+++!"348A>
b!12B7H4IJJJ
	a  ((+++ !348A>?
b126H3IJJJJJr&   zcolumns,box,expectedrN   rO   r   r      )ra  ra  ra  ra  ri   r   r      )r*   r-   ra  rb  )r/   rg   ra  rb  ru      ra  rb  r   )ra  rb  r  rB   rO   r   r   r7  )         )r*   ra  rb  r  )r/   rA   r1  r8  )ru   rf  rg  rh  )r   rN   r   )rb  r-   ra  r  )r1  rg   rA   r8  )rg  rd  rf  rh  rN   r  rA   r1  r8  )ra  r-   rb  )r  rg   rA   )r1  rd  r8  c                 r    t          ddgddgddggddg	          }|||<   t          j        ||           d S )
Nr*   r-   r/   rg   ru   rd  rN   rO   ri   r   )r4   rj   boxr7   r6   s        r'   !test_setitem_list_missing_columnsz6TestDataFrameSetItem.test_setitem_list_missing_columnsb  sP    f AAA/#sDDD7
b(+++++r&   c                     t          t          |d         |d                             }||d<   |d         }t          ||j        d          }t	          j        ||           d S )NrN   rO   tuplesrc   )rI  zipr   r,   r2   r   )r4   rJ   rm  r   r7   s        r'   test_setitem_list_of_tuplesz0TestDataFrameSetItem.test_setitem_list_of_tuples  sg    c+c*K,<==>> &HX&&(9III
vx00000r&   c                     t          g dg dd          }d dD             }d|j        |<   t          g dg dd          }t          j        ||           d S )	NrU   rg   ru   rd  r  c              3      K   | ]}|V  d S rA  r!   r   r   s     r'   	<genexpr>zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>  "      %%1%%%%%%r&   r   r*   r  rg   r*   r*   r   r   r2   ry   r4   r6   r$  r7   s       r'   test_setitem_iloc_generatorz0TestDataFrameSetItem.test_setitem_iloc_generator  st    YYYYYY7788%%f%%%999999==>>
b(+++++r&   c                     t          g dg dd          }d dD             }d|j        |df<   t          g dg dd          }t          j        ||           d S )NrU   rq  r  c              3      K   | ]}|V  d S rA  r!   rs  s     r'   rt  zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>  ru  r&   r   r*   rv  rw  rx  s       r'   +test_setitem_iloc_two_dimensional_generatorz@TestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator  sx    YYYYYY7788%%f%%%
999999==>>
b(+++++r&   c                    t          dd          }t          |t          g d                    }t          d|t          j                  |d<   t          d	|d
          |d	<   t          d|d
          |d<   t          d|t          j                  |d<   |j        }t          t          j        t          t          t          j        gt          d                    }t          j
        ||           d S )Nr   S24)rI   r9   r1   rB   r   r)   )rI   r,   r9   r.   S64r0   rV   abcdr+   )r   r   r   rC   r<   uint8r   r   rI  r2   r   )r4   r,   r6   r   r7   s        r'   (test_setitem_dtypes_bytes_type_to_objectz=TestDataFrameSetItem.test_setitem_dtypes_bytes_type_to_object  s    D...UE"E,B,B,BCCCcbi@@@3ce<<<3ce<<<3cbh???329ffbh?tF||TTT
vx00000r&   c                 T   t          ddgddgd                              ddd          }t          d|j        	          }|d
         |j        |d
f<   |d         |j        |df<   t          ddgddgd                              ddd          }t          j        ||           d S )Nr/   rg   ru   rd  r  r;   Int64Fr+   r)   r.   )r   r   r   r,   r   r2   ry   )r4   r   maskr7   s       r'    test_boolean_mask_nullable_int64z5TestDataFrameSetItem.test_boolean_mask_nullable_int64  s    !Qq!f5566==((
 
 e6<000 &s
49 &s
49Aq6A7788??((
 
 	fh/////r&   c                     t          dddgi          }t          ddgd          |d<   t          dddgid          }t          j        ||           d S )Nr)   r*   r-   r  rB   r   r   s      r'    test_setitem_ea_dtype_rhs_seriesz5TestDataFrameSetItem.test_setitem_ea_dtype_rhs_series  sd    aV}%%!Qw///3cAq6]':::
b(+++++r&   c                    t          t          j        d          t          j        d          dt          j        d                    }t          j        d          }t          t          j        d          t	          g d                    }||d<   t          j        t          d	
          5  t          j        |          |d<   d d d            n# 1 swxY w Y   t          j	        ||           d S )NrA   )np-array	np-matrixr+   )rA   r*   r1   rB   r   r  z@matrix subclass is not the recommended way to represent matricesrd   r  )
r   rC   onesr   r   r2   assert_produces_warningPendingDeprecationWarningmatrixry   )r4   r7   r)   r6   s       r'   test_setitem_npmatrix_2dz-TestDataFrameSetItem.test_setitem_npmatrix_2d  s"    272;;??ryQS}}
 
 
 GGRYr]]E"E4J4J4JKKK: '%T
 
 
 	+ 	+ !illB{O		+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	b(+++++s   1CCCr   rV   r)   c                    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	          j        ||           d S )Nr*   r-   r/   rg   r  r      )r*   r   r)   ru   rd  r   r*   r0   rW   )r0   rW   )r   r   rC   r'  r2   ry   )r4   r   r6   r7   s       r'   %test_setitem_aligning_dict_with_indexz:TestDataFrameSetItem.test_setitem_aligning_dict_with_index  s     aV1a&99D9:: S))qqq#v1qqq#vQqqq#v*Aq6QQTQAbfa[QQQ
 
 	b(+++++r&   c                 j   t          dddgi          }t          dddgiddg          |d<   t          dt          j        dgi          }t          j        ||           t          dddgi          }|                    dt          dddgiddg                     t          j        ||           d S )Nr)   r*   r-   rA   r1  r+   r   )r   rC   r'  r2   ry   isetitemr   s      r'   test_setitem_rhs_dataframez/TestDataFrameSetItem.test_setitem_rhs_dataframe  s    aV}%%S2r(OAq6:::3cBFB<011
b(+++aV}%%
Ay#BxA???@@@
b(+++++r&   c                     t          ddgddgddgg          }t          ddd	gi|
          |d<   t          t          dd	g|
          ddgd          }t          j        ||           d S )Nr)   r.   r*   r-   r/   rg   rj   r5   rA   r1  rB   r  r   r4   any_numeric_ea_dtyper6   r7   s       r'   *test_setitem_frame_overwrite_with_ea_dtypez?TestDataFrameSetItem.test_setitem_frame_overwrite_with_ea_dtype  s    Sz!Q!Q0@AAAS2r(O3GHHH3RH,@AAAV 
 
 	b(+++++r&   c                 b   t          j        d           t          dddgi          }t          j        dd          5  t          ddgt                    |d<   d d d            n# 1 swxY w Y   t          ddgt          ddgt                    d	          }t          j	        ||           d S )
Npyarrowr)   r*   r-   zfuture.infer_stringTr.   rB   r  )
rl   importorskipr   pdoption_contextr   r   r   r2   ry   r   s      r'   'test_setitem_string_option_object_indexz<TestDataFrameSetItem.test_setitem_string_option_object_index  s    I&&&aV}%%4d;; 	6 	6S#Jf555BsG	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6Aq6Sz0P0P0PQQRR
b(+++++s   A%%A),A)c                     t          ddgi          }|                                }d}||g         ||<   t          j        ||           d S )Nr  rA   r   r   r2   ry   )r4   r6   r7   col_names       r'   test_setitem_frame_midx_columnsz4TestDataFrameSetItem.test_setitem_frame_midx_columns  sP    
RD)**77998*~8
b(+++++r&   c                    t          dt          j        dgd          i          }t          dgd          |j        d d df<   t          dt          j        dgd          i          }t          j        ||           t          dt          j        dgd          i          }t          dgd          |j        d d df<   t          j        ||           d S )Nr)   rA   r  rB   r1  r  r   )r   rC   rH   r   r   r2   ry   r   r   s      r'   test_loc_setitem_ea_dtypez.TestDataFrameSetItem.test_loc_setitem_ea_dtype  s    RXrd$777899G444qqq#vc28RD#=#=#=>??
b(+++RXrd$777899t73331
b(+++++r&   c                     t          t          d          gt                    }t          ddgi          }||j        d d df<   ||d<   t          dg||d          }t          j        ||           d S )Nz
2019-12-31rB   r)   r*   r.   r0   r[   )r   r   r   r   r   r2   ry   )r4   r   r6   r7   s       r'   -test_setitem_index_object_dtype_not_inferringzBTestDataFrameSetItem.test_setitem_index_object_dtype_not_inferring#  s    Y|,,-V<<<aSz""qqq#v3S 
 
 	b(+++++r&   N)Fr"   r#   r$   r8   rl   markparametrizerL   rS   rs   r}   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   as_unitr   r   ea_registryr   r   r   r   r   r  r  r  r  r#  r)  r,  r/  r4  r:  r<  rE  rK  rN  rQ  r_  r   rC   rH   r;   rk  ro  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r!   r&   r'   r   r   (   s       & & & [MMM 6 6 6E E E
# # #<	, 	, 	,#1 #1 #1J	' 	' 	', , ,3 3 3, , ,
 
 
; ; ;; ; ;0 0 0, , ,6 [VIC 0 01X1A&&&gw(G(GH	,<888@@EES\:::	

 
, ,
 
, [	
 	
$+	
 	
 	
 !+
.	/	 	0 0	 	0F F F [V%I%I%IJJ2 2 KJ2( [V%I%I%IJJ5 5 KJ5 6 6 6>- - -, , ,&	0 	0 	0 [W&8&8&8999 9 :99 [Yse55, , 65,, , ,.	# 	# 	# [Vooo%GHH  IH
, 
, 
,! ! !*D *D *DX, , ,< < < [ !!!<<<3!!!<<<3!!!<<<3__iii+__iii+__iii+	

 
" "
 
"K K K0 [ %$$	!\\<<<>000   c
A	!\\<<<>000    "(333	999iii;___UUU  LLL,,,7	!\\???OOOD000    )))\\\<<<@QQQ	!\\???OOOD000   c
	Aq6Ar7RH5SzJJJ	YY


KKK8///  M-	
0 0b, ,c0 0b,1 1 1, , ,, , ,
1 
1 
10 0 0, , ,, , ,( [Vb3*%566	, 	, 76	,	, 	, 	,
, 
, 
,, , ,, , ,	, 	, 	,, , , , ,r&   r   c                   `    e Zd Zej        d             Zej        d             Zd Zd Zd Z	dS )TestSetitemTZAwareValuesc                 V    t          ddgd          }|                    d          }|S )Nz2013-1-1 13:00z2013-1-2 14:00rO   r]   z
US/Pacific)r   tz_localize)r4   naiver   s      r'   r   zTestSetitemTZAwareValues.idx5  s3    /1ABMMM--
r&   c                     t          t          j        |                                d          d          }|j        |j        k    sJ |S )Nr   rB   rO   r]   )r   rC   rH   tolistr9   )r4   r   r7   s      r'   r7   z!TestSetitemTZAwareValues.expected;  sE    "(3::<<x@@@sKKK~****r&   c                    t          t          j                            d                              d          dg          }||d<   |                    ddg          j                            d           |d<   |d         }t          |                    d	          	                    d           d
          }t          j        ||           d S )Nr-   r-   r*   rN   ri   rO   r   r*   r+   r   r]   )r   rC   rD   rE   rP   	to_seriesdt
tz_convertr   r  r2   r   )r4   r   r7   r6   r   comps         r'   test_setitem_dt64seriesz0TestSetitemTZAwareValues.test_setitem_dt64seriesA  s    ry,,Q//??GGRUQVWWW3--q!f---0;;DAA3CcnnU++77==CHHH
vt,,,,,r&   c                     t          t          j                            d                              d          dg          }||d<   |d         }t          j        ||           d S )Nr-   r  rN   ri   rO   )r   rC   rD   rE   rP   r2   r   r4   r   r7   r6   r   s        r'   test_setitem_datetimeindexz3TestSetitemTZAwareValues.test_setitem_datetimeindexK  sc    ry,,Q//??GGRUQVWWW 3C
vx00000r&   c                 &   t          t          j                            d                              d          dg          }|                                |d<   |d         }|j                            d          }t          j	        ||           d S )Nr-   r  rN   ri   rO   us)
r   rC   rD   rE   rP   to_pydatetimer  r  r2   r   r  s        r'   .test_setitem_object_array_of_tzaware_datetimeszGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesT  s    ry,,Q//??GGRUQVWWW ##%%3C;&&t,,
vx00000r&   N)
r"   r#   r$   rl   fixturer   r7   r  r  r  r!   r&   r'   r  r  4  sy        ^  ^
 ^  ^
- - -1 1 11 1 1 1 1r&   r  c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )!TestDataFrameSetItemWithExpansionc                     t          g dg dd          }|d         }t          j        ddgddgdd	gg          |d
dg<   d|j        d<   t	          g dd          }t          j        ||           d S )NrU   )rg   rg   rd  r  r)   g?g?g333333?g?      ?r0   rV   r   r   r   r]   )r   rC   rH   r   r   r2   r   )r4   r6   rq   r7   s       r'   test_setitem_listlike_viewsz=TestDataFrameSetItemWithExpansion.test_setitem_listlike_views`  s    YYYYYY7788 g C:SzC:"FGGC: )))#...
sH-----r&   c                     t          ddgddgg          }ddg|d<   t          g dg d	gg d
          }t          j        ||           d S )Nr*   r-   r/   rg   ru   rd  0 - Name)r*   r-   ru   )r/   rg   rd  )r   r*   r  ri   r   r   s      r'   .test_setitem_string_column_numpy_dtype_raisingzPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raisingp  sh    AA'((Q:iii3=O=O=OPPP
b(+++++r&   c                 ,   t          g 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          }t          j        ||           d S )	Nr6  r?   rj   r9   r-   r)   r   r*   ri   )r   rI  rv   r   rC   r'  r2   ry   r   s      r'   'test_setitem_empty_df_duplicate_columnszITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columnsw  s    i@@@eAhhqqq#v 1bfbf"56
 
 
 	b(+++++r&   c           
         t          dt          j        t          j                            d                              ddd          d          i          }t          d t          ddd	          D                       }|                    dgd
          }t          |j
        t          ddd	          d|          }|j        }||d<   |j        }t          t          j        d          t          |d          gddg          }t!          j        ||           ||d<   |j        }t          t          j        d          t          |d          t          |d          gg d          }t!          j        ||           |d         }|d         }t!          j        |j        j        |           d|_        t!          j        |                                |                                           d S )Nvaluer-   r   i'  r   r:   rB   c                 "    g | ]}| d |dz    S )z - i  r!   r   r`   s     r'   r   zcTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype.<locals>.<listcomp>  s*    OOOQ00q3w00OOOr&   i  T)by	ascendingi)  F)r   labelsr   )rD  orderedr+   r>  )r  r   r>  )r   rC   rH   rD   rE   rF   r
   rv   sort_valuesr   r  rR   r   r   r9   r   r2   r   assert_categorical_equalr   rI   
sort_index)	r4   r6   r  rq   r   r   r7   result1result2s	            r'   -test_setitem_with_expansion_categorical_dtypezOTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype  s   I))!,,55aDDG  
 
 OO%5#:N:NOOOPP^^yD^99"(E!UC00fMMMj 3Xg 0FE R R RSC.
 
 
 	vx000 3!! FEBBB FEBBB
 &%%
 
 
 	vx000S'S'
#GL$6<<< 
w1133S^^5E5EFFFFFr&   c                     t                      }d|d<   t          dg                              t          j                  }t	          j        ||           d S )Nr*   r\   ri   )r   r   rC   r;   r2   ry   r   s      r'   test_setitem_scalars_no_indexz?TestDataFrameSetItemWithExpansion.test_setitem_scalars_no_index  sO    [[5	eW---44RX>>
b(+++++r&   c                     d|j         vsJ |d         |d<   d|j         v sJ |d         }|d         }t          j        ||d           d S )Nr&  rN   Fr  )rj   r2   r   )r4   rJ   r   r7   s       r'   test_setitem_newcol_tuple_keyz?TestDataFrameSetItemWithExpansion.test_setitem_newcol_tuple_key  sz    
 $% % % % !,C 0H[00000X&s#
vxUCCCCCCr&   c                 8   t          ddt                                }t          |t          d                    }t	          ddd          }t          |          }t          j        ||<   t          j        ||                   	                                sJ d S )	Nz1/1/2012z2/1/2012)startendr   rA   rM  i  r1  r*   )
r   r   r   rv   r   r   rC   r'  isnanr   )r4   rj   r5   ttss        r'   #test_frame_setitem_newcol_timestampzETestDataFrameSetItemWithExpansion.test_frame_setitem_newcol_timestamp  s    ::DFFKKKb		:::T2q!!q\\6RxR!!%%'''''''r&   c                     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          }t          j        ||           d S )	Nr)   r.   r   FTr*   r  r+   )r   r,   r   r2   ry   r   s       r'   *test_frame_setitem_rangeindex_into_new_colzLTestDataFrameSetItemWithExpansion.test_frame_setitem_rangeindex_into_new_col  s    c3Z())(3%(t}c!"QQQC5u55aSAAA
fh/////r&   c                     t          ddgddgddgg          }t          ddd	gi|
          |d<   t          ddgddgt          dd	g|
          d          }t          j        ||           d S )Nr)   r.   r*   r-   r/   rg   r  rA   r1  rB   r0   r[   r   r  s       r'    test_setitem_frame_keep_ea_dtypezBTestDataFrameSetItemWithExpansion.test_setitem_frame_keep_ea_dtype  s    Sz!Q!Q0@AAAS2r(O3GHHH3VVRH,@AAA 
 
 	b(+++++r&   c                    t          t          d                    }t          j        dd          t          j        dd          dd|j        d	<   t          t          j        d
          t          j        d          dggt          d	g          g d          }|d                             d          |d<   |d                             d          |d<   t          j	        ||           d S )Nabcri   ru   r   )r   H   23r[   r   z0 days 00:00:05z0 days 00:01:12r   r)   zm8[s]r.   )
r   rI  r  to_timedeltar   	Timedeltar   r   r2   ry   )r4   r   r7   s      r'   &test_loc_expansion_with_timedelta_typezHTestDataFrameSetItemWithExpansion.test_loc_expansion_with_timedelta_type  s    4;;///---#...
 

1
 l,--r|<M/N/NPTUV**$__
 
 

 !,,W55 ,,W55
fh/////r&   c                     t                      }g d|d<   t          dgd          }t          dg di|          }t          j        ||           d S )NrU   r  F)tupleize_colsri   )r   r   r2   ry   )r4   r6   r!  r7   s       r'   %test_setitem_tuple_key_in_empty_framezGTestDataFrameSetItemWithExpansion.test_setitem_tuple_key_in_empty_frame  s`    [[YY6
fXU333fiii0$???
b(+++++r&   N)r"   r#   r$   r  r  r  r  r  r  r  r  r  r  r  r!   r&   r'   r  r  _  s        . . . , , ,, , ,+G +G +GZ, , ,
D 
D 
D( ( (0 0 0, , ,0 0 0 , , , , ,r&   r  c                      e Zd Zd Zej                            deej	        e
ej	        g          ej                            dg d          d                         Zej                            deej	        e
ej	        g          ej                            dg d          d                         Zej                            deej	        e
ej	        g          ej                            dg d          d                         ZdS )	TestDataFrameSetItemSlicingc                     t          t          j        d                    }d|dd <   t          j        d          }d|dd <   t          |          }t          j        ||           d S )N)r   r*   r*   )r   rC   zerosr2   ry   r  s       r'   test_setitem_slice_positionz7TestDataFrameSetItemSlicing.test_setitem_slice_position  sf    rx))**233hx  BCCS>>
b(+++++r&   rj  r   rU   c                     t          g dgg dg|z  z   g d          } |g d           ||          dd <   t          g dgg dg|z  z   g d          }t          j        ||           d S Nr  r-   rg   rd  r[   ri   r7  r*   r   r4   r   rj  
indexer_sir6   r7   s         r'   +test_setitem_slice_indexer_broadcasting_rhszGTestDataFrameSetItemSlicing.test_setitem_slice_indexer_broadcasting_rhs  s     			{iii[1_4oooNNN S..

2qrriii[LLL>A+==WWW
b(+++++r&   c           	         t          g dgg dg|z  z   g d          } |g d          |j        t          t          d|dz                       <   t          g dgg dg|z  z   g d          }t	          j        ||           d S r  )r   r   rI  rv   r2   ry   )r4   r   rj  r6   r7   s        r'   *test_setitem_list_indexer_broadcasting_rhszFTestDataFrameSetItemSlicing.test_setitem_list_indexer_broadcasting_rhs  s     			{iii[1_4oooNNN),\\\):):U1a!e__%%&iii[LLL>A+==WWW
b(+++++r&   c                     t          g dg dgg dg|z  z   g d          } |g d           ||          dd <   t          g dgg dg|dz   z  z   g dd	          }t          j        ||           d S )
Nr  r   r   r[   ri   r7  r*   r   r  r   r  s         r'   0test_setitem_slice_broadcasting_rhs_mixed_dtypeszLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypes  s     YY(III;?:OOO
 
 
 !S..

2qrrYYK<<<.AE22#OO
 
 

 	b(+++++r&   N)r"   r#   r$   r  rl   r  r  r   rC   rH   rI  r  r  r  r  r!   r&   r'   r  r    s:       , , , [UVRXtRX$FGG[S))),,, , -, HG, [UVRXtRX$FGG[S))),,, , -, HG, [UVRXtRX$FGG[S))),,, , -, HG, , ,r&   r  c                       e Zd Zd Zd ZdS )TestDataFrameSetItemCallablec                     t          g dg dd          }g d|d <   t          g dg dd          }t          j        ||           d S )NrO  rc  r&  )r1  r8  rf  rg  c                     dS )NrN   r!   rB  s    r'   rC  zDTestDataFrameSetItemCallable.test_setitem_callable.<locals>.<lambda>)  s    S r&   r   r   s      r'   test_setitem_callablez2TestDataFrameSetItemCallable.test_setitem_callable&  sj    \\\==>>,,,==...\\\BBCC
b#&&&&&r&   c                     d }t          ddgddggt                    }|||dk    <   t          d|g|dgg          }t          j        ||           d S )Nc                     | dz   S )Nr*   r!   rB  s    r'   inczETestDataFrameSetItemCallable.test_setitem_other_callable.<locals>.inc0  s    q5Lr&   r[  r*   rB   r   )r   r   r2   ry   )r4   r  r6   r7   s       r'   test_setitem_other_callablez8TestDataFrameSetItemCallable.test_setitem_other_callable.  sr    	 	 	 Q!R)88826
r3i#r344
b(+++++r&   N)r"   r#   r$   r  r  r!   r&   r'   r	  r	  %  s2        ' ' '
, 
, 
, 
, 
,r&   r	  c                      e Zd Zej                            dd d gddg          d             Zej                            d	          ej                            d
ee	j
        eg          d                         Zej                            d
ee	j
        eg          d             Zd Zd Zej                            dddg          ej                            di ddgiddgig          d                         Zd Zd Zd ZdS )TestDataFrameSetItemBooleanMask	mask_typec                 8    | t          j        |           dz  k    S Nr-   )rC   absr6   s    r'   rC  z(TestDataFrameSetItemBooleanMask.<lambda>>  s    Ba' r&   c                 B    | t          j        |           dz  k    j        S r  )rC   r  rR   r  s    r'   rC  z(TestDataFrameSetItemBooleanMask.<lambda>>  s    R"&**q.5H4P r&   	dataframerH   )idsc                 `   |                                 } ||          }|                                 }t          j        ||<   |j                                         }t          j        |t          j        |          <   t          ||j        |j                  }t          j	        ||           d S )Nr   )
r   rC   r'  rR   rH   r   r,   rj   r2   ry   )r4   r  rJ   r6   r  r   r7   s          r'   test_setitem_boolean_maskz9TestDataFrameSetItemBooleanMask.test_setitem_boolean_mask<  s     y}} vt9>>###%6$ XRXrzJJJ
fh/////r&   z1Currently empty indexers are treated as all False)reasonrj  c                    t          dgdgdgd          }|t          k    r |g d          }n |g           }d}t          j        t          |          5  dg|j        |dgf<   d d d            d S # 1 swxY w Y   d S )	Nr)   r*   r[   r   rB   z@Must have equal len keys and value when setting with an iterablerd   r.   )r   r   rl   rm   rn   r   )r4   rj  r6   r$  rr   s        r'   :test_setitem_loc_empty_indexer_raises_with_non_empty_valuezZTestDataFrameSetItemBooleanMask.test_setitem_loc_empty_indexer_raises_with_non_empty_valueO  s     cU!A37788&==c"H---GGc"ggGP]:S111 	) 	)&'SBF7SE>"	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A44A8;A8c                    t          dgdgdgd          } |dg          }d|d         z
  |j        |dgf<   t          dgdgdgd          }t          j        ||           d|j        |dgf<   t          j        ||           d S )	Nr)   r*   r[   FrA   r0   r.   r  )r   r   r2   ry   )r4   rj  r6   r$  r7   s        r'   1test_setitem_loc_only_false_indexer_dtype_changedzQTestDataFrameSetItemBooleanMask.test_setitem_loc_only_false_indexer_dtype_changed\  s    
 cU!A37788#ug,,!#bgw~C5s!==>>
b(+++!"w~
b(+++++r&   c                     t          g dg dd          }|                                }|d         dk    } ||          |                             d           ||          |<   t          j        ||           d S )N)r*   rg   r-   r/   rc  r  r)   r/   )r   r   r  r2   ry   )r4   
indexer_slr6   r7   r  s        r'   "test_setitem_boolean_mask_aligningzBTestDataFrameSetItemBooleanMask.test_setitem_boolean_mask_aligningj  s    \\\==>>7799#w!|)z"~~d3??DD

2t
b(+++++r&   c                    t          g dddg          }t          g d          }g d}t          ||d|          }t          g d	g d
          }t          g d          }g d}t          ||d|          }|                                }	|	d         j                            g d
          |	d<   |d         dk    }
ddg||
<   t          j        ||	           d S )N)r)   r)   r.   r.   r)   r)   r)   r)   r.   )rD  )r_   r`   ra   klr   r   )r*   r*   r-   r-   r*   r*   r*   )catsrR   r+   )r)   r)   r0   r0   r)   r)   r)   r[   )r*   r*   r/   r/   r*   r*   r*   r(  r0   r-   )r
   r   r   r   r   set_categoriesr2   ry   )r4   cats2idx2values2exp_multi_rowcatsfidxfvaluesfr6   	exp_fancyr  s              r'   test_setitem_mask_categoricalz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalr  s"    ???SRUJWWW88899'''!5G"D"DDQQQ///OOO
 
 
 88899'''99FFF!&&((	%f-1@@QQ	&&zS 84
b),,,,,r&   r9   r   r;   kwargsr,   r*   rj   rN   c                     ||d<   t          di |}|                                }d|||k    <   t          j        ||           d S )Nr9   /   r!   r  )r4   r9   r3  r6   r  s        r'   %test_setitem_empty_frame_with_booleanzETestDataFrameSetItemBooleanMask.test_setitem_empty_frame_with_boolean  sS      w    ggii28
b#&&&&&r&   c           
      l   t          t          d                    }g d}t          ||t          j        g dg dg dgt
                              }t          ||t          j        t          |          t          |          f                    }t          ||t          j        g dg dg d	gt
                              }d
||d|z  k    <   t          j	        ||           t          j        t          d          5  d
||j        d d
         dk    <   d d d            d S # 1 swxY w Y   d S )Nr/   r   )        r  r   )      ?r         @)r         @      @rB   )r,   rj   r5   )r9  r   r[  )r[  r[  r[  r[  r   zItem wrong lengthrd   r-   )rI  rv   r   rC   rH   r   r  rG   r2   ry   rl   rm   rn   r,   )r4   r   r!  df1r  r7   s         r'   test_setitem_boolean_indexingz=TestDataFrameSetItemBooleanMask.test_setitem_boolean_indexing  s   588nn ///???C5  
 
 
 c4bgs3xxT>S6T6TUUU???NNNLLLIQVWWW
 
 
  "C#)O
c8,,,]:-@AAA 	) 	)&(C	#2#"#	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   D))D-0D-c                     t          ddgddgdd          }|                                }t          ddgd	          }t          d
ddgiddg          |j        |d
gf<   t	          j        ||           d S )Nr*   r-   r/   rg   r)   r[   Fr0   r]   r.   ru   rd  r   r+   )r   r   r   r   r2   ry   )r4   r6   r7   r$  s       r'   -test_loc_setitem_all_false_boolean_two_blockszMTestDataFrameSetItemBooleanMask.test_loc_setitem_all_false_boolean_two_blocks  s    aV1a&s;;<<7799%c222!*C!Q=A!G!G!Gw~
b(+++++r&   c                 
   t          ddgddgg          }t          ddgddgg          }t          t          ddgd	          t          t          j        dgd	          d
          }d||<   t	          j        ||           d S )Nr[  r-   r/   r  r   TFbooleanrB   r  )r   r   r  NAr2   ry   )r4   r6   r7   boolean_indexers       r'   test_setitem_ea_boolean_maskz<TestDataFrameSetItemBooleanMask.test_setitem_ea_boolean_mask  s    Q!R)**q!fq!f-..#4-y99925$-y999 
 
  ?
b(+++++r&   N)r"   r#   r$   rl   r  r  r  xfailrI  rC   rH   r   r  r!  r$  r2  r6  r>  r@  rE  r!   r&   r'   r  r  ;  s       [	'	')P)PQ'"   
0 0 
0 [QRR[UT28V$<==	) 	) >= SR	) [UT28V$<==, , >=,, , ,- - -. [Ww&899[XWqcNY<N'OPP' ' QP :9') ) )., , ,, , , , ,r&   r  c                      e Zd Zd Zej                            dddg          d             Zd Zej                            dd e	j
        dgdggd	
          dgdggg          d             Zej                            dd e	j
        dgdgg          dgdggg          d             Zej                            dddg ej        ddgej                            dd                    g          ej                            ddd ed           ed          fdg          d                         Zd Zd Zej                            dd	dg          d             Zd Zd  Zd! Zej                            d"d#d$g ed%          fg d&g d&gf ed%           ed%          fd$fd#dd'gfd$d$gfd#gdfd$gfd#g e	j        d          fd$gf ed%           e	j        d          fg d(f ed%d$           e	j        d          fd$d$gf e	j
        g d)           e	j
        g d*          fd$d$gfg          d+             Zd%S ),%TestDataFrameSetitemCopyViewSemanticsc                    d|j         vsJ |d                                         }||d<   t          j        |j        dd|j                             d          f<   t          |dd                                                   sJ d S )Nr>  rN   ru   rA   )rj   r   rC   r'  r   get_locr   r   )r4   rJ   r   s      r'   test_setitem_always_copyz>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copy  s    +-----!!##CCE62{2::3???@QqtW~~!!#######r&   consolidateTFc                    t          g dg ddg d          }|                    ddt          j                   |r4|                                 t          |j        j                  dk    sJ nt          |j        j                  dk    sJ d	|j        dd df<   t          t          j        t          j        d	d	g|j
        d
          }t          j        |d         |           d S )N)g?g @g@gffffff@)gffffff@gffffff@gffffff@g333333 @)r   r   )r   r*   r-   r/   r+   r-   r   r*   *   rc   )r   r   rC   r'  _consolidate_inplacerG   r   r   r   r   r,   r2   r   )r4   rL  r6   r7   s       r'   #test_setitem_partial_column_inplacezITestDataFrameSetitemCopyViewSemantics.test_setitem_partial_column_inplace  s     &&&-A-A-ABB,,,
 
 
 			!S"&!!! 	,##%%%rw~&&!+++++rw~&&!++++qrr3w26262r2"(MMM
r#w11111r&   c                     ddgdz  }t          ddg|          }|                                }|d d          }d|d<   t          g dg|	          }t          j        ||           t          j        ||           d S )
NrN   rO   r-   r8  r   r   r+  )r8  r-   r8  ru   ri   r  )r4   r!  r6   df_copydf_viewr7   s         r'   *test_setitem_duplicate_columns_not_inplacezPTestDataFrameSetitemCopyViewSemantics.test_setitem_duplicate_columns_not_inplace  s    SzA~s1#t444''))QQQ%3.../>>>
gw///
b(+++++r&   r  r*   r;   rB   c                     ddg}t          dddg|          }|                                }|d d          }||dg<   t          ddgddgg|          }t          j        ||           t          j        ||           d S )NrN   rO   r   r*   r   ri   r  r4   r  r!  r6   rR  rS  r7   s          r'   #test_setitem_same_dtype_not_inplacezITestDataFrameSetitemCopyViewSemantics.test_setitem_same_dtype_not_inplace  s    
 SzqA555''))QQQ%C5	q!fq!f-t<<<
b(+++
gw/////r&   r   c                     ddg}t          dddg|          }|                                }|d d          }||dg<   t          ddgddgg|          }t          j        ||           t          j        ||           d S )NrN   rO   r   r*   r   r   ri   r  rV  s          r'   2test_setitem_listlike_key_scalar_value_not_inplacezXTestDataFrameSetitemCopyViewSemantics.test_setitem_listlike_key_scalar_value_not_inplace  s     SzqA555''))QQQ%C5	q#hC14@@@
gw///
b(+++++r&   r$  r)   z+Boolean indexer incorrectly setting inplace)r  strict)markszvalue, set_value)r*   ru   )r   g      @z
2020-12-31z
2021-12-31r  c                     t          d|iddg          }|                                }|d d          }|||<   t          j        ||           d S )Nr)   r   r*   r+   r  )r4   r  	set_valuer$  r6   r7   r   s          r'   "test_setitem_not_operating_inplacezHTestDataFrameSetitemCopyViewSemantics.test_setitem_not_operating_inplace  sZ    2 U|Aq62227799!!!u7
dH-----r&   c                    d t          d          D             t          fdD                       }|j        j        d         j        }t          j                    5  |j        D ]}d||         |<   	 d d d            n# 1 swxY w Y   t          j	        |t          j
        d          t          j
        d          f         dk              sJ d S )Nc                     g | ]}d | S )r0   r!   r  s     r'   r   z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<listcomp>*  s    ---a'a''---r&   rA   c                 T    i | ]$}|t          j        t                              %S r!   )rC   r  rG   )r   colr  s     r'   
<dictcomp>z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<dictcomp>+  s+    EEEsRXc&kk22EEEr&   r+   r   r*   )rv   r   r   r   rR   r2   raises_chained_assignment_errorrj   rC   r   r   )r4   r6   rR   labelr  s       @r'   "test_setitem_column_update_inplacezHTestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace'  s    .-599---EEEEfEEEVTTT")/11 	% 	% % %#$5	%  %	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% vfRYr]]BIbMM9:a?@@@@@@@s   "BB	B	c                     t          g d          }t          g dd          |d<   t          g dd          |d<   t          g dg dt                    }t          j        |j        |           d S )	NrU   rH  rB   col1col2)r;   rH  rH  )r   rh  ri  )r,   r9   )r   r   r   r2   r   r   )r4   r6   expected_typess      r'   %test_setitem_column_frame_as_categoryzKTestDataFrameSetitemCopyViewSemantics.test_setitem_column_frame_as_category4  s    yyy!!yyy
;;;6
IIIZ8886
---5H5H5HPV
 
 
 	ry.99999r&   r9   r  c                 0   t          dt          j        d          i|          }t          j        dgg          |j        t          j        dg          t          j        dg          f<   t          dg di|          }t          j        ||           d S )Nr)   r/   rB   r-   r   )r-   r*   r*   )r   rC   r  rH   r   r2   ry   )r4   r9   r6   r7   s       r'   "test_setitem_iloc_with_numpy_arrayzHTestDataFrameSetitemCopyViewSemantics.test_setitem_iloc_with_numpy_array?  s     RWQZZ(666021#!rx}},-c999-U;;;
b(+++++r&   c                    t          g dg dgg d          }t          ddgddggd	d	g          }||d	<   t          g d
g dgg d          }t          j        ||           t          g dg dgg d          }t          ddgddggd	d	g          }||d	<   t          g dg dgg d          }t          j        ||           d S )NrO  )rg   ru   rd  ra  )r)   r.   r)   r0   ri   r   r9  r-   r:  r)   )r   r-   r9  rg   )r-   ru   r:  ra  rU   rq  )r)   r)   r.   )r   r9  r/   )r-   r:  rd  r   r9  s       r'   !test_setitem_frame_dup_cols_dtypezGTestDataFrameSetitemCopyViewSemantics.test_setitem_frame_dup_cols_dtypeH  s!   lll3=Q=Q=QRRR!SAs8,sCjAAA3^^^^^,6J6J6J
 
 
 	b(+++			999-GGG!SAs8,sCjAAA3kkk;;;7QQQ
b(+++++r&   c                 "   t          dgdd          }t          d|i                              d          }|dd                                         }d |d<   d |d<   t          g ddg|d d                   }t	          j        ||           d S )	Nz
2000-01-01r   date)r9   rI   r   30102010rM  )r   r   r  r   r2   ry   )r4   dtir6   r7   s       r'   "test_frame_setitem_empty_dataframezHTestDataFrameSetitemCopyViewSemantics.test_frame_setitem_empty_dataframeX  s    \N(HHH}%%//77!W\\^^6
6
V$bqb'
 
 

 	b(+++++r&   c                 
   t          g dg dg dg dd          }|                                }|ddg         }ddgddgg|j        d	d
gd d f<   t          j        ||           t          g dg dd|j                  }t          j        ||           |g d         }ddgddgg|j        d	d
gdd
df<   t          j        ||           t          g dg dg dd|j                  }t          j        ||           d S )N)r*   rg   r*   ru   )r-   ru   r-   rd  )r/   rd  r*   ra  )rb  r  rA   r1  r`  rO   r   r-   r*   r/   r-   r-   r-   r-   )r/   r-   r*   r-   )rO   r   r+   re  r   )rb  r-   rA   r-   )r   r   r   r2   ry   r,   )r4   	df_parentdf_origr6   r7   s        r'   test_iloc_setitem_view_2dblockzDTestDataFrameSetitemCopyViewSemantics.test_iloc_setitem_view_2dblockh  sa   !\\!\\!\\#^^	 
 
	 ..""Sz"  !!fq!f-A	 	i111 <<<lllCC28TTT
b(+++ '#$a&1a&!1A!A
i111,,\\\FFbh
 
 
 	b(+++++r&   zindexer, valuer   r-   Nrw  r/   )r-   r-   r-   )FTF)FTFTc                    t          j        d                              dd          }t          |                                t          d                    }|j        j        sJ |                                }|d d          }||j        |<   t          j
        ||           |||<   t          |t          d                    }t          j
        ||           d S )Nr8  r/   rg   ABCDri   )rC   r   rx   r   r   rI  r   is_single_blockr   r2   ry   )r4   r$  r  rK   rx  ry  r6   r7   s           r'   test_setitem_2dblock_with_refzCTestDataFrameSetitemCopyViewSemantics.test_setitem_2dblock_with_ref  s    $ imm##Aq))chhjj$v,,???	 ~----..""qqq\  	i111 GS$v,,777
b(+++++r&   )r"   r#   r$   rK  rl   r  r  rP  rT  rC   rH   rW  rY  paramrF  r   r^  rf  rk  rm  ro  ru  rz  slicer;   r~  r!   r&   r'   rH  rH    s       $ $ $ []T5M::2 2 ;:2*
, 
, 
, [!XRXsQCj888A3*E 
0 
0 
0 [WsHBHsecU^,D,Dusen&UVV
, 
, WV
, [EFLuk''H  (    
	
  [Y|$$ii&=&=>		
 . .  ..A A A	: 	: 	: [Ww&899, , :9,, , , , , , , , ,@ [!feeDkk"\\\<<<$@AeDkk55;;'+!Q[1a&!c1XsOc828A;;!%eDkk828A;;'3eD!nnhbhqkk*QF3...//:T:T:T1U1UVA	
  , ,!  , , ,r&   rH  c                     t          dddgi          } t          j        t          d          5  d| j        d d df<   d d d            n# 1 swxY w Y   t          j        t          d          5  ddd	| j        d d df<   d d d            n# 1 swxY w Y   d
dd	| j        d d df<   t          dd
dgi          }t          j        | |           d S )Nr)   r*   r-   zInvalid valuerd   Tr;  g      @r  r/   rg   )r   rl   rm   	TypeErrorr   r2   ry   r6   r7   s     r'   'test_full_setter_loc_incompatible_dtyper    sd   	C!Q=	!	!B	y	8	8	8  qqq#v               
y	8	8	8 * * S))qqq#v* * * * * * * * * * * * * * * q\\BF111c6N#1v''H"h'''''s#   A

AA0BBBc            
          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	          j        | |           d S )NrU   )r<  ru   rd  r&  )r*   r  r*   r?  Gr   r'  r  )rN   rO   r?  r  )r   r   r,   r   r2   ry   r  s     r'   )test_setitem_partial_row_multiple_columnsr    s    	55	6	6B(2BF28q=3*$%q%,,'e-		
 	
 H "h'''''r&   )0r   numpyrC   rl   pandas.core.dtypes.baser   r  pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r   r   r	   pandasr  r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr2   pandas.core.arraysr   pandas.tseries.offsetsr   r   r  r  r  r	  r  rH  r  r  r!   r&   r'   <module>r     s              < < < < < < 5 5 5 5 5 5                                                  $       * * * * * * ' ' ' ' ' 'I, I, I, I, I, I, I, I,X(1 (1 (1 (1 (1 (1 (1 (1VW, W, W, W, W, W, W, W,t), ), ), ), ), ), ), ),X, , , , , , , ,,C, C, C, C, C, C, C, C,Lj, j, j, j, j, j, j, j,Z( ( (( ( ( ( (r&   