U
    sVÞcÌ  ã                   @   sŒ   d dl Z 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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 5 Q R X tjtdd |   |¡ W 5 Q R X tjtdd |   d
dg¡ W 5 Q R X t ddg¡}tjtdd |   |¡ W 5 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 5 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   úH/tmp/pip-unpacked-wheel-xj8nt62q/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_namesJ   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 5 Q R X tj	tdd | d d…  ddg¡ W 5 Q R X d S )Nr   r   r   r   r	   r   r   r!   r"   zSCannot remove 3 levels from an index with 3 levels: at least one level must be leftr   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(     ýù
ÿ"r0   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 5 Q R X d S )N)ÚaÚ )Úb1Úc1)Úb2Úc2ÚbÚc©r%   r1   Údr   r3   r4   r	   r5   r6   r   )ÚcolumnsÚdata)r   r;   Úvalues)r   r   Z_is_lexsortedr(   ÚpdZ	DataFrameZpivot_tableZreset_indexr;   r   r   Zassert_produces_warningr   r   )ZtuplesZlexsorted_miZdfZnot_lexsorted_mir   r   r   Útest_drop_not_lexsorted~   s    

 ÿr?   c              	   C   sN   t jd| fgddgd}d}tjt|d |jt d¡dd W 5 Q R X d S )	NZblahr'   Údater9   z@labels \[Timestamp\('2001-01-01 00:00:00'\)\] not found in levelr   Z2001©Úlevel)r   r   r   r   r   r   r>   Z	Timestamp)Znulls_fixtureÚmir/   r   r   r   Útest_drop_with_nan_in_index•   s    rD   c               	   C   sV   t  dddg¡} t ¡  t dt¡ |  d¡}W 5 Q R X t  dg¡}t ||¡ d S )N©r   r   )r   r	   r   )	r   r   ÚwarningsÚcatch_warningsÚsimplefilterr   r   r   r   )rC   Úresultr   r   r   r   Ú'test_drop_with_non_monotonic_duplicates   s    
rJ   c               	   C   s  t  dddg¡} d}tjt|d | jddd W 5 Q R X tjt|d | jd	dgdd W 5 Q R X d
}tjt|d | jtjgdd W 5 Q R X tjt|d | jtjd	ddgdd W 5 Q R X t  tjd	fdg¡} d}tjt|d | jtjd	dgdd W 5 Q R X d S )NrE   )r   r   )r	   r   zlabels \[4\] not found in levelr   r   r   rA   r   z!labels \[nan\] not found in levelr   r	   z!labels \['a'\] not found in levelr1   )r   r   r   r   r   r   r*   Únan)rC   r/   r   r   r   Ú1test_single_level_drop_partially_missing_elements§   s    "rL   c                  C   s8   t jdgdd} |  g ¡}tdgdd}t ||¡ d S )N)r   )r7   r9   r   r7   )r'   )r   r   r&   r   r   r   )r   rI   r   r   r   r   Ú#test_droplevel_multiindex_one_level¼   s    
rM   )rF   Znumpyr*   r   Zpandas.errorsr   Zpandasr>   r   r   Zpandas._testingZ_testingr   r   r-   r0   r?   rD   rJ   rL   rM   r   r   r   r   Ú<module>   s   :
