
    Mh                     
   S SK r S SKrS SKJr  S SKJr  S rS rS r	S r
S rS rS	 rS
 rS rS r\ R"                  R%                  SSS/5      \ R"                  R%                  SSS0/ SQ4SSS./ SQ4SS0/ SQ40 / SQ4SS0/ SQ4SSS./ SQ4/5      S 5       5       r\ R"                  R%                  SSS/5      \ R"                  R%                  SSS0SS/4SSS.SS/4SS0SS/40 SS/4/5      S 5       5       rS rS rg)     N)
MultiIndexc                 x    U R                    Vs/ s H  o"R                  PM     sn[        U5      :X  d   eg s  snf )N)levelsnamelist)indexnameslevels      W/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_names.pycheck_level_namesr      s,    $)LL1L5JJL1T%[@@@1s   7c                  t    [         R                  " / SQSS/S9n U SS  R                  U R                  :X  d   eg )N))ab      )cdxyr	   r   )r   from_tuplesr	   )r   s    r   test_slice_keep_namer      s5    ?SzRAQR5;;!''!!!    c                     [         R                  " / SQ/ SQ/ SQS.5      n U R                  S5      n SS/U R                  S'   [         R                  " / SQ/ S	Q/ S
QS.5      nUR                  S5      n[        R
                  " X5        g )N)r   r      )r   r      )r      )r   r   zr    	   
   )r   r   r   r!   )r   r   r   r"   )r   r   r   r"   )pd	DataFrame	set_indexloctmassert_frame_equal)resultdf_expecteds     r   test_index_name_retainedr+      sp    \\		
