o
    ·¶ßdÌ  ã                   @   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   s˜  |   ddg¡}t ddg¡}|   |¡}| g d¢ }t ||¡ t ||¡ |   dg¡}| g d¢ }t ||¡ |   d¡}| g d¢ }t ||¡ t dg¡}tjtd	d
 |   dg¡ W d   ƒ n1 sfw   Y  tjtd	d
 |   |¡ W d   ƒ n1 s‚w   Y  tjtdd
 |   ddg¡ W d   ƒ n1 s w   Y  t ddg¡}tjtd	d
 |   |¡ W d   ƒ n1 sÃw   Y  | j |dd}| g d¢ }t ||¡ | j |dd}| g d¢ }t ||¡ | j ddgdd}| g d¢ }t ||¡ |   ddg¡}| g d¢ }t ||¡ g d¢}tjtdd
 |   |¡ W d   ƒ n	1 s2w   Y  | j |dd}| g d¢ }t ||¡ d S )N)ÚfooÚtwo©ZquxÚone)r   é   é   é   Úbar)r   é   r
   é   r   r   )r	   r
   r   r   )r   r   z^15$©Úmatchz^'two'$r   Úignore)Úerrors)r   r   r	   r
   r   r   )r   r   r	   r
   r   )r	   r
   r   )r   r   r   )Údropr   Úfrom_tuplesÚtmÚassert_index_equalÚpytestÚraisesÚKeyError)ÚidxÚdroppedÚindexZdropped2ÚexpectedZmixed_index© r   úX/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/indexes/multi/test_drop.pyÚ	test_drop   sZ   

ÿÿÿÿÿr    c                 C   s¸   | |   d¡ }| d¡}|jdksJ ‚tttdƒƒttdƒƒttdƒƒgt g d¢¡t g d¢¡t g d¢¡gg d¢d	}| d¡}|jd
ksIJ ‚| d¡}| d¡}| 	|¡sZJ ‚d S )Nr   r   Úsecondr   ©r   r   r   r	   r	   r	   r
   r
   ©r   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   ©r   r   Úthree©ZlevelsÚcodesÚnames)r   r&   r   r   )
Zget_locÚ	droplevelÚnamer   r   ÚrangeÚnpÚarrayr)   Úequals)r   r   r   r   r   r   r   Útest_droplevel_with_namesJ   s    
 ýù
	

r0   c                  C   sN  t ttdƒƒttdƒƒttdƒƒgt g d¢¡t g d¢¡t g d¢¡gg d¢d} | d d…  dd	g¡}| d d…  d¡ d
¡}| |¡sHJ ‚| d d…  g ¡}| d d… }| |¡s^J ‚d}tjt	|d | d d…  g d¢¡ W d   ƒ n1 s}w   Y  tjt
dd | d d…  d	dg¡ W d   ƒ d S 1 s w   Y  d S )Nr   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 leftr   z'Level four not found'Úfour)r   r   r,   r-   r.   r*   r/   r   r   Ú
ValueErrorr   )r   r   r   Úmsgr   r   r   Útest_droplevel_list`   s,    ýù
ÿÿ"ÿr4   c                  C   sÆ   g d¢} t j| ddgd}| ¡ sJ ‚tjg d¢g d¢g d¢gd}|jd	ddgd
d}| ¡ }|j}| ¡ r9J ‚t 	||¡ t 
t¡ t 	| d	¡| d	¡¡ W d   ƒ d S 1 s\w   Y  d S )N))ÚaÚ )Úb1Úc1)Úb2Úc2ÚbÚc©r)   )r5   r;   r<   Úd)r   r7   r8   r
   )r   r9   r:   r   )ÚcolumnsÚdatar5   r>   )r   r?   Úvalues)r   r   Z_is_lexsortedÚ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   ÿ"ÿrC   c                 C   sd   t jd| fgddgd}d}tjt|d |jt d¡dd W d   ƒ d S 1 s+w   Y  d S )	NZblahr+   Údater=   z@labels \[Timestamp\('2001-01-01 00:00:00'\)\] not found in levelr   Z2001©Úlevel)r   r   r   r   r   r   rB   Ú	Timestamp)Znulls_fixtureÚmir3   r   r   r   Útest_drop_with_nan_in_index•   s
   "ÿrI   c                  C   sh   t  g d¢¡} t ¡  t dt¡ |  d¡}W d   ƒ n1 s!w   Y  t  dg¡}t ||¡ d S )N)©r   r	   ©r	   r
   rJ   r   rJ   rK   )	r   r   ÚwarningsÚcatch_warningsÚsimplefilterr   r   r   r   )rH   Úresultr   r   r   r   Ú'test_drop_with_non_monotonic_duplicates   s   
þrP   c                  C   sz  t  g d¢¡} d}tjt|d | jddd W d   ƒ n1 s"w   Y  tjt|d | jddgdd W d   ƒ n1 sBw   Y  d}tjt|d | jtjgdd W d   ƒ n1 sdw   Y  tjt|d | jtjdd	d
gdd W d   ƒ n1 s‡w   Y  t  tjdfdg¡} d}tjt|d | jtjddgdd W d   ƒ d S 1 s¶w   Y  d S )N)rJ   )r	   r	   )r
   r	   zlabels \[4\] not found in levelr   r   r   rE   r   z!labels \[nan\] not found in levelr	   r
   rJ   z!labels \['a'\] not found in levelr5   )r   r   r   r   r   r   r-   Únan)rH   r3   r   r   r   Ú1test_single_level_drop_partially_missing_elements§   s(   ÿÿÿÿ"ÿrR   c                  C   s8   t jdgdd} |  g ¡}tdgdd}t ||¡ d S )N)r	   )r;   r=   r	   r;   )r+   )r   r   r*   r   r   r   )r   rO   r   r   r   r   Ú#test_droplevel_multiindex_one_level¼   s   
rS   )rL   Únumpyr-   r   Zpandas.errorsr   ZpandasrB   r   r   Zpandas._testingZ_testingr   r    r0   r4   rC   rI   rP   rR   rS   r   r   r   r   Ú<module>   s    :
