o
    ir                     @   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/edux/Edux_v2/venv/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$   )pd	DataFrame	set_indexloctmassert_frame_equal)result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   %       firstasecondac                 S   r0   )r   r   r1   r   r   r
   r   /   r2   )r   viewcopy_viewr   r   )idxr5   r6   shallow_copy	new_namesr   r   r
   test_changing_names   s   r;   c                 C   s"   |  g d}|j| jksJ d S )N)   r   r   )taker   )r8   takenr   r   r
   test_take_preserve_name3   s   r?   c                  C   s  t t tjddgddgd} W d    n1 sw   Y  |  }| |s+J | jddgks4J |jddgks=J | jddgd}| |sLJ | jddgksUJ |jddgks^J | jddgd}| |smJ | jddgksvJ |jddgksJ 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   )r<      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)   assert_produces_warningFutureWarningr%   Indexr6   equalsr   pytestraises
ValueError	TypeError)	multi_idx
multi_idx1
multi_idx2
multi_idx3r   r   r
   test_copy_names8   s*   "rU   c                 C   s  |ddgksJ dd | j D }||ksJ | }tjtdd t|dt|jdg  W d    n1 s6w   Y  tjtdd t|dg  W d    n1 sSw   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   \   r   ztest_names.<locals>.<listcomp>z^Length of namesrE   r   third)r   codesr   )r.   r/   rV   r   r   c                 S   r   r   r   r   r   r   r
   r   x   r   )	r   rM   rN   rO   setattrr   r   rW   r   )r8   index_nameslevel_namesr   
major_axis
minor_axismajor_codesminor_codesr   r   r
   
test_namesX   s:   


r_   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 timesrE   )r   rM   rN   rO   _get_level_numberr8   r   r   r
   (test_duplicate_level_names_access_raises|   s   
"rc   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   rb   r   r   r
   test_get_names_from_levels   s   re   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jjdu sJ tjjdu sJ d S )Nr   r   r   r   r   	set_namesrE   r`   r   )r   barF)r   rd   rM   rN   RuntimeErrorr   r   r%   Seriesr   rK   _no_setting_namecoreapiNumericIndex
RangeIndex)r8   newr   r   r
   %test_setting_names_from_levels_raises   s   
rp   funcrenamerf   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   r<   r@   r!   r   rs   r   r   from_arraysgetattrr)   assert_index_equalrq   rename_dict	exp_namesmir+   expectedr   r   r
   +test_name_mi_with_dict_like_duplicate_names   s   $ r}   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   r<   r@   r   r   r   rt   rx   r   r   r
   test_name_mi_with_dict_like   s   r~   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.rE   r   r"   )r%   rK   rM   rN   rP   rf   )ixmsgr   r   r
   &test_index_name_with_dict_like_raising   s
   "r   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   r<   r@   r   r   r   z(Can not pass level for dictlike `names`.rE   r"   )r   r	   )r   ru   rM   rN   rP   rf   )r{   r   r   r
   &test_multiindex_name_and_level_raising   s   "r   )rM   pandasr%   r   pandas._testing_testingr)   r   r   r-   r;   r?   rU   r_   rc   re   rp   markparametrizer}   r~   r   r   r   r   r   r
   <module>   sL     $

	