
    Owg                     n   d dl m Z  d dlZd dlZd dlmc mZ d dlm	Z
 d dlmZ d dlmZmZmZmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z& d dl'm(Z( d dl)m*Z*  G d	 d
      Z+ G d d      Z, G d d      Z- G d d      Z. G d d      Z/ G d d      Z0 G d d      Z1d Z2d Z3y)    )datetimeN)	_registry)is_object_dtype)CategoricalDtypeDatetimeTZDtypeIntervalDtypePeriodDtype)Categorical	DataFrameDatetimeIndexIndexIntervalIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timestampcut
date_rangenotnaperiod_range)SparseArray)BDayc                   ~   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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j8                  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.d/d/gg      d0        Z)d1 Z*d2 Z+ej
                  j                  d3g d4g d5g      d6        Z,d7 Z-d8 Z.d9 Z/d: Z0d; Z1ej
                  j                  d<g d=g d>d?fg d@g d>d?fg dAg d>d?fg dBg dCdDfg dEg dFdGfg dHg dFdIfg      dJ        Z2dK Z3ej
                  j                  dLg dMdN e4g dOg dOg dOgg dMP      fdQdRgdNdSg e4g dTg dUg dVgg dMP      fg dW e5jl                  g dXe5jn                  Y       e4g dXg dXg dXgg dWP      fg dZg dXg d[g d\g e4g d]g d^g d_gg dMP      fg d` e5jl                  g dXg d[g d\ge5jn                  Y       e4g dag dbg dcgg dMP      fdddQg e4dNdSgdedfgdgdhggdddQgP       e4g dig djg dkgg dWP      fg      dl        Z8dm Z9dn Z:do Z;dp Z<dq Z=dr Z>e?j                  ds        ZAej
                  j                  dti dudvig      dw        ZBdx ZCdy ZDdz ZEd{ ZFd| ZGd} ZHy~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__     _/var/www/horilla/myenv/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)   
   r8   )nprandomdefault_rngintegerslenarrayr8   name)r3   r8   float_framearrs       r&   test_setitem_dtypez'TestDataFrameSetItem.test_setitem_dtype8   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)rB   rC   rD   standard_normalrF   r1   assert_almost_equalvalues)r3   rI   r4   s      r&   test_setitem_list_not_dataframez4TestDataFrameSetItem.test_setitem_list_not_dataframeB   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-   r/   foorH   r*   )ghij)r(   r-   r/   r(   fizr+   rH   z/cannot reindex on an axis with duplicate labelsmatchnewcolr,   r   )   rf   r(   r-   r/   rU   columnszDCannot set a DataFrame with multiple columns to the single column grr-   r/   grz7Cannot set a DataFrame without columns to the column gr)r   r   r   pytestraises
ValueErrorrB   rC   rD   rE   groupbycount)r3   r5   sermsgs       r&   test_setitem_error_msmgsz-TestDataFrameSetItem.test_setitem_error_msmgsG   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 )Nr@      r*   r,   )
r   rangerB   rC   rD   rO   repeatreshaper1   assert_frame_equal)r3   NKr5   new_colr_   r6   s          r&   test_setitem_benchmarkz+TestDataFrameSetItem.test_setitem_benchmarke   s    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,   rt   r.   rt   )r/   r-   r(   r+   ri   r   r[   r(   rX   r/   r=   xr>   )r[   r/   rX   r-   r(   r   r*   rf   r9   y)r[   r/   rX   r-   r(   r   r   )r   rB   rC   rD   rO   arangeinsertastypedtypesr   r8   r1   assert_series_equalr3   r5   resultr6   s       r&   test_setitem_different_dtypez1TestDataFrameSetItem.test_setitem_different_dtypep   s   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      }t        j                  ||       y )NrM   rN   Cr*   Xr   r   z)r4   r+   )r   r+   r1   rx   r3   r5   exps      r&   test_setitem_empty_columnsz/TestDataFrameSetItem.test_setitem_empty_columns   sC    _-((3!3c?3?K
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*   rM   M8[ns])r   r   rB   r   rF   r8   )r3   rngr5   s      r&   %test_setitem_dt64_index_empty_columnsz:TestDataFrameSetItem.test_setitem_dt64_index_empty_columns   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  g ddg	      }t	        j
                  ||       y )
Nr.   r*   20130101UTCtznsnowr   r)   r,   r   )r   ru   r   as_unitr1   rx   r3   r5   r6   s      r&   $test_setitem_timestamp_empty_columnsz9TestDataFrameSetItem.test_setitem_timestamp_empty_columns   sb    U1X&jU3;;DA5	
u-./!39ug
 	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,   rZ   r@   rX   rh   zLength of values \(z$\) does not match length of index \(z\)rc   r[   )r
   
from_codesr   ru   rF   rk   rl   rm   )r3   catr5   rq   s       r&   2test_setitem_wrong_length_categorical_dtype_raiseszGTestDataFrameSetItem.test_setitem_wrong_length_categorical_dtype_raises   s|    $$%7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 )NrZ         ?       @      @c_1n_1r   r   r)   
new_columnr\   )r   r   r   r1   r   )r3   r5   sp_arrayr6   s       r&   test_setitem_with_sparse_valuez3TestDataFrameSetItem.test_setitem_with_sparse_value   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 )
NrZ   r   r   r   )r,   r)   r   r*   r   )r)   r   r   r\   )r   r   r   r1   r   )r3   r5   	sp_seriesr6   s       r&   (test_setitem_with_unaligned_sparse_valuez=TestDataFrameSetItem.test_setitem_with_unaligned_sparse_value   sR    GH;y1C	$<+i0|D
r,/:r%   c                     t        dd      g}t        g       }||d<   t        d|i      }t        j                  ||       y )Nz2003-12Dr(   )r   r   r1   rx   )r3   r4   r   r6   s       r&   #test_setitem_period_preserves_dtypez8TestDataFrameSetItem.test_setitem_period_preserves_dtype   sA    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 ]T  \  }}t	        |      t        |      t        |      t        j                  |      d|j                  |j                  d   <   V t        j                  ||       y )Nr   r:   rA   rT   r;   rg   r   )r   r   float	enumerateintrB   r;   locshaper1   rx   )r3   r6   r5   idxr-   s        r&   "test_setitem_dict_preserves_dtypesz7TestDataFrameSetItem.test_setitem_dict_preserves_dtypes   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   rt   )leftrightr:   r   z
2011-01-01z
US/Easternr   s)unitr   c                     t        g dt        |gdz  |      d      }t        dg di      }||d<   t        j                  ||       y )NrT   r.   rA   )r   objr   r   r   r   r1   rx   )r3   r   r8   r6   r5   s        r&   test_setitem_extension_typesz1TestDataFrameSetItem.test_setitem_extension_types   sH     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   r1   rx   )r3   r   r   r6   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]rA   new)r   r   datetime64[s]r   )
rB   rG   r   to_framer   r1   rx   r   assert_numpy_array_equalto_numpy)r3   data_nsr   r6   data_ss        r&   6test_setitem_dt64_ndarray_with_NaT_and_diff_time_unitszKTestDataFrameSetItem.test_setitem_dt64_ndarray_with_NaT_and_diff_time_units  s    ((Au:-=>))+u!TAt9=EUV
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[]rA   )r   r   r   intsr*   	rB   r8   r   r:   viewr   r   rQ   allr3   r   nr8   valsex_valsr5   s          r&   -test_frame_setitem_datetime64_col_other_unitszBTestDataFrameSetItem.test_frame_setitem_datetime64_col_other_units#  s     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   rA   r   r   r*   r   datesr   r   s          r&   6test_frame_setitem_existing_datetime64_col_other_unitszKTestDataFrameSetItem.test_frame_setitem_existing_datetime64_col_other_units8  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 )NrN   r[   r   r\   r   r)   r,   )r)   r)   r)   r,   )TFT)renamer1   r   r   _mgrarraysassert_extension_array_equal_ndarraybaseidcopyr   ilocr   r   )r3   timezone_frameusing_copy_on_writer5   r   v1v2v1basev2basedf2r   s              r&   test_setitem_dt64tzz(TestDataFrameSetItem.test_setitem_dt64tzI  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/2000rt   r+   )periodsrH   r,   r~   r*   r   Fcheck_names)r   r   rB   rC   rD   rO   r   r1   assert_index_equalrH   reset_index	set_index
isinstancer+   r   )r3   r   r5   rss       r&   test_setitem_periodindexz-TestDataFrameSetItem.test_setitem_periodindexk  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threerT   r(   r-   r)   r.   rt   r/   rU   r)   r.   rt   r)   r)   r)   rg   )r   rB   rG   r   r8   r1   rx   r3   r5   rJ   r6   s       r&   'test_setitem_complete_column_with_arrayz<TestDataFrameSetItem.test_setitem_complete_column_with_arrayy  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   rM   )r  r   rH   )	r   r   r   r   r   r   r   r   r   r   rA   )r   r   	_na_valuer   r1   rx   )r3   r   r   r6   s       r&   test_setitem_period_d_dtypez0TestDataFrameSetItem.test_setitem_period_d_dtype  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 )NrT   rA   r,   )r.   r.   rh   rZ   F)r)   r,   r.   Fr  )r   r   r   F)
r   r   rB   rC   rD   rO   objectr1   r  ri   )r3   r8   colsr5   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%   indexerrN   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 )NrM   rN   rh   r)   r,   rM   rN   r  )r   rB   nanr   r1   rx   )r3   r   r5   otherr6   s        r&   #test_setitem_frame_length_0_str_keyz8TestDataFrameSetItem.test_setitem_frame_length_0_str_key  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   rM   )r)   rf   rN   r,   rt   r   )r   r)   r,   r.   rf   rt   r)   rf   rt   r  rA   )
r   ru   r   rB   r#  r   r:   ri   r1   rx   )r3   r  r5   r6   s       r&   $test_setitem_frame_duplicate_columnsz9TestDataFrameSetItem.test_setitem_frame_duplicate_columns  s    "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 keyrc   )r   r.   rt   rM   )r   ru   rk   rl   rm   r   )r3   r  r5   r   s       r&   2test_setitem_frame_duplicate_columns_size_mismatchzGTestDataFrameSetItem.test_setitem_frame_duplicate_columns_size_mismatch  s    "U1Xt4]]:-QR 	"!BuI	" gga!en]]:-QR 	#"CJ	# 	#		" 	"	# 	#s   B8BBBr  rZ   )r(   r(   r(   c                     t        g dg|      }t        ddggddg      }d}t        j                  t        |      5  ||d	<   d d d        y # 1 sw Y   y xY w)
NrT   rh   r@      rU   rV   r*  rc   r(   r   rk   rl   rm   )r3   r  r5   rhsrq   s        r&   #test_setitem_df_wrong_column_numberz8TestDataFrameSetItem.test_setitem_df_wrong_column_number  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 )
NrT   r(   r-   r-   rh   r@   r-     r(   r-   r/   )r@   r-  r4  r@   )r(   r-   r-   r/   r   r3   r5   r/  r6   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)
NrT   r2  rh   r@   r-  r(   r-   r*  rc   r.  )r3   r5   r/  rq   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 )NrM   r@   rt   rN   r   r   EFc                 >    t        t        j                  |             S N)r   rB   rG   r   s    r&   <lambda>z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>  s    eBHHQK( r%   Fr  )r   ru   r   r  r   
categoriesr   rB   rG   rQ   r   r  r8   r   r   r   r1   r  rN   r   r   r   )r3   r5   rp   r/   s       r&   test_setitem_intervalsz+TestDataFrameSetItem.test_setitem_intervals  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
   r1   rx   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\   rM   ri   r+   )r   r   r1   r  r+   )r3   r+   r   r6   s       r&    test_setitem_with_empty_listlikez5TestDataFrameSetItem.test_setitem_with_empty_listlike#  sK    bu%C56scU%8
fllHNN;r%   zcols, values, expected)r   r   r   r(   r)   r,   r.   rf   rf   )r   r   r   r(   )r   rN   rN   r(   )r   rN   r(   rT   r.   )rN   r   r(   )r.   r,   r)   r)   )r   r(   rN   r,   c                 b    t        |g|      }|d   |d<   |d   j                  d   }||k(  sJ y )Nrh   r(   r   )r   rQ   )r3   r  rQ   r6   r5   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  rI  rQ  rO  )rQ  rS  )rP  rR  )rQ  rR  )rP  rS  )r   from_productr   rB   rC   rD   rE   rF   r   r+   rQ   r   shuffler   r1   rx   )r3   itr  r+   r   r5   r_   r`   s           r&   test_setitem_multi_indexz-TestDataFrameSetItem.test_setitem_multi_index=  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)rM   rN   r   r      )r\  r\  r\  r\  rh   r   r      )r)   r,   r\  r]  )r.   rf   r\  r]  rt      r\  r]  r   )r\  r]  r  rA   )rN   r   r   r3  )         )r)   r\  r]  r  )r.   r@   r-  r4  )rt   r`  ra  rb  )r   rM   r   )r]  r,   r\  r  )r-  rf   r@   r4  )ra  r_  r`  rb  rM   r  r@   r-  r4  )r\  r,   r]  )r  rf   r@   )r-  r_  r4  c                 j    t        ddgddgddggddg	      }|||<   t        j                  ||       y )
Nr)   r,   r.   rf   rt   r_  rM   rN   rh   r   )r3   ri   boxr6   r5   s        r&   !test_setitem_list_missing_columnsz6TestDataFrameSetItem.test_setitem_list_missing_columnsU  sA    f AAA/#sD7
b(+r%   c                     t        t        |d   |d               }||d<   |d   }t        ||j                  d      }t	        j
                  ||       y )NrM   rN   tuplesrb   )rE  zipr   r+   r1   r   )r3   rI   rg  r   r6   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 )	NrT   rf   rt   r_  r  c              3       K   | ]  }|  y wr=  r$   .0r   s     r&   	<genexpr>zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>       %1%   r   r)   r  rf   r)   r)   r   r   r1   rx   r3   r5   r   r6   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 )NrT   rk  r  c              3       K   | ]  }|  y wr=  r$   rm  s     r&   ro  zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>  rp  rq  r   r)   rr  rs  rt  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        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)rH   r8   r*   r(   )rH   r+   r8   r-   S64r/   rU   abcd)
