
    bMh                        d dl m Z  d dlZd dlZd dlmc 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
          Z+ G d d          Z, G d d          Z- G d d          Z. G d d          Z/ G d d          Z0 G d d          Z1d Z2d 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                   d   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ej                            d ed           ed          f edd           edd          f e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                            d/d0d0gg          d1             Z&d2 Z'd3 Z(ej                            d4g d5g d6g          d7             Z)d8 Z*d9 Z+d: Z,d; Z-d< Z.ej                            d=g d>g d?d@fg dAg d?d@fg dBg d?d@fg dCg dDdEfg dFg dGdHfg dIg dGdJfg          dK             Z/dL Z0ej                            dMg dNdO e1g dPg dPg dPgg dNQ          fdRdSgdOdTg e1g dUg dVg dWgg dNQ          fg dX e2j3        g dYe2j4        Z           e1g dYg dYg dYgg dXQ          fg d[g dYg d\g d]g e1g d^g d_g d`gg dNQ          fg da e2j3        g dYg d\g d]ge2j4        Z           e1g dbg dcg ddgg dNQ          fdedRg e1dOdTgdfdggdhdiggdedRgQ           e1g djg dkg dlgg dXQ          fg          dm             Z5dn Z6do Z7dp Z8dq Z9dr Z:ds Z;e<j=        dt             Z>ej                            dui dvdwig          dx             Z?dy Z@dz ZAd{ ZBd| ZCd} ZDd~ ZEdS )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S )@TestDataFrameSetItem.test_setitem_str_subclass.<locals>.mystringN)__name__
__module____qualname__     h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_setitem.pymystringr    -   s        Dr%   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)   
   r8   )nprandomdefault_rngintegerslenarrayr8   name)r3   r8   float_framearrs       r&   test_setitem_dtypez'TestDataFrameSetItem.test_setitem_dtype8   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)rB   rC   rD   standard_normalrF   r1   assert_almost_equalvalues)r3   rI   r4   s      r&   test_setitem_list_not_dataframez4TestDataFrameSetItem.test_setitem_list_not_dataframeB   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-   r/   foorH   r*   )ghij)r(   r-   r/   r(   fizr+   rH   z/cannot reindex on an axis with duplicate labelsmatchnewcolr,   r   )   rf   r(   r-   r/   rU   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
ValueErrorrB   rC   rD   rE   groupbycount)r3   r5   sermsgs       r&   test_setitem_error_msmgsz-TestDataFrameSetItem.test_setitem_error_msmgsG   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 )Nr@      r*   r,   )
r   rangerB   rC   rD   rO   repeatreshaper1   assert_frame_equal)r3   NKr5   new_colr_   r6   s          r&   test_setitem_benchmarkz+TestDataFrameSetItem.test_setitem_benchmarke   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,   rt   r.   rt   )r/   r-   r(   r+   ri   r   r[   r(   rX   r/   r=   xr>   )r[   r/   rX   r-   r(   r   r*   rf   r9   y)r[   r/   rX   r-   r(   r   r   )r   rB   rC   rD   rO   arangeinsertastypedtypesr   r8   r1   assert_series_equalr3   r5   resultr6   s       r&   test_setitem_different_dtypez1TestDataFrameSetItem.test_setitem_different_dtypep   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t          dgt                              }t	          j        ||           d S )NrM   rN   Cr*   Xr   r   zrA   )r4   r+   ri   )r   r+   r   objectr1   rx   r3   r5   exps      r&   test_setitem_empty_columnsz/TestDataFrameSetItem.test_setitem_empty_columns   s    ___---(3!//3'!//3%v...
 
 

 	b#&&&&&r%   c                     t          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)freqr*   rM   M8[ns])r   r   rB   r   rF   r8   )r3   rngr5   s      r&   %test_setitem_dt64_index_empty_columnsz:TestDataFrameSetItem.test_setitem_dt64_index_empty_columns   sh    ,.@uMMMRYs3xx001113#w} 2 2222222r%   c                 H   t          t          d                    }t          dd                              d          |d<   t          t          dd          ggdz  t          d          t	          dgt
                    	          }t          j        ||           d S )
