B
    `                 @   s|   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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   T/home/dcms/DCMS/lib/python3.7/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   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   r   /   s    )r	   r   viewcopyZ_shallow_copyr   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    r,   c              C   s   t jddgddgd} |  }| |s,t| jddgks>t|jddgksPt| jddgd}| |snt| jddgkst|jddgkst| jddgd}| |st| jddgkst|jddgkstd S )	N)r   r   )r+      ZMyName1ZMyName2)r   ZNewName1ZNewName2)r   )r    Indexr(   equalsr   r   )Z	multi_idxZ
multi_idx1Z
multi_idx2Z
multi_idx3r   r   r   test_copy_names8   s    r0   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 d Q R X tjtdd t|dg  W d Q R X | j\}}| j\}}tjtdd t	||g||gdgd	 W d Q R X tjtdd" t	||g||gdddgd	 W d 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   r   S   s    ztest_names.<locals>.<listcomp>z^Length of names)matchr   third)r	   codesr   r   r   c             S   s   g | ]
}|j qS r   )r   )r   r   r   r   r   r   o   s    )
r   r	   pytestraises
ValueErrorsetattrr
   r   r3   r   )r)   Zindex_namesZlevel_namesr   Z
major_axisZ
minor_axisZmajor_codesZminor_codesr   r   r   
test_namesO   s.    "


r8   c          	   C   s2   ddg| _ tjtdd | d W d Q R X d S )Nfoozname foo occurs multiple times)r1   )r   r4   r5   r6   Z_get_level_number)r)   r   r   r   (test_duplicate_level_names_access_raisess   s    
r:   c              C   sJ   t jjdgddggddgd} | jd jdks2t| jd jdksFtd S )Nr   r   r   r   )r   r   )r    r   from_productr	   r   r   )r)   r   r   r   test_get_names_from_levelsz   s    r<   c           	   C   s   t jjdgddggddgd} tjtdd d| jd	 _W d Q R X tjtdd d| jd _W d Q R X t jd| jd	 d
}tjtdd d|j	_W d Q R X t j
jdkstt jjdkstt jjdkstd S )Nr   r   r   r   )r   Z	set_names)r1   r9   r   )r   barF)r    r   r;   r4   r5   RuntimeErrorr	   r   ZSeriesr   r.   Z_no_setting_namer   Z
Int64IndexZ
RangeIndex)r)   newr   r   r   %test_setting_names_from_levels_raises   s    r@   )r4   Zpandasr    r   Zpandas._testingZ_testingr"   r   r   r$   r*   r,   r0   r8   r:   r<   r@   r   r   r   r   <module>   s   $