
    :i0                     z   d dl m Z  d dlZd dlZd dlm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      Z0 G d d      Z1 G d d      Z2 G d d      Z3d Z4d Z5y)    )datetimeN)SettingWithCopyWarning)	_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                      e Zd Zd Zej
                  j                  dg d      d        Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zej
                  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
                  j                  d ej:                  D  cg c](  }t=        |j>                  t@              s|j>                  * c}}}} d!d"gz         d#        Z!d$ Z"ej
                  j                  d%g d&      d'        Z#ej
                  j                  d%g d&      d(        Z$d) Z%d* Z&d+ Z'd, Z(ej
                  j                  dg d-      d.        Z)ej
                  j                  d/d0d0gg      d1        Z*d2 Z+d3 Z,ej
                  j                  d4g d5g d6g      d7        Z-d8 Z.d9 Z/d: Z0d; Z1d< Z2ej
                  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        Z3dL Z4ej
                  j                  dMg dNdO e5g dPg dPg dPgg dNQ      fdRdSgdOdTg e5g dUg dVg dWgg dNQ      fg dX e6jn                  g dYe6jp                  Z       e5g dYg dYg dYgg dXQ      fg d[g dYg d\g d]g e5g d^g d_g d`gg dNQ      fg da e6jn                  g dYg d\g d]ge6jp                  Z       e5g dbg dcg ddgg dNQ      fdedRg e5dOdTgdfdggdhdiggdedRgQ       e5g djg dkg dlgg dXQ      fg      dm        Z9dn Z:do Z;dp Z<dq Z=dr Z>ds Z?e@j                  dt        ZBej
                  j                  dui dvdwig      dx        ZCdy ZDdz ZEd{ ZFd| ZGd} ZHd~ ZIyc c}}}} w )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                  ||       y )Nc                       e Zd Zy)@TestDataFrameSetItem.test_setitem_str_subclass.<locals>.mystringN)__name__
__module____qualname__     n/var/www/html/talentspherev1.5.2/venv/lib/python3.12/site-packages/pandas/tests/frame/indexing/test_setitem.pymystringr!   .   s    r&   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8C=cA3aS(3-!EUS
H%r&   dtype)int32int64uint32uint64float32float64c                     t         j                  j                  d      j                  ddt	        |            }t        j
                  ||      ||<   ||   j                  j                  |k(  sJ y )Nr-   r*   
   r9   )nprandomdefault_rngintegerslenarrayr9   name)r4   r9   float_framearrs       r'   test_setitem_dtypez'TestDataFrameSetItem.test_setitem_dtype9   s`    
 ii##A&//2s;7GHXXc7E5!'',,555r&   c                     t         j                  j                  d      j                  t	        |      df      }||ddg<   t        j                  |ddg   j                  |       y )Nr-   AB)rC   rD   rE   standard_normalrG   r2   assert_almost_equalvalues)r4   rJ   r5   s      r'   test_setitem_list_not_dataframez4TestDataFrameSetItem.test_setitem_list_not_dataframeC   sX    yy$$Q'77[9I18MN"&S#J
{C:6==t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        t        t        j                  j                  d      j                  ddd      g d      }d}t        j                  t
        |      5  |j                  ddg      j                         |d<   d d d        d}t        j                  t
        |      5  t               |d<   d d d        y # 1 sw Y   xY w# 1 sw Y   IxY w# 1 sw Y   y xY w)Nr*   r-   r/   )def)barbazr)   r.   r0   foorI   r+   )ghij)r)   r.   r0   r)   fizr,   rI   z/cannot reindex on an axis with duplicate labelsmatchnewcolr-   r   )   rg   r)   r.   r0   rV   columnszDCannot set a DataFrame with multiple columns to the single column grr.   r0   grz7Cannot set a DataFrame without columns to the column gr)r   r   r   pytestraises
ValueErrorrC   rD   rE   rF   groupbycount)r4   r6   sermsgs       r'   test_setitem_error_msmgsz-TestDataFrameSetItem.test_setitem_error_msmgsH   s$   o6e4
  ,59

 @]]:S1 	BxL	 II!!!$--aF;(

 U]]:S1 	6zz3*-335BtH	6 H]]:S1 	# {BtH	# 	#	 		6 	6
	# 	#s$   D%%D1D=%D.1D:=Ec                 \   d}d}t        t        |            }t        j                  j	                  d      j                  |      }t        |      D ]  }|||<   	 t        t        j                  ||      j                  ||      t        |            }t        j                  ||       y )NrA      r+   r-   )
