
    .i)                     \   d dl m Z  d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dl m!Z" d dl#m$Z$ d dl%m&Z&  G d	 d
      Z' G d d      Z( G d d      Z) G d d      Z* G d d      Z+ G d d      Z, G d d      Z-d Z.d Z/y)    )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d Zej
                  j                  d ed       ed      f edd       edd      f edd      j5                  d       edd      fg      d        Zej
                  j                  d ej<                  D  cg c](  }t?        |j@                  tB              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 Z0d: Z1d; Z2d< Z3e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        Z4dL Z5ej
                  j                  dMg dNdO e6g dPg dPg dPgg dNQ      fdRdSgdOdTg e6g dUg dVg dWgg dNQ      fg dX e7jp                  g dYe7jr                  Z       e6g dYg dYg dYgg dXQ      fg d[g dYg d\g d]g e6g d^g d_g d`gg dNQ      fg da e7jp                  g dYg d\g d]ge7jr                  Z       e6g dbg dcg ddgg dNQ      fdedRg e6dOdTgdfdggdhdiggdedRgQ       e6g djg dkg dlgg dXQ      fg      dm        Z:dn Z;do Z<dp Z=dq Z>dr Z?ds Z@dt ZAej
                  j                  dui dvdwig      dx        ZBdy ZCdz ZDd{ 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dZy)@TestDataFrameSetItem.test_setitem_str_subclass.<locals>.mystring N)__name__
__module____qualname__	__slots__r!       f/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/frame/indexing/test_setitem.pymystringr    +   s    Ir&   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_dtype6   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_dataframe@   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_msmgsE   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_benchmarkc   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_dtypen   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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ns)frequnitr+   rN   M8[ns])r   r   rC   r   rG   r9   )r4   rngr6   s      r'   %test_setitem_dt64_index_empty_columnsz:TestDataFrameSetItem.test_setitem_dt64_index_empty_columns   sT    ,.@uSWXRYYs3x013#w}} 2222r&   c                     t        t        d            }t        dd      |d<   t        t        dd      ggdz  t        d      dg      }t        j                  ||       y )Nr/   r+   20130101UTCtznowr   )r   rv   r   r2   ry   r   s      r'   $test_setitem_timestamp_empty_columnsz9TestDataFrameSetItem.test_setitem_timestamp_empty_columns   s[    U1X&jU3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)r   r   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_units3  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_unitsH  s     3tfA'yy"((+007++./		!-RYYq\Bii277A7 77""g-22444r&   c                 H   |}|d   j                  d      }||d<   t        j                  |d   t        |d             d|d<   ||d<   t        j                  |d   t        |d             |d= |j                  j
                  d   j                  }|j                  j
                  d   j                  }t        j                  ||       |j                  j                  }|j                  j                  }t        |      t        |      k(  sJ |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blocksrR   assert_extension_array_equal_ndarraybaseidcopyr   ilocr   r   )
r4   timezone_framer6   r   v1v2v1basev2basedf2r   s
             r'   test_setitem_dt64tzz(TestDataFrameSetItem.test_setitem_dt64tzY  sM   gnnU# 3
r#ws(=>33
r#ws(=>sG
 WW^^A%%WW^^A%%
''B/!!!!&zRZ''' 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_periodindexx  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-  r4  rA   )r)   r.   r.   r0   r   r4   r6   r/  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   r2  ri   rA   r-  r)   r.   r*  rd   r.  )r4   r6   r/  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_listlike0  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_column8  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   rC   rD   rE   rF   rG   r   r,   rR   r   shuffler   r2   ry   )r4   itr  r,   r   r6   r`   ra   s           r'   test_setitem_multi_indexz-TestDataFrameSetItem.test_setitem_multi_indexJ  s    %w&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   r3  )         )r*   r]  r^  r  )r/   rA   r-  r4  )ru   rb  rc  rd  )r   rN   r   )r^  r-   r]  r  )r-  rg   rA   r4  )rc  r`  rb  rd  rN   r  rA   r-  r4  )r]  r-   r^  )r  rg   rA   )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/   rg   ru   r`  rN   rO   ri   r   )r4   rj   boxr7   r6   s        r'   !test_setitem_list_missing_columnsz6TestDataFrameSetItem.test_setitem_list_missing_columnsb  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   )rE  zipr   r,   r2   r   )r4   rJ   ri  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   r`  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   rm  r  c              3       K   | ]  }|  y wr=  r!   ro  s     r'   rq  zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>  rr  rs  r   r*   rt  ru  rv  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  rE  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   r`  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        d	
      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  z@matrix subclass is not the recommended way to represent matricesrd   r  )
