3
UdK4                 @   s  d dl Z d dlZd dlZd dlmZ d dljZej	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	j
de eg dedddgdeg dedddgdgdd Zdd Zdd Zdd Zej	j
dddgej	j
d dd!d!d"gidd!d"gidd d#gfdd!d!d"gidd!d"gidd d!gfd!d!d"gd!d!d$gd%d!d"gd!d$gd%dd d#gfd!d!d"gd!d!d$gd%d!d"gd!d$gd%dd d!gfgd&d' Zd(d) ZdS )*    N)	DataFramesubsetaBc          	   C   sT   t dddgdddgdddgd}tjd}tjt|d |j|  W d Q R X d S )Nr      )Ar   CzIndex(['a'], dtype='object'))match)r   reescapepytestZraisesKeyErrordrop_duplicates)r   dfmsg r   c/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/frame/methods/test_drop_duplicates.py0test_drop_duplicates_with_misspelled_column_name
   s    "
r   c              C   s  t ddddddddgddddddddgddddddddgtdd} | jd	}| d d }tj|| | jd	d
d}| jddg }tj|| | jd	dd}| jg  }tj|| t|dkst| jddddg }| jtj	d	dg}tj|| | jd	dg}tj|| | jdd
d}| jddddg }tj|| | jd dd}| jdg }tj|| | jd d d	ddgf }|j }|jd	dg}tj|| |jd
d}|jd	dgd
d}tj|| |jdd}|jd	dgdd}tj|| | jd}| j
ddg }tj|| | jdd
d}| j
d!d"g }tj|| | d jd| d< | jd}| j
ddg }tj|| | jdd
d}| j
d#d$g }tj|| t dddddddgdddddddgd} | j| jdk }tj| j | t ddgddgg} tj| j |  t d%dgdd&gg} tj| j |  tjtjjd d }t | |gd|d gg} tj| j |  t | |g||d gg} tj| j |  t dd tdD } | jdgdgd  gdd} x(d'D ] }| j|dj dkstqW d S )(Nfoobaronetwor         )AAAr   r   Dr   last)keep      Fr      r      r   Zint8E   	   )xyc             s   s   | ]}|gd  V  qdS )r$   Nr   ).0ir   r   r   	<genexpr>m   s    z'test_drop_duplicates.<locals>.<genexpr>   T)ignore_indexfirst)r   r   )r   r   r-   r.   r-   )r,   r   F)r   ranger   tmassert_frame_equalloclenAssertionErrornparrayilocZastypeindexZiinfoZint64maxappendZ
duplicatedsum)r   resultexpecteddf2r%   r   r   r   r   test_drop_duplicates   s    



*
r@   c              C   sd   t dddgdddgdddggddd	gd
} | j }tj||  | jd}| d d }tj|| d S )Nr   r   r!   r    r#   r   r   r   b)columns)r   r   r1   r2   )r   Zresult0Zresult1Z	expected1r   r   r   0test_drop_duplicates_with_duplicate_column_namest   s    *
rC   c              C   sZ  t ddddddddgddddddddgddddddddgtd	d
} | jd}| jddddg }tj|| | jddd}| jddddg }tj|| | jddd}| jddg }tj|| | jddg}| jddddddg }tj|| | jddgdd}| jddddddg }tj|| | jddgdd}| jddddg }tj|| d S )Nr   r   bazquxr   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r!   r   Fr   r    r#   )r   r0   r   r8   r1   r2   )r   r=   r>   r   r   r   !test_drop_duplicates_for_take_all   s.    
rF   c              C   s   t dddddddddgdddddddddgdd	d	d
d
d
d
d	d
gdtdi} | jd}| d d
 }tj|| | jddd}| jddg }tj|| | jddd}| jg  }t|dksttj|| | jdd	d
dg }| jd}tj|| d S )NAAABr   r   r   r   r   r   r   r   r   r   r   )r   r   r   Fr   r    )rG   rH   )rG   rH   )rG   rH   )rG   rH   rG   rH   )rI   r   )r   r0   r   r1   r2   r3   r4   r5   )r   r=   r>   r   r   r   test_drop_duplicates_tuple   s$    