r   r   rB   r;   uint8r   r  rE  r1   r   )r3   r+   r5   r   r6   s        r&   (test_setitem_dtypes_bytes_type_to_objectz=TestDataFrameSetItem.test_setitem_dtypes_bytes_type_to_object  s    D.U#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.   rf   rt   r_  r  r:   Int64Fr*   r(   r-   )r   r   r   r+   r   r1   rx   )r3   r   maskr6   s       r&    test_boolean_mask_nullable_int64z5TestDataFrameSetItem.test_boolean_mask_nullable_int64  s    !Qq!f5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  rA   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            }||d<   t	        j
                  t              5  t        j                  |      |d<   d d d        t	        j                  ||       y # 1 sw Y    xY w)Nr@   )np-array	np-matrixr*   )r@   r)   r  r  )	r   rB   onesr   r1   assert_produces_warningPendingDeprecationWarningmatrixrx   )r3   r6   r(   r5   s       r&   test_setitem_npmatrix_2dz-TestDataFrameSetItem.test_setitem_npmatrix_2d  s     2772;?ryyQS}
 GGGRYYr]+: ''(AB 	+ iilB{O	+ 	b(+	+ 	+s   CCr   rU   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.   rf   r  r      )r)   r   r(   rt   r_  r   r)   r/   rV   )r/   rV   )r   r   rB   r#  r1   rx   )r3   r   r5   r6   s       r&   %test_setitem_aligning_dict_with_indexz:TestDataFrameSetItem.test_setitem_aligning_dict_with_index  s     aV1a&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,   r@   r-  r*   r   )r   rB   r#  r1   rx   isetitemr   s      r&   test_setitem_rhs_dataframez/TestDataFrameSetItem.test_setitem_rhs_dataframe  s    aV}%S2r(OAq6:3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.   rf   ri   r4   r@   r-  rA   r  r   r3   any_numeric_ea_dtyper5   r6   s       r&   *test_setitem_frame_overwrite_with_ea_dtypez?TestDataFrameSetItem.test_setitem_frame_overwrite_with_ea_dtype  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-   rA   r  )