r   rC   onesr   r   r2   assert_produces_warningPendingDeprecationWarningmatrixry   )r4   r7   r)   r6   s       r'   test_setitem_npmatrix_2dz-TestDataFrameSetItem.test_setitem_npmatrix_2d  s     2772;?ryyQS}
 GGGRYYr]E"E4JK: ''%T
 	+ !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   r`  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      }||j                  d d df<   ||d<   t        dg||d      }t        j                  ||       y )Nz
2019-12-31rB   r)   r*   r.   r0   r[   )r   r   r  r   r   r2   ry   )r4   r   r6   r7   s       r'   -test_setitem_index_object_dtype_not_inferringzBTestDataFrameSetItem.test_setitem_index_object_dtype_not_inferring#  sl    Y|,-V<aSz"q#v3S
 	b(+r&   N)Ir"   r#   r$   r8   rl   markparametrizerL   rS   rs   r}   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   as_unitr   r   ea_registryr   r  rI   propertyr   r   r   r   r   r
  r  r  r  r%  r(  r+  r0  r6  r8  rA  rG  rJ  rM  r[  r   rC   rH   r;   rg  rk  rw  rz  r  r  r  r  r  r  r  r  r  r  r  )rp  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@@ES\:	

,
, [[ %++	
 	
ejj(3 JJ	
 !+
.	/	0	0F [[V%IJ2 K2( [[V%IJ5 K5 6>-,&	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.idx5  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.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*   rN   ri   rO   r   r*   r+   r   r]   )r   rC   rD   rE   rP   	to_seriesdt
tz_convertr   r  r2   r   )r4   r   r7   r6   r   comps         r'   test_setitem_dt64seriesz0TestSetitemTZAwareValues.test_setitem_dt64seriesA  s    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_datetimeindexK  sP    ryy,,Q/??GRUQVW 3C
vx0r&   c                 
   t        t        j                  j                  d      j	                  d      dg      }|j                         |d<   |d   }|j                  j                  d      }t        j                  ||       y )Nr-   r  rN   ri   rO   us)
r   rC   rD   rE   rP   to_pydatetimer  r  r2   r   r  s        r'   .test_setitem_object_array_of_tzaware_datetimeszGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesT  sm    ryy,,Q/??GRUQVW ##%3C;;&&t,
vx0r&   N)
r"   r#   r$   rl   fixturer   r7   r  r  r  r!   r&   r'   r  r  4  s?    ^^ 
 ^^ 
-11r&   r  c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)!TestDataFrameSetItemWithExpansionc                     t        g dg dd      }|d   }t        j                  ddgddgdd	gg      |d
dg<   d|j                  d<   t	        g dd      }t        j                  ||       y )NrU   )rg   rg   r`  r  r)   g?g?g333333?g?      ?r0   rV   r   r   r   r]   )r   rC   rH   r   r   r2   r   )r4   r6   rq   r7   s       r'   test_setitem_listlike_viewsz=TestDataFrameSetItemWithExpansion.test_setitem_listlike_views`  sr    YY78 g C:SzC:"FGC: )#.
sH-r&   c                     t        ddgddgg      }ddg|d<   t        g dg d	gg d
      }t        j                  ||       y )Nr*   r-   r/   rg   ru   r`  0 - Name)r*   r-   ru   )r/   rg   r`  )r   r*   r  ri   r   r   s      r'   .test_setitem_string_column_numpy_dtype_raisingzPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raisingp  sH    AA'(Q: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?   rj   r9   r-   r)   r   r*   ri   )r   rE  rv   r   rC   r#  r2   ry   r   s      r'   'test_setitem_empty_df_duplicate_columnszITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columnsw  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   )r@  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   rI  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      }|d   j                  d      |d<   |d   j                  d      |d<   t        j                  ||       y )Nabcri   ru   r   )r   H   23r[   r   z0 days 00:00:05z0 days 00:01:12r   r)   zm8[s]r.   )
r   rE  r  to_timedeltar   	Timedeltar   r   r2   ry   )r4   r   r7   s      r'   &test_loc_expansion_with_timedelta_typezHTestDataFrameSetItemWithExpansion.test_loc_expansion_with_timedelta_type  s    4;/-#.


1
 ll,-r||<M/NPTUV*$

 !,,W5 ,,W5