Nr.   r*   20130101UTCtznsnowrA   r   )r   ru   r   as_unitr   r   r1   rx   r3   r5   r6   s      r&   $test_setitem_timestamp_empty_columnsz9TestDataFrameSetItem.test_setitem_timestamp_empty_columns   s    U1XX&&&jU333;;DAA5	
u---./!3((5'000
 
 

 	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,   rZ   r@   rX   rh   zLength of values \(z$\) does not match length of index \(z\)rc   r[   )r
   
from_codesr   ru   rF   rk   rl   rm   )r3   catr5   rq   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 )NrZ         ?       @      @c_1n_1r   r   r)   
new_columnr\   )r   r   r   r1   r   )r3   r5   sp_arrayr6   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 )
NrZ   r   r   r   )r,   r)   r   r*   r   )r)   r   r   r\   )r   r   r   r1   r   )r3   r5   	sp_seriesr6   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t          dgt                              }t	          j        ||           d S )Nz2003-12Dr(   rA   rh   )r   r   r   r   r1   rx   )r3   r4   r   r6   s       r&   #test_setitem_period_preserves_dtypez8TestDataFrameSetItem.test_setitem_period_preserves_dtype   sf    y#&&'2sc4[%V2L2L2LMMM
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:   rA   rT   r;   rg   r   )r   r   float	enumerateintrB   r;   locshaper1   rx   )r3   r6   r5   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   rt   )leftrightr:   r   z
2011-01-01z
US/Easternr   s)unitr   c                     t          g dt          |gdz  |          d          }t          dg di          }||d<   t          j        ||           d S )NrT   r.   rA   )r   objr   r   r   r   r1   rx   )r3   r   r8   r6   r5   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$   )
isinstancerH   property).0r8   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   r1   rx   )r3   r   r   r6   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]rA   new)r   r   datetime64[s]r   )
rB   rG   r   to_framer   r1   rx   r   assert_numpy_array_equalto_numpy)r3   data_nsr   r6   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[]rA   )r   r   r   intsr*   	rB   r8   r   r:   viewr   r   rQ   allr3   r   nr8   valsex_valsr5   s          r&   -test_frame_setitem_datetime64_col_other_unitszBTestDataFrameSetItem.test_frame_setitem_datetime64_col_other_units)  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   rA   r   r   r*   r   datesr   r   s          r&   6test_frame_setitem_existing_datetime64_col_other_unitszKTestDataFrameSetItem.test_frame_setitem_existing_datetime64_col_other_units>  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                 X   |}|d                              d          }||d<   t          j        |d         t          |d                     d|d<   ||d<   t          j        |d         t          |d                     |d= |j        j        d         }|j        j        d         }t          j        ||           |j        j        }|j        j        }|s%|"t          |          t          |          k    sJ n"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 )NrN   r[   r   r\   r   r)   r,   )r)   r)   r)   r,   )TFT)renamer1   r   r   _mgrarraysassert_extension_array_equal_ndarraybaseidcopyr   ilocr   r   )r3   timezone_frameusing_copy_on_writer5   r   v1v2v1basev2basedf2r   s              r&   test_setitem_dt64tzz(TestDataFrameSetItem.test_setitem_dt64tzO  s   gnnU## 3
r#ws(=(=(=>>>33
r#ws(=(=(=>>>sG
 W^AW^A
'B///!!" 	,>bjjBvJJ&>&>&>&>f::F++++ 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/2000rt   r+   )periodsrH   r,   r~   r*   r   Fcheck_names)r   r   rB   rC   rD   rO   r   r1   assert_index_equalrH   reset_index	set_indexr   r+   r   )r3   r   r5   rss       r&   test_setitem_periodindexz-TestDataFrameSetItem.test_setitem_periodindexq  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threerT   r(   r-   r)   r.   rt   r/   rU   r)   r.   rt   r)   r)   r)   rg   )r   rB   rG   r   r8   r1   rx   r3   r5   rJ   r6   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   rM   )r  r   rH   )	r   r   r   r   r   r   r   r   r   r   rA   )r   r   	_na_valuer   r1   rx   )r3   r   r   r6   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 )NrT   rA   r,   )r.   r.   rh   rZ   F)r)   r,   r.   Fr  )r   r   r   F)
r   r   rB   rC   rD   rO   r   r1   r
  ri   )r3   r8   colsr5   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%   indexerrN   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 )NrM   rN   rh   r)   r,   rM   rN   r   )r   rB   nanr   r1   rx   )r3   r#  r5   otherr6   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   rM   )r)   rf   rN   r,   rt   r   )r   r)   r,   r.   rf   rt   r)   rf   rt   r   rA   )