rk   importorskipr   pdoption_contextr   r  r   r1   rx   r   s      r&   'test_setitem_string_option_object_indexz<TestDataFrameSetItem.test_setitem_string_option_object_index  s    I&aV}%4d; 	6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  r@   r   r   r1   rx   )r3   r5   r6   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(   r@   r  rA   r-  r  r   )r   rB   rG   r   r   r1   rx   r   r   s      r&   test_loc_setitem_ea_dtypez.TestDataFrameSetItem.test_loc_setitem_ea_dtype
  s    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-31rA   r(   r)   inferrc   r-   r/   r   rZ   )
r   r   r  r   r1   r  FutureWarningr   r   rx   )r3   r   r5   r6   s       r&   test_setitem_object_inferringz2TestDataFrameSetItem.test_setitem_object_inferring  s    Y|,-V<aSz"''WE 	! BFF1c6N	!''WE 	BsG	 SY|45=MNY|45=MN
 	b(+	! 	!	 	s   C<C'C$'C0N)Ir!   r"   r#   r7   rk   markparametrizerK   rR   rr   r|   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   ea_registryr   r  rH   propertyr   r   r   r   r   r
  r  r  r  r%  r(  r+  r0  r6  r8  rA  rG  rJ  rM  r[  r   rB   rG   r:   re  ri  ru  rx  r~  r  r  td&skip_array_manager_not_yet_implementedr  r  r  r  r  r  r  r  )rn  r8   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   -N7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:00rN   r\   z
US/Pacific)r   tz_localize)r3   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  rA   rN   r\   )r   rB   rG   tolistr8   )r3   r   r6   s      r&   r6   z!TestSetitemTZAwareValues.expected/  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)   rM   rh   rN   r   r)   r*   r   r\   )r   rB   rC   rD   rO   	to_seriesdt
tz_convertr   r  r1   r   )r3   r   r6   r5   r   comps         r&   test_setitem_dt64seriesz0TestSetitemTZAwareValues.test_setitem_dt64series5  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  rM   rh   rN   )r   rB   rC   rD   rO   r1   r   r3   r   r6   r5   r   s        r&   test_setitem_datetimeindexz3TestSetitemTZAwareValues.test_setitem_datetimeindex?  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   rB   rC   rD   rO   to_pydatetimer1   r   r  s        r&   .test_setitem_object_array_of_tzaware_datetimeszGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesH  sY    ryy,,Q/??GRUQVW ##%3C
vx0r%   N)
r!   r"   r#   rk   fixturer   r6   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)NrT   )rf   rf   r_  r  r(   g?g?g333333?g?      ?r/   rU   r   )r   r   r\   )r   r,   r.   )r   rB   rG   r1   assert_cow_warningr   r   r   )r3   r   warn_copy_on_writer5   rp   r6   s         r&   test_setitem_listlike_viewsz=TestDataFrameSetItemWithExpansion.test_setitem_listlike_viewsS  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.   rf   rt   r_  0 - Name)r)   r,   rt   )r.   rf   r_  )r   r)   r  rh   r   r   s      r&   .test_setitem_string_column_numpy_dtype_raisingzPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raisingg  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 )	Nr2  r>   ri   r8   r,   r(   r   r)   rh   )r   rE  ru   r   rB   r#  r1   rx   )r3   r   r5   r6   s       r&   'test_setitem_empty_df_duplicate_columnszITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columnsn  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   r9   rA   i  z - i  T)by	ascendingi)  F)r   labelsr   )r@  orderedr*   r:  )r  r   r:  )r   rB   rG   rC   rD   rE   r
   ru   sort_valuesr   r  rQ   r   r   r8   r   r1   r   assert_categorical_equalr   rH   
