
    dC                        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mZ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          Z0 G d d          Z1 G d d          Z2 G d d          Z3dS )    )datetimeN)	_registry)is_categorical_dtypeis_interval_dtype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                   J   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          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#ej                            dg d*          d+             Z$ej                            d,d-d-gg          d.             Z%d/ Z&d0 Z'ej                            d1g d2g d3g          d4             Z(d5 Z)d6 Z*d7 Z+d8 Z,d9 Z-ej                            d:g d;g d<d=fg d>g d<d=fg d?g d<d=fg d@g dAdBfg dCg dDdEfg dFg dDdGfg          dH             Z.dI Z/ej                            dJg dKdL e0g dMg dMg dMgg dKN          fdOdPgdLdQg e0g dRg dSg dTgg dKN          fg dU e1j2        g dVe1j3        W           e0g dVg dVg dVgg dUN          fg dXg dVg dYg dZg e0g d[g d\g d]gg dKN          fg d^ e1j2        g dVg dYg dZge1j3        W           e0g d_g d`g dagg dKN          fdbdOg e0dLdQgdcddgdedfggdbdOgN           e0g dgg dhg digg dUN          fg          dj             Z4dk Z5dl Z6dm Z7dn Z8do Z9dp Z:e;j<        dq             Z=ej                            dri dsdtig          du             Z>dv Z?dw Z@dx ZAdyS )z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__     d/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_setitem.pymystringr"   1   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t          |                    }t          j        ||          ||<   ||         j        j        |k    sJ d S )Nr+   
   r:   )nprandomrandintlenarrayr:   name)r5   r:   float_framearrs       r(   test_setitem_dtypez'TestDataFrameSetItem.test_setitem_dtype<   s`     i2s;'7'788Xc777E5!',555555r'   c                     t           j                            t          |          d          }||ddg<   t	          j        |ddg         j        |           d S )Nr.   AB)rD   rE   randnrG   r3   assert_almost_equalvalues)r5   rJ   r6   s      r(   test_setitem_list_not_dataframez4TestDataFrameSetItem.test_setitem_list_not_dataframeE   sR    ys;//33"&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          g d          }d}t          j        t
          |          5  |	                    ddg          
                                |d<   d d d            d S # 1 swxY w Y   d S )Nr+   r.   r0   )def)barbazr*   r/   r1   foorI   r,   )ghij)r*   r/   r1   r*   fizr-   rI   z/cannot reindex on an axis with duplicate labelsmatchnewcolr   r.   )   rg   r*   r/   r1   rV   columnszDCannot set a DataFrame with multiple columns to the single column grr/   r1   gr)r   r   r   pytestraises
ValueErrorrD   rE   rF   groupbycount)r5   r7   sermsgs       r(   test_setitem_error_msmgsz-TestDataFrameSetItem.test_setitem_error_msmgsJ   s   IIooo66e444
 
 
    ,,,5999
 
 

 @]:S111 	 	BxL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ry((Av66@T@T@TUUUT]: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 	6 	6 	6s$   ,A>>BB-DDDc                 h   d}d}t          t          |                    }t          j                            |          }t          |          D ]}|||<   t          t          j        ||                              ||          t          |                    }t          j        ||           d S )NrB      r,   )	r   rangerD   rE   rP   repeatreshaper3   assert_frame_equal)r5   NKr7   new_colr`   r8   s          r(   test_setitem_benchmarkz+TestDataFrameSetItem.test_setitem_benchmark`   s    U1XX&&&)//!$$q 	 	ABqEERYw22::1a@@aQQQ