r   ru   r   rB   r&  r   r:   ri   r1   rx   )r3   r   r5   r6   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 keyrc   )r   r.   rt   rM   )r   ru   rk   rl   rm   r   )r3   r   r5   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   rZ   )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 )
NrT   rh   r@      rU   rV   r-  rc   r(   r   rk   rl   rm   )r3   r   r5   rhsrq   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 )
NrT   r(   r-   r-   rh   r@   r0     r(   r-   r/   )r@   r0  r7  r@   )r(   r-   r-   r/   r   r3   r5   r2  r6   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 )
NrT   r5  rh   r@   r0  r(   r-   r-  rc   r1  )r3   r5   r2  rq   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 )NrM   r@   rt   rN   r   r   EFc                 D    t          t          j        |                     S N)r   rB   rG   r   s    r&   <lambda>z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>  s    eBHQKK(( r%   Fr  )r   ru   r   r   r   
categoriesr   rB   rG   rQ   r   r   r8   r   r   r   r1   r
  rN   r   r   r   )r3   r5   rp   r/   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
   r1   rx   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\   rM   ri   r+   )r   r   r1   r
  r+   )r3   r+   r   r6   s       r&    test_setitem_with_empty_listlikez5TestDataFrameSetItem.test_setitem_with_empty_listlike)  sb    bu%%%C5666scU%888
flHN;;;;;r%   zcols, values, expected)r   r   r   r(   r)   r,   r.   rf   rf   )r   r   r   r(   )r   rN   rN   r(   )r   rN   r(   rT   r.   )rN   r   r(   )r.   r,   r)   r)   )r   r(   rN   r,   c                 v    t          |g|          }|d         |d<   |d         j        d         }||k    sJ d S )Nrh   r(   r   )r   rQ   )r3   r   rQ   r6   r5   r   s         r&   test_setitem_same_columnz-TestDataFrameSetItem.test_setitem_same_column1  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  rL  rT  rR  )rT  rV  )rS  rU  )rT  rU  )rS  rV  )r   from_productr   rB   rC   rD   rE   rF   r   r+   rQ   r   shuffler   r1   rx   )r3   itr   r+   r   r5   r_   r`   s           r&   test_setitem_multi_indexz-TestDataFrameSetItem.test_setitem_multi_indexC  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)rM   rN   r   r      )r_  r_  r_  r_  rh   r   r      )r)   r,   r_  r`  )r.   rf   r_  r`  rt      r_  r`  r   )r_  r`  r  rA   )rN   r   r   r6  )         )r)   r_  r`  r  )r.   r@   r0  r7  )rt   rc  rd  re  )r   rM   r   )r`  r,   r_  r  )r0  rf   r@   r7  )rd  rb  rc  re  rM   r  r@   r0  r7  )r_  r,   r`  )r  rf   r@   )r0  rb  r7  c                 r    t          ddgddgddggddg	          }|||<   t          j        ||           d S )
Nr)   r,   r.   rf   rt   rb  rM   rN   rh   r   )r3   ri   boxr6   r5   s        r&   !test_setitem_list_missing_columnsz6TestDataFrameSetItem.test_setitem_list_missing_columns[  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 )NrM   rN   tuplesrb   )rH  zipr   r+   r1   r   )r3   rI   rj  r   r6   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 )	NrT   rf   rt   rb  r  c              3      K   | ]}|V  d S r@  r$   r   r   s     r&   	<genexpr>zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>  "      %%1%%%%%%r%   r   r)   r  rf   r)   r)   r   r   r1   rx   r3   r5   r#  r6   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 )NrT   rn  r  c              3      K   | ]}|V  d S r@  r$   rp  s     r&   rq  zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>  rr  r%   r   r)   rs  rt  ru  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)rH   r8   r0   rA   r   r(   )rH   r+   r8   r-   S64r/   rU   abcdr*   )r   r   r   rB   r;   uint8r   r   rH  r1   r   )r3   r+   r5   r   r6   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.   rf   rt   rb  r  r:   Int64Fr*   r(   r-   )r   r   r   r+   r   r1   rx   )r3   r   maskr6   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  rA   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                    5  t          j        |          |d	<   d d d            n# 1 swxY w Y   t          j	        ||           d S )
Nr@   )np-array	np-matrixr*   )r@   r)   r0   rA   r   r  r  )
r   rB   onesr   r   r1   assert_produces_warningPendingDeprecationWarningmatrixrx   )r3   r6   r(   r5   s       r&   test_setitem_npmatrix_2dz-TestDataFrameSetItem.test_setitem_npmatrix_2d  s    272;;??ryQS}}
 
 
 GGRYr]]E"E4J4J4JKKK: '(ABB 	+ 	+ illB{O	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	b(+++++s   /CCCr   rU   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.   rf   r  r      )r)   r   r(   rt   rb  r   r)   r/   rV   )r/   rV   )r   r   rB   r&  r1   rx   )r3   r   r5   r6   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,   r@   r0  r*   r   )r   rB   r&  r1   rx   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.   rf   ri   r4   r@   r0  rA   r  r   r3   any_numeric_ea_dtyper5   r6   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-   rA   r  )