sort_index)
r3   r5   r_   r  rp   r   r   r6   result1result2s
             r&   -test_setitem_with_expansion_categorical_dtypezOTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtypew  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[   rh   )r   r   rB   r:   r1   rx   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"  rM   Fr  )ri   r1   r   )r3   rI   r   r6   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   r@   rI  i  r-  r)   )
r   r   r   ru   r   r   rB   r#  isnanr   )r3   ri   r4   ttss        r&   #test_frame_setitem_newcol_timestampzETestDataFrameSetItemWithExpansion.test_frame_setitem_newcol_timestamp  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   r1   rx   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.   rf   r  r@   r-  rA   r/   rZ   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abcrh   rt   r   )r   H   23rZ   r   z0 days 00:00:05z0 days 00:01:12r   )	r   rE  r  to_timedeltar   	Timedeltar   r1   rx   )r3   r   r6   s      r&   &test_loc_expansion_with_timedelta_typezHTestDataFrameSetItemWithExpansion.test_loc_expansion_with_timedelta_type  s    4;/-#.


1
 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  R  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   rB   zerosr1   rx   r  s       r&   test_setitem_slice_positionz7TestDataFrameSetItemSlicing.test_setitem_slice_position  sR    rxx)*23hhx BCS>
b(+r%   r   rd  r   rT   c                     t        g dgg dg|z  z   g d      } |g d       ||      dd  t        g dgg dg|z  z   g d      }t        j                  ||       y Nr  r,   rf   r_  rZ   rh   r3  r)   r   r3   r   rd  r   r5   r6   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   rE  ru   r1   rx   )r3   r   rd  r5   r6   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  rZ   rh   r3  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  rk   r  r  r1   setitemr   r   rB   rG   rE  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 )NrK  r^  r"  )r-  r4  r`  ra  c                      y)NrM   r$   r>  s    r&   r?  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>.inc  s    q5Lr%   rW  r)   rA   r   )r   r  r1   rx   )r3   r  r5   r6   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,   )rB   absr5   s    r&   r?  z(TestDataFrameSetItemBooleanMask.<lambda>-  s    Ba' r%   c                 L    | t        j                  |       dz  kD  j                  S r  )rB   r  rQ   r  s    r&   r?  z(TestDataFrameSetItemBooleanMask.<lambda>-  s    R"&&*q.5H4P4P r%   	dataframerG   )idsc                 j   |j                         } ||      }|j                         }t        j                  ||<   |j                  j                         }t        j                  |t        j                  |      <   t        ||j                  |j                        }t        j                  ||       y )Nr   )
r   rB   r#  rQ   rG   r   r+   ri   r1   rx   )r3   r  rI   r5   r  r   r6   s          r&   test_setitem_boolean_maskz9TestDataFrameSetItemBooleanMask.test_setitem_boolean_mask*  s     } vvt99>>##%66$ XRXXrzzJ
fh/r%   z1Currently empty indexers are treated as all False)reasonrd  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)   rZ   r  rA   z@Must have equal len keys and value when setting with an iterablerc   r-   )r   r   rk   rl   rm   r   )r3   rd  r5   r   rq   s        r&   :test_setitem_loc_empty_indexer_raises_with_non_empty_valuezZTestDataFrameSetItemBooleanMask.test_setitem_loc_empty_indexer_raises_with_non_empty_value>  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)   rZ   Fr@   r/   r-   r  )r   r   r1   rx   )r3   rd  r5   r   r6   s        r&   1test_setitem_loc_only_false_indexer_dtype_changedzQTestDataFrameSetItemBooleanMask.test_setitem_loc_only_false_indexer_dtype_changedK  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)   rf   r,   r.   r^  r  r(   r.   )r   r   r  r1   rx   )r3   r   r5   r6   r  s        r&   "test_setitem_boolean_mask_aligningzBTestDataFrameSetItemBooleanMask.test_setitem_boolean_mask_aligningY  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-   )r@  )r^   r_   r`   klr   r   )r)   r)   r,   r,   r)   r)   r)   )catsrQ   r*   )r(   r(   r/   r/   r(   r(   r(   rZ   )r)   r)   r.   r.   r)   r)   r)   r#  r/   r,   )r
   r   r   r   r   set_categoriesr1   rx   )r3   cats2idx2values2exp_multi_rowcatsfidxfvaluesfr5   	exp_fancyr  s              r&   test_setitem_mask_categoricalz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalb  s     ?SRUJW89'!5G"DDQ/O
 89'9F!&&(	%f-11@@Q	&&zS 84
