
    bMh                        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                            dddg          e 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                            dddg          e 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dS )     N)
MultiIndexc                 N    d | j         D             t          |          k    sJ d S )Nc                     g | ]	}|j         
S  name.0levels     e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexes/multi/test_names.py
<listcomp>z%check_level_names.<locals>.<listcomp>	   s    1115EJ111    )levelslist)indexnamess     r   check_level_namesr      s/    11EL111T%[[@@@@@@r   c                  n    t          j        g dddg          } | dd          j        | j        k    sJ d S )N))ab      )cdxyr   r   )r   from_tuplesr   )r   s    r   test_slice_keep_namer       sE    ???SzRRRAQRR5;!'!!!!!!r   c                     t          j        g dg dg dd          } |                     d          } ddg| j        d<   t          j        g dg d	g d
d          }|                    d          }t	          j        | |           d S )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_retainedr1      s    \						


KKLLFc""FWFJrN,ll^^^DD K '',,K&+.....r   c                    d | j         D             ddgk    sJ |                                 }|                                 }|                                 }d | j        D             }|| _        t          | ddg           t          |ddg           t          |ddg           t          |ddg           d |j        D             |_        t          | ddg           d S )Nc                     g | ]	}|j         
S r   r   r	   s     r   r   z'test_changing_names.<locals>.<listcomp>   s    ///5EJ///r   firstsecondc                     g | ]}|d z   S )r   r   r
   r   s     r   r   z'test_changing_names.<locals>.<listcomp>%   s    222222r   firstasecondac                     g | ]}|d z   S )r   r   r7   s     r   r   z'test_changing_names.<locals>.<listcomp>/   s    DDD$*DDDr   )r   viewcopy_viewr   r   )idxr;   r<   shallow_copy	new_namess        r   test_changing_namesrA      s    //CJ///GX3FFFFF88::D88::D99;;L 32	222ICIcHi0111 dWh/000dWh/000lWh$7888 ED1CDDDLcHi011111r   c                 X    |                      g d          }|j        | j        k    sJ d S )N)   r   r   )taker   )r>   takens     r   test_take_preserve_namerF   3   s2    HHYYYE;#)######r   c                  0   t          j        ddgddg          } |                                 }|                     |          sJ | j        ddgk    sJ |j        ddgk    sJ |                     ddg          }|                     |          sJ | j        ddgk    sJ |j        ddgk    sJ |                     ddg          }|                     |          sJ | j        ddgk    sJ |j        ddgk    sJ t          j        t          d	
          5  |                     dg           d d d            n# 1 swxY w Y   t          j        t          d
          5  |                     dgdgg           d d d            d S # 1 swxY w Y   d S )Nr   )rC      MyName1MyName2r   NewName1NewName2r   z$Length of new names must be 2, got 1matchmarioz'MultiIndex.name must be a hashable typeluigi)	r   r   r<   equalsr   pytestraises
