
    A>iH                         S SK rS SKrS SKrS SKJrJrJrJrJ	r	J
r
  S SKJr  S r " S S5      r " S S5      rS rS	 rS
 rS rg)    N)	DataFrame
MultiIndexSeries
date_rangeisnanotnac                     X:X  d   eg N )abs     l/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_setitem.pyassert_equalr      s    6M6    c                       \ rS rSr\S4S jrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS r\R*                  R-                  S5      S 5       rS rS rS rS rS rSrg)TestMultiIndexSetItem   Nc                 X    X1R                   U'   UR                   U   nUc  UnU" Xe5        g r
   )loc)selftargetindexersvalue
compare_fnexpectedresults          r   checkTestMultiIndexSetItem.check   s/    $

8H%H6$r   c                    / SQn[         R                  " [        R                  " SS5      [        R                  " SS5      /SS/S9nSu  p4[	        [        R
                  UUS	9nU R                  XSU4S
4SS9  [	        SXS	9nU R                  XSU4S
4SS9  [	        XS	9nU R                  XSU4S
4SS9  [	        SXS	9nU R                  UX44S
4[        R                  " S5      SS9  g )N)Awlr   xXdprofitr   d   P   timefirmnames)r      columnsindexr$   )r   r   r   i   r-      )r   r   r   r   )r   from_productnparanger   nanr   array)r   colsr0   tndfs         r   test_setitem_multiindex-TestMultiIndexSetItem.test_setitem_multiindex   s    <''YYq#		!R 01&&9I
 FF

 	

"A}A
>tT7

"A}A
>t1

"A}A
> tT7

fc]((1+	 	 	
r   c                    [        [        R                  " S5      R                  SS5      SR	                  S5      [
        S9nSUS'   US   S	-  S
:H  nSS/nUS   UR                  X#4'   [        S/ SQSS/S9n[        R                  " UR                  X#4   U5        U R                  UX#4US   [        R                  US9  g )N      z	A,B,C,D,E,r/   dtypec   Fr    r-   r   BCg     X@)r   r-      r0   r/   r   r   r   r   r   )
r   r4   r5   reshapesplitfloatr   tmassert_frame_equalr   )r   r;   row_selectioncol_selectionoutputs        r   test_setitem_multiindex2.TestMultiIndexSetItem.test_setitem_multiindex2:   s    IIbM!!!Q'1B1B31Gu
 33!q(c
/1#w}+,4y3*E
bff]%ABFK

#3S',, 	 	
r   c           	         [         R                  " / SQ[        SSSS9/5      n[         R                  " SS/[        SS	SS9/5      n[        [        R
                  R                  S
5      R                  S5      XS9n[         R                  " SS/[        SSSS9/5      n[         R                  " SS/[        SS	SS9/5      n[        [        R
                  R                  S
5      R                  S5      XES9nU R                  UXE4U[        R                  S9  [        [        R
                  R                  S
5      R                  S5      XBS9nU R                  UU[        S S S 5      4U[        R                  S9  UR                  5       nU R                  UUR                  UR                  4U[        R                  US9  g )Nr    rF   rG   z
2015-01-01z
2015-04-01MS)freqfoobarz
2016-01-01z
2016-02-01r-   )   rH   rI   r    z
2015-02-01)r-   r-   )r   r   r   r   )r-   rH   rJ   )r   r3   r   r   r4   randomdefault_rngfrom_arraysr   rN   rO   slicecopyr0   r/   )r   idxr8   r;   subidxsubcolsvalsr`   s           r   test_setitem_multiindex3.TestMultiIndexSetItem.test_setitem_multiindex3M   s   %%j|$OP
 &&U^ZlNO
 II!!!$++G4C
 ''3ZL,TJK
 ((U^ZlNO
 II!!!$++F36
 	

&,,	 	 	
 II!!!$++F36
 	

eD$56,,	 	 	
 wwy

hh

+,, 	 	
r   c                 x   [         R                  " / SQ5      [         R                  " / SQ5      [         R                  " SSS5      /n[        [         R                  R                  S5      R                  S5      U/ SQS	9R                  5       nUR                  S
/   S-  nUR                  5       nUR                  S
/==   S-  ss'   [        R                  " UR                  S
/   U5        Sn[        R                  " [        US9   UR                  S
==   S-  ss'   S S S 5        g ! , (       d  f       g = f)N)rZ   rZ   bazquxri   rZ   )onetworj   rj   rk   rj   r      r1   r-   )rl   r2   rV   rI   rZ   zAcannot align on a multi-index with out specifying the join levelsmatch)r4   r7   r5   r   r\   r]   standard_normal
sort_indexr   r`   rN   rO   pytestraises	TypeError)r   arraysdf_origr   r;   msgs         r   test_multiindex_setitem-TestMultiIndexSetItem.test_multiindex_setitem~   s     HH?@HH?@IIaA
 II!!!$44V<#
 *,	 	 ;;w'!+\\^
w1
bffeWox8 R]]9C0FF5MQM 100s   
D++
D9c           
      (   [         R                  " SSSSSSSS.05      n[        R                  " UR                  / SQS	9Ul        UR                  5       nUR                  / S
Q==   S-  ss'   [        R                  nUR                  5       nUR                  US S 2S S 2S4   S S 24==   S-  ss'   [        R                  " XB5        UR                  5       nUR                  US S 2S S 2S4   S4==   S-  ss'   [        R                  " XB5        g )Npricer-   rH   r1   r@   r   ))DECoalStock)r{   Gasr}   )r{   ElecDemand)FRr~   r}   )r   SolarSupIm)r   Windr   )SitComTyper+   )r   r1   r2   r}   )r   	from_dictr   from_tuplesr0   r`   ilocpd
IndexSlicer   rN   rO   )r   ru   r   ra   r;   s        r   test_multiindex_setitem2.TestMultiIndexSetItem.test_multiindex_setitem2   s     %%-.,-./,-./-.	
 #..MM!7
 <<>i A% mm\\^
s1a=!1$%*%
b+\\^
s1a=!7*+q0+
b+r   c           	         [        [        R                  R                  S5      R	                  SSSS9R                  SS5      [        S5      / SQ/ S	Q/S
9n[        R                  US'   [        R                  " SS/5      nX!R                  S'   [        R                  " UR                  S   [        USS/SS95        g )Nr-   r@   
   	   sizer2   abcrH   rH      r   r   r[   r.   r%                 ?)rH   r%   r   )r0   name)r   r4   r\   r]   integersrK   listr6   r7   r   rN   assert_series_equalr   )r   r;   arrs      r   test_multiindex_assignment0TestMultiIndexSetItem.test_multiindex_assignment   s     II!!!$--a!-<DDQJKk*

 &&3hhSz"v
rvvf~vc!Rs/STr   c                 ^   [         R                  " SS/5      n[        [         R                  R	                  S5      R                  SSSS9R                  SS5      [        S	5      / S
Q/ SQ/[         R                  S9nXR                  S'   [        USS/SSS9nUR                  S   n[        R                  " XC5        [        R                  " [        SS9   US-   UR                  S'   S S S 5        UR!                  SS05      nUS-   UR                  S'   SUR                  S'   [        SSS/SSS9n[        R                  " UR                  S   U5        Sn[        R                  " ["        US9   / SQUR                  S'   S S S 5        [        R                  " ["        US9   S/UR                  S'   S S S 5        S/UR                  SS/4'   UR                  S   S:H  R%                  5       (       d   eg ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nl= f)Nr   r   r-   r@   r   r   r   r2   r   r   r   )r/   r0   rC   )rH   cr   r   int64)r0   r   rC   zInvalid valuerm   g      ?float64z@Must have equal len keys and value when setting with an iterable)r   r1   r-   r2   r   rH   )r4   r7   r   r\   r]   r   rK   r   r   r   r   rN   r   rq   rr   rs   astype
ValueErrorall)r   r   r;   expr   rv   s         r   'test_multiindex_assignment_single_dtype=TestMultiIndexSetItem.test_multiindex_assignment_single_dtype   s    hhSz"II!!!$--a!-<DDQJKk*((	
 vSBcA
v+ ]]9O< 3YBFF6N = YYY'(sv vR2wS	B
rvvf~s3 Q]]:S1)BFF6N 2 ]]:S1SBFF6N 2
 3q3%xv!#((****- =< 21 21s$   G;4H'H;
H

H
H,c                 8   SnSn[        [        [        R                  " U5      R	                  5       5       Vs/ s H  nSU-   PM
     nnUS S n[        [        R                  R                  S5      R                  SX4S9[        R                  US9nUR                  U5      R                  5       nUR                  US S S	9n[        R                  US
'   U H8  u  p[        R                  " U	R                  S   5      n
XR                  US
4'   M:     g s  snf )Nr'   r   r    r@   r-   r   )rC   r/   rH   )levelnew_colr   )mapstrr4   r5   tolistr   r\   r]   r   r   	set_indexrp   groupbyr6   shaper   )r   NUM_ROWSNUM_COLSnum	col_names
index_colsr;   grpr   df2new_valss              r   test_groupby_example*TestMultiIndexSetItem.test_groupby_example   s    *-c299X3F3M3M3O*PQ*P3S3Y*P	Qr]
II!!!$--ax6J-K((

 \\*%002jjz"1~j.9 IDyy1.H&.FF4?#  Rs   Dc                    UnUS   n[         R                  US'   [        UR                  SS 5      R	                  5       (       d   e[        UR                  S S 5      R	                  5       (       d   e[        UR                  SS  5      R	                  5       (       d   e[         R                  US'   [        UR                  S   5      (       d   e[        R                  " [        SS9   US     S S S 5        g ! , (       d  f       g = f)	Nr    )  r2   *   A   )r   r2   r   1   49rm   )
r4   r6   r   valuesr   r   r   rq   rr   KeyError)r   /multiindex_year_month_day_dataframe_random_dataymdss       r   test_series_setitem)TestMultiIndexSetItem.test_series_setitem  s    =HVV'
AHHRO$((****QXXcr]#''))))QXXbc]#''))))+AFF2J]]840bE 100s   -C<<
D
c                    UnUR                   R                  5       nUR                  R                  5       nX3S:     nUR                  US:  5      n[        R
                  " XV5        SX3S:  '   SXDS:  '   [        R                  " UR                  U5        SX3S:H  '   SXDS:H  '   [        R                  " UR                  U5        SX3S S S:  '   [        R                  " US S US S S:  S5        [        R                  " UR                  U5        [        R                  " [        SS9   SX3S-  '   S S S 5        g ! , (       d  f       g = f)Nr   r@   r-   zboolean values onlyrm   )Tr`   r   whererN   rO   assert_almost_equalr4   putmaskrq   rr   rs   )r    multiindex_dataframe_random_dataframer;   r   r   r   s          r   "test_frame_getitem_setitem_boolean8TestMultiIndexSetItem.test_frame_getitem_setitem_boolean  s   0WW\\^!F88BF#
f/6
z
ryy&17{
ryy&1 cr7Q;


6#2;sa3
ryy&1]]9,ABBAvJ CBBs   +D<<
E
c                 4   SS// SQ/n/ SQ/ SQ/n[        X!S S/S9n[        S/ S	Q0US
9nUR                  S S 2S4   n[        R                  " US   U5        UR                  UR
                  SS S4   n[        R                  " US   SS U5        UR                  S S 2S S 24   n[        R                  " XE5        UnSUR                  S S 2S4'   SUS'   [        R                  " XE5        SUR                  S S 2S S 24'   [        R                  " XE5        g )Nt1t2r   r   r   )r   r   r   r1   r1   )r   r1   r-   r   r1   id)codeslevelsr,   r   )r1   r-   r2      r   r0   r1   r2   r   )r   r   r   rN   r   r0   rO   )r   r   r   midxr;   r   s         r   %test_frame_getitem_setitem_multislice;TestMultiIndexSetItem.test_frame_getitem_setitem_multislice/  s   ,0 /2T4LI1>7
