o
    ҷh                     @   s   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ejd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 sw   Y  tjtdd
 |  ddg W d    n1 sw   Y  tddg}tjtd	d
 |  | W d    n1 sw   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quxone)r            bar)r      r      r   r   )r
   r   r   r   )r   r   z^\('bar', 'two'\)$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indexdropped2expectedmixed_index r!   W/var/www/html/venv/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levelscodesnames)r   r)   r   r   )
get_loc	droplevelnamer   r   rangenparrayr-   equals)r   r   r   r   r!   r!   r"   test_droplevel_with_namesH   s    
 
	

r5   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 sw   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   r1   r2   r3   r/   r4   r   r   
ValueErrorr   )r   r   r   msgr!   r!   r"   test_droplevel_list^   s,    
"r9   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-   )r:   r@   rA   d)r   r<   r=   r   )r   r>   r?   r   )columnsdatar:   rC   )r   rD   values)r   r   _is_lexsortedpd	DataFramepivot_tablereset_indexrD   r   r   assert_produces_warningr   r   )tupleslexsorted_midfnot_lexsorted_mir!   r!   r"   test_drop_not_lexsorted|   s   "rQ   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 )	Nblahr0   daterB   z@labels \[Timestamp\('2001-01-01 00:00:00'\)\] not found in levelr   2001level)r   r   r   r   r   r   rH   	Timestamp)nulls_fixturemir8   r!   r!   r"   test_drop_with_nan_in_index   s
   "rZ   z(ignore::pandas.errors.PerformanceWarningc                  C   s4   t g d} | d}t dg}t|| d S )N)r   r
   r
   r   r[   r[   r\   )r   r   r   r   r   )rY   resultr   r!   r!   r"   'test_drop_with_non_monotonic_duplicates   s   
r^   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 sw   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 sw   Y  d S )N)r[   )r
   r
   )r   r
   zlabels \[4\] not found in levelr   r   r   rU   r   z!labels \[nan\] not found in levelr
   r   r[   z!labels \['a'\] not found in levelr:   )r   r   r   r   r   r   r2   nan)rY   r8   r!   r!   r"   1test_single_level_drop_partially_missing_elements   s(   "r`   c                  C   s8   t jdgdd} | g }tdgdd}t|| d S )N)r
   )r@   rB   r
   r@   )r0   )r   r   r/   r   r   r   )r   r]   r   r!   r!   r"   #test_droplevel_multiindex_one_level   s   
ra   )numpyr2   r   pandas.errorsr   pandasrH   r   r   pandas._testing_testingr   r#   r5   r9   rQ   rZ   markfilterwarningsr^   r`   ra   r!   r!   r!   r"   <module>   s    :