b),r%   r8   r   r:   kwargsr+   r)   ri   rM   c                     ||d<   t        di |}|j                         }d|||kD  <   t        j                  ||       y )Nr8   /   r$   r  )r3   r8   r.  r5   r   s        r&   %test_setitem_empty_frame_with_booleanzETestDataFrameSetItemBooleanMask.test_setitem_empty_frame_with_booleany  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         @      @rA   )r+   ri   r4   )r4  r   rW  )rW  rW  rW  rW  r   zItem wrong lengthrc   r,   )rE  ru   r   rB   rG   r   r  rF   r1   rx   rk   rl   rm   r+   )r3   r   r  df1r   r6   s         r&   test_setitem_boolean_indexingz=TestDataFrameSetItemBooleanMask.test_setitem_boolean_indexing  s    5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.   rf   r(   rZ   Fr/   r\   r-   rt   r_  r   r*   )r   r   r   r   r1   rx   )r3   r5   r6   r   s       r&   -test_loc_setitem_all_false_boolean_two_blockszMTestDataFrameSetItemBooleanMask.test_loc_setitem_all_false_boolean_two_blocks  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 )NrW  r,   r.   r  r   TFbooleanrA   r  )r   r   r  NAr1   rx   )r3   r5   r6   boolean_indexers       r&   test_setitem_ea_boolean_maskz<TestDataFrameSetItemBooleanMask.test_setitem_ea_boolean_mask  s{    Q!R)*q!fq!f-.#4-y9255$-y9
  ?