b(+++++r'   c                    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 )Nru   r0   )r1   r/   r*   r-   rj   r   r\   r*   r.   rY   r1   r?   xr@   )r\   r1   rY   r/   r*   r   r,   rg   r;   y)r\   r1   rY   r/   r*   r   r   )r   rD   rE   rP   arangeinsertastypedtypesr   r:   r3   assert_series_equalr5   r7   resultr8   s       r(   test_setitem_different_dtypez1TestDataFrameSetItem.test_setitem_different_dtypek   s    IOOAq!!1
 
 
 			!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          j        ||           d S )NrN   rO   Cr,   Xr   r   z)r6   r-   )r   r-   r3   ry   r5   r7   exps      r(   test_setitem_empty_columnsz/TestDataFrameSetItem.test_setitem_empty_columns   sf    ___---(3!//3c???3???KKK
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,   rN   M8[ns])r   r   rD   r   rG   r:   )r5   rngr7   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                     t          t          d                    }t          dd          |d<   t          t          dd          ggdz  g ddg          }t          j        ||           d S )	Nr0   r,   20130101UTCtznowr   r+   r.   r   )r   rv   r   r3   ry   r5   r7   r8   s      r(   $test_setitem_timestamp_empty_columnsz9TestDataFrameSetItem.test_setitem_timestamp_empty_columns   s    U1XX&&&jU3335	
u---./!3999ug
 
 
 	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[   rB   rY   ri   zLength of values \(z$\) does not match length of index \(z\)rd   r\   )r   
from_codesr   rv   rG   rl   rm   rn   )r5   catr7   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   r3   r   )r5   r7   sp_arrayr8   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   r3   r   )r5   r7   	sp_seriesr8   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          j        ||           d S )Nz2003-12Dr*   )r   r   r3   ry   )r5   r6   r   r8   s       r(   #test_setitem_period_preserves_dtypez8TestDataFrameSetItem.test_setitem_period_preserves_dtype   sR    y#&&'2sc4[))
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 )Nr   r<   rC   rU   r=   rh   r   )r   r   float	enumerateintrD   r=   locshaper3   ry   )r5   r8   r7   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   c                     t          g dt          |gdz  |          d          }t          dg di          }||d<   t          j        ||           d S )NrU   r0   rC   )r   objr   r   r   r   r3   ry   )r5   r   r:   r8   r7   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).0r:   s     r(   
<listcomp>zTestDataFrameSetItem.<listcomp>   s<     	
 	
 	
ej(33		
J	
 	
 	
r'   zdatetime64[ns, UTC]z	period[D]c                     t          dg          }dg||<   t          ddg|dgi          }t          j        ||           d S )Nr   r+   r   r3   ry   )r5   r   r   r8   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]rC   new)r   r   datetime64[s]r   )
rD   rH   r   to_framer   r3   ry   r   assert_numpy_array_equalto_numpy)r5   data_nsr   r8   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'   unit)r_   ms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[]rC   )r   r   r   intsr,   	rD   r:   r   r<   viewr   r   rR   allr5   r   nr:   valsex_valsr7   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   rC   r   r   r,   r   datesr   r   s          r(   6test_frame_setitem_existing_datetime64_col_other_unitszKTestDataFrameSetItem.test_frame_setitem_existing_datetime64_col_other_units1  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        d         }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)renamer3   r   r   _mgrarraysassert_extension_array_equal_ndarraybaseidcopyr   ilocr   r   )
r5   timezone_framer7   r   v1v2v1basev2basedf2r   s
             r(   test_setitem_dt64tzz(TestDataFrameSetItem.test_setitem_dt64tzB  sf   gnnU## 3
r#ws(=(=(=>>>33
r#ws(=(=(=>>>sG W^AW^A
'B///!!~"V**6

":":":": 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   r0   r,   r   Fcheck_names)r   r   rD   rE   rP   r   r3   assert_index_equalrI   reset_index	set_indexr   r-   r   )r5   r   r7   rss       r(   test_setitem_periodindexz-TestDataFrameSetItem.test_setitem_periodindex`  s    :qw???ryq!,,C888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+   r0   ru   r1   rV   r+   r0   ru   r+   r+   r+   rh   )r   rD   rH   r   r:   r3   ry   r5   r7   rK   r8   s       r(   'test_setitem_complete_column_with_arrayz<TestDataFrameSetItem.test_setitem_complete_column_with_arrayn  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'   )f8i8u8c                 8   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   rC   r0   ri   r[   F)r+   r.   r0   Fr  )r   r   r   F)	r   r   rD   rE   rP   objectr3   r  rj   )r5   r:   colsr7   expected_colss        r(   $test_setitem_bool_with_numeric_indexz9TestDataFrameSetItem.test_setitem_bool_with_numeric_index  s     YYYe,,,ryq!,,d;;;#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   rD   nanr   r3   ry   )r5   r  r7   otherr8   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.   r0   r   )r   r0   )r   rN   )r+   rg   rO   r.   ru   r   )r   r+   r.   r0   rg   ru   r+   rg   ru   r  rC   )
r   rv   r   rD   r  r   r<   rj   r3   ry   )r5   r  r7   r8   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.   r0   r   "Columns must be same length as keyrd   )r   r0   ru   rN   )r   rv   rl   rm   rn   r   )r5   r  r7   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   rB      rV   rW   r&  rd   r*   r   rl   rm   rn   )r5   r  r7   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   rB   r)     r*   r/   r1   )rB   r)  r0  rB   )r*   r/   r/   r1   r   )r5   r7   r+  r8   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   r.  ri   rB   r)  r*   r/   r&  rd   r*  )r5   r7   r+  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                  sJ t          |d         j        j                  sJ t          |d         j                  sJ t          |d         j        j                  sJ t          |d                   sJ t          |d                   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   rB   ru   rO   r   r   EFc                 D    t          t          j        |                     S N)r   rD   rH   r   s    r(   <lambda>z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>  s    eBHQKK(( r'   Fr  )r   rv   r   r   r   
categoriesr   rD   rH   rR   r   r  r   r:   r   r   r3   r  rO   r   r   r   )r5   r7   rq   r1   s       r(   test_setitem_intervalsz+TestDataFrameSetItem.test_setitem_intervals  s   U2YY'(("S'1oo#',m<<<<<
 3(3--3*3(3:&&3**V$$3#BsGM22222 C!788888#BsGM22222 C!788888 !C))))) C))))) 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   r3   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   r3   r  r-   )r5   r-   r   r8   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.   r0   rg   rg   )r   r   r   r*   )r   rO   rO   r*   )r   rO   r*   rU   r0   )rO   r   r*   )r0   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   )r5   r  rR   r8   r7   r   s         r(   test_setitem_same_columnz-TestDataFrameSetItem.test_setitem_same_column  sL     x...S'3C"!!!!!!r'   c                 v   g dddgg df}t          j        |          }t          dd          }t          j                            dd	t          |          t          |          f          }t          |||
          }|j        j	        
                                |d         d d          }}t          j                            |           |d         j        |d d df         |d<   t          j        |d         |d                    t          j                            |           |d         j        ||f         |d<   t          j        |d         |d                    t          j                            |           |d         j        ||f         |d<   t          j        |d         |d                    d S )N)jimjoejoliefirstlast)r   centerr   20141006   )r  r+   i  rD  rL  rJ  )rL  rN  )rK  rM  )rL  rM  )rK  rN  )r   from_productr   rD   rE   rF   rG   r   r-   rR   r   shuffler   r3   ry   )r5   itr  r-   r   r7   r`   ra   s           r(   test_setitem_multi_indexz-TestDataFrameSetItem.test_setitem_multi_index'  s    %$$w&79T9T9TT&r**:r222y  D3u::s4yy*ABBtT777x##%%r"vaaay1
	!wKOAtttG,5	
biG555
	!!"348A>
b!12B7H4IJJJ
	! !348A>?
b126H3IJJJJJr'   zcolumns,box,expected)rN   rO   r   r      )rW  rW  rW  rW  ri   r   r      )r+   r.   rW  rX  )r0   rg   rW  rX  ru      rW  rX  r   )rW  rX  	   rC   )rO   r   r   r/  )         )r+   rW  rX  r[  )r0   rB   r)  r0  )ru   r\  r]  r^  )r   rN   r   )rX  r.   rW  r[  )r)  rg   rB   r0  )r]  rZ  r\  r^  rN   r[  rB   r)  r0  )rW  r.   rX  )r[  rg   rB   )r)  rZ  r0  c                 r    t          ddgddgddggddg	          }|||<   t          j        ||           d S )
Nr+   r.   r0   rg   ru   rZ  rN   rO   ri   r   )r5   rj   boxr8   r7   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 )NrN   rO   tuplesrc   )r@  zipr   r-   r3   r   )r5   rJ   rc  r   r8   s        r(   test_setitem_list_of_tuplesz0TestDataFrameSetItem.test_setitem_list_of_tuplesv  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   rZ  r  c              3      K   | ]}|V  d S r8  r&   r   r   s     r(   	<genexpr>zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>  "      %%1%%%%%%r'   r   r+   r  rg   r+   r+   r   r   r3   ry   r5   r7   r  r8   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   rg  r  c              3      K   | ]}|V  d S r8  r&   ri  s     r(   rj  zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>  rk  r'   r   r+   rl  rm  rn  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          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   r:   r,   r*   )rI   r-   r:   r/   S64r1   rV   abcd)
r   r   rD   r=   uint8r   r  r@  r3   r   )r5   r-   r7   r   r8   s        r(   (test_setitem_dtypes_bytes_type_to_objectz=TestDataFrameSetItem.test_setitem_dtypes_bytes_type_to_object  s    D...U###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 )Nr0   rg   ru   rZ  r  r<   Int64Fr,   r*   r/   )r   r   r   r-   r   r3   ry   )r5   r   maskr8   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.   rz  rC   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                    }||d<   t	          j        t                    5  t          j        |          |d<   d d d            n# 1 swxY w Y   t	          j        ||           d S )NrB   )np-array	np-matrixr,   )rB   r+   r  r  )	r   rD   onesr   r3   assert_produces_warningPendingDeprecationWarningmatrixry   )r5   r8   r*   r7   s       r(   test_setitem_npmatrix_2dz-TestDataFrameSetItem.test_setitem_npmatrix_2d  s    272;;??ryQS}}
 
 
 GGRYr]]+++: '(ABB 	+ 	+ illB{O	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	b(+++++s   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.   r0   rg   r  r      )r+   r   r*   ru   rZ  r   r+   r1   rW   )r1   rW   )r   r   rD   r  r3   ry   )r5   r   r7   r8   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.   rB   r)  r,   r   )r   rD   r  r3   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.   r0   rg   rj   r6   rB   r)  rC   r  r   r5   any_numeric_ea_dtyper7   r8   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                     t          ddgi          }|                                }d}||g         ||<   t          j        ||           d S )Nr  rB   r   r   r3   ry   )r5   r7   r8   col_names       r(   test_setitem_frame_midx_columnsz4TestDataFrameSetItem.test_setitem_frame_midx_columns  sP    
