
     -iF2                     D   S SK rS SKrS SKJ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\R2                  R5                  SSS/5      S 5       r\R2                  R5                  SSS/5      S 5       rS rS rS rS r S r!g)    N)PY311)DatetimeTZDtype)CategoricalIndex
MultiIndexFc                     [        U 5      [        U5      :X  d   e[        X5       HF  u  p4[        R                  " U5      n[        R                  " U5      n[        R
                  " X4US9  MH     g )Ncheck_dtype)lenzipnpasarraytmassert_numpy_array_equal)actualexpectedr	   actexps        Z/var/www/html/venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_set.pyassert_matchingr      sU     v;#h-''')jjojjo
##C+F *    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           
      h   [         R                  " / SQ/ SQ[        R                  " 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periodstz)intstringdtr   objectna_valueint64utcr1   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_dtypesrI   %   s    ++	OR]]:qU%ST%M
 -(".."&&2QCyy88G$!U+	
H 8%9%9:r   c           
      f   [         R                  " / SQ/ SQ[        R                  " 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/   r6   r7   r9   r:   r;   )level_0level_1level_2r<   rF   s       r   test_get_dtypes_no_level_namerN   7   s    ++MM*aE:	
M -(".."&&2QCyyxx(&%0	
H 8%9%9:r   c           
      h   [         R                  " / SQ/ SQ[        R                  " 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/   )ArP   rP   r5   r6   r7   r9   r:   r;   )index)r   r=   r>   r?   rE   r@   r   rA   rB   rC   r   r   rD   )rG   resultr   r   s       r   %test_get_dtypes_duplicate_level_namesrS   K   s    $$MM*aE:	

  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!   rQ   r   ) multiindex_dataframe_random_dataframes     r   #test_get_level_number_out_of_boundsrX   ]   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   r`   r^   )rename	set_namesr   r   r    
ValueError)r#   index_namesname	new_namesindr$   
new_names2ress           r   test_set_name_methodsrk   f   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        [
        (       a  SO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       N[= f! , (       d  f       g = f)Nr*   r   r(   zCan't set attributer   z5property 'codes' of 'MultiIndex' object has no setterzcan't set attribute)levelscodesr   r    AttributeErrorr   )r#   rm   r`   lev
new_levelsrn   major_codesminor_codesx	new_codesr$   s              r   test_set_levels_codes_directlyrv      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
 5 	@" 
 
~S	1	 
2	1# /C 54 
2	1 
2	1s9   	CCCC!C&C+C<C+
C9<
D
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   r_   r   z^Onr   r,   Tr   )r   r   r   r(         z^Levelsz^Codes)
rm   
set_levelsr   copyr   r    rd   	set_codesrn   	TypeError)r#   rm   r`   rp   rq   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   r_         )rn   r`   )rn   r|   r   r   from_tuplesrangeequals)r#   rn   rr   rs   rt   ru   r~   irh   r   rR   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   r_   zNames must be a)
rm   rn   r   r   r    rd   rz   r|   rc   r}   )r#   rm   rn   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   rZ   )rm   rn   r   ra   )r   r=   rc   r   assert_index_equal)r^   r   mrR   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   r_   )rm   rn   bacb)
categoriesr   )r   from_arrayslistr   rz   rn   r   r   get_level_valuesr   r   )r   rQ   cidxrR   r   
result_lvlexpected_lvls          r   test_set_levels_categoricalr   3  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                  b   eUR                  R                  S
:X  d   eSUR                  S'   UR                  b   eUR                  R                  S
:X  d   eg )N)hansr   r   grether   r   )123r   NameNumberr5   )   rx   )onetwothreefour)columnsrQ   )r   r   g(\X@))r   4r   )r   r   r>   	DataFramer   randomdefault_rngstandard_normal
sort_index_is_copyrQ   r   at)lev1lev2r#   dfs       r   test_set_value_keeps_namesr   D  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colorr5   )r   r   r   r_   )r(   r   r   )r   r   rz   mapr2   r   r   )sizescolorsrQ   rR   expected_sizesr   s         r   test_set_levels_with_iterabler   V  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 )NrP   r5   r   r_   )r   r   rz   r>   DatetimeIndexr   r   midxrR   r   s      r   test_set_empty_levelr   c  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barr5   zpositional argumentsr   r)   r   r   )r   r   r   r    r}   rz   r|   )r#   s    r    test_set_levels_pos_args_removalr   k  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 )Nry   r   r   r   r   )rm   r`   )r   r   rz   r>   Categoricalr   r   r   s      r   &test_set_levels_categorical_keep_dtyper   {  se    !!Aq6(+D__BNNAq6$:!_DF%%r~~q!f'=&>?H&+r   )F)"numpyr   r   pandas.compatr   pandas.core.dtypes.dtypesr   pandasr>   r   r   pandas._testing_testingr   r   r%   rI   rN   rS   rX   rk   rv   r   r   r   markparametrizer   r   r   r   r   r   r    r   r   <module>r      s       5  G(;$;(-$* #F2*GZ##L,&^ T5M2, 3, T5M24 34 0$
,,+ ,r   