#
r'{F31w./
r'{1Q/81
b)q'zw
b)q!t
b)r   c                 d   [        [        R                  R                  S5      R	                  S5      / SQ/ SQ/S9nUR                  5       nUS   US'   [        R                  " US   US   5        UR                  5       nUS   R                  US'   [        R                  " US   US   5        g )Nr-   )r   rH   )r   r   r   r   )r   r1   r   r1   r/   r   r   )	r   r4   r\   r]   ro   r`   rN   rO   r   )r   r;   cps      r   test_frame_setitem_multi_column5TestMultiIndexSetItem.test_frame_setitem_multi_columnF  s    II!!!$44W=)<8

 WWYS'3
bgr#w/ WWYS'..3
bgr#w/r   c                    [         R                  " / SQ5      n[        / SQUS9nSUS'   US   R                  S:H  R	                  5       (       d   e/ SQUS'   US   US'   US	   nUS
   nUS   n[
        R                  " X5SS9  [
        R                  " XESS9  UR                  S	:X  d   eUR                  S
:X  d   eUR                  S:X  d   eg )N)r    1r    2rF   r   )r1   r2   r@   rI   r   r    r   r1   r-   r2   r   r   r   F)check_names)r   r   r   r   r   rN   r   r   )r   r/   r;   	sliced_a1	sliced_a2	sliced_b1s         r    test_frame_setitem_multi_column26TestMultiIndexSetItem.test_frame_setitem_multi_column2U  s     (()MNY8 33!#((**** !8X,3xL	xL	xL	
yG
yG~~+++~~+++~~+++r   c                     UnUS S nUR                   S/ SQ4   nUR                   S   / SQ   n[        R                  " XE5        g )Nr@   )r   r1   rl   rV   )r   rN   r   )r   r   r   r;   r   r   s         r   #test_loc_getitem_tuple_plus_columns9TestMultiIndexSetItem.test_loc_getitem_tuple_plus_columnsl  sH     >!Wo5666*%o6
v0r   z.ignore:Setting a value on a view:FutureWarningc                    [        / SQSS/// SQ/ SQ/S9n[        [        R                  R	                  S5      R                  [        U5      S45      U/ SQS	9n[        R                  " X15      nUR                  S
S nUR                  UR                  SS  5      n[        R                  " XE5        SUR                  S
S& UR                  S
S S:H  R                  R                  5       (       d   eg )Nr   r1   r-   r   r-   )r   r   r1   r1   r-   r-   )r   r1   r   r1   r   r1   )r   r   rH   r   r   r   r%   rI   r1   r   )r   r   r4   r\   r]   ro   lenrN   get_objr   reindexr0   r   r   r   )r   frame_or_seriesr0   objresr   s         r   'test_loc_getitem_setitem_slice_integers=TestMultiIndexSetItem.test_loc_getitem_setitem_slice_integersw  s    1v&/ACU.V
 II!!!$44c%j!_E(

 jj.ggalkk#))AB-(
!!!!))--////r   c                    UnUR                   nUS   nXDR                  5       :  US'   [        R                  " US   XDR                  5       :  5        UR	                  S/S9n[        R                  " US   XDR                  5       :  5        g )N)rY   rk   r   )r   medianrN   r   r   )r   r   r   dftr   	reindexeds         r   test_setitem_change_dtype/TestMultiIndexSetItem.test_setitem_change_dtype  s{    0gg
NL
s<0!hhj.A KK(8K9	
y6HHJGr   c                    UnUR                   / SQ   nSUR                  U'   UR                  U   R                  S:H  R                  5       (       d   eUR	                  5       nUS   nSXS'   [
        R                  " X$5        g )N)r1   rH   r@   rD   rF   a   )r0   r   r   r   r`   rN   rO   )r   r   r   subsetframe_originalcols         r   test_set_column_scalar_with_loc5TestMultiIndexSetItem.test_set_column_scalar_with_loc  su    0Y'		&		&!((B.335555Cj
e4r   c                 
   [        / SQ/ SQ/ SQ/[        S5      S9nUR                  SS/5      n[        R                  " S/5      nS	UR
                  US
4'   UR                  S5      S
   S	:H  R                  5       (       d   eg )N)r1   r1   r#   r$   )r1   r1   yY)r1   r-   zZABCDr   r    rF   r1   r1   _rG   )r   r   r   r   r   r   xsr   )r   r;   mis      r   test_nonunique_assignment_17504TestMultiIndexSetItem.test_nonunique_assignment_1750  s}    /1ABDQWL
 \\3*%##VH-r3wfc"c)..0000r   c                 X   [         R                  " / SQ5      n[        [        R                  " S5      R                  S5      U[        S9nUR                  R                  5       nUS   R                  [        R                  5      US'   [        R                  " UR                  U5        g )N)r   r   r   r2   )r1   r2   rB   r    )r   r   r   r4   r5   rK   objectr0   r`   r   r   rN   assert_index_equal)r   r8   r;   r0   s       r    test_astype_assignment_with_dups6TestMultiIndexSetItem.test_astype_assignment_with_dups  ss     %%&JKryy|++F3TPS'..,3
bhh.r   c                     [         R                  " / SQSS/S9n[        / SQUS/S9n[        R                  " SS	S
S9UR
                  S'   [        S/ SQ0US9n[        R                  " X#5        g )N))r   r   )r   r#   )r   r%   l1l2r+   r   edatar0   r/   rD   e   r   )rC   )r   r"  )rD   r1   r'   r   )r   r   r   r4   r5   r   rN   rO   )r   r0   r;   r   s       r   test_setitem_nonmonotonic/TestMultiIndexSetItem.test_setitem_nonmonotonic  sg    &&0t
 IUSEB99RG<xc<0>
b+r   r   )__name__
__module____qualname____firstlineno__r   r   r<   rS   re   rw   r   r   r   r   r   r   r   r   r   r   rq   markfilterwarningsr   r  r  r  r  r&  __static_attributes__r   r   r   r   r      s    8Dt %
<
&/
b2,>U)+V/, 2*.0,.	1 [[ PQ0 R0&	H5
1/,r   r   c                   ,    \ rS rSrS rS rS rS rSrg)"TestSetitemWithExpansionMultiIndexi  c                 \   / SQ/ SQ/ SQ/n[        [        U6 5      n[        R                  " U5      n[	        [
        R                  R                  S5      R                  S5      US9nUR                  5       nUR                  5       n/ SQUS'   / SQUS	'   [        R                  " XV5        g )
N)r   topr2  routine1r3  routine2) ODr6  result1result2r7  )r5  wxwyr5  r5  r5  r-   )rH   rl   r   )r1   r-   r2   rH   r   )r   r5  r5  )sortedzipr   r   r   r4   r\   r]   ro   r`   rN   rO   )r   rt   tuplesr0   r;   r   r   s          r   #test_setitem_new_column_mixed_depthFTestSetitemWithExpansionMultiIndex.test_setitem_new_column_mixed_depth  s    C=(
 V%&&v.ryy,,Q/??GQVW779"s ,
f/r   c                     [         R                  " / SQ5      n[        SS/SS/SS//US9n[        SSS	.5      nX2S
'   US
   R	                  5       R                  5       (       d   eg )N))1a2a)rA  2b)rA  2cr1   r-   r2   rH   r@   rl   r   )r  )r1   r-   new)r   r   r   r   r   r   )r   mixr;   r   s       r   test_setitem_new_column_all_naATestSetitemWithExpansionMultiIndex.test_setitem_new_column_all_na  sh    $$%OPAAA/s;Aq)*5	%y~~##%%%%r   c                    [         R                  " S// SQS9n[        / SQ/U/ SQS9nUR                  S   UR                  S'   [         R                  " SS// SQS9n[        / SQ/ SQ/U/ SQS9n[        R
                  " X$5        g )Nr   )i1i2i3r+   )r   r      rV   r#  )r   r   r   r   r   r   r   rN   rO   )r   r  r;   mi_expectedr   s        r   )test_setitem_enlargement_keep_index_namesLTestSetitemWithExpansionMultiIndex.test_setitem_enlargement_keep_index_names  s    ##YK7IJ\N"oNFF9-y ,,	"*<
 -#

 	b+r   c                    [         R                  " / SQ5      n[        / SQUS9nSS/UR                  SS S 24'   [         R                  " / SQ5      n[        SS	/S
S/SS/SS/SS//USS/S9n[        R
                  " X$SS9  g )N)r    a1r    a2rF   b1rF   N))r         @)r         @)       @      @)      @      @r   g      (@g      *@r    N)rS  rU  rW  rY  r`  r   rZ  r   r[  r\  r]  r^  r_  r   r1   rI   F)check_index_typerN  )r   r0   r;   expected_indexr   s        r   -test_setitem_enlargement_multiindex_with_nonePTestSetitemWithExpansionMultiIndex.test_setitem_enlargement_multiindex_with_none  s     &&@
 GuU"&{A~#//M
 3Z#sc3Z#sdD\J F

 	bUCr   r   N)	r(  r)  r*  r+  r>  rG  rP  rc  r.  r   r   r   r0  r0    s    0"&,Dr   r0  c                     U R                   n[        R                  " [        SS9   SUS   R                  S S & S S S 5        US   R                  S:g  R                  5       (       d   eg ! , (       d  f       N6= f)Nz	read-onlyrm   r   rY   )r   rq   rr   r   r   r   r   r;   s     r   test_frame_setitem_view_directrg     sc     
*	+	+B	z	55	 
6uI!&&(((( 
6	5s   A))
A7c                     U R                   n[        R                  " 5          SUS   S'   S S S 5        g ! , (       d  f       g = fNr-   rY   rj   )r   rN   raises_chained_assignment_errorrf  s     r   test_frame_setitem_copy_raisesrk  	  s3    	)	+	+B		+	+	-5	% 
.	-	-s	   	4
Ac                     U R                   nUnUR                  5       n[        R                  " 5          SUS   S'   S S S 5        [        R                  " X25        g ! , (       d  f       N%= fri  )r   r`   rN   rj  rO   )r   r   r   r;   s       r    test_frame_setitem_copy_no_writerm    sU    ,..EH	B		+	+	-5	% 
. "' 
.	-s   	A
A*c                     [        / SQ/ SQSSS.5      R                  / SQ5      n [        SU R                  R	                  S5      S	9nU R                  5       nXS
'   U R                  5       nSUS
'   [        R                  " X#5        g )Nr   )r2   rH   r@   rl   r   r   r   r   r   r   r%   )r   r   r   r0   	droplevelr`   rN   rO   )r;   serr   r   s       r   %test_frame_setitem_partial_multiindexrq    s}    			

 i   "((,,S1
2CWWYF3KwwyHHSM&+r   )numpyr4   rq   pandasr   r   r   r   r   r   r   pandas._testing_testingrN   r   r   r0  rg  rk  rm  rq  r   r   r   <module>rv     sP        m, m,`9D 9Dx)(,r   