o
    թZh                     @   sf  d dl Z d dlZd dlmZ d dlmZ dd Zdd Zdd Z	d	d
 Z
dd Zdd Zdd Zdd Zdd Zd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&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(d) Zd*d+ Zd,d- ZdS ).    N)
MultiIndexc                 C   s    dd | j D t|ksJ d S )Nc                 S      g | ]}|j qS  name.0levelr   r   \/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/indexes/multi/test_names.py
<listcomp>	       z%check_level_names.<locals>.<listcomp>)levelslist)indexnamesr   r   r
   check_level_names   s    r   c                  C   s2   t jg dddgd} | dd  j| jksJ d S )N))ab      )cdxyr   r   )r   from_tuplesr   )r   r   r   r
   test_slice_keep_name   s   r   c                  C   sn   t g dg dg dd} | d} ddg| jd< t g dg d	g d
d}|d}t| | d S )N)r   r      )r   r      )r      )r   r   zr"   	   
   )r   r   r   r#   )r   r   r   r$   )r    r   r!   r$   )pdZ	DataFrameZ	set_indexloctmZassert_frame_equal)resultZdf_expectedr   r   r
   test_index_name_retained   s   

r)   c                 C   s   dd | j D ddgksJ |  }|  }|  }dd | jD }|| _t| ddg t|ddg t|ddg t|ddg dd |jD |_t| ddg d S )	Nc                 S   r   r   r   r   r   r   r
   r      r   z'test_changing_names.<locals>.<listcomp>firstsecondc                 S      g | ]}|d  qS )r   r   r   r   r   r   r
   r   %       ZfirstaZsecondac                 S   r,   )r   r   r-   r   r   r
   r   /   r.   )r   viewcopyZ_viewr   r   )idxr/   r0   Zshallow_copyZ	new_namesr   r   r
   test_changing_names   s   r2   c                 C   s"   |  g d}|j| jksJ d S )N)   r   r   )Ztaker   )r1   Ztakenr   r   r
   test_take_preserve_name3   s   r4   c                  C   sX  t jddgddgd} |  }| |sJ | jddgksJ |jddgks(J | jddgd}| |s7J | jddgks@J |jddgksIJ | jddgd}| |sXJ | jddgksaJ |jddgksjJ tjtd	d
 | jdgd W d    n1 sw   Y  tjtdd
 | jdgdggd W d    d S 1 sw   Y  d S )Nr   )r3      ZMyName1ZMyName2r   ZNewName1ZNewName2r   z$Length of new names must be 2, got 1matchZmarioz'MultiIndex.name must be a hashable typeZluigi)	r   r   r0   equalsr   pytestraises
ValueError	TypeError)Z	multi_idxZ
multi_idx1Z
multi_idx2Z
multi_idx3r   r   r
   test_copy_names8   s&   "r=   c                 C   s  | j ddgks	J dd | jD }|| j ksJ | }tjtdd t|dt|j dg  W d    n1 s8w   Y  tjtdd t|dg  W d    n1 sUw   Y  | j\}}| j\}}tjtdd t||g||gdgd	 W d    n1 sw   Y  tjtdd t||g||gg d
d	 W d    n1 sw   Y  ddg|_ dd |jD }|ddgksJ d S )Nr*   r+   c                 S   r   r   r   r   r   r   r
   r   Y   r   ztest_names.<locals>.<listcomp>z^Length of namesr6   r   third)r   codesr   )r*   r+   r>   r   r   c                 S   r   r   r   r   r   r   r
   r   u   r   )	r   r   r9   r:   r;   setattrr   r?   r   )r1   Zlevel_namesr   Z
major_axisZ
minor_axisZmajor_codesZminor_codesr   r   r
   
test_namesV   s:   


rA   c                 C   sH   ddg| _ tjtdd | d W d    d S 1 sw   Y  d S )Nfoozname foo occurs multiple timesr6   )r   r9   r:   r;   Z_get_level_numberr1   r   r   r
   (test_duplicate_level_names_access_raisesy   s   
"rD   c                  C   sH   t jdgddggddgd} | 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   rC   r   r   r
   test_get_names_from_levels   s   rF   c                  C   s   t jdgddggddgd} tjtdd d| jd	 _W d    n1 s&w   Y  tjtdd d| jd _W d    n1 sCw   Y  tjd| jd	 d
}tjtdd d|j	_W d    n1 shw   Y  tj
jdu suJ tjjdu s}J d S )Nr   r   r   r   r   	set_namesr6   rB   r   )r   barF)r   rE   r9   r:   RuntimeErrorr   r   r%   ZSeriesr   IndexZ_no_setting_nameZ
RangeIndex)r1   newr   r   r
   %test_setting_names_from_levels_raises   s   
rL   funcrenamerG   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                 C   sb   t jddgddgddggg dd}t|| |}t jddgddgddgg|d}t|| d S )	Nr   r   r3   r5   r!   r   rO   r   r   from_arraysgetattrr'   Zassert_index_equalrM   Zrename_dictZ	exp_namesmir(   expectedr   r   r
   +test_name_mi_with_dict_like_duplicate_names   s   $ rV   c                 C   sV   t jddgddggddgd}t|| |}t jddgddgg|d}t|| d S )Nr   r   r3   r5   r   r   r   rP   rS   r   r   r
   test_name_mi_with_dict_like   s   rW   c                  C   sT   t ddg} d}tjt|d | ddi W d    d S 1 s#w   Y  d S )Nr   r   z2Can only pass dict-like as `names` for MultiIndex.r6   r   r"   )r%   rJ   r9   r:   r<   rG   )Zixmsgr   r   r
   &test_index_name_with_dict_like_raising   s
   "rY   c                  C   sh   t jddgddggddgd} tjtdd	 | jdd
idd
id W d    d S 1 s-w   Y  d S )Nr   r   r3   r5   r   r   r   z(Can not pass level for dictlike `names`.r6   r"   )r   r	   )r   rQ   r9   r:   r<   rG   )rT   r   r   r
   &test_multiindex_name_and_level_raising   s   "rZ   )r9   Zpandasr%   r   Zpandas._testingZ_testingr'   r   r   r)   r2   r4   r=   rA   rD   rF   rL   markZparametrizerV   rW   rY   rZ   r   r   r   r
   <module>   sL    #

	