r   rangerC   rD   rE   rP   repeatreshaper2   assert_frame_equal)r4   NKr6   new_colr`   r7   s          r'   test_setitem_benchmarkz+TestDataFrameSetItem.test_setitem_benchmarkf   s    U1X&))''*::1=q 	ABqE	RYYw2::1a@aQ
b(+r&   c                    t        t        j                  j                  d      j	                  d      t        j
                  d      g d      }|j                  dd|d          |j                  dd	|d
          |d   j                  d      |d<   |j                  }t        t        j                  d      gdz  t        j                  d      gz   g d      }t        j                  ||       |d   j                  d      |d<   |j                  }t        t        j                  d      gdz  t        j                  d      gdz  z   g d      }t        j                  ||       |d   j                  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                  ||       y )Nr-   ru   r/   ru   )r0   r.   r)   r,   rj   r   r\   r)   rY   r0   r>   xr?   )r\   r0   rY   r.   r)   r   r+   rg   r:   y)r\   r0   rY   r.   r)   r   r   )r   rC   rD   rE   rP   arangeinsertastypedtypesr   r9   r2   assert_series_equalr4   r6   resultr7   s       r'   test_setitem_different_dtypez1TestDataFrameSetItem.test_setitem_different_dtypeq   s   II!!!$44V<))A,#

 			!UBsG$
		!UBsG$
 S'..+3XXi !A%))<(==4
 	vx0 S'..+3XXi !A%))<(=(AA4
 	vx0S'..)3XXi !A%))<(=(AARXXgEVDWW9
 	vx0r&   c                     t        g d      }|j                  |d<   g d|d<   t        dg dig ddg      }t        j                  ||       y )NrN   rO   Cr+   Xr   r   z)r5   r,   rj   )r   r,   r2   ry   r4   r6   exps      r'   test_setitem_overwrite_indexz1TestDataFrameSetItem.test_setitem_overwrite_index   sN     _-((3!3'
 	b#&r&   c                     t               }g d|d<   t        dg di      }t        j                  ||       t        t        g             }g d|d<   t        dg di      }t        j                  ||       y )NrU   r\   ri   )r   r2   ry   r   r4   r6   r7   s      r'   test_setitem_empty_columnsz/TestDataFrameSetItem.test_setitem_empty_columns   si    
 [5	eY/0
b(+uRy)5	eY/0
b(+r&   c                     t        ddd      }t        t        j                  t	        |                  }||d<   |d   j
                  t        j
                  d      k(  sJ y )Nz1/1/2000 00:00:00z1/1/2000 1:59:5010s)freqr+   rN   M8[ns])r   r   rC   r   rG   r9   )r4   rngr6   s      r'   %test_setitem_dt64_index_empty_columnsz:TestDataFrameSetItem.test_setitem_dt64_index_empty_columns   sQ    ,.@uMRYYs3x013#w}} 2222r&   c                     t        t        d            }t        dd      j                  d      |d<   t        t        dd      ggdz  t        d      dg      }t	        j
                  ||       y )	Nr/   r+   20130101UTCtznsnowr   )r   rv   r   as_unitr2   ry   r   s      r'   $test_setitem_timestamp_empty_columnsz9TestDataFrameSetItem.test_setitem_timestamp_empty_columns   sf    U1X&jU3;;DA5	
u-./!358eW
 	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        y # 1 sw Y   y xY w)N)r   r*   r*   r   r*   r-   r[   rA   rY   ri   zLength of values \(z$\) does not match length of index \(z\)rd   r\   )r   
from_codesr   rv   rG   rl   rm   rn   )r4   catr6   rr   s       r'   2test_setitem_wrong_length_categorical_dtype_raiseszGTestDataFrameSetItem.test_setitem_wrong_length_categorical_dtype_raises   s|    $$%7IuRy5'2 #3s8* -114R	= 	 ]]:S1 	BuI	 	 	s   (A77B c                     t        g dg dd      }t        g d      }||d<   t        |d      }t        j                  |d   |       y )Nr[         ?       @      @c_1n_1r   r   r*   
new_columnr]   )r   r   r   r2   r   )r4   r6   sp_arrayr7   s       r'   test_setitem_with_sparse_valuez3TestDataFrameSetItem.test_setitem_with_sparse_value   sF    GHy)#<(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   |       y )
Nr[   r   r   r   )r-   r*   r   r+   r   )r*   r   r   r]   )r   r   r   r2   r   )r4   r6   	sp_seriesr7   s       r'   (test_setitem_with_unaligned_sparse_valuez=TestDataFrameSetItem.test_setitem_with_unaligned_sparse_value   sR    GH;y1C	$<+i0|D
r,/:r&   c                     t        dd      g}t        g       }||d<   t        d|idg      }t        j                  ||       y )Nz2003-12Dr)   ri   )r   r   r2   ry   )r4   r5   r   r7   s       r'   #test_setitem_period_preserves_dtypez8TestDataFrameSetItem.test_setitem_period_preserves_dtype   sE    y#&'2sc4[3%8
fh/r&   c           	         t        t        g dd      t        g dt              t        g dt              t        g dd      d      }t        t        g d      t        g t              t        g t              t        g d      d      }t        g d      D ]T  \  }}t	        |      t        |      t        |      t        j                  |      d|j                  |j                  d   <   V t        j                  ||       y )N)r   r*   r-   r;   rB   rU   r<   rh   r   )r   r   float	enumerateintrC   r<   locshaper2   ry   )r4   r7   r6   idxr.   s        r'   "test_setitem_dict_preserves_dtypesz7TestDataFrameSetItem.test_setitem_dict_preserves_dtypes   s    IW5IU3IU3IX6	
 Bg.Be,Be,Bh/	
  	* 	FCX1X1XYYq\	#BFF288A;	 	b(+r&   z	obj,dtypez2020-01Mr   ru   )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                  ||       y )NrU   r/   rB   )r   objr   r   r   r   r2   ry   )r4   r   r9   r7   r6   s        r'   test_setitem_extension_typesz1TestDataFrameSetItem.test_setitem_extension_types  sH     Yvseaiu7UVWy)*5	
b(+r&   ea_namezdatetime64[ns, UTC]	period[D]c                 v    t        dg      }dg||<   t        ddg|dgi      }t        j                  ||       y )Nr   r*   r   r2   ry   )r4   r   r   r7   s       r'   test_setitem_with_ea_namez.TestDataFrameSetItem.test_setitem_with_ea_name  sA     A3#wa!gs34
fh/r&   c                    t        j                  ddgd      }t        |      j                         }||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   j                         |       y )	Nr*   natdatetime64[ns]rB   new)r   r   datetime64[s]r   )
rC   rH   r   to_framer   r2   ry   r   assert_numpy_array_equalto_numpy)r4   data_nsr   r7   data_ss        r'   6test_setitem_dt64_ndarray_with_NaT_and_diff_time_unitszKTestDataFrameSetItem.test_setitem_dt64_ndarray_with_NaT_and_diff_time_units(  s    ((Au:-=>))+u!TAt9=EUV
fh/ 1e*O<u
vay(1+6
##F5M$:$:$<fEr&   r   )r_   mr   msr   r   Yc                    d}t        j                  d| d      }t        j                  |t         j                        j	                  |      }|dv r|}n|j                  d      }t        dt        j                  |      it        j                  |            }|||<   ||   j                  |j                  k(  sJ ||   j                  |k(  j                         sJ y )	Nd   M8[]rB   )r   r   r   intsr+   	rC   r9   r   r;   viewr   r   rR   allr4   r   nr9   valsex_valsr6   s          r'   -test_frame_setitem_datetime64_col_other_unitszBTestDataFrameSetItem.test_frame_setitem_datetime64_col_other_units6  s     3tfA'yy"((+007;G kk/2G		!-RYYq\B4$x~~...47*//111r&   c                    d}t        j                  d| d      }t        j                  |t         j                        j	                  |      }|j                  d      }t        dt        j                  |      it        j                  |            }t        j                  |t         j                        j	                  d      |d	<   ||d	<   |d	   j                  |k(  j                         sJ y )
Nr   r   r   rB   r   r   r+   r   datesr   r   s          r'   6test_frame_setitem_existing_datetime64_col_other_unitszKTestDataFrameSetItem.test_frame_setitem_existing_datetime64_col_other_unitsK  s     3tfA'yy"((+007++./		!-RYYq\Bii277A7 77""g-22444r&   c                 Z   |}|d   j                  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|2t        |      t        |      k7  sJ t        |      t        |      k(  sJ |j                         }	t        |	j                  d<   t        |	j                  d	<   |	d   }
t        j                  t        |
      t        g d
d             t        j                  |	j                  |j                         y )NrO   r\   r   r]   r   r*   r-   )r*   r*   r*   r-   )TFT)renamer2   r   r   _mgrarraysassert_extension_array_equal_ndarraybaseidcopyr   ilocr   r   )r4   timezone_frameusing_copy_on_writer6   r   v1v2v1basev2basedf2r   s              r'   test_setitem_dt64tzz(TestDataFrameSetItem.test_setitem_dt64tz\  s^   gnnU# 3
r#ws(=>33
r#ws(=>sG
 WW^^AWW^^A
''B/!!!!">bjBvJ&>??f:F+++ ggiS
uV}f5Hs.ST
szz2995r&   c                    t        ddd      }t        t        j                  j	                  d      j                  d      |      }||d<   t        |d         }t        j                  ||d	
       |j                  dk(  sJ |j                  dk(  sJ |j                         j                  d      }t        |j                  t              sJ t        j                  |j                  |       y )Nz1/1/2000ru   r,   )periodsrI   r-   r   r+   r   Fcheck_names)r   r   rC   rD   rE   rP   r   r2   assert_index_equalrI   reset_index	set_index
isinstancer,   r   )r4   r   r6   rss       r'   test_setitem_periodindexz-TestDataFrameSetItem.test_setitem_periodindex~  s    :qw?ryy,,Q/??GsS72g;
b#59ww'!!!xx7"""^^''0"((K000
bhh,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                  |j                        |d<   |d   j                  |j                        |d<   |d   j                  |j                  k(  sJ |d   j                  |j                  k(  sJ t        j                  ||       y )N)onetwothreerU   r)   r.   r*   r/   ru   r0   rV   r*   r/   ru   r*   r*   r*   rh   )r   rC   rH   r   r9   r2   ry   r4   r6   rK   r7   s       r'   'test_setitem_complete_column_with_arrayz<TestDataFrameSetItem.test_setitem_complete_column_with_array  s    49EFhhAAA/0C:,	
 !,,SYY7 ,,SYY7}""cii///}""cii///
b(+r&   c                     t        dddd      }t        |      }t        dg did      }|j                  |j                  d d  t	        j
                  ||       y )	Nz
2016-01-01	   r   rN   )r  r   rI   )	r   r   r   r   r   r   r   r   r   r   rB   )r   r   	_na_valuer   r2   ry   )r4   r   r   r7   s       r'   test_setitem_period_d_dtypez0TestDataFrameSetItem.test_setitem_period_d_dtype  sT    <3G3QR
 A
fh/r&   )f8i8u8c                 8   t        g d|      }t        t        j                  j	                  d      j                  d      |      }g d|d<   t        g dt              }|d	k(  rt        g d
t              }t        j                  |j                  |       y )NrU   rB   r-   )r/   r/   ri   r[   F)r*   r-   r/   Fr  )r   r   r   F)
r   r   rC   rD   rE   rP   objectr2   r  rj   )r4   r9   colsr6   expected_colss        r'   $test_setitem_bool_with_numeric_indexz9TestDataFrameSetItem.test_setitem_bool_with_numeric_index  su     Ye,ryy,,Q/??GQUV#5	.f=D=!"8GM
bjj-8r&   indexerrO   c                     t        ddg      }t        dddgi      }|||<   t        t        j                  gdz  ddgd      }|d   j                  d      |d<   t	        j
                  ||       y )NrN   rO   ri   r*   r-   rN   rO   r  )r   rC   nanr   r2   ry   )r4   r"  r6   otherr7   s        r'   #test_setitem_frame_length_0_str_keyz8TestDataFrameSetItem.test_setitem_frame_length_0_str_key  sr     Sz*3A-(7BFF8a<q!f=> ,,X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   j                  t        j                        |d<   |d   j                  t        j                        |d<   ||_        t        j                  ||       y )Nr   r-   r/   r   )r   r/   )r   rN   )r*   rg   rO   r-   ru   r   )r   r*   r-   r/   rg   ru   r*   rg   ru   r  rB   )
r   rv   r   rC   r%  r   r;   rj   r2   ry   )r4   r  r6   r7   s       r'   $test_setitem_frame_duplicate_columnsz9TestDataFrameSetItem.test_setitem_frame_duplicate_columns  s    "U1Xt4vq#v3"Arvvq!,Arvvq!,
 
 qk((2qk((2
b(+r&   c                 @   g ddz  }t        t        d      |      }t        j                  t        d      5  d|dg<   d d d        |j
                  d d d df   }t        j                  t        d      5  d|dg<   d d d        y # 1 sw Y   IxY w# 1 sw Y   y xY w)	Nr   r-   r/   r   "Columns must be same length as keyrd   )r   r/   ru   rN   )r   rv   rl   rm   rn   r   )r4   r  r6   r  s       r'   2test_setitem_frame_duplicate_columns_size_mismatchzGTestDataFrameSetItem.test_setitem_frame_duplicate_columns_size_mismatch  s    "U1Xt4]]:-QR 	"!BuI	" gga!en]]:-QR 	#"CJ	# 	#		" 	"	# 	#s   B8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        y # 1 sw Y   y xY w)
NrU   ri   rA      rV   rW   r,  rd   r)   r   rl   rm   rn   )r4   r  r6   rhsrr   s        r'   #test_setitem_df_wrong_column_numberz8TestDataFrameSetItem.test_setitem_df_wrong_column_number  sY     	{D1"b
S#J72]]:S1 	BsG	 	 	s    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                  ||       y )
NrU   r)   r.   r.   ri   rA   r/     r)   r.   r0   )rA   r/  r6  rA   )r)   r.   r.   r0   r   r4   r6   r1  r7   s       r'   /test_setitem_listlike_indexer_duplicate_columnszDTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columns  sw    	{O<@C:l^_E
b(+C:./9M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        y # 1 sw Y   y xY w)
NrU   r4  ri   rA   r/  r)   r.   r,  rd   r0  )r4   r6   r1  rr   s       r'   @test_setitem_listlike_indexer_duplicate_columns_not_equal_lengthzUTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columns_not_equal_length  s[    	{O<"b
S#J72]]:S1 	! BSzN	! 	! 	!s   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<   |j                  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
       y )NrN   rA   ru   rO   r   r   EFc                 >    t        t        j                  |             S N)r   rC   rH   r   s    r'   <lambda>z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>  s    eBHHQK( r&   Fr  )r   rv   r   r
  r   
categoriesr   rC   rH   rR   r   r  r9   r   r	   r   r2   r  rO   r   r   r   )r4   r6   rq   r0   s       r'   test_setitem_intervalsz+TestDataFrameSetItem.test_setitem_intervals  sD   U2Y'("S'1o#'',,m<<<
 3((3-3**3((3::&3**V$3"S'--)9:::"S'++0066FFF"S'--)9:::"S'++0066FFF "S'--777"S'--777 r#w''' )
agqw/
agqwEB
agqwEB
agqwEB 	r#w30
r#w3UC 	r#w30
r#w3UCr&   c                 6   t        dt        t        d            j                  d      i      }|j                  j
                  j                  ddg      |_        t        dt        ddg      j                  ddg      i      }t        j                  ||       y )Nr_   mncategoryr   r   )
r   r   listr   r_   r   reorder_categoriesr   r2   ry   r   s      r'   test_setitem_categoricalz-TestDataFrameSetItem.test_setitem_categorical-  s    VDJ/66zBCDttxx**C:6+sCj)<<c3ZHI
 	b(+r&   c                     t        g d      }t        dg|      }g |d<   t        dg|      }t        j                  |j                  |j                         y )Nr   r]   rN   rj   r,   )r   r   r2   r  r,   )r4   r,   r   r7   s       r'    test_setitem_with_empty_listlikez5TestDataFrameSetItem.test_setitem_with_empty_listlike6  sK    bu%C56scU%8
fllHNN;r&   zcols, values, expected)r   r   r   r)   r*   r-   r/   rg   rg   )r   r   r   r)   )r   rO   rO   r)   )r   rO   r)   rU   r/   )rO   r   r)   )r/   r-   r*   r*   )r   r)   rO   r-   c                 b    t        |g|      }|d   |d<   |d   j                  d   }||k(  sJ y )Nri   r)   r   )r   rR   )r4   r  rR   r7   r6   r   s         r'   test_setitem_same_columnz-TestDataFrameSetItem.test_setitem_same_column>  s?     x.S'3C"!!!r&   c                    g dddgg df}t        j                  |      }t        dd      }t        j                  j                  d      j                  d	d
t        |      t        |      f      }t        |||      }|j                  j                  j                         |d   d d  }}t        j                  j                  d      j                  |       |d   j                  |d d df   |d<   t        j                  |d   |d          t        j                  j                  d      j                  |       |d   j                  ||f   |d<   t        j                  |d   |d          t        j                  j                  d      j                  |       |d   j                  ||f   |d<   t        j                  |d   |d          y )N)jimjoejoliefirstlast)r   centerr   20141006   )r  r-   r*   i  rK  rS  rQ  )rS  rU  )rR  rT  )rS  rT  )rR  rU  )r   from_productr   rC   rD   rE   rF   rG   r   r,   rR   r   shuffler   r2   ry   )r4   itr  r,   r   r6   r`   ra   s           r'   test_setitem_multi_indexz-TestDataFrameSetItem.test_setitem_multi_indexP  s    %w&79TT&&r*:r2yy$$Q'00D3u:s4y:QRtT7xx##%r"vay1
		a ((+wKOOAttG,5	
biG5
		a ((+!"3488A>
b!12B7H4IJ
		a ((+ !3488A>?
b126H3IJr&   zcolumns,box,expectedrN   rO   r   r      )r_  r_  r_  r_  ri   r   r      )r*   r-   r_  r`  )r/   rg   r_  r`  ru      r_  r`  r   )r_  r`  r  rB   rO   r   r   r5  )         )r*   r_  r`  r  )r/   rA   r/  r6  )ru   rd  re  rf  )r   rN   r   )r`  r-   r_  r  )r/  rg   rA   r6  )re  rb  rd  rf  rN   r  rA   r/  r6  )r_  r-   r`  )r  rg   rA   )r/  rb  r6  c                 j    t        ddgddgddggddg	      }|||<   t        j                  ||       y )
Nr*   r-   r/   rg   ru   rb  rN   rO   ri   r   )r4   rj   boxr7   r6   s        r'   !test_setitem_list_missing_columnsz6TestDataFrameSetItem.test_setitem_list_missing_columnsh  sA    f AAA/#sD7
b(+r&   c                     t        t        |d   |d               }||d<   |d   }t        ||j                  d      }t	        j
                  ||       y )NrN   rO   tuplesrc   )rG  zipr   r,   r2   r   )r4   rJ   rk  r   r7   s        r'   test_setitem_list_of_tuplesz0TestDataFrameSetItem.test_setitem_list_of_tuples  sU    c+c*K,<=> &HX&&(9(9I
vx0r&   c                     t        g dg dd      }d dD        }d|j                  |<   t        g dg dd      }t        j                  ||       y )	NrU   rg   ru   rb  r  c              3       K   | ]  }|  y wr?  r%   .0r   s     r'   	<genexpr>zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>       %1%   r   r*   r  rg   r*   r*   r   r   r2   ry   r4   r6   r"  r7   s       r'   test_setitem_iloc_generatorz0TestDataFrameSetItem.test_setitem_iloc_generator  sH    YY78%f%99=>
b(+r&   c                     t        g dg dd      }d dD        }d|j                  |df<   t        g dg dd      }t        j                  ||       y )NrU   ro  r  c              3       K   | ]  }|  y wr?  r%   rq  s     r'   rs  zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>  rt  ru  r   r*   rv  rw  rx  s       r'   +test_setitem_iloc_two_dimensional_generatorz@TestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator  sL    YY78%f%
99=>
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                  ||       y )Nr   S24)rI   r9   r1   rB   r   r)   )rI   r,   r9   r.   S64r0   rV   abcdr+   )r   r   r   rC   r<   uint8r   r  rG  r2   r   )r4   r,   r6   r   r7   s        r'   (test_setitem_dtypes_bytes_type_to_objectz=TestDataFrameSetItem.test_setitem_dtypes_bytes_type_to_object  s    D.UE"E,BCcbii@3ce<3ce<3cbhh?3299ffbhh?tF|T
vx0r&   c                 >   t        ddgddgd      j                  ddd      }t        d|j                  	      }|d
   |j                  |d
f<   |d   |j                  |df<   t        ddgddgd      j                  ddd      }t        j                  ||       y )Nr/   rg   ru   rb  r  r;   Int64Fr+   r)   r.   )r   r   r   r,   r   r2   ry   )r4   r   maskr7   s       r'    test_boolean_mask_nullable_int64z5TestDataFrameSetItem.test_boolean_mask_nullable_int64  s    !Qq!f56==(
 e6<<0 &s

49 &s

49Aq6A7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                  ||       y )Nr)   r*   r-   r  rB   r   r   s      r'    test_setitem_ea_dtype_rhs_seriesz5TestDataFrameSetItem.test_setitem_ea_dtype_rhs_series  sL    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        t        j                  ||       y # 1 sw Y    xY w)
NrA   )np-array	np-matrixr+   )rA   r*   r1   rB   r   r  r  )
r   rC   onesr   r   r2   assert_produces_warningPendingDeprecationWarningmatrixry   )r4   r7   r)   r6   s       r'   test_setitem_npmatrix_2dz-TestDataFrameSetItem.test_setitem_npmatrix_2d  s     2772;?ryyQS}
 GGGRYYr]E"E4JK: ''(AB 	+ iilB{O	+ 	b(+	+ 	+s   (C  C)r   rV   r)   c                 0   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
                  ||       y )Nr*   r-   r/   rg   r  r      )r*   r   r)   ru   rb  r   r*   r0   rW   )r0   rW   )r   r   rC   r%  r2   ry   )r4   r   r6   r7   s       r'   %test_setitem_aligning_dict_with_indexz:TestDataFrameSetItem.test_setitem_aligning_dict_with_index  s     aV1a&9D9: S)q#v1q#vQq#v*Aq6QTQAbffa[Q
 	b(+r&   c                 D   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      }|j                  dt        dddgiddg             t        j                  ||       y )Nr)   r*   r-   rA   r/  r+   r   )r   rC   r%  r2   ry   isetitemr   s      r'   test_setitem_rhs_dataframez/TestDataFrameSetItem.test_setitem_rhs_dataframe  s    aV}%S2r(OAq6:3cBFFB<0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                  ||       y )Nr)   r.   r*   r-   r/   rg   rj   r5   rA   r/  rB   r  r   r4   any_numeric_ea_dtyper6   r7   s       r'   *test_setitem_frame_overwrite_with_ea_dtypez?TestDataFrameSetItem.test_setitem_frame_overwrite_with_ea_dtype   so    Sz!Q!Q0@AS2r(O3GH3RH,@AV
 	b(+r&   c                 <   t        j                  d       t        dddgi      }t        j                  dd      5  t        ddgt              |d<   d d d        t        ddgt        ddgt              d	      }t        j                  ||       y # 1 sw Y   AxY w)
Npyarrowr)   r*   r-   zfuture.infer_stringTr.   rB   r  )
rl   importorskipr   pdoption_contextr   r  r   r2   ry   r   s      r'   'test_setitem_string_option_object_indexz<TestDataFrameSetItem.test_setitem_string_option_object_index  s    I&aV}%4d; 	6S#Jf5BsG	6Aq6Sz0PQR
b(+	6 	6s   BBc                     t        ddgi      }|j                         }d}||g   ||<   t        j                  ||       y )Nr  rA   r   r   r2   ry   )r4   r6   r7   col_names       r'   test_setitem_frame_midx_columnsz4TestDataFrameSetItem.test_setitem_frame_midx_columns  sB    
RD)*779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                  ||       y )Nr)   rA   r  rB   r/  r  r   )r   rC   rH   r   r   r2   ry   r   r   s      r'   test_loc_setitem_ea_dtypez.TestDataFrameSetItem.test_loc_setitem_ea_dtype  s    RXXrd$789G4q#vc288RD#=>?
b(+RXXrd$789t7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        t	        j
                  t        d      5  ||d<   d d d        t        dgt        t        d      gd	      t        t        d      gd	      d
      }t	        j                  ||       y # 1 sw Y   xY w# 1 sw Y   fxY w)Nz
2019-12-31rB   r)   r*   inferrd   r.   r0   r   r[   )
r   r   r  r   r2   r  FutureWarningr   r   ry   )r4   r   r6   r7   s       r'   test_setitem_object_inferringz2TestDataFrameSetItem.test_setitem_object_inferring(  s    Y|,-V<aSz"''WE 	! BFF1c6N	!''WE 	BsG	 SY|45=MNY|45=MN
 	b(+	! 	!	 	s   C<C'C$'C0N)Jr"   r#   r$   r8   rl   markparametrizerL   rS   rs   r}   r   r   r   r   r   r   r   r   r   r   r   r
   r   r	   r   r   r   ea_registryr   r
  rI   propertyr   r   r   r   r  r  r  r  r!  r'  r*  r-  r2  r8  r:  rC  rI  rL  rO  r]  r   rC   rH   r;   ri  rm  ry  r|  r  r  r  td&skip_array_manager_not_yet_implementedr  r  r  r  r  r  r  r  )rr  r9   r
  r  s   0000r'   r   r   +   s   & [[M66E
#<	,#1J	',3,
;;0,6 [[IC 011A&gw(GH,<8S\:	

,
, [[ %++	
 	
ejj(3 JJ	
 !+
.	/	0	0F [[V%IJ2 K2( [[V%IJ5 K5  6D-,&	0 [[W&899 :9 [[Yse5, 6,,.	# [[Vo%GH I
,!*DX,< [[ !<3!<3!<3i+i+i+	

"
"K0 [[ %!<>0 c
A!<>0  "((39i;_U  L,7!?OD0  )\<@Q!?OD0 c
Aq6Ar7RH5SzJ
K8/M-	
0b,c0b,1,,
10, .., /," [[Vb3*%56	, 7	,	,
,,,	,,_	
s   -N:r   c                   f    e Zd Zej                  d        Zej                  d        Zd Zd Zd Z	y)TestSetitemTZAwareValuesc                 F    t        ddgd      }|j                  d      }|S )Nz2013-1-1 13:00z2013-1-2 14:00rO   r]   z
US/Pacific)r   tz_localize)r4   naiver   s      r'   r   zTestSetitemTZAwareValues.idx<  s*    /1ABM-
r&   c                     t        t        j                  |j                         d      d      }|j                  |j                  k(  sJ |S )Nr  rB   rO   r]   )r   rC   rH   tolistr9   )r4   r   r7   s      r'   r7   z!TestSetitemTZAwareValues.expectedB  s:    "((3::<x@sK~~***r&   c                 n   t        t        j                  j                  d      j	                  d      dg      }||d<   |j                  ddg      j                  j                  d       |d<   |d   }t        |j                  d	      j                  d       d
      }t        j                  ||       y )Nr-   r-   r*   rN   ri   rO   r   r*   r+   r   r]   )r   rC   rD   rE   rP   	to_seriesdt
tz_convertr   r  r2   r   )r4   r   r7   r6   r   comps         r'   test_setitem_dt64seriesz0TestSetitemTZAwareValues.test_setitem_dt64seriesH  s    ryy,,Q/??GRUQVW3--q!f--00;;DA3CcnnU+77=CH
vt,r&   c                     t        t        j                  j                  d      j	                  d      dg      }||d<   |d   }t        j                  ||       y Nr-   r  rN   ri   rO   )r   rC   rD   rE   rP   r2   r   r4   r   r7   r6   r   s        r'   test_setitem_datetimeindexz3TestSetitemTZAwareValues.test_setitem_datetimeindexR  sP    ryy,,Q/??GRUQVW 3C
vx0r&   c                     t        t        j                  j                  d      j	                  d      dg      }|j                         |d<   |d   }t        j                  ||       y r  )r   rC   rD   rE   rP   to_pydatetimer2   r   r  s        r'   .test_setitem_object_array_of_tzaware_datetimeszGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimes[  sY    ryy,,Q/??GRUQVW ##%3C
vx0r&   N)
r"   r#   r$   rl   fixturer   r7   r  r  r  r%   r&   r'   r  r  ;  s?    ^^ 
 ^^ 
-11r&   r  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)!TestDataFrameSetItemWithExpansionc                 X   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        |rt        g dd      }nt        g dd      }t        j                  ||       y # 1 sw Y   AxY w)NrU   )rg   rg   rb  r  r)   g?g?g333333?g?      ?r0   rV   r   )r   r   r]   )r   r-   r/   )r   rC   rH   r2   assert_cow_warningr   r   r   )r4   r   warn_copy_on_writer6   rq   r7   s         r'   test_setitem_listlike_viewsz=TestDataFrameSetItemWithExpansion.test_setitem_listlike_viewsf  s    YY78 g C:SzC:"FGC: ""#56 	 BGGDM	  ic2Hk4H
sH-	  	 s   B  B)c                     t        ddgddgg      }ddg|d<   t        g dg d	gg d
      }t        j                  ||       y )Nr*   r-   r/   rg   ru   rb  0 - Name)r*   r-   ru   )r/   rg   rb  )r   r*   r  ri   r   r   s      r'   .test_setitem_string_column_numpy_dtype_raisingzPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raisingz  sH    AA'(Q:i3=OP
b(+r&   c                 6   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                  ||       y )	Nr4  r?   rj   r9   r-   r)   r   r*   ri   )r   rG  rv   r   rC   r%  r2   ry   )r4   r   r6   r7   s       r'   'test_setitem_empty_df_duplicate_columnszITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columns  sk    i@eAhq#v 1bffbff"56
 	b(+r&   c           
         t        dt        j                  t        j                  j	                  d      j                  ddd      d      i      }t        t        ddd      D cg c]  }| d	|d
z     c}      }|j                  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"                  |	j+                         |j+                                y c c}w )Nvaluer-   r   i'  r   r:   rB   i  z - i  T)by	ascendingi)  F)r   labelsr   )rB  orderedr+   r<  )r  r   r<  )r   rC   rH   rD   rE   rF   r   rv   sort_valuesr   r  rR   r   r   r9   r   r2   r   assert_categorical_equalr   rI   
sort_index)
r4   r6   r`   r  rq   r   r   r7   result1result2s
             r'   -test_setitem_with_expansion_categorical_dtypezOTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype  s   II))!,55aDG
 %5#:NOQ3q3wi0OP^^yD^9"((E!UC0fMjj 3XXg 0FE RSC.
 	vx0 3! FEB FEB
 &
 	vx0S'S'