ValueError	TypeError)	multi_idx
multi_idx1
multi_idx2
multi_idx3s       r   test_copy_namesrZ   8   s_    &'7	9?UVVVI!!JJ'''''?y)44444	955555z:&>??JJ'''''?y)44444
J77777j*%=>>JJ'''''?y)44444
J77777 
z)O	P	P	P ( (gY'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 
y(Q	R	R	R 5 5wi'34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   D==EE#FFFc                 :   | j         ddgk    sJ d | j        D             }|| j         k    sJ | }t          j        t          d          5  t          |dt          |j                   dgz              d d d            n# 1 swxY w Y   t          j        t          d          5  t          |dg            d d d            n# 1 swxY w Y   | j        \  }}| j        \  }}t          j        t          d          5  t          ||g||gdg           d d d            n# 1 swxY w Y   t          j        t          d          5  t          ||g||gg d	           d d d            n# 1 swxY w Y   d
dg|_         d |j        D             }|d
dgk    sJ d S )Nr4   r5   c                     g | ]	}|j         
S r   r   r	   s     r   r   ztest_names.<locals>.<listcomp>Y   s    666%5:666r   z^Length of namesrM   r   third)r   codesr   )r4   r5   r]   r   r   c                     g | ]	}|j         
S r   r   r	   s     r   r   ztest_names.<locals>.<listcomp>u   s    888%5:888r   )	r   r   rR   rS   rT   setattrr   r^   r   )r>   level_namesr   
major_axis
minor_axismajor_codesminor_codess          r   
test_namesrf   V   s   9(+++++663:666K#)#### E	z);	<	<	< ? ?wU[ 1 1WI =>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	z);	<	<	< $ $w###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ !ZJ
"yK	z);	<	<	< 
 

+,)	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
z);	<	<	< 
 

+,...	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 *EK885<888K3*$$$$$$sH   (A??BB%CC
C=D!!D%(D%E,,E03E0c                     ddg| _         t          j        t          d          5  |                     d           d d d            d S # 1 swxY w Y   d S )Nfoozname foo occurs multiple timesrM   )r   rR   rS   rT   _get_level_numberr>   s    r   (test_duplicate_level_names_access_raisesrk   y   s    CI	z)I	J	J	J % %e$$$% % % % % % % % % % % % % % % % % %s   A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 d S )Nr   r   r   r   r   r   )r   from_productr   r   rj   s    r   test_get_names_from_levelsrn      s_    

!C51a&/#s
D
D
DC:a=$$$$:a=$$$$$$r   c                  h   t          j        dgddggddg          } t          j        t          d          5  d| j        d	         _        d d d            n# 1 swxY w Y   t          j        t          d          5  d| j        d         _        d d d            n# 1 swxY w Y   t          j        d| j        d	         
          }t          j        t          d          5  d|j	        _        d d d            n# 1 swxY w Y   t          j
        j        du sJ t          j        j        du sJ d S )Nr   r   r   r   r   	set_namesrM   rh   r   )r   barF)r   rm   rR   rS   RuntimeErrorr   r   r)   Seriesr   Index_no_setting_name
RangeIndex)r>   news     r   %test_setting_names_from_levels_raisesrx      s   

!C51a&/#s
D
D
DC	|;	7	7	7 # #"
1# # # # # # # # # # # # # # # 
|;	7	7	7 # #"
1# # # # # # # # # # # # # # # )ASZ]
+
+
+C	|;	7	7	7  	               8$----=)U222222s5   AAA>BB!$B!$C==DDfuncrenamerp   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        ||           d S )	Nr   r   rC   rH   r%   r"   r{   r   r   from_arraysgetattrr-   assert_index_equalry   rename_dict	exp_namesmir/   expecteds         r   +test_name_mi_with_dict_like_duplicate_namesr      s     
	!Q!Q!Q 8	P	P	PBWR{++F%1v1v1v&>iPP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        ||           d S )Nr   r   rC   rH   r   r   r   r}   r   s         r   test_name_mi_with_dict_liker      s~     
	!Q!Q 0c
	C	C	CBWR{++F%1v1v&6iHHHH&(+++++r   c                      t          j        ddg          } d}t          j        t          |          5  |                     ddi           d d d            d S # 1 swxY w Y   d S )Nr   r   z2Can only pass dict-like as `names` for MultiIndex.rM   r   r&   )r)   rt   rR   rS   rU   rp   )ixmsgs     r   &test_index_name_with_dict_like_raisingr      s    	1a&		B
>C	y	,	,	, ! !
c3Z   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   AA Ac                      t          j        ddgddggddg          } t          j        t          d	          5  |                     dd
idd
i           d d d            d S # 1 swxY w Y   d S )Nr   r   rC   rH   r   r   r   z(Can not pass level for dictlike `names`.rM   r&   )r   r   )r   r~   rR   rS   rU   rp   )r   s    r   &test_multiindex_name_and_level_raisingr      s    		!Q!Q 0c
	C	C	CB	y(R	S	S	S 9 9
C:c3Z8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s   A##A'*A')rR   pandasr)   r   pandas._testing_testingr-   r   r    r1   rA   rF   rZ   rf   rk   rn   rx   markparametrizer   r   r   r   r   r   r   <module>r      sX                   A A A" " "
	/ 	/ 	/2 2 2,$ $ $
5 5 5< %  %  %F% % %% % %3 3 3  (K!899
s___%		/
s___%	___
s___%		/
 
, ,
 
 :9, (K!899
sc3Z 		Sz*
sc3Z 	c3Z	 , ,  :9,! ! !9 9 9 9 9r   