fh/r&   c                     t               }g d|d<   t        dgd      }t        dg di|      }t        j                  ||       y )NrU   r  F)tupleize_colsri   )r   r   r2   ry   )r4   r6   r  r7   s       r'   %test_setitem_tuple_key_in_empty_framezGTestDataFrameSetItemWithExpansion.test_setitem_tuple_key_in_empty_frame  sA    [6
fXU3fi0$?
b(+r&   N)r"   r#   r$   r  r  r  r  r  r  r  r  r  r  r  r!   r&   r'   r  r  _  s<    . ,,+GZ,
D(0,0 ,r&   r  c                   4   e Zd Z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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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&   rf  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   r`  r[   ri   r3  r*   r   r4   r   rf  
indexer_sir6   r7   s         r'   +test_setitem_slice_indexer_broadcasting_rhszGTestDataFrameSetItemSlicing.test_setitem_slice_indexer_broadcasting_rhs  s\     	{i[1_4oN .
2qr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  rv   r2   ry   )r4   r   rf  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   r3  r*   r  r  r   r  s         r'   0test_setitem_slice_broadcasting_rhs_mixed_dtypeszLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypes  sq     (I;?:O
 !.
2qrK<.AE22#

 	b(+r&   N)r"   r#   r$   r  rl   r  r  r   rC   rH   rE  r  r   r  r  r!   r&   r'   r  r    s    , [[UVRXXtRXX$FG[[S),, - H, [[UVRXXtRXX$FG[[S),, - H, [[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  rb  rc  c                      y)NrN   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>.inc0  s    q5Lr&   rW  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                  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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'   r?  z(TestDataFrameSetItemBooleanMask.<lambda>>  s    Ba' r&   c                 L    | t        j                  |       dz  kD  j                  S r  )rC   r  rR   r  s    r'   r?  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)reasonrf  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   rf  r6   r   rr   s        r'   :test_setitem_loc_empty_indexer_raises_with_non_empty_valuezZTestDataFrameSetItemBooleanMask.test_setitem_loc_empty_indexer_raises_with_non_empty_valueO  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   rf  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&   c                     t        g dg dd      }|j                         }|d   dk\  } ||      |   j                  d       ||      |<   t        j                  ||       y )N)r*   rg   r-   r/   r_  r  r)   r/   )r   r   r  r2   ry   )r4   
indexer_slr6   r7   r  s        r'   "test_setitem_boolean_mask_aligningzBTestDataFrameSetItemBooleanMask.test_setitem_boolean_mask_aligningj  s[    \=>779#w!|)"~d3??D
2t
b(+r&   c                 |   t        g dddg      }t        g d      }g d}t        ||d|      }t        g d	g d
      }t        g d      }g d}t        ||d|      }|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`   ra   klr   r   )r*   r*   r-   r-   r*   r*   r*   )catsrR   r+   )r)   r)   r0   r0   r)   r)   r)   r[   )r*   r*   r/   r/   r*   r*   r*   r%  r0   r-   )r
   r   r   r   r   set_categoriesr2   ry   )r4   cats2idx2values2exp_multi_rowcatsfidxfvaluesfr6   	exp_fancyr  s              r'   test_setitem_mask_categoricalz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalr  s     ?SRUJW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   r0  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   )r6  r   rW  )rW  rW  rW  rW  r   zItem wrong lengthrd   r-   )rE  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   r`  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 )NrW  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$   rl   r  r  r  xfailrE  rC   rH   r   r  r  r!  r/  r3  r;  r=  rB  r!   r&   r'   r  r  ;  s)   [[	')PQ'"  
0
0 [[QR[[UT288V$<=	) > S	) [[UT288V$<=, >,,-. [[Ww&89[[XWqcNY<N'OP' Q :').,,r&   r  c                   p   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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	j0                  d      fd$gf ed%       e	j0                  d      fg d(f ed%d$       e	j0                  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                         |r4|j	                          t        |j                  j                        dk(  s&J t        |j                  j                        dk(  sJ d	|j                  dd df<   t        t        j                  t        j                  d	d	g|j                  d
      }t        j                  |d   |       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   r   r   r   r,   r2   r   )r4   rI  r6   r7   s       r'   #test_setitem_partial_column_inplacezITestDataFrameSetitemCopyViewSemantics.test_setitem_partial_column_inplace  s     &-AB,
 			!S"&&!##%rww~~&!+++rww~~&!+++qr3w2662662r2"((M
r#w1r&   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-   r5  r   r   r'  )r5  r-   r5  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  r  r6   rO  rP  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  rS  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        t        j                  |t        j                  d      t        j                  d      f   dk(        sJ y c c}w c c}w # 1 sw Y   YxY w)NrA   r0   r+   r   r*   )rv   r   rC   r  rG   r   r   rR   r2   raises_chained_assignment_errorrj   r   r   )r4   r`   r  colr6   rR   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	% %	% vvfRYYr]BIIbM9:a?@@@ .E	% 	%s   C4&C9C>>D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   rD  rB   col1col2)r;   rD  rD  )r   rb  rc  )r,   r9   )r   r   r  r2   r   r   )r4   r6   expected_typess      r'   %test_setitem_column_frame_as_categoryzKTestDataFrameSetitemCopyViewSemantics.test_setitem_column_frame_as_category4  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_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  )rg   ru   r`  r]  )r)   r.   r)   r0   ri   r   r6  r-   r7  r)   )r   r-   r6  rg   )r-   ru   r7  r]  rU   rm  )r)   r)   r.   )r   r6  r/   )r-   r7  r`  r   r5  s       r'   !test_setitem_frame_dup_cols_dtypezGTestDataFrameSetitemCopyViewSemantics.test_setitem_frame_dup_cols_dtypeH  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2010rI  )r   r   r  r   r2   ry   )r4   dtir6   r7   s       r'   "test_frame_setitem_empty_dataframezHTestDataFrameSetitemCopyViewSemantics.test_frame_setitem_empty_dataframeX  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   }ddgddgg|j                  d	d
gd d f<   t        j                  ||       t        g dg dd|j
                        }t        j                  ||       |g d   }ddgddgg|j                  d	d
gdd
df<   t        j                  ||       t        g dg dg dd|j
                        }t        j                  ||       y )N)r*   rg   r*   ru   )r-   ru   r-   r`  )r/   r`  r*   r]  )r^  r  rA   r-  r\  rO   r   r-   r*   r/   r-   r-   r-   r-   )r/   r-   r*   r-   )rO   r   r+   ra  r   )r^  r-   rA   r-   )r   r   r   r2   ry   r,   )r4   	df_parentdf_origr6   r7   s        r'   test_iloc_setitem_view_2dblockzDTestDataFrameSetitemCopyViewSemantics.test_iloc_setitem_view_2dblockh  s   !!!#	
	 .."Sz"  !!fq!f-A	 	i1 <lC288T