##GLL$6$6< 
w113S^^5EFE Ps   %G'c                     t               }d|d<   t        dg      j                  t        j                        }t	        j
                  ||       y )Nr*   r\   ri   )r   r   rC   r;   r2   ry   r   s      r'   test_setitem_scalars_no_indexz?TestDataFrameSetItemWithExpansion.test_setitem_scalars_no_index  s=    [5	eW-44RXX>
b(+r&   c                     d|j                   vsJ |d   |d<   d|j                   v sJ |d   }|d   }t        j                  ||d       y )Nr$  rN   Fr  )rj   r2   r   )r4   rJ   r   r7   s       r'   test_setitem_newcol_tuple_keyz?TestDataFrameSetItemWithExpansion.test_setitem_newcol_tuple_key  sl    
 $$% 	% % !,C 0H[00000X&s#
vxUCr&   c                    t        ddt                     }t        |t        d            }t	        ddd      }t        |      }t        j                  ||<   t        j                  ||         j                         sJ y )	Nz1/1/2012z2/1/2012)startendr   rA   rK  i  r/  r*   )
r   r   r   rv   r   r   rC   r%  isnanr   )r4   rj   r5   ttss        r'   #test_frame_setitem_newcol_timestampzETestDataFrameSetItemWithExpansion.test_frame_setitem_newcol_timestamp  se    ::DFKb	:T2q!q\66Rxx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                  ||       y )	Nr)   r.   r   FTr*   r  r+   )r   r,   r   r2   ry   r   s       r'   *test_frame_setitem_rangeindex_into_new_colzLTestDataFrameSetItemWithExpansion.test_frame_setitem_rangeindex_into_new_col  ss    c3Z()((3%(t}c!"QC5u5aS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                  ||       y )Nr)   r.   r*   r-   r/   rg   r  rA   r/  rB   r0   r[   r   r  s       r'    test_setitem_frame_keep_ea_dtypezBTestDataFrameSetItemWithExpansion.test_setitem_frame_keep_ea_dtype  sv    Sz!Q!Q0@AS2r(O3GH3VVRH,@A
 	b(+r&   c                 \   t        t        d            }t        j                  dd      t        j                  dd      dd|j                  d	<   t        t        j
                  d
      t        j
                  d      dggt        d	g      g d      }t        j                  ||       y )Nabcri   ru   r   )r   H   23r[   r   z0 days 00:00:05z0 days 00:01:12r   )	r   rG  r  to_timedeltar   	Timedeltar   r2   ry   )r4   r   r7   s      r'   &test_loc_expansion_with_timedelta_typezHTestDataFrameSetItemWithExpansion.test_loc_expansion_with_timedelta_type  s    4;/-#.