KLFc"FWFJJrN,,^DK '',K&.r   c                    U R                    Vs/ s H  oR                  PM     snSS/:X  d   eU R                  5       nU R                  5       nU R	                  5       nU R
                   Vs/ s H  oUS-   PM	     nnX`l        [        U SS/5        [        USS/5        [        USS/5        [        USS/5        UR
                   Vs/ s H  oUS-   PM	     snUl        [        U SS/5        g s  snf s  snf s  snf )Nfirstsecondr   firstasecondar   )r   r   viewcopy_viewr	   r   )idxr
   r1   r2   shallow_copyr   	new_namess          r   test_changing_namesr7      s    $'JJ/J5JJJ/GX3FFFF88:D88:D99;L ),		2		I2IcHi01 dWh/0dWh/0lWh$78 2>1C1CD1C*1CDLcHi01% 0 3 Es   C.-C3	C8c                 b    U R                  / SQ5      nUR                  U R                  :X  d   eg )N)   r   r   )taker	   )r4   takens     r   test_take_preserve_namer<   3   s&    HHYE;;#))###r   c                  ,   [         R                  " SS/SS/S9n U R                  5       nU R                  U5      (       d   eU R                  SS/:X  d   eUR                  SS/:X  d   eU R                  SS/S9nU R                  U5      (       d   eU R                  SS/:X  d   eUR                  SS/:X  d   eU R                  SS/S9nU R                  U5      (       d   eU R                  SS/:X  d   eUR                  SS/:X  d   e[
        R                  " [        S	S
9   U R                  S/S9  S S S 5        [
        R                  " [        SS
9   U R                  S/S//S9  S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr   )r9      MyName1MyName2r   NewName1NewName2)r   z$Length of new names must be 2, got 1matchmarioz'MultiIndex.name must be a hashable typeluigi)	r   r   r2   equalsr	   pytestraises
ValueError	TypeError)	multi_idx
multi_idx1
multi_idx2
multi_idx3s       r   test_copy_namesrP   8   s    &&'7	9?UVI!JJ''''??y)4444	95555z:&>?JJ''''??y)4444
J7777j*%=>JJ''''??y)4444
J7777 
z)O	PgY' 
Q 
y(Q	Rwi'34 
S	R 
Q	P 
S	Rs   %E4F4
F
Fc                    U R                   SS/:X  d   eU R                   Vs/ s H  oR                  PM     nnX R                   :X  d   eU n[        R                  " [
        SS9   [        US[        UR                   5      S/-   5        S S S 5        [        R                  " [
        SS9   [        US/ 5        S S S 5        U R                  u  pEU R                  u  pg[        R                  " [
        SS9   [        XE/Xg/S/S9  S S S 5        [        R                  " [
        SS9   [        XE/Xg// SQS9  S S S 5        S	S
/Ul         UR                   Vs/ s H  oR                  PM     nnUS	S
/:X  d   eg s  snf ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= fs  snf )Nr-   r.   z^Length of namesrC   r	   third)r   codesr	   )r-   r.   rR   r   r   )
r	   r   r   rH   rI   rJ   setattrr   rS   r   )r4   r
   level_namesr   
major_axis
minor_axismajor_codesminor_codess           r   
test_namesrZ   V   sr   99(+++++.::6:%:::K6))### E	z);	<wU[[ 1WI => 
=	z);	<w# 
= !ZZJ"yyK	z);	<+,)	
 
= 
z);	<+,.	
 
= *EK+0<<8<%::<K83*$$$; 7
 
=	<	<	< 
=	< 
=	< 9s;   E8&%E=,F7F'F0G=
F
F
F-0
F>c                     SS/U l         [        R                  " [        SS9   U R	                  S5        S S S 5        g ! , (       d  f       g = f)Nfoozname foo occurs multiple timesrC   )r	   rH   rI   rJ   _get_level_numberr4   s    r   (test_duplicate_level_names_access_raisesr_   y   s7    CI	z)I	Je$ 
K	J	Js	   >
Ac                      [         R                  " S/SS//SS/S9n U R                  S   R                  S:X  d   eU R                  S   R                  S:X  d   eg )Nr   r   r   r   r   r   )r   from_productr   r   r^   s    r   test_get_names_from_levelsrb      sZ    

!
!C51a&/#s
DC::a=$$$::a=$$$r   c                     [         R                  " S/SS//SS/S9n [        R                  " [        SS9   SU R
                  S	   l        S S S 5        [        R                  " [        SS9   SU R
                  S   l        S S S 5        [        R                  " SU R
                  S	   S
9n[        R                  " [        SS9   SUR                  l        S S S 5        [        R                  R                  SL d   e[        R                  R                  SL d   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f)Nr   r   r   r   r   	set_namesrC   r\   r   )r   barF)r   ra   rH   rI   RuntimeErrorr   r   r#   Seriesr   Index_no_setting_name
RangeIndex)r4   news     r   %test_setting_names_from_levels_raisesrl      s    

!
!C51a&/#s
DC	|;	7"

1 
8 
|;	7"

1 
8 ))ASZZ]
+C	|;	7		 
8 88$$---==))U222 
8	7 
8	7 
8	7s#   D,D.D?
D+.
D<?
Efuncrenamerd   zrename_dict, exp_namesr   r    )r    r   r    )r   r   )r    r   r    r   )r   r    r   r   r   r   r   r   )r   r   c                     [         R                  " SS/SS/SS/// SQS9n[        X05      " U5      n[         R                  " SS/SS/SS//US9n[        R                  " XE5        g )	Nr   r   r9   r>   r   r   ro   r   r   from_arraysgetattrr'   assert_index_equalrm   rename_dict	exp_namesmir)   expecteds         r   +test_name_mi_with_dict_like_duplicate_namesrz      sk     
		!Q!Q!Q 8	PBR{+F%%1v1v1v&>iPH&+r   c                     [         R                  " SS/SS//SS/S9n[        X05      " U5      n[         R                  " SS/SS//US9n[        R                  " XE5        g )Nr   r   r9   r>   r   r   r   rq   ru   s         r   test_name_mi_with_dict_liker|      sc     
		!Q!Q 0c
	CBR{+F%%1v1v&6iHH&+r   c                      [         R                  " SS/5      n Sn[        R                  " [        US9   U R                  SS05        S S S 5        g ! , (       d  f       g = f)Nr   r   z2Can only pass dict-like as `names` for MultiIndex.rC   r   r    )r#   rh   rH   rI   rK   rd   )ixmsgs     r   &test_index_name_with_dict_like_raisingr      sC    	1a&	B
>C	y	,
c3Z  
-	,	,s   A
Ac                      [         R                  " SS/SS//SS/S9n [        R                  " [        SS	9   U R                  SS
0SS
0S9  S S S 5        g ! , (       d  f       g = f)Nr   r   r9   r>   r   r   r   z(Can not pass level for dictlike `names`.rC   r    )r	   r
   )r   rr   rH   rI   rK   rd   )rx   s    r   &test_multiindex_name_and_level_raisingr      sY    			!Q!Q 0c
	CB	y(R	S
C:c3Z8 
T	S	Ss   A
A#)rH   pandasr#   r   pandas._testing_testingr'   r   r   r+   r7   r<   rP   rZ   r_   rb   rl   markparametrizerz   r|   r   r    r   r   <module>r      sd      A"
	/2,$
5< %F%%3  (K!89
s_%	/
s_%	_
s_%	/
,
 :, (K!89
sc3Z 	Sz*
sc3Z 	c3Z	, :,!9r   