U
    `»{jr  ã                   @   sr  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dddgfdddœdddgfddidddgfi dddgfddidddgfdd d!œdddg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t‚d S )Nc                 S   s   g | ]
}|j ‘qS © ©Úname©Ú.0Úlevelr   r   úd/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/indexes/multi/test_names.pyÚ
<listcomp>	   s     z%check_level_names.<locals>.<listcomp>)ÚlevelsÚlistÚAssertionError)ÚindexÚnamesr   r   r	   Úcheck_level_names   s    r   c                  C   s4   t jdddgddgd�} | dd … j| jks0t‚d S )N)ÚaÚb©é   é   )ÚcÚdÚxÚy©r   r   )r   Úfrom_tuplesr   r   )r   r   r   r	   Útest_slice_keep_name   s    r   c                  C   s€   t  dddgdddgdddgdœ¡} |  d	¡} d
dg| jd< t  dddd
gddddgddddgdœ¡}| d	¡}t | |¡ d S )Nr   r   é   é   éûÿÿÿr   é   )r   r   Úzr!   é	   é
   )Ú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t‚|  ¡ }|  ¡ }|  ¡ }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
      s     z'test_changing_names.<locals>.<listcomp>ÚfirstÚsecondc                 S   s   g | ]}|d  ‘qS )r   r   ©r   r   r   r   r	   r
   %   s     ZfirstaZsecondac                 S   s   g | ]}|d  ‘qS )r   r   r+   r   r   r	   r
   /   s     )r   r   ÚviewÚcopyZ_viewr   r   )Úidxr,   r-   Zshallow_copyZ	new_namesr   r   r	   Útest_changing_names   s    r/   c                 C   s$   |   dddg¡}|j| jks t‚d S )Né   r   r   )Ztaker   r   )r.   Ztakenr   r   r	   Útest_take_preserve_name3   s    r1   c               	   C   sD  t  t¡� tjddgddgd�} W 5 Q R X |  ¡ }|  |¡sBt‚| jddgksTt‚|jddgksft‚| jddgd�}|  |¡s„t‚| jddgks–t‚|jddgks¨t‚| jddgd�}|  |¡sÆt‚| jddgksØt‚|jddgksêt‚t	j
td	d
�� | jdgd� W 5 Q R X t	j
tdd
�� | jdgdggd� W 5 Q R X 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&   Zassert_produces_warningÚFutureWarningr$   ÚIndexr-   Úequalsr   r   ÚpytestÚraisesÚ
ValueErrorÚ	TypeError)Z	multi_idxZ
multi_idx1Z
multi_idx2Z
multi_idx3r   r   r	   Útest_copy_names8   s$     r<   c              	   C   s4  |ddgkst ‚dd„ | jD ƒ}||ks,t ‚| }tjtdd�� t|dt|jƒdg ƒ W 5 Q R X tjtdd�� t|dg ƒ W 5 Q R X | j\}}| j\}}tjtdd�� t	||g||gdgd	� W 5 Q R X tjtdd��" t	||g||gdddgd	� W 5 Q R X d
dg|_dd„ |jD ƒ}|d
dgk�s0t ‚d S )Nr)   r*   c                 S   s   g | ]
}|j ‘qS r   r   r   r   r   r	   r
   \   s     ztest_names.<locals>.<listcomp>z^Length of namesr3   r   Úthird)r   Úcodesr   r   r   c                 S   s   g | ]
}|j ‘qS r   r   r   r   r   r	   r
   x   s     )
r   r   r8   r9   r:   Úsetattrr   r   r>   r   )r.   Zindex_namesZlevel_namesr   Z
major_axisZ
minor_axisZmajor_codesZminor_codesr   r   r	   Ú
test_namesX   s2    "

ýý
r@   c              	   C   s2   ddg| _ tjtdd�� |  d¡ W 5 Q R X d S )NÚfoozname foo occurs multiple timesr3   )r   r8   r9   r:   Z_get_level_number©r.   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s0t‚| jd jdksDt‚d S )Nr   r   r   r   r   r   )r   Úfrom_productr   r   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 5 Q R X tjtdd�� d| jd _W 5 Q R X tjd| jd	 d
�}tjtdd�� d|j	_W 5 Q R X tj
jdks®t‚tjjjjdksÂt‚tjjdksÒt‚d S )Nr   r   r   r   r   Ú	set_namesr3   rA   r   )r   ÚbarF)r   rD   r8   r9   ÚRuntimeErrorr   r   r$   ZSeriesr   r6   Z_no_setting_namer   ÚcoreÚapiZNumericIndexZ
RangeIndex)r.   Únewr   r   r	   Ú%test_setting_names_from_levels_raisesŠ   s    rL   ÚfuncÚrenamerF   zrename_dict, exp_namesr   r!   r   )r   r   r   r   )r   r   c                 C   sd   t jddgddgddggdddgd	�}t|| ƒ|ƒ}t jddgddgddgg|d	�}t ||¡ d S )
Nr   r   r0   r2   r    r   r   r   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    & rU   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   rO   rR   r   r   r	   Útest_name_mi_with_dict_like¯   s    rV   c               	   C   s>   t  ddg¡} d}tjt|d�� |  ddi¡ W 5 Q R X d S )Nr   r   z2Can only pass dict-like as `names` for MultiIndex.r3   r   r!   )r$   r6   r8   r9   r;   rF   )ZixÚmsgr   r   r	   Ú&test_index_name_with_dict_like_raisingÁ   s    rX   c               	   C   sR   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 5 Q R X d S )Nr   r   r0   r2   r   r   r   z(Can not pass level for dictlike `names`.r3   r!   )r   r   )r   rP   r8   r9   r;   rF   )rS   r   r   r	   Ú&test_multiindex_name_and_level_raisingÉ   s    rY   )r8   Zpandasr$   r   Zpandas._testingZ_testingr&   r   r   r(   r/   r1   r<   r@   rC   rE   rL   ÚmarkZparametrizerU   rV   rX   rY   r   r   r   r	   Ú<module>   sJ    $úþ
üþ	