1
 ll,-r||<M/NPTUV*$

 	fh/r&   N)r"   r#   r$   r  r  r  r  r  r  r  r  r  r  r%   r&   r'   r  r  e  s7    .(,,+GZ,
D(0,0r&   r  c                      e Zd Zd Zej
                  j                  dej                  ej                  g      ej
                  j                  de
ej                  eej                  g      ej
                  j                  dg d      d                      Zej
                  j                  de
ej                  eej                  g      ej
                  j                  dg d      d               Zej
                  j                  dej                  ej                  g      ej
                  j                  de
ej                  eej                  g      ej
                  j                  dg d      d                      Zy	)
TestDataFrameSetItemSlicingc                     t        t        j                  d            }d|dd  t        j                  d      }d|dd  t        |      }t        j                  ||       y )N)r   r*   r*   )r   rC   zerosr2   ry   r  s       r'   test_setitem_slice_positionz7TestDataFrameSetItemSlicing.test_setitem_slice_position  sR    rxx)*23hhx BCS>
b(+r&   r"  rh  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                  ||       y Nr  r-   rg   rb  r[   ri   r5  r*   r   r4   r   rh  r"  r6   r7   s         r'   +test_setitem_slice_indexer_broadcasting_rhszGTestDataFrameSetItemSlicing.test_setitem_slice_indexer_broadcasting_rhs  s[    
 	{i[1_4oNl+ABi[L>A+==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
                  ||       y r  )r   r   rG  rv   r2   ry   )r4   r   rh  r6   r7   s        r'   *test_setitem_list_indexer_broadcasting_rhszFTestDataFrameSetItemSlicing.test_setitem_list_indexer_broadcasting_rhs  si     	{i[1_4oN),\):U1a!e_%&i[L>A+==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                  ||       y )
Nr  r   r   r[   ri   r5  r*   r  r  r   r  s         r'   0test_setitem_slice_broadcasting_rhs_mixed_dtypeszLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypes  sp    
 (I;?:O
 l+ABK<.AE22#

 	b(+r&   N)r"   r#   r$   r  rl   r  r  r2   setitemr   r   rC   rH   rG  r  r  r  r  r%   r&   r'   r  r    sC   , [[YRWW(=>[[UVRXXtRXX$FG[[S),, - H ?, [[UVRXXtRXX$FG[[S),, - H, [[YRWW(=>[[UVRXXtRXX$FG[[S),, - H ?,r&   r  c                       e Zd Zd Zd Zy)TestDataFrameSetItemCallablec                     t        g dg dd      }g d|d <   t        g dg dd      }t        j                  ||       y )NrM  ra  r$  )r/  r6  rd  re  c                      y)NrN   r%   r@  s    r'   rA  zDTestDataFrameSetItemCallable.test_setitem_callable.<locals>.<lambda>*  s    r&   r   r   s      r'   test_setitem_callablez2TestDataFrameSetItemCallable.test_setitem_callable'  s;    \=>,=.\BC
b#&r&   c                     d }t        ddgddggt              }|||dkD  <   t        d|g|dgg      }t        j                  ||       y )Nc                     | dz   S )Nr*   r%   r@  s    r'   inczETestDataFrameSetItemCallable.test_setitem_other_callable.<locals>.inc1  s    q5Lr&   rY  r*   rB   r   )r   r  r2   ry   )r4   r  r6   r7   s       r'   test_setitem_other_callablez8TestDataFrameSetItemCallable.test_setitem_other_callable/  sV    	 Q!R)826
r3i#r34
b(+r&   N)r"   r#   r$   r  r  r%   r&   r'   r	  r	  &  s    '
,r&   r	  c                      e Zd Zej                  ej                  j                  dd d gddg      d               Zej                  j                  d	      ej                  j                  d
e
ej                  eg      d               Zej                  j                  d
e
ej                  eg      d        Zej                  j                  dej"                  ej$                  g      d        Zd Zej                  j                  dddg      ej                  j                  di ddgiddgig      d               Zd Zd Zd Zy)TestDataFrameSetItemBooleanMask	mask_typec                 8    | t        j                  |       dz  kD  S Nr-   )rC   absr6   s    r'   rA  z(TestDataFrameSetItemBooleanMask.<lambda>@  s    Ba' r&   c                 L    | t        j                  |       dz  kD  j                  S r  )rC   r  rR   r  s    r'   rA  z(TestDataFrameSetItemBooleanMask.<lambda>@  s    R"&&*q.5H4P4P r&   	dataframerH   )idsc                 j   |j                         } ||      }|j                         }t        j                  ||<   |j                  j                         }t        j                  |t        j                  |      <   t        ||j                  |j                        }t        j                  ||       y )Nr   )
r   rC   r%  rR   rH   r   r,   rj   r2   ry   )r4   r  rJ   r6   r  r   r7   s          r'   test_setitem_boolean_maskz9TestDataFrameSetItemBooleanMask.test_setitem_boolean_mask=  s     } vvt99>>##%66$ XRXXrzzJ
fh/r&   z1Currently empty indexers are treated as all False)reasonrh  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        y # 1 sw Y   y xY w)	Nr)   r*   r[   r  rB   z@Must have equal len keys and value when setting with an iterablerd   r.   )r   r   rl   rm   rn   r   )r4   rh  r6   r"  rr   s        r'   :test_setitem_loc_empty_indexer_raises_with_non_empty_valuezZTestDataFrameSetItemBooleanMask.test_setitem_loc_empty_indexer_raises_with_non_empty_valueQ  su     cU!A378&="H-G"gGP]]:S1 	)&'SBFF7SE>"	) 	) 	)s   A))A2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                  ||       y )	Nr)   r*   r[   FrA   r0   r.   r  )r   r   r2   ry   )r4   rh  r6   r"  r7   s        r'   1test_setitem_loc_only_false_indexer_dtype_changedzQTestDataFrameSetItemBooleanMask.test_setitem_loc_only_false_indexer_dtype_changed^  s    
 cU!A378ug,!#bgw~C5s!=>