rk   importorskipr   pdoption_contextr   r   r   r1   rx   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  r@   r   r   r1   rx   )r3   r5   r6   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(   r@   r  rA   r0  r  r   )r   rB   rG   r   r   r1   rx   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          }t	          j        t          d          5  ||j        d d df<   d d d            n# 1 swxY w Y   t	          j        t          d          5  ||d<   d d d            n# 1 swxY w Y   t          dgt          t          d          gd	          t          t          d          gd	          d
          }t	          j	        ||           d S )Nz
2019-12-31rA   r(   r)   inferrc   r-   r/   r   rZ   )
r   r   r   r   r1   r  FutureWarningr   r   rx   )r3   r   r5   r6   s       r&   test_setitem_object_inferringz2TestDataFrameSetItem.test_setitem_object_inferring  s   Y|,,-V<<<aSz""'WEEE 	! 	! BF111c6N	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!'WEEE 	 	BsG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 SY|445=MNNNY|445=MNNN 
 
 	b(+++++s$   A--A14A1B%%B),B)N)Fr!   r"   r#   r7   rk   markparametrizerK   rR   rr   r|   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   ea_registryr   r   r   r   r   r  r  r  r  r"  r(  r+  r.  r3  r9  r;  rD  rJ  rM  rP  r^  r   rB   rG   r:   rh  rl  rv  ry  r  r  r  td&skip_array_manager_not_yet_implementedr  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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  6D- - -, , ,&	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:00rN   r\   z
US/Pacific)r   tz_localize)r3   naiver   s      r&   r   zTestSetitemTZAwareValues.idx/  s3    /1ABMMM--
r%   c                     t          t          j        |                                d          d          }|j        |j        k    sJ |S )Nr   rA   rN   r\   )r   rB   rG   tolistr8   )r3   r   r6   s      r&   r6   z!TestSetitemTZAwareValues.expected5  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)   rM   rh   rN   r   r)   r*   r   r\   )r   rB   rC   rD   rO   	to_seriesdt
tz_convertr   r  r1   r   )r3   r   r6   r5   r   comps         r&   test_setitem_dt64seriesz0TestSetitemTZAwareValues.test_setitem_dt64series;  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  rM   rh   rN   )r   rB   rC   rD   rO   r1   r   r3   r   r6   r5   r   s        r&   test_setitem_datetimeindexz3TestSetitemTZAwareValues.test_setitem_datetimeindexE  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         }t          j        ||           d S r  )r   rB   rC   rD   rO   to_pydatetimer1   r   r  s        r&   .test_setitem_object_array_of_tzaware_datetimeszGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesN  so    ry,,Q//??GGRUQVWWW ##%%3C
vx00000r%   N)
r!   r"   r#   rk   fixturer   r6   r  r  r  r$   r%   r&   r  r  .  sy        ^  ^
 ^  ^
