a
    Pf                     @   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   s   g | ]
}|j qS  name.0levelr   r   ^/var/www/ai-form-bot/venv/lib/python3.9/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   s   g | ]
}|j qS r   r   r   r   r   r	   r
      r   z'test_changing_names.<locals>.<listcomp>firstsecondc                 S   s   g | ]}|d  qS )r   r   r   r   r   r   r	   r
   %   r   ZfirstaZsecondac                 S   s   g | ]}|d  qS )r   r   r+   r   r   r	   r
   /   r   )r   viewcopyZ_viewr   r   )idxr,   r-   Zshallow_copyZ	new_namesr   r   r	   test_changing_names   s    r/   c                 C   s"   |  g d}|j| jksJ d S )N)   r   r   )Ztaker   )r.   Ztakenr   r   r	   test_take_preserve_name3   s    r1   c                  C   sZ  t jddgddgd} |  }| |s,J | jddgks>J |jddgksPJ | jddgd}| |snJ | jddgksJ |jddgksJ | jddgd}| |sJ | jddgksJ |jddgksJ tjtd	d
 | jdgd W d    n1 s0    Y  tjtdd
$ | jdgdggd W d    n1 sL0    Y  d S )Nr   )r0      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   r-   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s0J | }tjtdd( t|dt|j dg  W d    n1 sp0    Y  tjtdd t|dg  W d    n1 s0    Y  | j\}}| j\}}tjtdd( t||g||gdgd	 W d    n1 s0    Y  tjtdd* t||g||gg d
d	 W d    n1 sP0    Y  ddg|_ dd |jD }|ddgksJ d S )Nr)   r*   c                 S   s   g | ]
}|j qS r   r   r   r   r   r	   r
   Y   r   ztest_names.<locals>.<listcomp>z^Length of namesr3   r   third)r   codesr   )r)   r*   r;   r   r   c                 S   s   g | ]
}|j qS r   r   r   r   r   r	   r
   u   r   )	r   r   r6   r7   r8   setattrr   r<   r   )r.   Zlevel_namesr   Z
major_axisZ
minor_axisZmajor_codesZminor_codesr   r   r	   
test_namesV   s2    6*

&&
r>   c                 C   sF   ddg| _ tjtdd | d W d    n1 s80    Y  d S )Nfoozname foo occurs multiple timesr3   )r   r6   r7   r8   Z_get_level_numberr.   r   r   r	   (test_duplicate_level_names_access_raisesy   s    
rA   c                  C   sH   t jdgddggddgd} | jd jdks0J | jd jdksDJ d S )Nr   r   r   r   r   r   )r   from_productr   r   r@   r   r   r	   test_get_names_from_levels   s    rC   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 sL0    Y  tjtdd d| jd _W d    n1 s0    Y  tjd| jd	 d
}tjtdd d|j	_W d    n1 s0    Y  tj
jdu sJ tjjdu sJ d S )Nr   r   r   r   r   	set_namesr3   r?   r   )r   barF)r   rB   r6   r7   RuntimeErrorr   r   r$   ZSeriesr   IndexZ_no_setting_nameZ
RangeIndex)r.   newr   r   r	   %test_setting_names_from_levels_raises   s    **&rI   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                 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   r0   r2   r    r   rL   r   r   from_arraysgetattrr&   Zassert_index_equalrJ   Zrename_dictZ	exp_namesmir'   expectedr   r   r	   +test_name_mi_with_dict_like_duplicate_names   s    $ rS   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   r0   r2   r   r   r   rM   rP   r   r   r	   test_name_mi_with_dict_like   s    rT   c                  C   sR   t ddg} d}tjt|d | ddi W d    n1 sD0    Y  d S )Nr   r   z2Can only pass dict-like as `names` for MultiIndex.r3   r   r!   )r$   rG   r6   r7   r9   rD   )Zixmsgr   r   r	   &test_index_name_with_dict_like_raising   s    rV   c                  C   sf   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    n1 sX0    Y  d S )Nr   r   r0   r2   r   r   r   z(Can not pass level for dictlike `names`.r3   r!   )r   r   )r   rN   r6   r7   r9   rD   )rQ   r   r   r	   &test_multiindex_name_and_level_raising   s    rW   )r6   Zpandasr$   r   Zpandas._testingZ_testingr&   r   r   r(   r/   r1   r:   r>   rA   rC   rI   markZparametrizerS   rT   rV   rW   r   r   r   r	   <module>   sJ   #

	