RD)**77998*~8
b(+++++r'   N)Br#   r$   r%   r9   rl   markparametrizerL   rS   rs   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,  r1  r3  r<  rB  rE  rH  rV  r   rD   rH   r<   ra  re  ro  rr  rx  r|  r~  td&skip_array_manager_not_yet_implementedr  r  r  r  r  r&   r'   r(   r   r   .   s       & & & [MMM 6 6 6E E E
6 6 6,	, 	, 	,!1 !1 !1F' ' '3 3 3, , ,
 
 
; ; ;; ; ;0 0 0, , ,6 [VIC 0 01X1A&&&gw(G(GH	,<888<000	

 
, ,
 
, [	
 	
$+	
 	
 	
 !+
.	/	 	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<- - -, , ,& [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)r5   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  rC   rO   r]   )r   rD   rH   tolistr:   )r5   r   r8   s      r(   r8   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+   rN   ri   rO   r   r,   r   r]   )r   rD   rE   rP   	to_seriesdt
tz_convertr   r  r3   r   )r5   r   r8   r7   r   comps         r(   test_setitem_dt64seriesz0TestSetitemTZAwareValues.test_setitem_dt64series  s    ryq!,,se<<<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   rD   rE   rP   r3   r   r5   r   r8   r7   r   s        r(   test_setitem_datetimeindexz3TestSetitemTZAwareValues.test_setitem_datetimeindex  sS    ryq!,,se<<< 3C
vx00000r'   c                     t          t          j                            dd          dg          }|                                |d<   |d         }t          j        ||           d S r  )r   rD   rE   rP   to_pydatetimer3   r   r  s        r(   .test_setitem_object_array_of_tzaware_datetimeszGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimes  s_    ryq!,,se<<< ##%%3C
vx00000r'   N)
r#   r$   r%   rl   fixturer   r8   r  r  r  r&   r'   r(   r  r    sy        ^  ^
 ^  ^
- - -1 1 11 1 1 1 1r'   r  c                   D    e 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<   |rt	          g dd          }nt	          g dd          }t          j        ||           d S )NrU   )rg   rg   rZ  r  r*   g?g?g333333?g?      ?r1   rV   r   )r   r   r]   )r   r.   r0   )r   rD   rH   r   r   r3   r   )r5   using_copy_on_writer7   rq   r8   s        r(   test_setitem_listlike_viewsz=TestDataFrameSetItemWithExpansion.test_setitem_listlike_views  s    YYYYYY7788 g C:SzC:"FGGC:  	5iiic222HHkkk444H
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.   r0   rg   ru   rZ  0 - Name)r+   r.   ru   )r0   rg   rZ  )r   r+   r  ri   r   r   s      r(   .test_setitem_string_column_numpy_dtype_raisingzPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raising*  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 )	Nr.  r@   rj   r:   r.   r*   r   r+   ri   )r   r@  rv   r   rD   r  r3   ry   )r5   r  r7   r8   s       r(   'test_setitem_empty_df_duplicate_columnszITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columns1  s    i@@@eAhhqqq#v 1bfbf"56
 
 
 	b(+++++r'   c           
          t          dt          j        t          j                            ddd          d          i          }t          d t          ddd          D                       }|                    dgd	
          }t          |j	        t          ddd          d|          }|j
        }||d<   t          |           |j        }t          t          j        d          t          |d          gddg          }t!          j        ||           ||d<   t          |           |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   i'  r   r;   rC   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   )r;  orderedr,   r5  )r  r   r5  )r   rD   rH   rE   rF   r   rv   sort_valuesr   r  rR   r2   r   r   r:   r   r3   r   assert_categorical_equalr   rI   