- - -1 1 11 1 1 1 1r%   r  c                   J    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S )!TestDataFrameSetItemWithExpansionc                 n   t          g dg dd          }|d         }t          j        ddgddgdd	gg          |d
dg<   t          j        |          5  d|j        d<   d d d            n# 1 swxY w Y   |rt          g dd          }nt          g dd          }t          j        ||           d S )NrT   )rf   rf   rb  r  r(   g?g?g333333?g?      ?r/   rU   r   )r   r   r\   )r   r,   r.   )r   rB   rG   r1   assert_cow_warningr   r   r   )r3   r   warn_copy_on_writer5   rp   r6   s         r&   test_setitem_listlike_viewsz=TestDataFrameSetItemWithExpansion.test_setitem_listlike_viewsY  s   YYYYYY7788 g C:SzC:"FGGC: "#566 	  	 BGDM	  	  	  	  	  	  	  	  	  	  	  	  	  	  	   	5iiic222HHkkk444H
sH-----s   A,,A03A0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.   rf   rt   rb  0 - Name)r)   r,   rt   )r.   rf   rb  )r   r)   r  rh   r   r   s      r&   .test_setitem_string_column_numpy_dtype_raisingzPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raisingm  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 )	Nr5  r>   ri   r8   r,   r(   r   r)   rh   )r   rH  ru   r   rB   r&  r1   rx   )r3   r   r5   r6   s       r&   'test_setitem_empty_df_duplicate_columnszITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columnst  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   r9   rA   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   )rC  orderedr*   r=  )r  r   r=  )r   rB   rG   rC   rD   rE   r
   ru   sort_valuesr   r  rQ   r   r   r8   r   r1   r   assert_categorical_equalr   rH   
sort_index)	r3   r5   r  rp   r   r   r6   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          t          dgt                                                  t          j                  }t          j        ||           d S )Nr)   r[   rA   rh   )r   r   r   r   rB   r:   r1   rx   r   s      r&   test_setitem_scalars_no_indexz?TestDataFrameSetItemWithExpansion.test_setitem_scalars_no_index  s\    [[5	UE7&%A%A%ABBBII"(SS
b(+++++r%   c                     d|j         vsJ |d         |d<   d|j         v sJ |d         }|d         }t          j        ||d           d S )Nr%  rM   Fr  )ri   r1   r   )r3   rI   r   r6   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   r@   rL  i  r0  r)   )
r   r   r   ru   r   r   rB   r&  isnanr   )r3   ri   r4   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   r1   rx   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.   rf   r  r@   r0  rA   r/   rZ   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                 j   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          }t          j        ||           d S )Nabcrh   rt   r   )r   H   23rZ   r   z0 days 00:00:05z0 days 00:01:12r   )	r   rH  r  to_timedeltar   	Timedeltar   r1   rx   )r3   r   r6   s      r&   &test_loc_expansion_with_timedelta_typezHTestDataFrameSetItemWithExpansion.test_loc_expansion_with_timedelta_type  s    4;;///---#...
 

1
 l,--r|<M/N/NPTUV**$__
 
 

 	fh/////r%   N)r!   r"   r#   r  r  r  r  r  r  r  r  r  r  r$   r%   r&   r  r  X  s        . . .(, , ,, , ,+G +G +GZ, , ,
