a
    Pªf$  ã                	   @   sè   d dl Z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g d¢ƒfdeg d¢ƒfdeg d	¢ƒfg¡d
d„ ƒZej
 ddeg d¢ƒfdeg d¢ƒfdeg d¢ƒfg¡dd„ ƒZej
 dg eedƒƒg¡dd„ ƒZG dd„ dƒZdS )é    N)ÚCategoricalÚSerieszkeep, expectedÚfirst©FFFFTTFÚlast©FTTFFFFF©FTTFTTFc                 C   s   t g d¢t | ¡d}|jdkr*t d¡ t |j|d|¡ t |j|d||  ¡ | 	¡ }|j|dd}|d u szJ ‚t |||  ¡ d S )N)é   r   é   é   r
   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)Úany_numpy_dtyper   ÚexpectedÚtcÚscÚreturn_value© r!   úi/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/series/methods/test_drop_duplicates.pyÚtest_drop_duplicates   s    	

r#   ©FFTT©TTFF©TTTTc                 C   sr   t g d¢ƒ}t |j| d|¡ t |j| d||  ¡ | ¡ }|j| dd}t |||  ¡ |d u snJ ‚d S )N©TFTFr   Tr   )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 ||¡ ||us‚J ‚d S )Nr   Fr   é   r   )r   r   r   Úlenr   r   r   r   )r   r   r)   r   r   Zresult_droppedr!   r!   r"   Ú"test_drop_duplicates_no_duplicates5   s    
r,   c                   @   s˜   e Zd Zejg d¢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d„ Zdd„ Zdd„ ZdS ) ÚTestSeriesDropDuplicates)Úint_ZuintZfloat64Zstr_ztimedelta64[h]zdatetime64[D])Úparamsc                 C   s   |j S )N)Úparam)ÚselfÚrequestr!   r!   r"   r   J   s    zTestSeriesDropDuplicates.dtypec                 C   sJ   t jg d¢t  |¡d}t jg d¢t  |¡d}t|||d}t|ƒ}|S )N©r	   r*   r
   r   r   r   )r	   r*   r
   r
   ©Ú
categoriesÚordered©r   Úarrayr   r   r   )r1   r   r6   Ú	cat_arrayZinput1ÚcatÚtc1r!   r!   r"   Úcat_series_unused_categoryP   s
    z3TestSeriesDropDuplicates.cat_series_unused_categoryc                 C   st   |}t g d¢ƒ}| ¡ }t ||¡ | ¡ }t |||  ¡ | ¡ }|jdd}|d u s^J ‚t |||  ¡ d S )N)FFFTT©r   ©r   r   r   r   r   r   ©r1   r<   r;   r   Úresultr   r    r!   r!   r"   Ú)test_drop_duplicates_categorical_non_boolZ   s    zBTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_boolc                 C   s~   |}t g d¢ƒ}|jdd}t ||¡ |jdd}t |||  ¡ | ¡ }|jddd}|d u shJ ‚t |||  ¡ d S )N)FFTFr   r   Tr   r>   r?   r!   r!   r"   Ú2test_drop_duplicates_categorical_non_bool_keeplastj   s    zKTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool_keeplastc                 C   s~   |}t g d¢ƒ}|jdd}t ||¡ |jdd}t |||  ¡ | ¡ }|jddd}|d u shJ ‚t |||  ¡ d S )Nr$   Fr   Tr   r>   r?   r!   r!   r"   Ú3test_drop_duplicates_categorical_non_bool_keepfalse|   s    zLTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool_keepfalsec                 C   sJ   t jg d¢t  |¡d}t jg d¢t  |¡d}t|||d}t|ƒ}|S )Nr3   r   )r	   r*   r
   r   r
   r*   r   r4   r7   )r1   r   r6   r9   Zinput2r:   Útc2r!   r!   r"   Ú