b(+!"w~
b(+r&   r"  c                     t        g dg dd      }|j                         }|d   dk\  } ||      |   j                  d       ||      |<   t        j                  ||       y )N)r*   rg   r-   r/   ra  r  r)   r/   )r   r   r  r2   ry   )r4   r"  r6   r7   r  s        r'   "test_setitem_boolean_mask_aligningzBTestDataFrameSetItemBooleanMask.test_setitem_boolean_mask_aligningl  s]     \=>779#w!|#BK-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|      }|j                         }	|	d   j                  j                  g d
      |	d<   |d   dk(  }
ddg||
<   t        j                  ||	       y )N)r)   r)   r.   r.   r)   r)   r)   r)   r.   )rB  )r_   r`   ra   klr   r   )r*   r*   r-   r-   r*   r*   r*   )catsrR   r+   )r)   r)   r0   r0   r)   r)   r)   r[   )r*   r*   r/   r/   r*   r*   r*   r'  r0   r-   )r   r   r   r   r   set_categoriesr2   ry   )r4   cats2idx2values2exp_multi_rowcatsfidxfvaluesfr6   	exp_fancyr  s              r'   test_setitem_mask_categoricalz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalu  s     ?SRUJW89'!5G"DDQ/O
 89'9F!&&(	%f-11@@Q	&&zS 84
b),r&   r9   r   r;   kwargsr,   r*   rj   rN   c                     ||d<   t        di |}|j                         }d|||kD  <   t        j                  ||       y )Nr9   /   r%   r  )r4   r9   r2  r6   r  s        r'   %test_setitem_empty_frame_with_booleanzETestDataFrameSetItemBooleanMask.test_setitem_empty_frame_with_boolean  sB      w  ggi28
b#&r&   c           
      *   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  kD  <   t        j                  ||       t        j                  t        d      5  d
||j                  d d
 dkD  <   d d d        y # 1 sw Y   y xY w)Nr/   r   )        r  r   )      ?r         @)r         @      @rB   )r,   rj   r5   )r8  r   rY  )rY  rY  rY  rY  r   zItem wrong lengthrd   r-   )rG  rv   r   rC   rH   r   r  rG   r2   ry   rl   rm   rn   r,   )r4   r   r  df1r  r7   s         r'   test_setitem_boolean_indexingz=TestDataFrameSetItemBooleanMask.test_setitem_boolean_indexing  s    58n /?C5
 c4bggs3xT>S6TU?NLIQVW
  "C#)O
c8,]]:-@A 	)&(C		#2"#	) 	) 	)s   *D		Dc                     t        ddgddgdd      }|j                         }t        ddgd	      }t        d
ddgiddg      |j                  |d
gf<   t	        j
                  ||       y )Nr*   r-   r/   rg   r)   r[   Fr0   r]   r.   ru   rb  r   r+   )r   r   r   r   r2   ry   )r4   r6   r7   r"  s       r'   -test_loc_setitem_all_false_boolean_two_blockszMTestDataFrameSetItemBooleanMask.test_loc_setitem_all_false_boolean_two_blocks  sm    aV1a&s;<779%c2!*C!Q=A!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
                  ||       y )NrY  r-   r/   r  r   TFbooleanrB   r  )r   r   r  NAr2   ry   )r4   r6   r7   boolean_indexers       r'   test_setitem_ea_boolean_maskz<TestDataFrameSetItemBooleanMask.test_setitem_ea_boolean_mask  s{    Q!R)*q!fq!f-.#4-y9255$-y9
  ?
b(+r&   N)r"   r#   r$   r  skip_array_manager_invalid_testrl   r  r  r  xfailrG  rC   rH   r   r  r!  r2   r  r   r#  r1  r5  r=  r?  rD  r%   r&   r'   r  r  <  sd   ''[[	')PQ'"  
0 (0 [[QR[[UT288V$<=	) > S	) [[UT288V$<=, >, [[YRVV(<=, >,-. [[Ww&89[[XWqcNY<N'OP' Q :').,,r&   r  c                      e Zd Zd Zej
                  j                  dddg      d        Zd Zej
                  j                  dd e	j                  dgdggd	
      dgdggg      d        Zej
                  j                  dd e	j                  dgdgg      dgdggg      d        Zej
                  j                  dddg ej                  ddgej
                  j                  dd            g      ej
                  j                  ddd ed       ed      fdg      d               Zej$                  d        Zd Zej
                  j                  dd	dg      d        Zd Zd  Zd! Zej
                  j                  d"d#d$g ed%      fg d&g d&gf ed%       ed%      fd$fd#dd'gfd$d$gfd#gdfd$gfd#g e	j4                  d      fd$gf ed%       e	j4                  d      fg d(f ed%d$       e	j4                  d      fd$d$gf e	j                  g d)       e	j                  g d*      fd$d$gfg      d+        Zy%),%TestDataFrameSetitemCopyViewSemanticsc                    d|j                   vsJ |d   j                         }||d<   t        j                  |j                  dd|j                   j                  d      f<   t        |dd       j                         sJ y )Nr<  rN   ru   rA   )rj   r   rC   r%  r   get_locr   r   )r4   rJ   r   s      r'   test_setitem_always_copyz>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copy  s}    +-----!!#CCE662{22::3??@QqW~!!###r&   consolidateTFc                    t        g dg ddg d      }|j                  ddt        j                         |sZ|r4|j	                          t        |j                  j                        dk(  s&J 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   |       |sFt        j                  ||j                         t        j                   ||d   j                        sJ y y )N)g?g @g@gffffff@)gffffff@gffffff@gffffff@g333333 @)r   r   )r   r*   r-   r/   r+   r-   r   r*   *   rc   )r   r   rC   r%  _consolidate_inplacerG   r   blocks_valuesr   r   r,   r2   r   r   rR   shares_memory)r4   rL  using_array_managerr   r6   zvalsr7   s          r'   #test_setitem_partial_column_inplacezITestDataFrameSetitemCopyViewSemantics.test_setitem_partial_column_inplace  s
    &-AB,
 			!S"&&!"'')277>>*a///277>>*a///3qr3w2662662r2"((M
r#w1 #''x?##E2c7??;;; #r&   c                     ddgdz  }t        ddg|      }|j                         }|d d  }d|d<   t        g dg|	      }t        j                  ||       t        j                  ||       y )
NrN   rO   r-   r7  r   r   r)  )r7  r-   r7  ru   ri   r  )r4   r  r6   df_copydf_viewr7   s         r'   *test_setitem_duplicate_columns_not_inplacezPTestDataFrameSetitemCopyViewSemantics.test_setitem_duplicate_columns_not_inplace  sl    SzA~s1#t4'')Q%3./>
gw/
b(+r&   r  r*   r;   rB   c                     ddg}t        dddg|      }|j                         }|d d  }||dg<   t        ddgddgg|      }t        j                  ||       t        j                  ||       y )NrN   rO   r   r*   r   ri   r  )r4   r  rS  r  r6   rW  rX  r7   s           r'   #test_setitem_same_dtype_not_inplacezITestDataFrameSetitemCopyViewSemantics.test_setitem_same_dtype_not_inplace  sw    
 SzqA5'')Q%C5	q!fq!f-t<
b(+
gw/r&   r   c                     ddg}t        dddg|      }|j                         }|d d  }||dg<   t        ddgddgg|      }t        j                  ||       t        j                  ||       y )NrN   rO   r   r*   r   r   ri   r  )r4   r  r  r6   rW  rX  r7   s          r'   2test_setitem_listlike_key_scalar_value_not_inplacezXTestDataFrameSetitemCopyViewSemantics.test_setitem_listlike_key_scalar_value_not_inplace  sw     SzqA5'')Q%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      }|j                         }|d d  }|||<   t        j                  ||       y )Nr)   r   r*   r+   r  )r4   r  	set_valuer"  r6   r7   r   s          r'   "test_setitem_not_operating_inplacezHTestDataFrameSetitemCopyViewSemantics.test_setitem_not_operating_inplace  sE    2 U|Aq62779!u7
dH-r&   c                    t        d      D cg c]  }d| 	 }}t        |D ci c]!  }|t        j                  t	        |            # c}|      }|j
                  j                  d   j                  }t        j                         5  |j                  D ]
  }d||   |<    	 d d d        |sFt        j                  |t        j                  d      t        j                  d      f   dk(        sJ y t        j                  |t        j                  d      t        j                  d      f   dk(        sJ y c c}w c c}w # 1 sw Y   xY w)NrA   r0   r+   r   r*   )rv   r   rC   r  rG   r   rP  rR   r2   raises_chained_assignment_errorrj   r   r   )	r4   r   r  r`   r  colr6   rR   labels	            r'   "test_setitem_column_update_inplacezHTestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace4  s    $)9-aAaS'--fEsRXXc&k22EVT"))//1 	% %#$5	% %	% #66&2		"!=>!CDDD 66&2		"!=>!CDDD .E	% 	%s   D<&EEEc                     t        g d      }t        g dd      |d<   t        g dd      |d<   t        g dg dt              }t        j                  |j
                  |       y )	NrU   rF  rB   col1col2)r;   rF  rF  )r   ri  rj  )r,   r9   )r   r   r  r2   r   r   )r4   r6   expected_typess      r'   %test_setitem_column_frame_as_categoryzKTestDataFrameSetitemCopyViewSemantics.test_setitem_column_frame_as_categoryH  sU    y!y
