B
    ²ô`L  ã               @   sd   d dl Zd dlZd dlmZ d dlZd dlmZmZ d dl	m
Z dd„ Zdd„ Zdd	„ Zd
d„ ZdS )é    N)ÚPerformanceWarning)ÚIndexÚ
MultiIndexc          	   C   sX  |   ddg¡}t ddg¡}|   |¡}| ddddg }t ||¡ t ||¡ |   dg¡}| dddd	dg }t ||¡ |   d
¡}| ddd	dg }t ||¡ t dg¡}tjtdd |   dg¡ W d Q R X tjtdd |   |¡ W d Q R X tjtdd |   d
dg¡ W d Q R X t ddg¡}tjtdd |   |¡ W d Q R X | j |dd}| ddddd	dg }t ||¡ | j |dd}| dddddg }t ||¡ | j d
dgdd}| ddd	dg }t ||¡ |   d
dg¡}| dddg }t ||¡ d
ddg}tjtdd |   |¡ W d Q R X | j |dd}| dddg }t ||¡ d S )N)ÚfooÚtwo)ZquxÚoner   é   é   é   Úbaré   é   r   )r   r   z^10$)Úmatchz^'two'$r   Úignore)Úerrors)Údropr   Úfrom_tuplesÚtmÚassert_index_equalÚpytestÚraisesÚKeyError)ÚidxÚdroppedÚindexZdropped2ÚexpectedZmixed_index© r   úS/home/dcms/DCMS/lib/python3.7/site-packages/pandas/tests/indexes/multi/test_drop.pyÚ	test_drop   sP    


r   c             C   sÞ   | |   d¡ }| d¡}|jdks&t‚tttdƒƒttdƒƒttdƒƒgt ddddddddg¡t ddddddddg¡t ddddddddg¡gdd	d
gd}| d¡}|j	dks¸t‚| d	¡}| d¡}| 
|¡sÚt‚d S )Nr   r   Úsecondr   r   r   r	   r   r   Úthree)ÚlevelsÚcodesÚnames)r   r    )Zget_locÚ	droplevelÚnameÚAssertionErrorr   r   ÚrangeÚnpÚarrayr#   Úequals)r   r   r   r   r   r   r   Útest_droplevel_with_namesE   s    
 


r+   c              C   sL  t ttdƒƒttdƒƒttdƒƒgt ddddddddg¡t ddddddddg¡t ddddddddg¡gdddgd	} | d d…  ddg¡}| d d…  d¡ d¡}| |¡s¶t‚| d d…  g ¡}| d d… }| |¡sât‚d
}tj	t
|d | d d…  dddg¡ W d Q R X tj	tdd | d d…  ddg¡ W d Q R X d S )Nr   r   r   r   r	   r   r   r    )r!   r"   r#   zSCannot remove 3 levels from an index with 3 levels: at least one level must be left)r   z'Level four not found'Zfour)r   r   r'   r(   r)   r$   r*   r&   r   r   Ú
ValueErrorr   )r   r   r   Úmsgr   r   r   Útest_droplevel_list[   s"     "r.   c           	   C   s¾   dddg} t j| ddgd}| ¡ s(t‚tjddddgd	d
ddgd	dddggd}|jdddgdd}| ¡ }|j}| ¡ r€t‚t	 
||¡ t	 t¡ t	 
| d¡| d¡¡ W d Q R X d S )N)ÚaÚ )Úb1Úc1)Úb2Úc2ÚbÚc)r#   r/   Údr   r1   r2   r	   r3   r4   r   )ÚcolumnsÚdata)r   r8   Úvalues)r   r   Zis_lexsortedr&   ÚpdZ	DataFrameZpivot_tableZreset_indexr8   r   r   Zassert_produces_warningr   r   )ZtuplesZlexsorted_miZdfZnot_lexsorted_mir   r   r   Útest_drop_not_lexsortedy   s    
&r<   )Únumpyr(   r   Zpandas.errorsr   Zpandasr;   r   r   Zpandas._testingZ_testingr   r   r+   r.   r<   r   r   r   r   Ú<module>   s   :