o
    �¨Êh§8  ã                   @   sÎ  d dl m Z  d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z ej dddgddgg¡dd„ ƒZd	d
„ Zdd„ Zdd„ Zdd„ Zej deƒ eg d�eg d¢d�eg d�eg d¢d�g¡dd„ ƒZdd„ Zdd„ Zdd„ Zej dddg¡ej d d!g d"¢id!d#d$gidd d%gfd!g d"¢id!d#d$gidd d#gfg d"¢g d&¢d'œd#d$gd#d(gd'œdd d%gfg d"¢g d&¢d'œd#d$gd#d(gd'œdd d#gfg¡d)d*„ ƒƒZd+d,„ Zd-d.„ Zej d/d%gd%d0g d g¡d1d2„ ƒZdS )3é    )ÚdatetimeN)Ú	DataFrameÚNaTÚconcatÚsubsetÚaÚBc                 C   sd   t g d¢g d¢g d¢dœƒ}t d¡}tjt|d�� | | ¡ W d   ƒ d S 1 s+w   Y  d S )N)r   r   é   ©ÚAr   ÚCzIndex(['a'], dtype=©Úmatch)r   ÚreÚescapeÚpytestÚraisesÚKeyErrorÚdrop_duplicates)r   ÚdfÚmsg© r   úa/var/www/html/env/lib/python3.10/site-packages/pandas/tests/frame/methods/test_drop_duplicates.pyÚ0test_drop_duplicates_with_misspelled_column_name   s
   
"ÿr   c                  C   s¶  t g d¢g d¢g d¢tdƒdœƒ} |  d¡}| d d… }t ||¡ | jddd	�}| jd
dg }t ||¡ | jddd	�}| jg  }t ||¡ t|ƒdksPJ ‚| jg d¢ }|  t ddg¡¡}t ||¡ |  ddg¡}t ||¡ | jddd	�}| jg d¢ }t ||¡ | jddd	�}| jdg }t ||¡ | jd d …g d¢f }| ¡ }| ddg¡}t ||¡ |jdd	�}|jddgdd	�}t ||¡ |jdd	�}|jddgdd	�}t ||¡ |  d¡}| j	ddg }t ||¡ | jddd	�}| j	ddg }t ||¡ | d  
d¡| d< |  d¡}| j	ddg }t ||¡ | jddd	�}| j	ddg }t ||¡ t g d¢g d¢dœƒ} | j| jdk }t |  ¡ |¡ t ddgddggƒ} t |  ¡ | ¡ t ddgddggƒ} t |  ¡ | ¡ t tj¡jd d }t | |gd|d ggƒ} t |  ¡ | ¡ t | |g||d ggƒ} t |  ¡ | ¡ t dd „ td!ƒD ƒƒ} t| t dgdgd  gƒgd"d#�} d$D ]}| j|d	� ¡ dk�s×J ‚�qÈd S )%N©ÚfooÚbarr   r   r   r   r   r   ©Úoner   Útwor   r   r   r   r   ©r	   r	   é   r!   r!   r!   r	   r!   é   ©ÚAAAr   r   ÚDr$   r!   Úlast©Úkeepé   é   Fr   ©r   r	   r!   é   r   )r$   r   ©r   é   r)   r*   )r$   r   r   r   éþÿÿÿéÿÿÿÿÚint8ÚE)r*   r)   r,   r,   é   r"   r   )r   r)   r.   r.   é	   r	   r!   )ÚxÚyr,   r	   éüÿÿÿr3   c                 s   s   � | ]}|gd  V  qdS )r4   Nr   )Ú.0Úir   r   r   Ú	<genexpr>r   s   € z'test_drop_duplicates.<locals>.<genexpr>é   T©Úignore_index)Úfirstr&   F)r   Úranger   ÚtmÚassert_frame_equalÚlocÚlenÚnpÚarrayÚilocÚastypeÚindexÚiinfoÚint64Úmaxr   Ú
duplicatedÚsum)r   ÚresultÚexpectedÚdf2r5   r(   r   r   r   Útest_drop_duplicates   sˆ   üÿ
	


"ÿrQ   c                  C   s\   t g d¢g d¢g d¢gg d¢d�} |  ¡ }t || ¡ |  d¡}| d d… }t ||¡ d S )N)r	   r!   r.   )r,   r3   r)   )r,   r3   r*   )r   r   Úb©Úcolumnsr   r!   )r   r   r@   rA   )r   Úresult0Úresult1Ú	expected1r   r   r   Ú0test_drop_duplicates_with_duplicate_column_namesy   s   "
rX   c                  C   s  t g d¢g d¢g d¢tdƒdœƒ} |  d¡}| jg d¢ }t ||¡ | jddd	�}| jg d
¢ }t ||¡ | jddd	�}| jddg }t ||¡ |  ddg¡}| jg d¢ }t ||¡ | jddgdd	�}| jg d¢ }t ||¡ | jddgdd	�}| jg d¢ }t ||¡ d S )N)r   r   Úbazr   r   r   Úquxr   r   r    r"   r#   r$   )r   r	   r!   r)   r&   r'   )r!   r.   r)   r*   Fr!   r)   r   )r   r	   r!   r,   r3   r)   )r   r	   r!   r.   r)   r*   )r   r?   r   rF   r@   rA   ©r   rN   rO   r   r   r   Ú!test_drop_duplicates_for_take_all…   s2   üÿ
	r\   c                  C   sÈ   t g d¢g d¢g d¢tdƒdœƒ} |  d¡}| d d… }t ||¡ | jddd	�}| jd
