
    I j 2                     8   S SK rS SKrS SKJr  S SKrS SKJrJr  S SK	J
r  SS jrS rS rS rS	 rS
 rS rS rS rS rS r\R.                  R1                  SSS/5      S 5       r\R.                  R1                  SSS/5      S 5       rS rS rS rS rS rg)    N)DatetimeTZDtype)CategoricalIndex
MultiIndexFc                     [        U 5      [        U5      :X  d   e[        XSS9 HF  u  p4[        R                  " U5      n[        R                  " U5      n[        R
                  " X4US9  MH     g )NT)strictcheck_dtype)lenzipnpasarraytmassert_numpy_array_equal)actualexpectedr	   actexps        x/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_set.pyassert_matchingr      sW     v;#h-'''6jjojjo
##C+F 7    c                    SS/U l         U R                  S5      S:X  d   eU R                  S5      S:X  d   eSn[        R                  " [        US9   U R                  S5        S S S 5        [        R                  " [
        SS9   U R                  S5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)N   r   z/Too many levels: Index has only 2 levels, not 3match   zLevel fourth not foundfourth)names_get_level_numberpytestraises
IndexErrorKeyError)idxmsgs     r   test_get_level_number_integerr%      s    ACI  #q(((  #q(((
;C	z	-a  
.	x'?	@h' 
A	@ 
.	-	@	@s   B!B2!
B/2
C c                 j   [         R                  " / SQ/ SQ[        R                  " SSSSS9// SQS	9nU (       d  S
O![        R                  " [
        R                  S9n[        R                  " [
        R                  " S5      U[        SS9S.5      n[        R                  " X1R                  5        g )Nr   r      abc20200101r   UTCnsperiodstzunit)intstringdtr   objectna_valueint64utcr2   r   from_productpd
date_rangeStringDtyper   nanSeriesdtyper   r   assert_series_equaldtypesusing_infer_stringidx_multityper   r   s       r   test_get_dtypesrK   #   s    ++MM*aEE	

 &M -(".."&&2QCyy88G$!U+	
H 8%9%9:r   c                 h   [         R                  " / SQ/ SQ[        R                  " SSSSS9/5      nU (       d  SO![        R                  " [
        R                  S	9n[        R                  " [
        R                  " S
5      U[        SS9S.5      n[        R                  " X1R                  5        g )Nr'   r)   r-   r   r.   r/   r0   r8   r9   r;   r<   r=   )level_0level_1level_2r>   rH   s       r   test_get_dtypes_no_level_namerP   9   s    ++MM*aEE	
M -(".."&&2QCyyxx(&%0	
H 8%9%9:r   c                 j   [         R                  " / SQ/ SQ[        R                  " SSSSS9// SQS	9R                  nU (       d  S
O![        R
                  " [        R                  S9n[        R                  " [        R                  " S5      U[        SS9// SQS9n[        R                  " X5        g )Nr'   r)   r-   r   r.   r/   r0   )ArR   rR   r7   r8   r9   r;   r<   r=   )index)r   r?   r@   rA   rG   rB   r   rC   rD   rE   r   r   rF   )rI   resultr   r   s       r   %test_get_dtypes_duplicate_level_namesrU   M   s    $$MM*aEE	

  f  -(".."&&2QCyy	'	CE!:;H 6,r   c                 @   U n[         R                  " [        SS9   UR                  R	                  S5        S S S 5        [         R                  " [        SS9   UR                  R	                  S5        S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)NzToo many levelsr   r   znot a valid level number)r   r    r!   rS   r   ) multiindex_dataframe_random_dataframes     r   #test_get_level_number_out_of_boundsrZ   _   sg    ,E	z):	;%%a( 
<	z)C	D%%b) 
E	D 
<	;	D	Ds   A>B>
B
Bc                    SS/nU R                   U R                  :X  d   eU Vs/ s H  o"S-   PM	     nnU R                  U5      nU R                  U:X  d   eUR                  U:X  d   eSn[        R                  " [
        US9   UR                  X3-   5        S S S 5        U Vs/ s H  o"S-   PM	     nnUR                  USS9nUb   eUR                  U:X  d   eU R                  US	   S	S
9nU R                  U:X  d   eUR                  US	   US   /:X  d   eUR                  US	   S	SS9nUb   eUR                  US	   US   /:X  d   eU R                  US	S/S
9nU R                  U:X  d   eUR                  U:X  d   eUR                  US	S/SS9nUb   eUR                  U:X  d   eg s  snf ! , (       d  f       GN"= fs  snf )NfirstsecondSUFFIXz9Length of names must match number of levels in MultiIndexr   SUFFIX2T)inplacer   levelr   rb   r`   )rename	set_namesr   r   r    
ValueError)r#   index_namesname	new_namesindr$   
new_names2ress           r   test_set_name_methodsrm   h   s   H%K::&&&-89[T[I9
--	
"C99###99	!!!
EC	z	-i+, 
./89yt"yJ9
--
D-
1C;;99
""" --	!A-
.C99###991{1~6666
--
1Q-
=C;;99AA7777 --	!Q-
0C99###99	!!!
--
1a&$-
?C;;99
"""9 :
 
.	-9s   F/F4%G4
Gc           	          U R                   nU VVs/ s H  o" Vs/ s H  o3S-   PM	     snPM     nnnU R                  nUu  pgU Vs/ s H
  oS-   S-  PM     nnU Vs/ s H
  oS-   S-  PM     nnXg/n	Sn
[        R                  " [        U
S9   X@l         S S S 5        Sn
[        R                  " [        U
S9   Xl        S S S 5        g s  snf s  snnf s  snf s  snf ! , (       d  f       NN= f! , (       d  f       g = f)Nr*   r   r(   zCan't set attributer   z5property 'codes' of 'MultiIndex' object has no setter)levelscodesr   r    AttributeError)r#   ro   rb   lev
new_levelsrp   major_codesminor_codesx	new_codesr$   s              r   test_set_levels_codes_directlyrx      s     ZZF<BCF5.9.FJCIIE$K(341EQ;K4(341EQ;K4*I
C	~S	1
 
2 BC	~S	1	 
2	1 /C 54 
2	1 
2	1s9   	CC	CCCC9C/	C
C,/
C=c           	         U R                   nU VVs/ s H  o" Vs/ s H  o3S-   PM	     snPM     nnnU R                  U5      n[        UR                   U5        [        U R                   U5        U R                  US   SS9n[        UR                   US   US   /5        [        U R                   U5        U R                  US   SS9n[        UR                   US   US   /5        [        U R                   U5        U R                  USS/S9n[        UR                   U5        [        U R                   U5        U R                  5       n[        R
                  " [        SS9   U R                  S/SS9  S S S 5        [        U R                   UR                   SS	9  [        R
                  " [        SS9   U R                  / S
QSS9  S S S 5        [        U R                  UR                  SS	9  [        R
                  " [        SS9   U R                  SSS9  S S S 5        [        U R                   UR                   SS	9  [        R
                  " [        SS9   U R                  SSS9  S S S 5        [        U R                  UR                  SS	9  g s  snf s  snnf ! , (       d  f       GN/= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nm= f)Nr*   r   ra   r   z^Onr   r,   Tr   )r   r   r   r(         z^Levelsz^Codes)
ro   
set_levelsr   copyr   r    rf   	set_codesrp   	TypeError)r#   ro   rb   rr   rs   ind2original_indexs          r   test_set_levelsr      s3    ZZF<BCF5.9.FJC >>*%DDKK,CJJ' >>*Q-q>1DDKK*Q-!;<CJJ'>>*Q-q>1DDKK&)Z]!;<CJJ' >>*QF>3DDKK,CJJ' XXZN	z	/uA& 
0CJJ 5 54H	z	/(2 
0CII~33F	y		2s!$ 
3CJJ 5 54H	y	1aq! 
2CII~33FM /C0 
0	/ 
0	/ 
3	2 
2	1sE   	JJJ%J7J1
KKJ
J.1
J?
K
K!c                    U R                   nUu  p#U Vs/ s H
  oDS-   S-  PM     nnU Vs/ s H
  oDS-   S-  PM     nnX#/nU R                  U5      n[        UR                   U5        [        U R                   U5        U R                  US   SS9n[        UR                   US   US   /5        [        U R                   U5        U R                  US   SS9n[        UR                   US   US   /5        [        U R                   U5        U R                  USS/S9n[        UR                   U5        [        U R                   U5        [        R                  " [        S5       Vs/ s H  nSU4PM	     sn5      n[        SSS5      n[        R                  " U Vs/ s H  nSU4PM	     sn5      n	UR                  USS9n
U
R                  U	5      (       d   eg s  snf s  snf s  snf s  snf )	Nr   r(   r   ra         )rp   rb   )rp   r~   r   r   from_tuplesrangeequals)r#   rp   rt   ru   rv   rw   r   irj   r   rT   s              r   test_set_codesr      s    IIE$K(341EQ;K4(341EQ;K4*I ==#DDJJ	*CIIu% ==1Q=/DDJJ1uQx 89CIIu%==1Q=/DDJJq9Q< 89CIIu% ==1a&=1DDJJ	*CIIu% 
 
 %*!=*Q1a&*!=
>Cc2r"I%%y&Ay!1vy&ABH ]]!]4F==""""= 54. ">&As   GG!(G&G+c                    U R                   U R                  p!U R                  n[        R                  " [
        SS9   U R                  US   /5        S S S 5        [        R                  " [
        SS9   U R                  US   /5        S S S 5        [        R                  " [
        SS9   U R                  US   /5        S S S 5        [        R                  " [        SS9   U R                  US   5        S S S 5        [        R                  " [        SS9   U R                  US   5        S S S 5        [        R                  " [        SS9   U R                  US   5        S S S 5        [        R                  " [        SS9   U R                  US   SS/S	9  S S S 5        [        R                  " [        SS9   U R                  USS	9  S S S 5        [        R                  " [        SS9   U R                  US   SS/S	9  S S S 5        [        R                  " [        SS9   U R                  USS	9  S S S 5        [        R                  " [
        SS9   U R                  US   SS/S	9  S S S 5        [        R                  " [        S
S9   U R                  USS	9  S S S 5        g ! , (       d  f       GN[= f! , (       d  f       GN6= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN`= f! , (       d  f       GN;= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)NzLength of levelsr   r   zLength of codeszLength of nameszlist of lists-likez	list-liker   ra   zNames must be a)
ro   rp   r   r   r    rf   r|   r~   re   r   )r#   ro   rp   r   s       r   %test_set_levels_codes_names_bad_inputr      sk   JJ		EIIE	z);	<q	{# 
= 
z):	;uQxj! 
< 
z):	;uQxj! 
< 
y(<	=vay! 
> 
y(<	=eAh 
> 
y	4eAh 
5 
y(<	=vayA/ 
> 
y	4vQ' 
5 
y(<	=eAhq!f- 
> 
y	4e1% 
5 
z):	;eAhq!f- 
< 
y(9	:e1% 
;	:O 
=	< 
<	; 
<	; 
>	= 
>	= 
5	4 
>	= 
5	4 
>	= 
5	4 
<	; 
;	:s   J'4J9+K"KK/LL;L%-L7$M	MM,'
J69
K
K
K,/
K>
L
L"%
L47
M	
M
M),
M:r`   Tc                     [        SS//SS//S/S9n[         R                  " SS//5      nUR                  SSU S9nU (       a  Un[        R                  " X15        g )Nr   r   r\   )ro   rp   r   rc   )r   r?   re   r   assert_index_equal)r`   r   mrT   s       r   test_set_names_with_nlevel_1r   "  s`    
 1a&1a&'KH!Q)A[[7[;F&+r   orderedc                    [         R                  " [        S5      / SQ/5      n[        [        S5      U S9nUR	                  USS9n[        U/ SQ/UR
                  S9n[        R                  " X45        UR                  S5      n[        [        S5      UR                  UR                  S	9n[        R                  " XV5        g )
Nxyzx)r   r   r   r(   bac)r   r   ra   )ro   rp   bacb)
categoriesr   )r   from_arrayslistr   r|   rp   r   r   get_level_valuesr   r   )r   rS   cidxrT   r   
result_lvlexpected_lvls          r   test_set_levels_categoricalr   1  s     ""DL,#?@EDK9Dd!,F$!5U[[IH&+((+J#V$,,L *3r   c                     / SQn / SQS-  n[         R                  " X/SS/S9n[        R                  " [        R
                  R                  S5      R                  S5      / SQUS	9nUR                  5       nUR                  R                  S
:X  d   eSUR                  S'   UR                  R                  S
:X  d   eg )N)hansr   r   grether   r   )123r   NameNumberr7   )   rz   )onetwothreefour)columnsrS   )r   r   g(\X@))r   4r   )r   r   r@   	DataFramer   randomdefault_rngstandard_normal
sort_indexrS   r   at)lev1lev2r#   dfs       r   test_set_value_keeps_namesr   B  s    ADQD

 
 $fh5G
HC	
		a 008/
B
 
B88>>////$)BEE
 !88>>////r   c                      / SQn S/S-  n[         R                  " X/SS/S9nUR                  [        [        / SQ5      SS9n/ S	Qn[         R                  " XA/SS/S9n[
        R                  " X55        g )
Nr'   blackr(   sizecolorr7   )r   r   r   ra   )r(   r   r   )r   r   r|   mapr4   r   r   )sizescolorsrS   rT   expected_sizesr   s         r   test_set_levels_with_iterabler   R  st    EY]F""E?67:KLEc#7vFFN%%~&>vwFWXH&+r   c                      [         R                  " / /S/S9n U R                  [        R                  " / 5      SS9n[         R                  " [        R                  " / 5      /S/S9n[
        R                  " X5        g )NrR   r7   r   ra   )r   r   r|   r@   DatetimeIndexr   r   midxrT   r   s      r   test_set_empty_levelr   _  se    !!2$se4D__R--b1_;F%%r'7'7';&<SEJH&+r   c                  Z   [         R                  " SS/SS/S9n [        R                  " [        SS9   U R                  / SQS	5        S S S 5        [        R                  " [        SS9   U R                  S	S
/S
S	//S	5        S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)N)r   r   )r(   r   foobarr7   zpositional argumentsr   r)   r   r   )r   r   r   r    r   r|   r~   )r#   s    r    test_set_levels_pos_args_removalr   g  s    

 
 	
 enC 
y(>	?* 
@ 
y(>	?1v1v&* 
@	? 
@	? 
@	?s   B)B
B
B*c                     [         R                  " SS//5      n U R                  [        R                  " SS/5      SS9n[         R                  " [        R                  " SS/5      /5      n[
        R                  " X5        g )Nr{   r   r   r   r   )ro   rb   )r   r   r|   r@   Categoricalr   r   r   s      r   &test_set_levels_categorical_keep_dtyper   w  se    !!Aq6(+D__BNNAq6$:!_DF%%r~~q!f'=&>?H&+r   )F) numpyr   r   pandas.core.dtypes.dtypesr   pandasr@   r   r   pandas._testing_testingr   r   r%   rK   rP   rU   rZ   rm   rx   r   r   r   markparametrizer   r   r   r   r   r   r    r   r   <module>r      s      5  G(;,;(-$* #F**GZ##L,&^ T5M2, 3, T5M24 34 0 
,,+ ,r   