D 
D 
D( ( (0 0 0, , ,0 0 0 0 0r%   r  c                      e Zd Z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                                     Zej                            de
ej        eej        g          ej                            dg 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                                     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   rB   zerosr1   rx   r  s       r&   test_setitem_slice_positionz7TestDataFrameSetItemSlicing.test_setitem_slice_position  sf    rx))**233hx  BCCS>>
b(+++++r%   r#  rg  r   rT   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,   rf   rb  rZ   rh   r6  r)   r   r3   r   rg  r#  r5   r6   s         r&   +test_setitem_slice_indexer_broadcasting_rhszGTestDataFrameSetItemSlicing.test_setitem_slice_indexer_broadcasting_rhs  s    
 			{iii[1_4oooNNN#lll++ABB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   rH  ru   r1   rx   )r3   r   rg  r5   r6   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  rZ   rh   r6  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
 
 
 #lll++ABBYYK<<<.AE22#OO
 
 

 	b(+++++r%   N)r!   r"   r#   r  rk   r  r  r1   setitemr   r   rB   rG   rH  r  r   r  r  r$   r%   r&   r  r    s       , , , [YRW(=>>[UVRXtRX$FGG[S))),,, , -, HG ?>, [UVRXtRX$FGG[S))),,, , -, HG, [YRW(=>>[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 )NrN  ra  r%  )r0  r7  rc  rd  c                     dS )NrM   r$   rA  s    r&   rB  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$   rA  s    r&   inczETestDataFrameSetItemCallable.test_setitem_other_callable.<locals>.inc$  s    q5Lr%   rZ  r)   rA   r   )r   r   r1   rx   )r3   r  r5   r6   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        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ej                            dej        ej        g          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,   )rB   absr5   s    r&   rB  z(TestDataFrameSetItemBooleanMask.<lambda>3  s    Ba' r%   c                 B    | t          j        |           dz  k    j        S r  )rB   r  rQ   r  s    r&   rB  z(TestDataFrameSetItemBooleanMask.<lambda>3  s    R"&**q.5H4P r%   	dataframerG   )idsc                 `   |                                 } ||          }|                                 }t          j        ||<   |j                                         }t          j        |t          j        |          <   t          ||j        |j                  }t          j	        ||           d S )Nr   )
r   rB   r&  rQ   rG   r   r+   ri   r1   rx   )r3   r  rI   r5   r  r   r6   s          r&   test_setitem_boolean_maskz9TestDataFrameSetItemBooleanMask.test_setitem_boolean_mask0  s     y}} vt9>>###%6$ XRXrzJJJ
fh/////r%   z1Currently empty indexers are treated as all False)reasonrg  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)   rZ   r   rA   z@Must have equal len keys and value when setting with an iterablerc   r-   )r   r   rk   rl   rm   r   )r3   rg  r5   r#  rq   s        r&   :test_setitem_loc_empty_indexer_raises_with_non_empty_valuezZTestDataFrameSetItemBooleanMask.test_setitem_loc_empty_indexer_raises_with_non_empty_valueD  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)   rZ   Fr@   r/   r-   r  )r   r   r1   rx   )r3   rg  r5   r#  r6   s        r&   1test_setitem_loc_only_false_indexer_dtype_changedzQTestDataFrameSetItemBooleanMask.test_setitem_loc_only_false_indexer_dtype_changedQ  s    
 cU!A37788#ug,,!#bgw~C5s!==>>
b(+++!"w~
b(+++++r%   r#  c                     t          g dg dd          }|                                }|d         dk    } ||          |                             d           ||          |<   t          j        ||           d S )N)r)   rf   r,   r.   ra  r  r(   r.   )r   r   r  r1   rx   )r3   r#  r5   r6   r  s        r&   "test_setitem_boolean_mask_aligningzBTestDataFrameSetItemBooleanMask.test_setitem_boolean_mask_aligning_  s     \\\==>>7799#w!|#GBKK-99#>>D
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-   )rC  )r^   r_   r`   klr   r   )r)   r)   r,   r,   r)   r)   r)   )catsrQ   r*   )r(   r(   r/   r/   r(   r(   r(   rZ   )r)   r)   r.   r.   r)   r)   r)   r%  r/   r,   )r
   r   r   r   r   set_categoriesr1   rx   )r3   cats2idx2values2exp_multi_rowcatsfidxfvaluesfr5   	exp_fancyr  s              r&   test_setitem_mask_categoricalz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalh  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%   r8   r   r:   kwargsr+   r)   ri   rM   c                     ||d<   t          di |}|                                }d|||k    <   t          j        ||           d S )Nr8   /   r$   r  )r3   r8   r0  r5   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         @      @rA   )r+   ri   r4   )r6  r   rZ  )rZ  rZ  rZ  rZ  r   zItem wrong lengthrc   r,   )rH  ru   r   rB   rG   r   r  rF   r1   rx   rk   rl   rm   r+   )r3   r   r   df1r  r6   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.   rf   r(   rZ   Fr/   r\   r-   rt   rb  r   r*   )r   r   r   r   r1   rx   )r3   r5   r6   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 )NrZ  r,   r.   r  r   TFbooleanrA   r  )r   r   r  NAr1   rx   )r3   r5   r6   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#   r  skip_array_manager_invalid_testrk   r  r  r  xfailrH  rB   rG   r   r  r  r1   r  r   r!  r/  r3  r;  r=  rB  r$   r%   r&   r  r  /  s       '[	'	')P)PQ'"   