;6
IZ86
-5HPV
 	ryy.9r&   r9   r  c                 2   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                  ||       y )Nr)   r/   rB   r-   r   )r-   r*   r*   )r   rC   r  rH   r   r2   ry   )r4   r9   r6   r7   s       r'   "test_setitem_iloc_with_numpy_arrayzHTestDataFrameSetitemCopyViewSemantics.test_setitem_iloc_with_numpy_arrayS  sq     RWWQZ(6021#!rxx},-c9-U;
b(+r&   c                 l   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                  ||       y )NrM  )rg   ru   rb  r_  )r)   r.   r)   r0   ri   r   r8  r-   r9  r)   )r   r-   r8  rg   )r-   ru   r9  r_  rU   ro  )r)   r)   r.   )r   r8  r/   )r-   r9  rb  r   r7  s       r'   !test_setitem_frame_dup_cols_dtypezGTestDataFrameSetitemCopyViewSemantics.test_setitem_frame_dup_cols_dtype\  s    l3=QR!SAs8,sCjA3^,6J
 	b(+	9-G!SAs8,sCjA3k;7Q
b(+r&   c                     t        dgdd      }t        d|i      j                  d      }|dd j                         }d |d<   d |d<   t        g ddg|d d       }t	        j
                  ||       y )	Nz