dg }t ||¡ | jddd	�}| jg  }t|ƒdksJJ ‚t ||¡ | jg d¢ }|  d¡}t ||¡ d S )Nr   r   r    r"   )©ÚAAÚABr   r   r%   r]   r!   r&   r'   r)   r*   Fr   r+   )r]   r   )r   r?   r   r@   rA   rB   rC   r[   r   r   r   Útest_drop_duplicates_tuple©   s(   üÿ
	

r`   r   rS   r
   ©rH   c                 C   s8   |   ¡ }t || ¡ |  ¡ }|j dd� t || ¡ d S )NT©Úinplace)r   r@   rA   Úcopy)r   rN   r   r   r   Útest_drop_duplicates_emptyÆ   s
   re   c                  C   sf  t g d¢g d¢dtjtjtjddddgtdƒdœƒ} |  d¡}| jg d¢ }t ||¡ | jdd	d
�}| jg d¢ }t ||¡ | jddd
�}| jg  }t ||¡ t|ƒdksZJ ‚|  ddg¡}| jg d¢ }t ||¡ | jddgd	d
�}| jg d¢ }t ||¡ | jddgdd
�}| jdg }t ||¡ t g d¢g d¢dtjtjtjddddgtdƒdœƒ} |  d¡}| d d… }t ||¡ | jdd	d
�}| jddg }t ||¡ | jddd
�}| jg  }t ||¡ t|ƒdksòJ ‚|  ddg¡}| jg d¢ }t ||¡ | jddgd	d
�}| jg d¢ }t ||¡ | jddgdd
�}| jdg }t ||¡ d S )N)NNr   r   r   r   r   r   r   ç      ð?r	   r"   ©r   r   r   r%   r   )r   r!   r,   r&   r'   )r	   r)   r*   Fr   r   )r   r!   r,   r)   )r	   r.   r)   r*   r)   r   r   r!   r,   r*   )r   r	   r!   r3   )r	   r,   r)   r*   )	r   rD   Únanr?   r   rB   r@   rA   rC   r[   r   r   r   Útest_drop_duplicates_NAÚ   sh   üÿ
	
üÿ
	
ri   c               
   C   s  t g d¢dtjtjtjddddgdœƒ} |  d¡}| jg d¢ }t ||¡ | jddd	�}| jg d
¢ }t ||¡ | jddd	�}| jddg }t ||¡ |  d¡}| jg d¢ }t ||¡ | jddd	�}| jg d¢ }t ||¡ | jddd	�}| jddg }t ||¡ d S )N)NNr   r   r   rY   r   rZ   rf   g       @r,   )r   r   r   )r   r!   r,   r.   r*   r&   r'   )r	   r3   r.   r)   r*   Fr.   r*   r   )r   r	   r.   r)   )r,   r.   r)   r*   r)   )r   rD   rh   r   rF   r@   rA   r[   r   r   r   Ú$test_drop_duplicates_NA_for_take_all$  s.   þÿ

rj   c                  C   s¨  t g d¢g d¢g d¢tdƒdœƒ} |  ¡ }|jddd�}| d d	… }|}t ||¡ |d u s0J ‚|  ¡ }|jdd
dd�}| jddg }|}t ||¡ |d u sQJ ‚|  ¡ }|jdddd�}| jg  }|}t ||¡ t|ƒdksrJ ‚|d u sxJ ‚|  ¡ }|jddgdd�}| jg d¢ }|}t ||¡ |d u sšJ ‚|  ¡ }|jddgd
dd�}| jg d¢ }|}t ||¡ |d u s½J ‚|  ¡ }|jddgddd�}| jdg }|}t ||¡ |d u sßJ ‚| jd d …g d¢f  ¡ }| ¡ }|jdd�}| ddg¡}|}t ||¡ |d u �sJ ‚| ¡ }|jd
dd�}|jddgd
d�}|}t ||¡ |d u �s/J ‚| ¡ }|jddd�}|jddgdd�}|}t ||¡ |d u �sRJ ‚d S )Nr   r   r    r"   rg   r   Trb   r!   r&   )r(   rc   r)   r*   Fr   r   r+   r-   r
   r'   )r   r?   rd   r   r@   rA   rB   rC   )Úorigr   Úreturn_valuerO   rN   Úorig2rP   r   r   r   Útest_drop_duplicates_inplaceJ  s~   üÿ	
rn   rc   TFz4origin_dict, output_dict, ignore_index, output_indexr   )r!   r!   r,   r!   r,   r	   )r!   r!   r3   )r   r   r3   c                 C   s^   t |ƒ}t ||d�}| r| ¡ }|j|| d� n|j|| d�}t ||¡ t |t |ƒ¡ d S )Nra   )r=   rc   )r   rd   r   r@   rA   )rc   Úorigin_dictÚoutput_dictr=   Úoutput_indexr   rO   Ú	result_dfr   r   r   Ú!test_drop_duplicates_ignore_indexš  s   rs   c                 C   s0   t d| gddggtd�}| ¡ }t ||¡ d S )Nr	   r!   r   )Údtype)r   Úobjectr   r@   rA   )Únulls_fixturer   rN   r   r   r   Ú*test_drop_duplicates_null_in_object_columnµ  s   rw   c                 C   sž   t g d¢ddtjtjtjgddtjtjdgg d¢tdddƒtdddƒtdddƒttgdœƒ}|jD ]}||g j| d	�}|| j| d	�}t || 	¡ ¡ q1d S )
N)r	   r	   r	   r   r   r!   r,   Úthree)r	   r!   r,   r3   r3   iß  r	   )r   rR   ÚcÚdÚer'   )
r   rD   rh   r   r   rT   r   r@   rA   Úto_frame)r(   r   ÚcolumnÚdropped_frameÚdropped_seriesr   r   r   Ú(test_drop_duplicates_series_vs_dataframe¼  s$   


ûûÿ
ýr€   ÚargÚTruec                 C   sT   t dg d¢iƒ}d}tjt|d�� |j| d� W d   ƒ d S 1 s#w   Y  d S )Nr   )r	   r!   r	   r,   zC^For argument "ignore_index" expected type bool, received type .*.$r   r<   )r   r   r   Ú
ValueErrorr   )r�   r   r   r   r   r   Ú-test_drop_duplicates_non_boolean_ignore_indexÓ  s
   "ÿr„   )r   r   ÚnumpyrD   r   Úpandasr   r   r   Úpandas._testingÚ_testingr@   ÚmarkÚparametrizer   rQ   rX   r\   r`   re   ri   rj   rn   rs   rw   r€   r„   r   r   r   r   Ú<module>   sN    
	`$ûþ


J&P**üþ	