
    Mh2                     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        Y/var/www/html/env/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           
      (   [         R                  " / SQ/ SQ[        R                  " SSSS9// SQS9nU (       d  S	OS
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   objectr3   int64utcr1   r   from_productpd
date_rangeSeriesr   dtyper   r   assert_series_equaldtypesusing_infer_stringidx_multityper   r   s       r   test_get_dtypesrE   %   sw    ++	OR]]:qU%ST%M
 -((Cyy88G$!U+	
H 8%9%9:r   c           
      &   [         R                  " / SQ/ SQ[        R                  " SSSS9/5      nU (       d  SOSn[        R                  " [
        R                  " S	5      U[        S
S9S.5      n[        R                  " X1R                  5        g )Nr'   r)   r-   r   r.   r/   r6   r3   r7   r8   r9   )level_0level_1level_2r:   rB   s       r   test_get_dtypes_no_level_namerJ   7   sx    ++MM*aE:	
M -((Cyyxx(&%0	
H 8%9%9:r   c           
      (   [         R                  " / SQ/ SQ[        R                  " SSSS9// SQS9R                  nU (       d  S	OS
n[        R
                  " [        R                  " S5      U[        SS9// SQS9n[        R                  " X5        g )Nr'   r)   r-   r   r.   r/   )ArL   rL   r5   r6   r3   r7   r8   r9   )index)r   r;   r<   r=   rA   r>   r   r?   r   r   r@   )rC   resultr   r   s       r   %test_get_dtypes_duplicate_level_namesrO   K   s    $$MM*aE:	

  f  -((C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!   rM   r   ) multiindex_dataframe_random_dataframes     r   #test_get_level_number_out_of_boundsrT   ]   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\   rZ   )rename	set_namesr   r   r    
ValueError)r#   index_namesname	new_namesindr$   
new_names2ress           r   test_set_name_methodsrg   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#   ri   r\   lev
new_levelsrj   major_codesminor_codesx	new_codesr$   s              r   test_set_levels_codes_directlyrr      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)
ri   
set_levelsr   copyr   r    r`   	set_codesrj   	TypeError)r#   ri   r\   rl   rm   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[         )rj   r\   )rj   rx   r   r   from_tuplesrangeequals)r#   rj   rn   ro   rp   rq   rz   ird   r   rN   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)
ri   rj   r   r   r    r`   rv   rx   r_   ry   )r#   ri   rj   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:rZ   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   rV   )ri   rj   r   r]   )r   r;   r_   r   assert_index_equal)rZ   r   mrN   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[   )ri   rj   bacb)
categoriesr   )r   from_arrayslistr   rv   rj   r   r   get_level_valuesr   r   )r   rM   cidxrN   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   )   rt   )onetwothreefour)columnsrM   )r   r   g(\X@))r   4r   )r   r   r<   	DataFramer   randomdefault_rngstandard_normal
sort_index_is_copyrM   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   rv   mapr2   r   r   )sizescolorsrM   rN   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 )NrL   r5   r   r[   )r   r   rv   r<   DatetimeIndexr   r   midxrN   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    ry   rv   rx   )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 )Nru   r   r   r   r   )ri   r\   )r   r   rv   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%   rE   rJ   rO   rT   rg   rr   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   