0 0  ('0 [QRR[UT28V$<==	) 	) >= SR	) [UT28V$<==, , >=, [YRV(<==, , >=,- - -. [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ej        d             Zd Zej                            dd	dg          d             Zd Z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=  rM   rt   r@   )ri   r   rB   r&  r   get_locr   r   )r3   rI   r   s      r&   test_setitem_always_copyz>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copy  s    +-----!!##CCE62{2::3???@QqtW~~!!#######r%   consolidateTFc                 t   t          g dg ddg d          }|                    ddt          j                   |sU|r4|                                 t          |j        j                  dk    sJ nt          |j        j                  dk    sJ |d         j        }d	|j	        dd df<   t          t          j        t          j        d	d	g|j        d
          }t          j        |d         |           |s<t          j        ||j                   t          j        ||d         j                  sJ d S d S )N)g?g @g@gffffff@)gffffff@gffffff@gffffff@g333333 @)r   r   )r   r)   r,   r.   r*   r,   r   r)   *   rb   )r   r   rB   r&  _consolidate_inplacerF   r   blocks_valuesr   r   r+   r1   r   r   rQ   shares_memory)r3   rJ  using_array_managerr   r5   zvalsr6   s          r&   #test_setitem_partial_column_inplacezITestDataFrameSetitemCopyViewSemantics.test_setitem_partial_column_inplace  sU    &&&-A-A-ABB,,,
 
 
 			!S"&!!!" 	0 0'')))27>**a/////27>**a////3qrr3w26262r2"(MMM
r#w111 # 	<'x???#E2c7?;;;;;	< 	<;;r%   c                     ddgdz  }t          ddg|          }|                                }|d d          }d|d<   t          g dg|	          }t          j        ||           t          j        ||           d S )
NrM   rN   r,   r5  r   r   r*  )r5  r,   r5  rt   rh   r  )r3   r   r5   df_copydf_viewr6   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:   rA   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 )NrM   rN   r   r)   r   rh   r  )r3   r  rQ  r   r5   rU  rV  r6   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 )NrM   rN   r   r)   r   r   rh   r  )r3   r  r   r5   rU  rV  r6   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)   rt   )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  )r3   r  	set_valuer#  r5   r6   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   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   |sHt          j	        |t          j
        d          t          j
        d          f         dk              sJ d S t          j	        |t          j
        d          t          j
        d          f         dk              sJ d S )Nc                     g | ]}d | S )r/   r$   r  s     r&   r   z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<listcomp>-  s    ---a'a''---r%   r@   c                 T    i | ]$}|t          j        t                              %S r$   )rB   r  rF   )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)   )ru   r   r   rN  rQ   r1   raises_chained_assignment_errorri   rB   r   r   )r3   r   r  r5   rQ   labelr  s         @r&   "test_setitem_column_update_inplacezHTestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace'  sd    .-599---EEEEfEEEVTTT")/11 	% 	% % %#$5	%  %	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% # 	E6&2	"!=>!CDDDDDDD 6&2	"!=>!CDDDDDDDs   "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 )	NrT   rG  rA   col1col2)r:   rG  rG  )r   rj  rk  )r+   r8   )r   r   r   r1   r   r   )r3   r5   expected_typess      r&   %test_setitem_column_frame_as_categoryzKTestDataFrameSetitemCopyViewSemantics.test_setitem_column_frame_as_category;  s    yyy!!yyy
