o
    ŀg$                  	   @   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 s=J 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!   d/var/www/html/myenv/lib/python3.10/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 s7J 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r%|d d }|d d }t|j|d| |j|d}t|| ||usAJ d S )Nr   Fr      r   )r   r   r   lenr   r   r   r   )r   r   r)   r   r   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_uintfloat64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   J   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   )r5   r   r;   	cat_arrayinput1cattc1r!   r!   r"   cat_series_unused_categoryP   
   z3TestSeriesDropDuplicates.cat_series_unused_categoryc                 C   t   |}t g d}| }t|| | }t|||   | }|jdd}|d u s/J t|||   d S )N)FFFTTr   r   r   r   r   r   r   r5   rB   rA   r   resultr   r    r!   r!   r"   )test_drop_duplicates_categorical_non_boolZ      zBTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_boolc                 C   ~   |}t g d}|jdd}t|| |jdd}t|||   | }|jddd}|d u s4J t|||   d S )N)FFTFr   r   Tr   rF   rG   r!   r!   r"   2test_drop_duplicates_categorical_non_bool_keeplastj      zKTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool_keeplastc                 C   rK   )Nr$   Fr   Tr   rF   rG   r!   r!   r"   3test_drop_duplicates_categorical_non_bool_keepfalse|   rM   zLTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool_keepfalsec                 C   r7   )Nr8   r   )r	   r*   r
   r   r
   r*   r   r9   r<   )r5   r   r;   r>   input2r@   tc2r!   r!   r"   
cat_series   rC   z#TestSeriesDropDuplicates.cat_seriesc                 C   rD   )Nr   TrE   rF   r5   rQ   rP   r   rH   r   r    r!   r!   r"   *test_drop_duplicates_categorical_non_bool2   rJ   zCTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool2c                 C   rK   )Nr   r   r   Tr   rF   rR   r!   r!   r"   3test_drop_duplicates_categorical_non_bool2_keeplast      zLTestSeriesDropDuplicates.test_drop_duplicates_categorical_non_bool2_keeplastc                 C   rK   )Nr   Fr   Tr   rF   rR   r!   r!   r"   4test_drop_duplicates_categorical_non_bool2_keepfalse   rU   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 s6J t|||   t g d}t|jdd	| t|jdd	||   | }|jddd
}|d u smJ t|||   t g d}t|jdd	| t|jdd	||   | }|jddd
}|d u sJ t|||   d S )Nr'   TFr9   r$   rE   r%   r   r   r   r&   )r   r   r   r   r   r   r   )r5   r;   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 )NTFr9   )r   r	   r   )index)r   r   r   r   nanr   r   )r5   nulls_fixtureserrH   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)ignore_index)r	   r*   r
   )r   r   r   r   r5   r[   rH   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   r^   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 )Nr`   ar   )	r   ra   r   pd
ArrowDtypestringr   r   r   )r5   par[   rH   expecetdr!   r!   r"   "test_drop_duplicates_arrow_strings  s
   
z;TestSeriesDropDuplicates.test_drop_duplicates_arrow_stringsN)__name__
__module____qualname__r   fixturer   rB   rI   rL   rN   rQ   rS   rT   rV   rW   r\   r_   rb   ri   r!   r!   r!   r"   r.   I   s(    

	
	r.   )numpyr   r   pandasrd   r   r   pandas._testing_testingr   markparametrizer#   r(   listranger-   r.   r!   r!   r!   r"   <module>   s0    