rJ   r   )rB   r   r   )r9   c             C   s8   | j  }tj||  | j }|j dd tj||  d S )NT)inplace)r   r1   r2   copy)r   r=   r   r   r   test_drop_duplicates_empty   s
    rM   c              C   s  t d d ddddddgddddddddgdtjtjtjddddgtdd} | jd	}| jd
ddg }tj|| | jd	dd}| jdddg }tj|| | jd	dd}| jg  }tj|| t|d
kst	| jd	dg}| jd
dddg }tj|| | jd	dgdd}| jddddg }tj|| | jd	dgdd}| jdg }tj|| t ddddddddgddddddddgdtjtjtjddddgtdd} | jd}| d d }tj|| | jddd}| jddg }tj|| | jddd}| jg  }tj|| t|d
ks"t	| jddg}| jd
dddg }tj|| | jddgdd}| jddddg }tj|| | jddgdd}| jdg }tj|| d S )Nr   r   r   r   g      ?r   r   )r   r   r   r   r   r   r   r    r   )r   r   r   Fr   r!   r   r#   )
r   r6   nanr0   r   r3   r1   r2   r4   r5   )r   r=   r>   r   r   r   test_drop_duplicates_NA   s`    



rO   c           
   C   s4  t d d ddddddgdtjtjtjddddgd} | jd	}| jd
ddddg }tj|| | jd	dd}| jdddddg }tj|| | jd	dd}| jddg }tj|| | jd}| jd
dddg }tj|| | jddd}| jddddg }tj|| | jddd}| jddg }tj|| d S )Nr   r   rD   rE   g      ?g       @r    )r   r   r   r   r   r!   r   r   )r   r   r#   r   Fr   )r   r6   rN   r   r8   r1   r2   )r   r=   r>   r   r   r   $test_drop_duplicates_NA_for_take_all  s*     

rP   c              C   s  t ddddddddgddddddddgddddddddgtdd} | j }|jd	d
d}| d d }|}tj|| |d kst| j }|jd	dd
d}| jddg }|}tj|| |d kst| j }|jd	dd
d}| jg  }|}tj|| t|dks
t|d kst| j }|jd	dgd
d}| jddddg }|}tj|| |d ksbt| j }|jd	dgdd
d}| jddddg }|}tj|| |d kst| j }|jd	dgdd
d}| jdg }|}tj|| |d kst| jd d d	ddgf j }|j }|jd
d}|jd	dg}|}tj|| |d ksPt|j }|jdd
d}|jd	dgdd}|}tj|| |d kst|j }|jdd
d}|jd	dgdd}|}tj|| |d kstd S )Nr   r   r   r   r   r   r   )r   r   r   r   r   T)rK   r   )r   rK   r   r   Fr   r   r    r!   r   )r   )	r   r0   rL   r   r1   r2   r5   r3   r4   )origr   Zreturn_valuer>   r=   Zorig2r?   r   r   r   test_drop_duplicates_inplaceE  sz    
rR   rK   TFz4origin_dict, output_dict, ignore_index, output_indexr   r    r   r#   )r   r   c             C   s^   t |}t ||d}| r0|j }|j|| d n|j|| d}tj|| tj|t | d S )N)r9   )r+   rK   )r   rL   r   r1   r2   )rK   Zorigin_dictZoutput_dictr+   Zoutput_indexr   r>   Z	result_dfr   r   r   !test_drop_duplicates_ignore_index  s    rS   c             C   s0   t d| gddggtd}|j }tj|| d S )Nr   r   r   )Zdtype)r   objectr   r1   r2   )Znulls_fixturer   r=   r   r   r   *test_drop_duplicates_null_in_object_column  s    rU   )r
   Znumpyr6   r   Zpandasr   Zpandas._testingZ_testingr1   markZparametrizer   r@   rC   rF   rJ   rM   rO   rP   rR   rS   rU   r   r   r   r   <module>   s6   
"
`$J&P  .>