2000-01-01r   date)r9   rI   r   30102010rK  )r   r   r	  r   r2   ry   )r4   dtir6   r7   s       r'   "test_frame_setitem_empty_dataframezHTestDataFrameSetitemCopyViewSemantics.test_frame_setitem_empty_dataframel  s~    \N(H}%//7!W\\^6
6
V$bq'

 	b(+r&   c                 .   t        g dg dg dg dd      }|j                         }|ddg   }|r2ddgddgg|j                  d	d
gd d f<   t        j                  ||       nz|rddgddgg|j                  d	d
gd d f<   n\t        j                  dd      5  t        j                  t              5  ddgddgg|j                  d	d
gd d f<   d d d        d d d        t        g dg dd|j                        }t        j                  ||       |g d   }|s|r3ddgddgg|j                  d	d
gdd
df<   t        j                  ||       n]t        j                  dd      5  t        j                  t              5  ddgddgg|j                  d	d
gdd
df<   d d d        d d d        t        g dg dg dd|j                        }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   gxY w)N)r*   rg   r*   ru   )r-   ru   r-   rb  )r/   rb  r*   r_  )r`  r  rA   r/  r^  rO   r   r-   r*   r/   chained_assignmentwarnr-   r-   r-   r-   )r/   r-   r*   r-   )rO   r   r+   rc  r   )r`  r-   rA   r-   )
r   r   r   r2   ry   r  r  r  r   r,   )r4   r   r  	df_parentdf_origr6   r7   s          r'   test_iloc_setitem_view_2dblockzDTestDataFrameSetitemCopyViewSemantics.test_iloc_setitem_view_2dblock|  s   !!!#	
	 .."Sz" #$a&1a&!1BGGQFAI !!)W5 $%a&1a&!1BGGQFAI""#7@ ://0FG :+,a&1a&)9BGGQFAI&::
 <lC288T
