o
    _~#g                     @   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/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/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$   )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   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   )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   r   r6   equalsr   pytestraises
ValueError	TypeError)	multi_idx
multi_idx1
multi_idx2
multi_idx3r   r   r
   test_copy_names8   s&   "rR   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 namesrE   r   third)r   codesr   )r.   r/   rS   r   r   c                 S   r   r   r   r   r   r   r
   r   u   r   )	r   r   rJ   rK   rL   setattrr   rT   r   )r8   level_namesr   
major_axis
minor_axismajor_codesminor_codesr   r   r
   
test_namesV   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   rJ   rK   rL   _get_level_numberr8   r   r   r
   (test_duplicate_level_names_access_raisesy   s   
"r_   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   r^   r   r   r
   test_get_names_from_levels   s   ra   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_namesrE   r\   r   )r   barF)r   r`   rJ   rK   RuntimeErrorr   r   r%   Seriesr   Index_no_setting_name
RangeIndex)r8   newr   r   r
   %test_setting_names_from_levels_raises   s   
rj   funcrenamerb   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   rm   r   r   from_arraysgetattrr)   assert_index_equalrk   rename_dict	exp_namesmir+   expectedr   r   r
   +test_name_mi_with_dict_like_duplicate_names   s   $ rw   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   rn   rr   r   r   r
   test_name_mi_with_dict_like   s   rx   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%   rf   rJ   rK   rM   rb   )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   ro   rJ   rK   rM   rb   )ru   r   r   r
   &test_multiindex_name_and_level_raising   s   "r|   )rJ   pandasr%   r   pandas._testing_testingr)   r   r   r-   r;   r?   rR   r[   r_   ra   rj   markparametrizerw   rx   r{   r|   r   r   r   r
   <module>   sL    #

	