
    Owg                     
   d dl Z d dlZd dlmZ d dlmZ d Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Ze j"                  j%                  dddg      e j"                  j%                  dddig dfdddg dfddig dfi g dfddig dfdddg dfg      d               Ze j"                  j%                  dddg      e j"                  j%                  dddiddgfdddddgfddiddgfi ddgfg      d               Zd Zd Zy)     N)
MultiIndexc                 r    | j                   D cg c]  }|j                   c}t        |      k(  sJ y c c}w )N)levelsnamelist)indexnameslevels      \/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexes/multi/test_names.pycheck_level_namesr      s*    $)LL15EJJ1T%[@@@1s   4c                  v    t        j                  g dddg      } | dd  j                  | j                  k(  sJ y )N))ab      )cdxyr	   r   )r   from_tuplesr	   )r   s    r   test_slice_keep_namer      s5    ?SzRAQR5;;!''!!!    c                     t        j                  g dg dg dd      } | j                  d      } ddg| j                  d<   t        j                  g dg d	g d
d      }|j                  d      }t	        j
                  | |       y )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+      sr    \\		
KLFc"FWFJJrN,,^DK '',K&+.r   c                    | j                   D cg c]  }|j                   c}ddgk(  sJ | j                         }| j                         }| j	                         }| j
                  D cg c]  }|dz   	 }}|| _        t        | ddg       t        |ddg       t        |ddg       t        |ddg       |j
                  D cg c]  }|dz   	 c}|_        t        | ddg       y c c}w c c}w c c}w )Nfirstsecondr   firstasecondar   )r   r   viewcopy_viewr	   r   )idxr
   r1   r2   shallow_copyr   	new_namess          r   test_changing_namesr7      s    $'JJ/5EJJ/GX3FFFF88:D88:D99;L ),		22I2CIcHi01 dWh/0dWh/0lWh$78 2>1C1CD$*DLcHi01% 0 3 Es   C(*C-C2c                 `    | j                  g d      }|j                  | j                  k(  sJ y )N)   r   r   )taker	   )r4   takens     r   test_take_preserve_namer<   3   s&    HHYE;;#))###r   c                     t        j                  ddgddg      } | j                         }| j                  |      sJ | j                  ddgk(  sJ |j                  ddgk(  sJ | j                  ddg      }| j                  |      sJ | j                  ddgk(  sJ |j                  ddgk(  sJ | j                  ddg      }| j                  |      sJ | j                  ddgk(  sJ |j                  ddgk(  sJ t        j                  t        d	
      5  | j                  dg       d d d        t        j                  t        d
      5  | j                  dgdgg       d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)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'( 
y(Q	R 5wi'345 5( (5 5s   E1E=1E:=Fc                    | j                   ddgk(  sJ | j                  D cg c]  }|j                   }}|| j                   k(  sJ | }t        j                  t
        d      5  t        |dt        |j                         dgz          d d d        t        j                  t
        d      5  t        |dg        d d d        | j                  \  }}| j                  \  }}t        j                  t
        d      5  t        ||g||gdg       d d d        t        j                  t
        d      5  t        ||g||gg d       d d d        d	d
g|_         |j                  D cg c]  }|j                   }}|d	d
gk(  sJ y c c}w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ixY wc c}w )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   s   99(+++++.::6%5::6K6#))### E	z);	< ?wU[[ 1WI =>?	z);	< $w#$ !ZZJ
"yyK	z);	< 

+,)	

 
z);	< 

+,.	

 *EK+0<<8%5::8K83*$$$; 7
? ?$ $
 

 
 9s;   F%%F-F<F$3F0'F<FF!$F-0F9c                     ddg| _         t        j                  t        d      5  | j	                  d       d d d        y # 1 sw Y   y xY w)Nfoozname foo occurs multiple timesrC   )r	   rH   rI   rJ   _get_level_numberr4   s    r   (test_duplicate_level_names_access_raisesr_   y   s?    CI	z)I	J %e$% % %s   A  A	c                      t        j                  dgddggddg      } | j                  d   j                  dk(  sJ | j                  d   j                  dk(  sJ y )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                     t        j                  dgddggddg      } t        j                  t        d      5  d| j
                  d	   _        d d d        t        j                  t        d      5  d| j
                  d   _        d d d        t        j                  d| j
                  d	   
      }t        j                  t        d      5  d|j                  _        d d d        t        j                  j                  du sJ t        j                  j                  du sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ^xY w)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# 
|;	7 #"

1# ))ASZZ]
+C	|;	7 		 88$$---==))U222# ## # s#   D%2D1D=%D.1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                     t        j                  ddgddgddggg d      } t        ||       |      }t        j                  ddgddgddgg|      }t        j                  ||       y )	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      sq     
		!Q!Q!Q 8	PBWR{+F%%1v1v1v&>iPH&(+r   c                     t        j                  ddgddggddg      } t        ||       |      }t        j                  ddgddgg|      }t        j                  ||       y )Nr   r   r9   r>   r   r   r   rq   ru   s         r   test_name_mi_with_dict_liker|      si     
		!Q!Q 0c
	CBWR{+F%%1v1v&6iHH&(+r   c                      t        j                  ddg      } d}t        j                  t        |      5  | j                  ddi       d d d        y # 1 sw Y   y xY w)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      sL    	1a&	B
>C	y	, !
c3Z ! ! !s   AAc                      t        j                  ddgddggddg      } t        j                  t        d	      5  | j                  dd
idd
i       d d d        y # 1 sw Y   y xY w)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      sa    			!Q!Q 0c
	CB	y(R	S 9
C:c3Z89 9 9s   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   