cat_seriesŽ   s
    z#TestSeriesDropDuplicates.cat_seriesc                 C   st   |}t g d¢ƒ}| ¡ }t ||¡ | ¡ }t |||  ¡ | ¡ }|jdd}|d u s^J ‚t |||  ¡ d S )Nr   Tr=   r>   ©r1   rE   rD   r   r@   r   r    r!   r!   r"   Ú*test_drop_duplicates_categorical_non_bool2˜   s    zCTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool2c                 C   s~   |}t g d¢ƒ}|jdd}t ||¡ |jdd}t |||  ¡ | ¡ }|jddd}|d u shJ ‚t |||  ¡ d S )Nr   r   r   Tr   r>   rF   r!   r!   r"   Ú3test_drop_duplicates_categorical_non_bool2_keeplast¨   s    zLTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool2_keeplastc                 C   s~   |}t g d¢ƒ}|jdd}t ||¡ |jdd}t |||  ¡ | ¡ }|jddd}|d u shJ ‚t |||  ¡ d S )Nr   Fr   Tr   r>   rF   r!   r!   r"   Ú4test_drop_duplicates_categorical_non_bool2_keepfalse¸   s    zMTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool2_keepfalsec                 C   s`  t tg d¢ddg|dƒ}t g d¢ƒ}t | ¡ |¡ t | ¡ ||  ¡ | ¡ }|jdd}|d u slJ ‚t |||  ¡ t g d¢ƒ}t |jdd	|¡ t |jdd	||  ¡ | ¡ }|jddd
}|d u sÚJ ‚t |||  ¡ t g d¢ƒ}t |jdd	|¡ t |jdd	||  ¡ | ¡ }|jddd
}|d u sJJ ‚t |||  ¡ d S )Nr'   TFr4   r$   r=   r%   r   r   r   r&   )r   r   r   r   r   r   r   )r1   r6   r   r   r   r    r!   r!   r"   Ú%test_drop_duplicates_categorical_boolÈ   s4    ÿÿ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g d¢d}t ||¡ d S )NTFr4   )r   r	   r   )Úindex)r   r   r   r   Únanr   r   )r1   Znulls_fixtureÚserr@   r   r!   r!   r"   Ú(test_drop_duplicates_categorical_bool_naç   s    ýÿþzATestSeriesDropDuplicates.test_drop_duplicates_categorical_bool_nac                 C   s4   t g d¢ƒ}|jdd}t g d¢ƒ}t ||¡ d S )N)r	   r*   r*   r
   T)Zignore_index)r	   r*   r
   )r   r   r   r   ©r1   rM   r@   r   r!   r!   r"   Ú!test_drop_duplicates_ignore_index÷   s    z:TestSeriesDropDuplicates.test_drop_duplicates_ignore_indexc                 C   sB   t  d¡ tg d¢dd}| ¡ }tg d¢dd}t ||¡ d S )NÚpyarrow)TFNFzbool[pyarrow]r   )TFN)r   Úimportorskipr   r   r   r   rO   r!   r!   r"   Útest_duplicated_arrow_dtypeþ   s
    
z4TestSeriesDropDuplicates.test_duplicated_arrow_dtypec                 C   sT   t  d¡}tddgt | ¡ ¡d}| ¡ }tdgt | ¡ ¡d}t ||¡ d S )NrQ   Úar   )	r   rR   r   ÚpdZ
ArrowDtypeÚstringr   r   r   )r1   ÚparM   r@   Zexpecetdr!   r!   r"   Ú"test_drop_duplicates_arrow_strings  s
    
z;TestSeriesDropDuplicates.test_drop_duplicates_arrow_stringsN)Ú__name__Ú
__module__Ú__qualname__r   Zfixturer   r<   rA   rB   rC   rE   rG   rH   rI   rJ   rN   rP   rS   rX   r!   r!   r!   r"   r-   I   s&   ÿ

	
	r-   )Únumpyr   r   ZpandasrU   r   r   Zpandas._testingZ_testingr   ÚmarkZparametrizer#   r(   ÚlistÚranger,   r-   r!   r!   r!   r"   Ú<module>   s.   ýþ
ýþ