b(+ '"4'(!fq!f%5BGGQFAaEM"!!)W5""#7@ >//0FG >/0!fq!f-=BGGQFAaEM*>> \Fbhh
 	b(+): :: :> >> >sH   G22G%G2&H G?H%G/	*G22G<?H	HHzindexer, valuer   r-   Nrz  r/   )r-   r-   r-   )FTF)FTFTc                    t        j                  d      j                  dd      }t        |j	                         t        d            }|j                  j                  sJ |j	                         }|d d  }t        j                  |      5  ||j                  |<   d d d        |rt        j                  ||       |||<   t        |t        d            }	t        j                  ||	       y # 1 sw Y   SxY w)Nr6  r/   rg   ABCDri   )rC   r   rx   r   r   rG  r   is_single_blockr2   r  r   ry   )
r4   r"  r  r   r  rK   r{  r|  r6   r7   s
             r'   test_setitem_2dblock_with_refzCTestDataFrameSetitemCopyViewSemantics.test_setitem_2dblock_with_ref  s    ( iim##Aq)chhj$v,?	 ~~----.."q\""#56 	%$BGGG	% !!)W5 GS$v,7
b(+	% 	%s   C..C7)r"   r#   r$   rK  rl   r  r  rU  rY  rC   rH   r[  r]  paramrF  r   rb  r  rE  rg  rl  rn  rp  rv  r}  slicer;   r  r%   r&   r'   rH  rH    s   $ [[]T5M:< ;<>
, [[!XRXXsQCj8A3*E
0
0 [[WsHBHHsecU^,Dusen&UV
, W
, [[EFLLukk''H  ( 
	
 [[|$i&=>		
... ''E (E&	: [[Ww&89, :,, , -,^ [[!feDk"\<$@ADk5;'+!Q[1a&!c1XsOc8288A;!%Dk8288A;'3D!nhbhhqk*QF3./:T1UVA	
 ,! ,r&   rH  c                  z   t        dddgi      } t        j                  t        d      5  d| j                  d d df<   d d d        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        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
                  | |       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr)   r*   r-   zincompatible dtyperd   Tr:  g      @r  r/   rg   )r   r2   r  r  r   ry   r6   r7   s     r'   'test_full_setter_loc_incompatible_dtyper    s(   	C!Q=	!B		#	#M9M	N q#v#d|,-H"h'	C!Q=	!B		#	#M9M	N * S)q#v*#Sz*+H"h'	C!Q=	!Bq\BFF1c6N#1v'H"h' * *s   D%D1%D.1D: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
                  | |       y )NrU   )r;  ru   rb  r$  )r*   r  r*   r=  Gr   r%  r  )rN   rO   r=  r  )r   r   r,   r   r2   ry   r  s     r'   )test_setitem_partial_row_multiple_columnsr    ss    	5	6B(2BFF288q=3*$%q%,'e-		
H "h'r&   )6r   numpyrC   rl   pandas.errorsr   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_testingr2   pandas.core.arraysr   pandas.tseries.offsetsr   r   r  r  r  r	  r  rH  r  r  r%   r&   r'   <module>r     s       0 ) ) < 5      $  * 'M, M,`'1 '1TP0 P0f+, +,\, ,,E, E,PN, N,b(((r&   