b(+r%   N)r!   r"   r#   r  skip_array_manager_invalid_testrk   r  r  r  xfailrE  rB   rG   r   r  r  r1   r  r   r  r-  r1  r9  r;  r@  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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:  rM   rt   r@   )ri   r   rB   r#  r   get_locr   r   )r3   rI   r   s      r&   test_setitem_always_copyz>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copy  s}    +-----!!#C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)   *   rb   )r   r   rB   r#  _consolidate_inplacerF   r   blocks_valuesr   r   r+   r1   r   r   rQ   shares_memory)r3   rH  using_array_managerr   r5   zvalsr6   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 )
NrM   rN   r,   r3  r   r   r'  )r3  r,   r3  rt   rh   r  )r3   r  r5   df_copydf_viewr6   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:   rA   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 )NrM   rN   r   r)   r   rh   r  )r3   r  rO  r  r5   rS  rT  r6   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 )NrM   rN   r   r)   r   r   rh   r  )r3   r  r  r5   rS  rT  r6   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)   rt   )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  )r3   r  	set_valuer   r5   r6   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)Nr@   r/   r*   r   r)   )ru   r   rB   r  rF   r   rL  rQ   r1   raises_chained_assignment_errorri   r   r   )	r3   r   r  r_   r  colr5   rQ   labels	            r&   "test_setitem_column_update_inplacezHTestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace!  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 )	NrT   rD  rA   col1col2)r:   rD  rD  )r   re  rf  )r+   r8   )r   r   r  r1   r   r   )r3   r5   expected_typess      r&   %test_setitem_column_frame_as_categoryzKTestDataFrameSetitemCopyViewSemantics.test_setitem_column_frame_as_category5  sU    y!y
;6
IZ86
-5HPV
 	ryy.9r%   r8   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.   rA   r,   r   )r,   r)   r)   )r   rB   r  rG   r   r1   rx   )r3   r8   r5   r6   s       r&   "test_setitem_iloc_with_numpy_arrayzHTestDataFrameSetitemCopyViewSemantics.test_setitem_iloc_with_numpy_array@  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 )NrK  )rf   rt   r_  r\  )r(   r-   r(   r/   rh   r   r4  r,   r5  r(   )r   r,   r4  rf   )r,   rt   r5  r\  rT   rk  )r(   r(   r-   )r   r4  r.   )r,   r5  r_  r   r5  s       r&   !test_setitem_frame_dup_cols_dtypezGTestDataFrameSetitemCopyViewSemantics.test_setitem_frame_dup_cols_dtypeI  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)r8   rH   r   30102010rI  )r   r   r  r   r1   rx   )r3   dtir5   r6   s       r&   "test_frame_setitem_empty_dataframezHTestDataFrameSetitemCopyViewSemantics.test_frame_setitem_empty_dataframeY  s~    \N(H}%//7!W\\^6
6
V$bq'

 	b(+r%   N)r!   r"   r#   rG  rk   r  r  rQ  rU  rB   rG   rW  rY  paramrB  r   r^  r  rA  rc  rh  rj  rl  rr  r$   r%   r&   rD  rD    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, :,, ,r%   rD  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 dtyperc   Tr6  g      @r  r.   rf   )r   r1   r  r  r   rx   r5   r6   s     r&   'test_full_setter_loc_incompatible_dtyperv  j  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 )NrT   )r7  rt   r_  r"  )r)   r  r)   r;  Gr   r#  r  )rM   rN   r;  rx  )r   r   r+   r   r1   rx   ru  s     r&   )test_setitem_partial_row_multiple_columnsry  ~  ss    	5	6B(2BFF288q=3*$%q%,'e-		
H "h'r%   )4r   numpyrB   rk   pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.baser   r  pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r   r   r	   pandasr  r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr1   pandas.core.arraysr   pandas.tseries.offsetsr   r   r  r  r  r  r  rD  rv  ry  r$   r%   r&   <module>r     s       ) ) < 5      $  * '{, {,|'1 '1TP0 P0f+, +,\, ,,E, E,Pv, v,r(((r%   