b(+ '#$a&1a&!1A!A
i1\Fbhh
 	b(+r&   zindexer, valuer   r-   Nrq  r/   )r-   r-   r-   )FTF)FTFTc                    t        j                  d      j                  dd      }t        |j	                         t        d            }|j                  j                  sJ |j	                         }|d d  }||j                  |<   t        j                  ||       |||<   t        |t        d            }t        j                  ||       y )Nr4  r/   rg   ABCDri   )rC   r   rx   r   r   rE  r   is_single_blockr   r2   ry   )r4   r   r  rK   rr  rs  r6   r7   s           r'   test_setitem_2dblock_with_refzCTestDataFrameSetitemCopyViewSemantics.test_setitem_2dblock_with_ref  s    $ iim##Aq)chhj$v,?	 ~~----.."q\  	i1 GS$v,7
b(+r&   )r"   r#   r$   rH  rl   r  r  rM  rQ  rC   rH   rT  rV  paramrC  r   r[  r`  re  rg  ri  ro  rt  slicer;   rx  r!   r&   r'   rE  rE    s   $ [[]T5M:2 ;2*
, [[!XRXXsQCj8A3*E
0
0 [[WsHBHHsecU^,Dusen&UV
, W
, [[EFLLukk''H  ( 
	
 [[|$i&=>		
...A	: [[Ww&89, :,, , ,@ [[!feDk"\<$@ADk5;'+!Q[1a&!c1XsOc8288A;!%Dk8288A;'3D!nhbhhqk*QF3./:T1UVA	
 ,! ,r&   rE  c                     t        dddgi      } t        j                  t        d      5  d| j                  d d df<   d d d        t        j                  t        d      5  ddd	| j                  d d df<   d d d        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   QxY w)Nr)   r*   r-   zInvalid valuerd   Tr8  g      @r  r/   rg   )r   rl   rm   	TypeErrorr   r2   ry   r6   r7   s     r'   'test_full_setter_loc_incompatible_dtyper~    s    	C!Q=	!B	y	8 q#v 
y	8 * S)q#v* q\BFF1c6N#1v'H"h' * *s   B="C	=C	Cc            
          t        g dg dd      } d| j                  | j                  dk  ddgf<   t        g dg dddt        d	      gd
d
t        d	      gd      }t	        j
                  | |       y )NrU   )r9  ru   r`  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&   )0r   numpyrC   rl   pandas.core.dtypes.baser   r  pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r   r   r	   pandasr  r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr2   pandas.core.arraysr   pandas.tseries.offsetsr   r   r  r  r  r  r  rE  r~  r  r!   r&   r'   <module>r     s       < 5      $  * 'I, I,X(1 (1VW, W,t), ),X, ,,C, C,Lj, j,Z((r&   