sort_index)	r5   r7   r  rq   r   r   r8   result1result2s	            r(   -test_setitem_with_expansion_categorical_dtypezOTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype:  s   bhry00E3??wOOOP
 
 OO%5#:N:NOOOPP^^yD^99"(E!UC00fMMMj 3BXg 0FE R R RSC.
 
 
 	vx000 3B!! 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   rD   r<   r3   ry   r   s      r(   test_setitem_scalars_no_indexz?TestDataFrameSetItemWithExpansion.test_setitem_scalars_no_indexg  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   r3   r   )r5   rJ   r   r8   s       r(   test_setitem_newcol_tuple_keyz?TestDataFrameSetItemWithExpansion.test_setitem_newcol_tuple_keyn  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   rB   rD  i  r)  r+   )
r   r   r   rv   r   r   rD   r  isnanr   )r5   rj   r6   ttss        r(   #test_frame_setitem_newcol_timestampzETestDataFrameSetItemWithExpansion.test_frame_setitem_newcol_timestampz  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   r3   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.   r0   rg   r  rB   r)  rC   r1   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'   N)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, , , , ,r'   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   rD   zerosr3   ry   r  s       r(   test_setitem_slice_positionz7TestDataFrameSetItemSlicing.test_setitem_slice_position  sf    rx))**233hx  BCCS>>
b(+++++r'   r  r`  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   rZ  r[   ri   r/  r+   r   r5   r   r`  r  r7   r8   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   r@  rv   r3   ry   )r5   r   r`  r7   r8   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   r/  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  rl   r  r  r3   setitemr   r   rD   rH   r@  pdr  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 )NrF  rY  r  )r)  r0  r\  r]  c                     dS )NrN   r&   r9  s    r(   r:  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          }|||dk    <   t          d|g|dgg          }t          j        ||           d S )Nc                     | dz   S )Nr+   r&   r9  s    r(   inczETestDataFrameSetItemCallable.test_setitem_other_callable.<locals>.inc  s    q5Lr'   rR  r+   r   r   )r5   r  r7   r8   s       r(   test_setitem_other_callablez8TestDataFrameSetItemCallable.test_setitem_other_callable  sm    	 	 	 Q!R)**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.   )rD   absr7   s    r(   r:  z(TestDataFrameSetItemBooleanMask.<lambda>  s    Ba' r'   c                 B    | t          j        |           dz  k    j        S r  )rD   r  rR   r  s    r(   r:  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   rD   r  rR   rH   r   r-   rj   r3   ry   )r5   r  rJ   r7   r{  r   r8   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)reasonr`  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  rC   z@Must have equal len keys and value when setting with an iterablerd   r/   )r   r   rl   rm   rn   r   )r5   r`  r7   r  rr   s        r(   :test_setitem_loc_empty_indexer_raises_with_non_empty_valuezZTestDataFrameSetItemBooleanMask.test_setitem_loc_empty_indexer_raises_with_non_empty_value  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[   FrB   r1   r/   r[  )r   r   r3   ry   )r5   r`  r7   r  r8   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'   r  c                     t          g dg dd          }|                                }|d         dk    } ||          |                             d           ||          |<   t          j        ||           d S )N)r+   rg   r.   r0   rY  r  r*   r0   )r   r   r  r3   ry   )r5   r  r7   r8   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/   )r;  )r_   r`   ra   klr   r   )r+   r+   r.   r.   r+   r+   r+   )catsrR   r,   )r*   r*   r1   r1   r*   r*   r*   r[   )r+   r+   r0   r0   r+   r+   r+   r
  r1   r.   )r   r   r   r   r   set_categoriesr3   ry   )r5   cats2idx2values2exp_multi_rowcatsfidxfvaluesfr7   	exp_fancyr{  s              r(   test_setitem_mask_categoricalz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categorical  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'   r:   r   r<   kwargsr-   r+   rj   rN   c                     ||d<   t          di |}|                                }d|||k    <   t          j        ||           d S )Nr:   /   r&   r  )r5   r:   r  r7   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 )Nr0   r   )        r  r   )      ?r   g      @)r   g      @g      @rC   )r-   rj   r6   )r  r   rR  )rR  rR  rR  rR  r   zItem wrong lengthrd   r.   )r@  rv   r   rD   rH   r   r  rG   r3   ry   rl   rm   rn   r-   )r5   r   r  df1r   r8   s         r(   test_setitem_boolean_indexingz=TestDataFrameSetItemBooleanMask.test_setitem_boolean_indexing8  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.   r0   rg   r*   r[   Fr1   r]   r/   ru   rZ  r   r,   )r   r   r   r   r3   ry   )r5   r7   r8   r  s       r(   -test_loc_setitem_all_false_boolean_two_blockszMTestDataFrameSetItemBooleanMask.test_loc_setitem_all_false_boolean_two_blocksO  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 )NrR  r.   r0   r  r   TFbooleanrC   r  )r   r   r  NAr3   ry   )r5   r7   r8   boolean_indexers       r(   test_setitem_ea_boolean_maskz<TestDataFrameSetItemBooleanMask.test_setitem_ea_boolean_maskW  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_testrl   r  r  r  xfailr@  rD   rH   r   r  r  r3   r  r   r  r  r  r  r  r$  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S )%TestDataFrameSetitemCopyViewSemanticsc                    d|j         vsJ |d                                         }||d<   t          j        |j        dd|j                             d          f<   t          |dd                                                   sJ d S )Nr5  rN   ru   rB   )rj   r   rD   r  r   get_locr   r   )r5   rJ   r   s      r(   test_setitem_always_copyz>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copyf  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.   r0   r,   r.   r   r+   *   rc   )r   r   rD   r  _consolidate_inplacerG   r   blocks_valuesr   r   r-   r3   r   r   rR   shares_memory)r5   r,  using_array_managerr  r7   zvalsr8   s          r(   #test_setitem_partial_column_inplacezITestDataFrameSetitemCopyViewSemantics.test_setitem_partial_column_inplacen  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 )
NrN   rO   r.   r  r   r   r#  )r  r.   r  ru   ri   r  )r5   r  r7   df_copydf_viewr8   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<   rC   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  )r5   r  r3  r  r7   r7  r8  r8   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  )r5   r  r  r7   r7  r8  r8   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  )r5   r  	set_valuer  r7   r8   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                 n   d t          d          D             t          fdD                       }|j        j        d         j        }|s]|j        D ]}d||         |<   t          j        |t          j        d          t          j        d          f         dk              sJ d S 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 )r1   r&   r  s     r(   r   z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<listcomp>  s    ---a'a''---r'   rB   c                 T    i | ]$}|t          j        t                              %S r&   )rD   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   r0  rR   rj   rD   r   r   r3   raises_chained_assignment_error)r5   r  r7   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")" 	E % %#$5	%   6&2	"!=>!CDDDDDDD355 ) )Z ) )E'(BuIe$$)) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 6&2	"!=>!CDDDDDDDs   C$$C(+C(N)r#   r$   r%   r+  rl   r  r  r5  r9  rD   rH   r;  r=  paramr&  r   rB  r  r%  rJ  r&   r'   r(   r(  r(  e  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 E Er'   r(  )4r   numpyrD   rl   pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.baser   r  pandas.core.dtypes.commonr   r   r   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_testingr3   pandas.core.arraysr   pandas.tseries.offsetsr   r   r  r  r  r  r  r(  r&   r'   r(   <module>rX     s              ) ) ) ) ) ) ) ) ) < < < < < <         
                                                  $       * * * * * * ' ' ' ' ' '{
, {
, {
, {
, {
, {
, {
, {
,|'1 '1 '1 '1 '1 '1 '1 '1TA, A, A, A, A, A, A, A,H+, +, +, +, +, +, +, +,\, , , , , , , ,*E, E, E, E, E, E, E, E,PCE CE CE CE CE CE CE CE CE CEr'   