;;;6
IIIZ8886
---5H5H5HPV
 
 
 	ry.99999r%   r8   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.   rA   r,   r   )r,   r)   r)   )r   rB   r  rG   r   r1   rx   )r3   r8   r5   r6   s       r&   "test_setitem_iloc_with_numpy_arrayzHTestDataFrameSetitemCopyViewSemantics.test_setitem_iloc_with_numpy_arrayF  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 )NrN  )rf   rt   rb  r_  )r(   r-   r(   r/   rh   r   r6  r,   r7  r(   )r   r,   r6  rf   )r,   rt   r7  r_  rT   rn  )r(   r(   r-   )r   r6  r.   )r,   r7  rb  r   r8  s       r&   !test_setitem_frame_dup_cols_dtypezGTestDataFrameSetitemCopyViewSemantics.test_setitem_frame_dup_cols_dtypeO  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)r8   rH   r   30102010rL  )r   r   r  r   r1   rx   )r3   dtir5   r6   s       r&   "test_frame_setitem_empty_dataframezHTestDataFrameSetitemCopyViewSemantics.test_frame_setitem_empty_dataframe_  s    \N(HHH}%%//77!W\\^^6
6
V$bqb'
 
 

 	b(+++++r%   N)r!   r"   r#   rI  rk   r  r  rS  rW  rB   rG   rY  r[  paramrD  r   r`  r  rC  rh  rm  ro  rq  rw  r$   r%   r&   rF  rF    s`       $ $ $ []T5M::< < ;:<>
, 
, 
, [!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&=&=>		
 . .  .. 'E E ('E&	: 	: 	: [Ww&899, , :9,, , , , , , , ,r%   rF  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          dddgi          }t          j        | |           t          dddgi          } t          j        t          d          5  ddd	| j        d d df<   d d d            n# 1 swxY w Y   t          dddgi          }t          j        | |           t          dddgi          } d
dd	| j        d d df<   t          dd
dgi          }t          j        | |           d S )Nr(   r)   r,   zincompatible dtyperc   Tr8  g      @r  r.   rf   )r   r1   r  r  r   rx   r5   r6   s     r&   'test_full_setter_loc_incompatible_dtyper{  p  s   	C!Q=	!	!B		#M9M	N	N	N  qqq#v              #d|,--H"h'''	C!Q=	!	!B		#M9M	N	N	N * * S))qqq#v* * * * * * * * * * * * * * *#Sz*++H"h'''	C!Q=	!	!Bq\\BF111c6N#1v''H"h'''''s#   A

AA+C		CC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 )NrT   )r9  rt   rb  r%  )r)   r  r)   r>  Gr   r&  r  )rM   rN   r>  r}  )r   r   r+   r   r1   rx   rz  s     r&   )test_setitem_partial_row_multiple_columnsr~    s    	55	6	6B(2BF28q=3*$%q%,,'e-		
 	
 H "h'''''r%   )4r   numpyrB   rk   pandas.util._test_decoratorsutil_test_decoratorsr  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_testingr1   pandas.core.arraysr   pandas.tseries.offsetsr   r   r  r  r  r  r  rF  r{  r~  r$   r%   r&   <module>r     s              ) ) ) ) ) ) ) ) ) < < < < < < 5 5 5 5 5 5                                                  $       * * * * * * ' ' ' ' ' 'A, A, A, A, A, A, A, A,H'1 '1 '1 '1 '1 '1 '1 '1TP0 P0 P0 P0 P0 P0 P0 P0f+, +, +, +, +, +, +, +,\, , , , , , , ,,E, E, E, E, E, E, E, E,Pv, v, v, v, v, v, v, v,r( ( ((( ( ( ( (r%   