U
    *if;"                     @   s  d dl Zd dlZd dlmZmZ d dlmZ ej	
ddedddddddgfdedddddddgfdedddddddgfgdd	 Zej	
ddeddddgfdeddddgfdeddddgfgd
d Zej	
dg eedgdd ZG dd dZdd ZdS )    N)CategoricalSerieszkeep, expectedfirstFTlastc                 C   s   t dddddddgt| d}|jdkr4td t|j|d	| t|j|d	||   |	 }|j|d
d}|d kst
t|||   d S )N   r            dtypeboolz.tested separately in test_drop_duplicates_boolkeepTr   inplace)r   npr   pytestskiptmassert_series_equal
duplicateddrop_duplicatescopyAssertionError)any_numpy_dtyper   expectedtcscreturn_value r   c/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/series/methods/test_drop_duplicates.pytest_drop_duplicates   s    	 

r!   c                 C   sv   t ddddg}t|j| d| t|j| d||   | }|j| dd}t|||   |d ksrtd S )NTFr   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r    test_drop_duplicates_bool!   s    	r"   valuesr   c                 C   s   t |t| d}t dgt| dd}|jdkrJ|d d }|d d }t|j|d| |j|d}t|| ||k	std S )Nr
   Fr      r   )	r   r   r   lenr   r   r   r   r   )r   r   r#   r   r   Zresult_droppedr   r   r    "test_drop_duplicates_no_duplicates4   s    
r&   c                   @   s   e Zd Zejddddddgddd	 Zejd
d Zdd Zdd Zdd Z	ejdd Z
dd Zdd Zdd Zdd Zdd ZdS )TestSeriesDropDuplicatesint_ZuintZfloat_Zunicode_ztimedelta64[h]zdatetime64[D])paramsc                 C   s   |j S )N)param)selfrequestr   r   r    r   I   s    zTestSeriesDropDuplicates.dtypec                 C   sT   t jdddddgt |d}t jddddgt |d}t|||d}t|}|S Nr   r$   r   r	   r   r
   
categoriesorderedr   arrayr   r   r   )r+   r   r0   	cat_arrayZinput1cattc1r   r   r    cat_series_unused_categoryO   s
    z3TestSeriesDropDuplicates.cat_series_unused_categoryc                 C   sx   |}t ddddg}| }t|| | }t|||   | }|jdd}|d ksbtt|||   d S NFTr   r   r   r   r   r   r   r   r+   r6   r5   r   resultr   r   r   r   r    )test_drop_duplicates_categorical_non_boolY   s    zBTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_boolc                 C   s   |}t ddddg}|jdd}t|| |jdd}t|||   | }|jddd}|d ksltt|||   d S NFTr   r   r   r9   r:   r   r   r    2test_drop_duplicates_categorical_non_bool_keeplasti   s    zKTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool_keeplastc                 C   s   |}t ddddg}|jdd}t|| |jdd}t|||   | }|jddd}|d ksltt|||   d S NFTr   r   r9   r:   r   r   r    3test_drop_duplicates_categorical_non_bool_keepfalse{   s    zLTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool_keepfalsec                 C   sZ   t jdddddgt |d}t jdddddddgt |d}t|||d}t|}|S r-   r1   )r+   r   r0   r3   Zinput2r4   tc2r   r   r    
cat_series   s
    "z#TestSeriesDropDuplicates.cat_seriesc                 C   s~   |}t dddddddg}| }t|| | }t|||   | }|jdd}|d kshtt|||   d S r7   r9   r+   rB   rA   r   r;   r   r   r   r   r    *test_drop_duplicates_categorical_non_bool2   s    zCTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool2c                 C   s   |}t dddddddg}|jdd}t|| |jdd}t|||   | }|jddd}|d ksrtt|||   d S r=   r9   rC   r   r   r    3test_drop_duplicates_categorical_non_bool2_keeplast   s    zLTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool2_keeplastc                 C   s   |}t dddddddg}|jdd}t|| |jdd}t|||   | }|jddd}|d ksrtt|||   d S r?   r9   rC   r   r   r    4test_drop_duplicates_categorical_non_bool2_keepfalse   s    zMTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool2_keepfalsec                 C   sp  t tddddgddg|d}t ddddg}t| | t| ||   | }|jdd}|d ksttt|||   t ddddg}t|jdd| t|jdd||   | }|jddd}|d kstt|||   t ddddg}t|jdd| t|jdd||   | }|jddd}|d ksZtt|||   d S )NTFr.   r8   r   r   r   )r   r   r   r   r   r   r   r   )r+   r0   r   r   r   r   r   r   r    %test_drop_duplicates_categorical_bool   s8    
  z>TestSeriesDropDuplicates.test_drop_duplicates_categorical_boolc                 C   s`   t tdddd|gddgdd}| }t tddtjgddgdddddgd}t|| d S )NTFr.   r   r   r	   index)r   r   r   r   nanr   r   )r+   Znulls_fixtureZserr;   r   r   r   r    (test_drop_duplicates_categorical_bool_na   s    zATestSeriesDropDuplicates.test_drop_duplicates_categorical_bool_naN)__name__
__module____qualname__r   Zfixturer   r6   r<   r>   r@   rB   rD   rE   rF   rG   rK   r   r   r   r    r'   H   s    

	
	r'   c               	   C   s`   t ddddg} d}tjt|d | d}W 5 Q R X t dddgddd	gd
}t|| d S )NabczZIn a future version of pandas all arguments of Series.drop_duplicates will be keyword-only)matchr   r   r$   r   rH   )r   r   Zassert_produces_warningFutureWarningr   r   )smsgr;   r   r   r   r    )test_drop_duplicates_pos_args_deprecation   s    rV   )numpyr   r   Zpandasr   r   Zpandas._testingZ_testingr   markZparametrizer!   r"   listranger&   r'   rV   r   r   r   r    <module>   s0   


 0