U
    fª/e¶  ã                   @   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s„t
‚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   úT/tmp/pip-unpacked-wheel-tiezk1ph/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	s‚t‚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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_series1O   s
    z$TestSeriesDropDuplicates.cat_series1c                 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_keepfalsey   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_series2‰   s
    "z$TestSeriesDropDuplicates.cat_series2c                 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sæt‚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_boolN)Ú__name__Ú
__module__Ú__qualname__r   Zfixturer   r6   r<   r>   r@   rB   rD   rE   rF   rG   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   )Úindex)r   r   Zassert_produces_warningÚFutureWarningr   r   )ÚsÚmsgr;   r   r   r   r    Ú)test_drop_duplicates_pos_args_deprecationä   s    ÿrS   )Znumpyr   r   Zpandasr   r   Zpandas._testingZ_testingr   ÚmarkZparametrizer!   r"   ÚlistÚranger&   r'   rS   r   r   r   r    Ú<module>   s0   ýþ
ýþ

 