o
    թZh                     @   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Z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indexZdropped2expectedZmixed_index r   [/var/www/html/lang_env/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_namesH   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 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   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_midfZnot_lexsorted_mir   r   r   test_drop_not_lexsorted|   s   "rD   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
   "rJ   z(ignore::pandas.errors.PerformanceWarningc                  C   s4   t g d} | d}t dg}t|| d S )N)r   r	   r	   r
   rK   rK   rL   )r   r   r   r   r   )rI   resultr   r   r   r   'test_drop_with_non_monotonic_duplicates   s   
rN   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)rK   )r	   r	   )r
   r	   zlabels \[4\] not found in levelr   r   r   rF   r   z!labels \[nan\] not found in levelr	   r
   rK   z!labels \['a'\] not found in levelr5   )r   r   r   r   r   r   r-   nan)rI   r3   r   r   r   1test_single_level_drop_partially_missing_elements   s(   "rP   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   rM   r   r   r   r   #test_droplevel_multiindex_one_level   s   
rQ   )numpyr-   r   Zpandas.errorsr   ZpandasrB   r   r   Zpandas._testingZ_testingr   r    r0   r4   rD   rJ   markfilterwarningsrN   rP   rQ   r   r   r   r   <module>   s    :

