U
    ÎZjôD ã                   @   s  d dl m Z  d dlmZ d dlZd dlZd dlZd dlmZ	m
Z d dlmZ d dlmZ d dlm  mZ d dlmZmZmZmZmZ d dlmZ d dlZd d	lmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z2 d dl3m4  m5Z d d
l6m7Z7 d dl8m4  m9Z: G dd„ dƒZ;G dd„ dƒZ<G dd„ dƒZ=G dd„ dƒZ>G dd„ dƒZ?G dd„ dƒZ@G dd„ dƒZAdd„ ZBG dd„ dƒZCdd„ ZDdd „ ZEd!d"„ ZFd#d$„ ZGd%d&„ ZHd'd(„ ZIG d)d*„ d*ƒZJG d+d,„ d,ƒZKejL Md-ejNejNg¡d.d/„ ƒZOdS )0é    )Údatetime)ÚpermutationsN)ÚalgosÚ	hashtable)Úpa_version_under7p0)ÚPerformanceWarning)Úis_bool_dtypeÚis_complex_dtypeÚis_float_dtypeÚis_integer_dtypeÚis_object_dtype)ÚCategoricalDtype)ÚCategoricalÚCategoricalIndexÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalIndexÚ
MultiIndexÚNaTÚPeriodÚPeriodIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚtimedelta_rangeÚto_datetimeÚto_timedelta)ÚDatetimeArrayc                   @   s  e Zd Zej dddg¡dd„ ƒZdd„ Zej dd	d
dg¡dd„ ƒZdd„ Z	dd„ Z
dd„ Zdd„ Zej ddddddgdddddgddddgfdddddgdddddgddddgfddddgddddgdddgfg¡d d!„ ƒZd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zej dddg¡d2d3„ ƒZej dddg¡d4d5„ ƒZd6d7„ Zej d8ejdddgd9d:�ejd;dd;gd<d:�ejd=d>d=gd?d:�g¡d@dA„ ƒZej dBejddddgd9d:�dfejddddgd9d:�dfejd;dd;dgd<d:�d;fejdd;ddgd<d:�dfejdCdDdCdEged:�dCfejdFdGdFdHged:�dFfejdGdFdGdHged:�dGfg¡dIdJ„ ƒZej dddg¡ej dd
ddKg¡ejjdLejdEdCd	dEged:�ejdEdCged:�fejddejdgdMd:�ejddgdMd:�fgdNdOgdP�dQdR„ ƒƒƒZ ej ddCd	dEdCgejddddge !dS¡d:�ejdCejdEged:�fdCejdEdCgejddddge !dS¡d:�ejdCejdEged:�fg¡dTdU„ ƒZ"ej ddd	ddgejddddge !dS¡d:�ejdejdgdVd:�fdejddgejddddge !dS¡d:�ejdejdgej#d:�fg¡dWdX„ ƒZ$d	S )YÚTestFactorizeÚsortTFc           	   	      s
  |}t  t|o"to"t|jddƒdk¡� |j|d�\}}W 5 Q R X t}t|t	ƒrVt	j
}|| ¡ ƒ}t|tƒrŠ|jtkrŠ|jtkrŠ| t¡}|rÀt  tto¨t|jddƒdk¡� | ¡ }W 5 Q R X t|ƒ‰ ‡ fdd„|D ƒ}tj|tjd�}t  ||¡ t j||dd	� d S )
NZstorageÚ Zpyarrow©r!   c                    s   g | ]}ˆ   |¡‘qS © ©Úindex)Ú.0Úval©Zexpected_uniques_listr$   úZ/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/test_algos.pyÚ
<listcomp>T   s     z0TestFactorize.test_factorize.<locals>.<listcomp>©ÚdtypeT©Úexact)ÚtmZmaybe_produces_warningr   r   Úgetattrr-   Ú	factorizer   Ú
isinstancer   Úfrom_tuplesÚuniqueÚboolÚobjectÚastypeZsort_valuesÚlistÚnpÚasarrayÚintpÚassert_numpy_array_equalÚassert_index_equal)	ÚselfÚindex_or_series_objr!   ÚobjZresult_codesZresult_uniquesÚconstructorÚexpected_uniquesÚexpected_codesr$   r)   r*   Útest_factorize4   s>    ÿü
ÿþý
þzTestFactorize.test_factorizec                 C   sp   t  dddt jg¡}t|ƒ}|jdd�\}}t jddddgt jd�}tddt jgƒ}t ||¡ t 	||¡ d S )	Né   é   F©Zuse_na_sentinelr   r,   ç      ð?ç       @)
r:   ÚarrayÚnanr   r2   r<   r   r0   r=   r>   )r?   ÚvaluesÚserÚcodesÚuniquesrD   rC   r$   r$   r*   Ú+test_series_factorize_use_na_sentinel_falseZ   s    z9TestFactorize.test_series_factorize_use_na_sentinel_falseÚna_sentinelNéÿÿÿÿiöÿÿÿc              	   C   sr   |d krd}n|dkrd}nd}t jt|d�� tj||d� W 5 Q R X t jt|d�� |j|d� W 5 Q R X d S )Nz+Specifying `na_sentinel=None` is deprecatedrS   ú)Specifying `na_sentinel=-1` is deprecatedzDSpecifying the specific value to use for `na_sentinel` is deprecated©Úmatch)rR   )r0   Úassert_produces_warningÚFutureWarningÚpdr2   )r?   rR   r@   Úmsgr$   r$   r*   Útest_depr_na_sentinelf   s    z#TestFactorize.test_depr_na_sentinelc              
   C   sJ  t  ddddddddg¡\}}t |tjdddgtd�¡ t jddddddddgdd�\}}tjdddddd	d	d	gtjd�}t ||¡ tjdddgtd�}t ||¡ tjd
tjd�d d d… }t  |¡\}}tjddd	ddgtjd�}t ||¡ tjddd	ddg|j	d�}t ||¡ t j|dd�\}}tjddd	ddgtjd�}t ||¡ tjddd	ddg|j	d�}t ||¡ t d¡d d d… }t  |¡\}}tjddd	ddgtjd�}t ||¡ tjdddddg|j	d�}t ||¡ t j|dd�\}}tjddd	ddgtjd�}t ||¡ tjdddddg|j	d�}t ||¡ d S )NÚaÚbÚcr,   Tr#   r   rF   rG   é   rS   é   é   ç      @ç      @g      @rJ   rI   ç        )
r   r2   r0   r=   r:   rK   r7   r<   Úaranger-   )r?   rO   rP   ÚexpÚarrr$   r$   r*   Ú
test_basict   s@     ÿ
 zTestFactorize.test_basicc                 C   sÈ   t ddtjddtjgƒ}t |¡\}}tjddddddgtjd	�}t 	||¡ t
dddtjgƒ}t ||¡ tj|d
d�\}}tjddddddgtjd	�}t 	||¡ t
dtjddgƒ}t ||¡ d S )NÚAÚBg…ëQ¸	@r   rS   rF   rG   r`   r,   Tr#   )r   r:   rL   Úinfr   r2   rK   r<   r0   r=   r   r>   )r?   ÚxrO   rP   rf   r$   r$   r*   Ú
test_mixed�   s    zTestFactorize.test_mixedc                 C   sN  t dƒ}t dƒ}t||||||gƒ}t |¡\}}tjddddddgtjd�}t ||¡ t	||gƒ}t 
||¡ tj|dd�\}}tjddddddgtjd�}t ||¡ t	||gƒ}t 
||¡ tdd	d
�}tdd	d
�}t||||||gƒ}t |¡\}}tjddddddgtjd�}t ||¡ t 
|t||gƒ¡ tj|dd�\}}tjddddddgtjd�}t ||¡ t 
|t||gƒ¡ tdƒ}tdƒ}t|||||||gƒ}t |¡\}}tjdddddddgtjd�}t ||¡ t 
|t||gƒ¡ tj|dd�\}}tjdddddddgtjd�}t ||¡ t 
|t||gƒ¡ d S )Nz20130101 09:00:00.00004Ú20130101r   rF   r,   Tr#   Z201302ÚM©ÚfreqZ201303z1 day 1 minú1 day)r   r   r   r2   r:   rK   r<   r0   r=   r   r>   r   r   r   )r?   Zv1Zv2rl   rO   rP   rf   r$   r$   r*   Útest_datelike®   sF    zTestFactorize.test_datelikec                 C   sü   t jdddt jgdd�}t t|ƒ¡}dD ]\}|j|d|d�}t jddd|gd	d�}tt|ƒƒtt|ƒƒkspt‚t	 
t |¡||k¡ q*t jdt jdgdd�}d
}|j|d|d�}t jdd
dgd	d�}tt|ƒƒtt|ƒƒksât‚t	 
t |¡||k¡ d S )NrF   rG   ÚOr,   )rS   é   T©r!   rR   r   Zint32rS   F)r:   rK   rL   ÚhtZObjectFactorizerÚlenr2   ÚsetÚAssertionErrorr0   r=   rY   Úisna)r?   ÚkeyZrizerrR   ÚidsÚexpectedr$   r$   r*   Útest_factorize_nanß   s    z TestFactorize.test_factorize_nanz&data, expected_codes, expected_uniques©rF   rF   )rF   rG   ©r   r   Znonsenser   rF   rG   r`   )rF   rG   r`   c                 C   sD   t  |¡\}}t |tj|tjd�¡ tj|t	d�}t ||¡ d S ©Nr,   )
rY   r2   r0   r=   r:   rK   r<   ÚcomZasarray_tuplesafer7   )r?   ÚdatarD   rC   rO   rP   Zexpected_uniques_arrayr$   r$   r*   Útest_factorize_tuple_listö   s    z'TestFactorize.test_factorize_tuple_listc              	   C   sV   t jdd„ tdƒD ƒtd�}d}tjt|d�� tj|d d d… dd	� W 5 Q R X d S )
Nc                 S   s   g | ]}t |ƒ‘qS r$   )Úcomplex)r'   Úir$   r$   r*   r+     s     z6TestFactorize.test_complex_sorting.<locals>.<listcomp>é   r,   z,'[<>]' not supported between instances of .*rU   rS   Tr#   )	r:   rK   Úranger7   ÚpytestÚraisesÚ	TypeErrorr   r2   )r?   Zx17rZ   r$   r$   r*   Útest_complex_sorting  s    z"TestFactorize.test_complex_sortingc                 C   sn   |}t jddddg|d�}t jddddgt jd�}t jddg|d�}t |¡\}}t ||¡ t ||¡ d S )NrF   rG   r,   r   )r:   rK   r<   r   r2   r0   r=   )r?   Zany_real_numpy_dtyper-   r„   rD   rC   rO   rP   r$   r$   r*   Útest_numeric_dtype_factorize  s    z*TestFactorize.test_numeric_dtype_factorizec                 C   s„   t jddddddgt jd�}|j|d� t jddddddgt jd�}t jdddgt jd�}t |¡\}}t ||¡ t ||¡ d S )	NrI   g    „×—Ag:Œ0âŽyE>r,   ©Úwriter   rF   rG   )	r:   rK   Úfloat64Úsetflagsr<   r   r2   r0   r=   ©r?   Úwritabler„   rD   rC   rO   rP   r$   r$   r*   Útest_float64_factorize"  s    z$TestFactorize.test_float64_factorizec                 C   sv   t jdddgt jd�}|j|d� t jdddgt jd�}t jddgt jd�}t |¡\}}t ||¡ t ||¡ d S )Nl   ÿÿÿÿ rF   r,   r�   r   )	r:   rK   Úuint64r’   r<   r   r2   r0   r=   r“   r$   r$   r*   Útest_uint64_factorize,  s    z#TestFactorize.test_uint64_factorizec                 C   sv   t jdddgt jd�}|j|d� t jdddgt jd�}t jddgt jd�}t |¡\}}t ||¡ t ||¡ d S )Nl   ÿÿÿÿ ìûÿÿÿ         r,   r�   r   rF   )	r:   rK   Úint64r’   r<   r   r2   r0   r=   r“   r$   r$   r*   Útest_int64_factorize6  s    z"TestFactorize.test_int64_factorizec                 C   s|   t jdddddgtd�}|j|d� t jdddddgt jd�}t jdddgtd�}t |¡\}}t ||¡ t ||¡ d S )	Nr\   r^   r]   r,   r�   r   rF   rG   )	r:   rK   r7   r’   r<   r   r2   r0   r=   r“   r$   r$   r*   Útest_string_factorize@  s    z#TestFactorize.test_string_factorizec              	   C   sŠ   t jddd t jddtdgtd�}|j|d� t jdddddd	ddgt jd�}t jdddgtd�}t |¡\}}t	 
||¡ t	 
||¡ d S )
Nr\   r^   r]   r,   r�   r   rF   rS   rG   )r:   rK   rL   r   r7   r’   r<   r   r2   r0   r=   r“   r$   r$   r*   Útest_object_factorizeJ  s      z#TestFactorize.test_object_factorizec                 C   sj   t  t  d¡g¡}|j|d� t jdgt jd�}t jdgdd�}t |¡\}}t ||¡ t ||¡ d S )Nz2020-01-01T00:00:00.000r�   r   r,   z2020-01-01T00:00:00.000000000údatetime64[ns])	r:   rK   Ú
datetime64r’   r<   rY   r2   r0   r=   r“   r$   r$   r*   Útest_datetime64_factorizeT  s     ÿz'TestFactorize.test_datetime64_factorizec                 C   sš   t j tdƒ¡}tjdtjd�|f}tj||d�}t	 
|d |d ¡ t	j|d |d dd� |j|d�}t	 
|d |d ¡ t	j|d |d dd� d S )Né
   r,   r#   r   rF   Tr.   ©rY   Ú
RangeIndexZ
from_ranger‰   r:   re   r<   r   r2   r0   r=   r>   )r?   r!   Úrir~   Úresultr$   r$   r*   Útest_factorize_rangeindexa  s    z'TestFactorize.test_factorize_rangeindexc                 C   sÜ   t j tdƒ¡}tjdtjd�|f}|d d d… }|d |f}|rf|d d d d… |d d d d… f}tj||d�}t	 
|d |d ¡ t	j|d |d dd� |j|d�}t	 
|d |d ¡ t	j|d |d dd� d S )	Nr    r,   rS   r   rF   r#   Tr.   r¡   )r?   r!   r£   r~   Zri2r¤   r$   r$   r*   Ú$test_factorize_rangeindex_decreasingo  s    $z2TestFactorize.test_factorize_rangeindex_decreasingc              	   C   sb   t jdddgt jd�}tjtdd�� tj|dd� W 5 Q R X t 	d¡� t |¡ W 5 Q R X d S )	Nì            rF   r,   zgot an unexpected keywordrU   T)ÚorderF)
r:   rK   r–   rŠ   r‹   rŒ   r   r2   r0   rW   )r?   r„   r$   r$   r*   Útest_deprecate_order‚  s
    z"TestFactorize.test_deprecate_orderr„   Úu8r,   r˜   Úi8Z__nan__Úfoor7   c                 C   sL   t  |¡\}}|ddg }tjdddgtjd�}t ||¡ t ||¡ d S )Nr   rF   r,   )r   r2   r:   rK   r<   r0   r=   )r?   r„   rO   rP   rC   rD   r$   r$   r*   Ú,test_parametrized_factorize_na_value_default‹  s
    
z:TestFactorize.test_parametrized_factorize_na_value_defaultzdata, na_valuer\   r"   r]   r$   ©r\   rF   )r\   rG   c                 C   sR   t j||d�\}}|ddg }tjddddgtjd�}t ||¡ t ||¡ d S )N)Úna_valuerF   r`   rS   r   r,   )r   Zfactorize_arrayr:   rK   r<   r0   r=   )r?   r„   r¯   rO   rP   rC   rD   r$   r$   r*   Ú$test_parametrized_factorize_na_value›  s
    z2TestFactorize.test_parametrized_factorize_na_valueéd   zdata, uniquesZInt64Znumpy_arrayZextension_array)r}   c           	   	   C   sº   |dkrd}nd}t jt|d�� tj|||d�\}}W 5 Q R X |rhtjdd|dgtjd�}t |¡}ntjdd|dgtjd�}|}t  	||¡ t
|tjƒrªt  	||¡ nt  ||¡ d S )	NrS   rT   z9the specific value to use for `na_sentinel` is deprecatedrU   rv   rF   r   r,   )r0   rW   rX   r   r2   r:   rK   r<   Z	safe_sortr=   r3   ÚndarrayÚassert_extension_array_equal)	r?   r!   rR   r„   rP   rZ   rO   rD   rC   r$   r$   r*   Útest_factorize_na_sentinel®  s    z(TestFactorize.test_factorize_na_sentinelr<   c                 C   s6   t j|dd�\}}tj||dd� tj||dd� d S ©NFrH   T©Z
strict_nan©r   r2   r0   r=   ©r?   r„   rD   rC   rO   rP   r$   r$   r*   Ú+test_object_factorize_use_na_sentinel_falseÑ  s    z9TestFactorize.test_object_factorize_use_na_sentinel_falsert   c                 C   s6   t j|dd�\}}tj||dd� tj||dd� d S rµ   r·   r¸   r$   r$   r*   Ú(test_int_factorize_use_na_sentinel_falseè  s    z6TestFactorize.test_int_factorize_use_na_sentinel_false)%Ú__name__Ú
__module__Ú__qualname__rŠ   ÚmarkÚparametrizerE   rQ   r[   rh   rm   rs   r   r…   r�   rŽ   r•   r—   rš   r›   rœ   rŸ   r¥   r¦   r©   r:   rK   r­   r7   r°   rY   rL   r´   r-   r¹   r‘   rº   r$   r$   r$   r*   r    3   sÀ   
%
)1
ý
ýõþ
	






	ýþ
ùþ
þþû
ô
ýýúþ

ýýúþr    c                	   @   sü   e Z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d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej ddejdd ged!�fd"ejd#ged!�fg¡d$d%„ ƒZd&d'„ Zd(d)„ Zd*d+„ Zej d,ejeg¡d-d.„ ƒZd/d0„ Zd1d2„ Zd3S )4Ú
TestUniquec                 C   s0   t jjdddd�}t |¡}t|t jƒs,t‚d S )Nr   r±   é2   ©Úsize)r:   ÚrandomÚrandintr   r5   r3   r²   rz   ©r?   rg   r¤   r$   r$   r*   Ú	test_ints  s    
zTestUnique.test_intsc                 C   s6   t jjdddd� d¡}t |¡}t|t jƒs2t‚d S )Nr   r±   rÁ   rÂ   rt   )	r:   rÄ   rÅ   r8   r   r5   r3   r²   rz   rÆ   r$   r$   r*   Útest_objects  s    
zTestUnique.test_objectsc                 C   s.   dddddg}t dƒD ]}tt |¡ƒ qd S )Nri   rj   ÚCÚDÚEéè  )r‰   rx   r   r5   )r?   Úlstr‡   r$   r$   r*   Útest_object_refcount_bug  s    z#TestUnique.test_object_refcount_bugc                 C   sb   t  t d¡ d¡t t d¡d¡g¡}|j}| ¡  | d¡}t 	|¡}| ¡  t
 ||¡ d S )Nr_   rG   )r   Zfrom_arraysr:   re   ÚrepeatÚtilerM   r!   rY   r5   r0   Úassert_almost_equal)r?   Zmindexr~   r¤   r$   r$   r*   Útest_on_index_object  s     ÿ

zTestUnique.test_on_index_objectc                 C   s$  |t jt j kr$dddg}ddg}n¼t|ƒr@dddg}ddg}n t|ƒr\dddg}ddg}n„t|ƒr–tddƒtddƒtddƒg}tddƒtddƒg}nJt|ƒr²dddg}ddg}n.t|ƒrÎdd	d	g}dd	g}ndddg}ddg}t	||d
� 
¡ }tj||d
�}|t jk�r| t¡}t  ||¡ d S )NrF   rG   rI   rJ   r   TFri   rj   r,   )r0   ZBYTES_DTYPESZSTRING_DTYPESr   r
   r	   r†   r   r   r   r5   r:   rK   r8   r7   r=   )r?   Zany_numpy_dtyper„   rP   r¤   r~   r$   r$   r*   Útest_dtype_preservation!  s2    











z"TestUnique.test_dtype_preservationc                 C   s¤   t jddgdd�}tdddgƒ}t |¡}t ||¡ |j|jksFt‚t	|ƒ}t |¡}t ||¡ |j|jkstt‚|j
}t |¡}t ||¡ |j|jks t‚d S )Nz2015-01-03T00:00:00.000000000z2015-01-01T00:00:00.000000000úM8[ns]r,   )r:   rK   r   r   r5   r0   r=   r-   rz   r   rM   )r?   r~   Zdt_indexr¤   Úsrg   r$   r$   r*   Ú$test_datetime64_dtype_array_returnedB  s.    þûýÿ


z/TestUnique.test_datetime64_dtype_array_returnedc                 C   s@   t jdddgdd�}t |¡}t jddgdd�}t ||¡ d S )NÚ2000Ú2001zdatetime64[s]r,   r�   ©r:   rK   rY   r5   r0   r=   ©r?   r\   r¤   r~   r$   r$   r*   Útest_datetime_non_nsa  s    
zTestUnique.test_datetime_non_nsc                 C   s@   t jdddgdd�}t |¡}t jddgdd�}t ||¡ d S )Nr×   rØ   ztimedelta64[s]r,   l     ”RFl    jÉIGútimedelta64[ns]rÙ   rÚ   r$   r$   r*   Útest_timedelta_non_nsg  s    
z TestUnique.test_timedelta_non_nsc                 C   sª   t jdddgdd�}tdddddgƒ}t |¡}t ||¡ |j|jksLt‚t	|ƒ}t |¡}t ||¡ |j|jkszt‚|j
}t |¡}t ||¡ |j|jks¦t‚d S )Niày  in²  é'  úm8[ns]r,   )r:   rK   r   r   r5   r0   r=   r-   rz   r   rM   )r?   r~   Ztd_indexr¤   rÕ   rg   r$   r$   r*   Ú%test_timedelta64_dtype_array_returnedm  s    


z0TestUnique.test_timedelta64_dtype_array_returnedc                 C   sB   t ddddgtjd�}tjdddgtjd�}t t |¡|¡ d S )NrF   rG   r§   r,   )r   r:   r–   rK   r0   r=   r   r5   )r?   rÕ   rf   r$   r$   r*   Útest_uint64_overflow€  s    zTestUnique.test_uint64_overflowc                 C   s>   dt jddg}t |¡}t jdt jdgtd�}t ||¡ d S )Nr\   r^   r,   )r:   rL   rY   r5   rK   r7   r0   r=   )r?   Zduplicated_itemsr¤   r~   r$   r$   r*   Útest_nan_in_object_array…  s    
z#TestUnique.test_nan_in_object_arrayc                 C   s  t tdƒƒ}t tdƒtdƒdd�}t tdƒƒ}| ¡ }t ||¡ t |¡}t ||¡ t tdƒdd�}| ¡ }t ||¡ t |¡}t ||¡ tt tdƒƒdd�}| ¡ }t ||¡ t |¡}t ||¡ tt tdƒtdƒd	�ƒ}t|ƒ}| ¡ }t 	||¡ t |¡}t 	||¡ d S )
NZbacÚabcT©Ú
categoriesÚorderedZbaabc©ræ   r¬   ©Úname©rå   )
r   r9   r5   r0   Úassert_categorical_equalr   r   rY   r   r>   )r?   r~   Z
expected_or^   r¤   rÕ   Úcir$   r$   r*   Útest_categorical‹  s.    



zTestUnique.test_categoricalc              	   C   s  t ttddd�tddd�gƒƒ ¡ }t t tddd�g¡¡}t 	||¡ ttddd�tddd�gƒ ¡ }t
dgdd d�}t ||¡ t t ttddd�tddd�gƒƒ¡}t t tddd�g¡¡}t 	||¡ t ttddd�tddd�gƒ¡}t
dgdd d�}t ||¡ d S )	NÚ20160101ú
US/Eastern©Útzz2016-01-01 00:00:00-0500ú2016-01-01 00:00:00údatetime64[ns, US/Eastern]©r-   rq   ú
2016-01-01)r   r   r   r5   r   Z_from_sequencer:   rK   r0   r³   r   r>   rY   ©r?   r¤   r~   r$   r$   r*   Útest_datetime64tz_awareµ  s`    

þÿÿÿ

þÿ  ÿ

þÿÿÿ
ÿ

þÿÿ  ÿz"TestUnique.test_datetime64tz_awarec                 C   s:  t  tddddgƒ¡}t |tjdddgdd�¡ t  tdgdgd  ƒ¡}t |tjddgdd�¡ t  ttdƒtdƒgƒ¡}tjdgd	d�}t ||¡ t  ttdd
d�tdd
d�gƒ¡}t	dgdd d�}t 
||¡ t  tdƒ¡}tjdddgtd�}t ||¡ t  tttdƒƒƒ¡}ttdƒƒ}t ||¡ d S )NrG   rF   r`   r™   r,   r_   rî   z2016-01-01T00:00:00.000000000r�   rï   rð   rò   ró   rô   Zaabcr\   r]   r^   rã   )rY   r5   r   r0   r=   r:   rK   r   r   r   r>   r9   r7   r   rë   rö   r$   r$   r*   Útest_order_of_appearanceì  s4    

þÿÿ  ÿz#TestUnique.test_order_of_appearancezarg ,expected)Ú1rù   Ú2rù   rú   r,   )r¬   r¬   c                 C   s   t  |¡}t ||¡ d S ©N©rY   r5   r0   r=   )r?   Úargr~   r¤   r$   r$   r*   Útest_tuple_with_strings  s    	
z"TestUnique.test_tuple_with_stringsc                 C   sB   t jdd gtd�}t |¡}t jdd gtd�}tj||dd� d S )Nr¬   r,   Tr¶   )r:   rK   r7   rY   r5   r0   r=   ©r?   rg   r¤   r~   r$   r$   r*   Útest_obj_none_preservation  s    
z%TestUnique.test_obj_none_preservationc                 C   s4   t  ddg¡}t |¡}t  dg¡}t ||¡ d S )Ng       €rd   rÙ   rÚ   r$   r$   r*   Útest_signed_zero#  s    
zTestUnique.test_signed_zeroc                 C   s~   t  dt  dd¡¡d }t  dt  dd¡¡d }||ks<t‚||ksHt‚t ||g¡}t |¡}t tjg¡}t	 
||¡ d S )NÚdú=Qì         À r   ì        À )ÚstructÚunpackÚpackrz   r:   rK   rY   r5   rL   r0   r=   )r?   ÚNAN1ÚNAN2r\   r¤   r~   r$   r$   r*   Útest_different_nans*  s    
zTestUnique.test_different_nansÚel_typec           	      C   s¦   d}d}t  dt  d|¡¡d }t  dt  d|¡¡d }||ksDt‚||ksPt‚tj||g|d�}t |¡}|jdkszt‚t  dt  d|d ¡¡d }||ks¢t‚d S )Nl        À r  r  r  r   r,   rF   )	r  r  r  rz   r:   rK   rY   r5   rÃ   )	r?   r  Zbits_for_nan1Zbits_for_nan2r	  r
  r\   r¤   Zresult_nan_bitsr$   r$   r*   Útest_first_nan_kept6  s    
zTestUnique.test_first_nan_keptc                 C   sZ   ||krd S t j||gtd�}t |¡}|jdks6t‚|d |ksFt‚|d |ksVt‚d S )Nr,   rG   r   rF   )r:   rK   r7   rY   r5   rÃ   rz   )r?   Zunique_nulls_fixtureZunique_nulls_fixture2r\   r¤   r$   r$   r*   Útest_do_not_mangle_na_valuesG  s    
z'TestUnique.test_do_not_mangle_na_valuesc                 C   sH   t dtjdgd |d�}t |¡}tjdtjdg|d�}t ||¡ d S )NrF   rG   r`   r,   )r   rY   ZNAr5   rK   r0   r³   )r?   Zany_numeric_ea_dtyperN   r¤   r~   r$   r$   r*   Útest_unique_maskedQ  s    
zTestUnique.test_unique_maskedN)r»   r¼   r½   rÇ   rÈ   rÎ   rÒ   rÓ   rÖ   rÛ   rÝ   rà   rá   râ   rí   r÷   rø   rŠ   r¾   r¿   r:   rK   r7   rþ   r   r  r  r‘   r  r  r  r$   r$   r$   r*   rÀ      s8   !*7#þþ


rÀ   c                   @   sö   e Zd Zdd„ Zdd„ Zdd„ Zej ddd	d
dg¡ej ddddg¡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"d#„ Zej d$g eed%�e g ¡g¡d&d'„ ƒZd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4S )5ÚTestIsinc              	   C   s~   d}t jt|d�� t dd¡ W 5 Q R X t jt|d�� t ddg¡ W 5 Q R X t jt|d�� t dgd¡ W 5 Q R X d S )NzQonly list-like objects are allowed to be passed to isin\(\), you passed a \[int\]rU   rF   )rŠ   r‹   rŒ   r   Úisin)r?   rZ   r$   r$   r*   Útest_invalidZ  s    ÿzTestIsin.test_invalidc                 C   s²  t  ddgdg¡}t ddg¡}t ||¡ t  t ddg¡dg¡}t ddg¡}t ||¡ t  tddgƒdg¡}t ddg¡}t ||¡ t  tddgƒtdgƒ¡}t ddg¡}t ||¡ t  tddgƒdh¡}t ddg¡}t ||¡ t  ddgdg¡}t ddg¡}t ||¡ t  tddgƒtdgƒ¡}t ddg¡}t ||¡ t  tddgƒdh¡}t ddg¡}t ||¡ t  ddgdg¡}t ddg¡}t ||¡ d S )NrF   rG   TFr\   r]   )r   r  r:   rK   r0   r=   r   rö   r$   r$   r*   rh   g  s6    zTestIsin.test_basicc                 C   sD  t ddd�j}t ||d g¡}t dddg¡}t ||¡ t ||dd… ¡}t dddg¡}t ||¡ t |t|dd… ƒ¡}t dddg¡}t ||¡ t	ddd�j}t ||d g¡}t dddg¡}t ||¡ t ||dd… ¡}t dddg¡}t ||¡ t |t|dd… ƒ¡}t dddg¡}t ||¡ d S )	Nrn   r`   ©Úperiodsr   TFrG   rr   )
r   rM   r   r  r:   rK   r0   r=   ry   r   rÿ   r$   r$   r*   Útest_i8�  s(    zTestIsin.test_i8Údtype1rß   rÔ   úM8[ns, UTC]ú	period[D]r-   r«   Zf8rª   c                 C   sˆ   t ddd�j}|dkr"| d¡}n*|dkr6| d¡}nt| d¡ƒ |¡j}| d¡ |¡}t ||¡}t	j
|jtd	�}t ||¡ d S )
Nz
2013-01-01r`   r  r  rÊ   r  ÚUTCr«   r,   )r   Ú_valuesZ	to_periodZtz_localizer   Úviewr8   r   r  r:   ÚzerosÚshaper6   r0   r=   )r?   r-   r  Údtarg   Úcompsr¤   r~   r$   r$   r*   Ú+test_isin_datetimelike_values_numeric_comps©  s    z4TestIsin.test_isin_datetimelike_values_numeric_compsc                 C   sV   t dddd�j}t ||dd… ¡}tjt|ƒtd�}d|d< d|d	< t 	||¡ d S )
NZ20000101i€„ rÕ   )r  rq   r   rG   r,   TrF   )
r   rM   r   r  r:   r  rx   r6   r0   r=   ©r?   rÕ   r¤   r~   r$   r$   r*   Ú
test_large¾  s    zTestIsin.test_largec                 C   s€   t  ddddg¡}dddg}ttdgƒ ||¡ƒ}ttdgƒ t  ddg¡|¡ƒ}t  ddddg¡}t ||¡}t ||¡ d S ©	Nr   rF   rG   r\   r]   r^   TF)	r:   rK   r   r   Ú
from_codesr   r  r0   r=   )r?   ÚvalsÚcatsZSdZStr~   r¤   r$   r$   r*   Útest_categorical_from_codesÆ  s    
 z$TestIsin.test_categorical_from_codesc                 C   sx   t  ddddg¡}dddg}tdgƒ ||¡}tdgƒ t  ddg¡|¡}t  ddddg¡}t ||¡}t ||¡ d S r#  )r:   rK   r   r$  r   r  r0   r=   )r?   r%  r&  ÚcatÚotherr~   r¤   r$   r$   r*   Útest_categorical_isinÐ  s    
zTestIsin.test_categorical_isinc                 C   s8   t jg}t jg}t  dg¡}t ||¡}t ||¡ d S )NT)r:   rL   rK   r   r  r0   r=   ©r?   r  rM   r~   r¤   r$   r$   r*   Útest_same_nan_is_inÚ  s
    zTestIsin.test_same_nan_is_inc                 C   sJ   t  dd¡}t j|d< t |t jdg¡}t jt|ƒtd�}t 	||¡ d S ©NrI   iAB r   rF   r,   )
r:   rÐ   rL   r   r  Úonesrx   r6   r0   r=   r!  r$   r$   r*   Útest_same_nan_is_in_largeæ  s
    
z"TestIsin.test_same_nan_is_in_largec                 C   sT   t  dd¡}t|ƒ}t j|d< | t jdg¡}tt jt|ƒtd�ƒ}t 	||¡ d S r-  )
r:   rÐ   r   rL   r  r.  rx   r6   r0   Úassert_series_equal)r?   rÕ   Zseriesr¤   r~   r$   r$   r*   Ú test_same_nan_is_in_large_seriesî  s    
z)TestIsin.test_same_nan_is_in_large_seriesc                 C   s`   G dd„ dƒ}|ƒ |ƒ  }}t  t |g|g¡t dg¡¡ t  t |g|g¡t dg¡¡ d S )Nc                   @   s"   e Zd Zedœdd„Zdd„ ZdS )z0TestIsin.test_same_object_is_in.<locals>.LikeNan)Úreturnc                 S   s   dS )NFr$   )r?   r)  r$   r$   r*   Ú__eq__þ  s    z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__c                 S   s   dS )Nr   r$   )r?   r$   r$   r*   Ú__hash__  s    z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__N)r»   r¼   r½   r6   r3  r4  r$   r$   r$   r*   ÚLikeNaný  s   r5  TF)r0   r=   r   r  r:   rK   )r?   r5  r\   r]   r$   r$   r*   Útest_same_object_is_in÷  s     zTestIsin.test_same_object_is_inc                 C   s¸   t dƒg}t dƒg}|d |d k	s(t‚t ||¡}t t dg¡|¡ t tj|t	d�tj|t	d�¡}t t dg¡|¡ t tj|tj
d�tj|tj
d�¡}t t dg¡|¡ d S )NrL   r   Tr,   )Úfloatrz   r   r  r0   r=   r:   rK   r;   r7   r‘   )r?   r  rM   r¤   r$   r$   r*   r  
  s    

 ÿ ÿzTestIsin.test_different_nansc                 C   s8   ddg}dg}t  ddg¡}t ||¡}t ||¡ d S )NÚssé*   Z42F)r:   rK   r   r  r0   r=   r+  r$   r$   r*   Útest_no_cast"  s
    zTestIsin.test_no_castÚemptyr,   c                 C   s6   t ddgƒ}t ddg¡}t ||¡}t ||¡ d S )Nr\   r]   F)r   r:   rK   r   r  r0   r=   )r?   r;  r%  r~   r¤   r$   r$   r*   Ú
test_empty+  s    zTestIsin.test_emptyc                 C   s^   t jdt jd tdƒgtd�}t jtdƒgtd�}t  dddg¡}t ||¡}t ||¡ d S )NrL   ù              ð?r,   FT)	r:   rK   rL   r7  r7   r   r  r0   r=   )r?   r  r%  r~   r¤   r$   r$   r*   Útest_different_nan_objects4  s
    z#TestIsin.test_different_nan_objectsc                 C   sÐ   t  dt  dd¡¡d }t  dt  dd¡¡d }||ks<t‚||ksHt‚tj||gtjd�}tj|gtjd�}t ||¡}t ddg¡}t	 
||¡ tj|gtjd�}t ||¡}t ddg¡}t	 
||¡ d S )Nr  r  r  r   r  r,   T)r  r  r  rz   r:   rK   r‘   r   r  r0   r=   )r?   r	  r
  rg   Zlookup1r¤   r~   Zlookup2r$   r$   r*   Útest_different_nans_as_float64<  s    z'TestIsin.test_different_nans_as_float64c                 C   s<   t dddgiƒ}| dg¡}t dddgiƒ}t ||¡ dS )zComparing df with int`s (1,2) with a string at isin() ("1")
        -> should not match values because int 1 is not equal str 1rM   rF   rG   rù   FN©r   r  r0   Úassert_frame_equal©r?   Zdfr¤   Zexpected_falser$   r$   r*   Útest_isin_int_df_string_searchR  s    z'TestIsin.test_isin_int_df_string_searchc                 C   s>   t dtjdgiƒ}| dg¡}t dddgiƒ}t ||¡ dS )z�Comparing df with nan value (np.nan,2) with a string at isin() ("NaN")
        -> should not match values because np.nan is not equal str NaNrM   rG   ÚNaNFN)r   r:   rL   r  r0   rA  rB  r$   r$   r*   Útest_isin_nan_df_string_searchZ  s    z'TestIsin.test_isin_nan_df_string_searchc                 C   s<   t dddgiƒ}| dg¡}t dddgiƒ}t ||¡ dS )zœComparing df with floats (1.4245,2.32441) with a string at isin() ("1.4245")
        -> should not match values because float 1.4245 is not equal str 1.4245rM   g˜nƒÀÊö?gö#Ed˜@z1.4245FNr@  rB  r$   r$   r*   Ú test_isin_float_df_string_searchb  s    z)TestIsin.test_isin_float_df_string_searchc                 C   s4   t dgtjd�}| dg¡}t dƒ}t ||¡ d S )Nl   ª
G r,   l    
G F)r   r:   r–   r  r0   r0  ©r?   rN   r¤   r~   r$   r$   r*   Útest_isin_unsigned_dtypej  s    z!TestIsin.test_isin_unsigned_dtypeN)r»   r¼   r½   r  rh   r  rŠ   r¾   r¿   r   r"  r'  r*  r,  r/  r1  r6  r  r:  r   r7   r:   rK   r<  r>  r?  rC  rE  rF  rH  r$   r$   r$   r*   r  Y  s.   &

		
r  c                   @   sz   e Z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d„ Zej dejedf¡dd„ ƒZdd„ ZdS )ÚTestValueCountsc                 C   sˆ   t j d¡ ddlm} t j d¡}||dƒ}t |¡}ddddd	g}t 	|¡ 
td
d�¡}tddddg|d�}t | ¡ | ¡ ¡ d S )NiÒ  r   )Úcutra   g´Èv¾Ÿó¿g…ëQ¸á¿g`åÐ"Ûù¾?gw¾Ÿ/Ýè?g!°rh‘íö?Trç   rF   r%   )r:   rÄ   ÚseedZpandas.core.reshape.tilerJ  Zrandnr   Úvalue_countsr   Zfrom_breaksr8   ÚCDTr   r0   r0  Z
sort_index)r?   rJ  rg   Úfactorr¤   Zbreaksr&   r~   r$   r$   r*   Útest_value_countss  s    

z!TestValueCounts.test_value_countsc                 C   sv   ddddg}t j|dd�}tdgt dg¡d�}t ||¡ t j|ddd	�}tddgt d
dg¡d�}t ||¡ d S )NrF   rG   r`   ra   ©Úbins)ç¬Zd;ßï?rc   r%   F)rQ  r!   )rR  ç      @)rS  rc   )r   rL  r   r   r4   r0   r0  r!  r$   r$   r*   Útest_value_counts_bins�  s     ÿz&TestValueCounts.test_value_counts_binsc              	   C   s˜   t  ddg¡}t|ƒdkst‚t jddgdd�}t|ƒdks@t‚t  tdddgƒ¡}t|ƒdksdt‚d}tjt|d�� t jddgdd� W 5 Q R X d S )NrF   rI   rP  rù   rG   z*bins argument only works with numeric datarU   )r   rL  rx   rz   r   rŠ   r‹   rŒ   )r?   r¤   rZ   r$   r$   r*   Útest_value_counts_dtypes�  s    z(TestValueCounts.test_value_counts_dtypesc                 C   sŽ   t t d¡tgdd�}tddgƒ}||fD ]<}t |¡}tj|dd�}t|ƒdksVt‚t|ƒd	ks*t‚q*t t	d
ƒdiƒ}t
 t |¡|¡ d S )NrÞ   rÜ   r,   r   z
2014-01-01F©ÚdropnarF   rG   z2014-01-01 00:00:00)r   r:   Útimedelta64r   r   r   rL  rx   rz   r   r0   r0  )r?   ÚtdÚdtrÕ   ÚvcZ
vc_with_naZexp_dtr$   r$   r*   Útest_value_counts_nat›  s    
z%TestValueCounts.test_value_counts_natc              
   C   sÌ   t tdddƒtdddƒtdddƒtdddƒtdddƒtdddƒgƒ}| ¡ }ttdddƒtdddƒtdddƒgtd�}t dddg|d�}t ||¡ tt d	tj	gƒd
d�}t d	tj	gtd�}t ||¡ d S )Ni¸  rF   iˆ  ip  r,   r`   rG   r%   z
2362-01-01Úignore)Úerrors)
r   r   rL  r   r7   r0   r0  r   r:   rL   )r?   rÕ   ÚresZ	exp_indexrf   r$   r$   r*   Ú&test_value_counts_datetime_outofbounds©  s&    





úÿ
 þz6TestValueCounts.test_value_counts_datetime_outofboundsc                 C   sv   t ttdƒƒƒ}| ¡ }t dddgtdddgƒd�}tj||d	d
� |j ¡ }| ¡ }|j	 ¡ |_	tj||d	d
� d S )NZaaabbcr`   rG   rF   r\   r]   r^   r%   T©Zcheck_index_type)
r   r   r9   rL  r   r0   r0  r(  Z
as_orderedr&   r!  r$   r$   r*   rí   Ã  s    
z TestValueCounts.test_categoricalc                 C   sN  t ttdƒƒƒ}tj|jd< | ¡ }t dddgtdddgdddgd	�d
�}tj	||dd� |jdd�}t ddddgtdddtjgƒd
�}tj	||dd� t ttdƒddddgd�ƒ}tj|jd< | ¡ }t dddgtdddgdddgdd�d
�}tj	||dd� |jdd�}t ddddgtdddtjgdddgdd�d
�}tj	||dd� d S )NZ
aaaaabbbccrF   ra   r`   rG   r\   r]   r^   rê   r%   Tra  FrV  )ræ   rå   rä   )
r   r   r9   r:   rL   ZilocrL  r   r0   r0  r!  r$   r$   r*   Útest_categorical_nansÐ  sF    þ"ÿ  ÿþ
  ÿþz%TestValueCounts.test_categorical_nansc                 C   s`   t ttdƒtdƒdd�ƒ}| ¡ }t ddddgtd	d
ddgtdƒdd�d�}tj||dd� d S )NZbbbaacÚabcdTrä   r`   rG   rF   r   r]   r\   r^   r  r%   ra  )r   r   r9   rL  r0   r0  r!  r$   r$   r*   Útest_categorical_zeroesô  s    

  ÿþz'TestValueCounts.test_categorical_zeroesc              	   C   sÀ  t  tdddgƒjdd�tddgddgd�¡ t  tdddgƒjdd�tddgddgd�¡ t  tdgd dgd  d gd  ƒjdd�tddgtddgtd	�d�¡ t  tdgd dgd  d gd  ƒjdd�tdddgddtjgd�¡ t  td
ddgƒjdd�tddgdd
gd�¡ t  td
ddgƒjdd�tddgdd
gd�¡ t  td
ddd gƒjdd�tddgdd
gd�¡ td
d
dddd gƒjdd�}tdddgdd
tjgd�}t  ||¡ d S )NTFrV  rG   rF   r%   r`   r_   r,   gš™™™™™$@rb   )r0   r0  r   rL  r   r7   r:   rL   rö   r$   r$   r*   Útest_dropna   s>    þþ(þ(þþþþzTestValueCounts.test_dropnar-   rÔ   c                 C   s¤   t dgd dgd  tjgd  ƒ}| |¡}|jddd�}t dd	d
gt tjddg|d�d�}t ||¡ |jddd�}t ddgt ddg|d�d�}t ||¡ d S )NrF   rG   r`   r_   TF)Ú	normalizerW  g      à?g333333Ó?gš™™™™™É?rJ   rI   r,   r%   g333333ã?gš™™™™™Ù?)r   r:   rL   r8   rL  r0   r0  )r?   r-   rÕ   Zs_typedr¤   r~   r$   r$   r*   Útest_value_counts_normalized&  s    $
 ÿz,TestValueCounts.test_value_counts_normalizedc                 C   sx   t jdgt jd�}tdgdgd�}t |¡}t ||¡ t jddgtd�}tddgddgd�}t |¡}t ||¡ d S )Nr§   r,   rF   r%   rS   )	r:   rK   r–   r   r   rL  r0   r0  r7   )r?   rg   r~   r¤   r$   r$   r*   Útest_value_counts_uint645  s    

z(TestValueCounts.test_value_counts_uint64N)r»   r¼   r½   rO  rT  rU  r\  r`  rí   rb  rd  re  rŠ   r¾   r¿   r:   r‘   r7   rg  rh  r$   r$   r$   r*   rI  r  s   $&
rI  c                   @   sŽ  e Zd Zdd„ Zej de dddddddddd	g
¡e d
dd
ej	dddd
ej	dg
¡e ddddddddddg
¡ejddddddddddg
e
d�ejdddddddddd g
ejd�g¡d!d"„ ƒZd#d$„ Zej dedddgƒe d%d¡g¡d&d'„ ƒZej d(d)d*d+d,d)d*d+d,gd)d*d+d,gfd-d.d.d-gd-d.gfd/d0d1d/gd/d0d1gfg¡d2d3„ ƒZej d4dd%dd5d6d6gejdd7d8d5d6ge
d�fg¡d9d:„ ƒZd;S )<ÚTestDuplicatedc                 C   s¶  t jddt jddt jgtd�}t |¡}t  ddddddg¡}t ||¡ tj|dd�}t  ddddddg¡}t ||¡ tj|d	d�}t  ddddddg¡}t ||¡ tj|dd�}t  ddddddg¡}t ||¡ t jd
td�}t	t
ddt jt jgd dt jdt jgd ƒƒD ]\}}|||< �qt |¡}dgd }dgd }t  || ¡}t ||¡ tj|d	d�}t  || ¡}t ||¡ tj|dd�}t  || ¡}t ||¡ d S )Nr   rF   rG   r,   FTÚfirst©ZkeepÚlasté   ra   )r:   rK   rL   r7   r   Ú
duplicatedr0   r=   r;  Ú	enumerateÚzip)r?   Úkeysr¤   r~   r‡   ÚtZfalsesZtruesr$   r$   r*   Útest_duplicated_with_nasD  s:    
(ÿ


z'TestDuplicated.test_duplicated_with_nasÚcaserF   rG   r_   r`   ra   é   gš™™™™™ñ?gš™™™™™@gffffff
@gš™™™™™@gffffff@y      ð?      ð?y       @       @y      @      @y      @      @y      @      @y      @      @r\   r]   Úer^   r  Úfr,   r§   éó   r    é'   é   c           
      C   sh  t  ddddddddddg
¡}t  ddddddddddg
¡}||B }tj|dd�}t ||¡ tj|dd�}t ||¡ tj|dd�}t ||¡ t|ƒt|dd�fD ]L}|jdd�}t ||¡ |jdd�}t ||¡ |jdd�}t ||¡ q¦t|ƒt|dd�fD ]Z}	|	jdd�}t |t|ƒ¡ |	jdd�}t |t|ƒ¡ |	jdd�}t |t|ƒ¡ �qd S )NFTrj  rk  rl  Úcategoryr,   )	r:   rK   r   rn  r0   r=   r   r   r0  )
r?   rt  Ú	exp_firstÚexp_lastÚ	exp_falseÚ	res_firstÚres_lastÚ	res_falseÚidxrÕ   r$   r$   r*   Útest_numeric_object_likesk  s6    ÿÿz(TestDuplicated.test_numeric_object_likesc                 C   s  ddddddddddg
}ddddd	dd
dddg
}t  dd„ |D ƒ¡t  dd„ |D ƒ¡t  dd„ |D ƒ¡t  dd„ |D ƒ¡t  dd„ |D ƒ¡g}t  ddddddddddg
¡}t  ddddddddddg
¡}||B }|D �]:}tj|dd�}t ||¡ tj|dd�}	t |	|¡ tj|dd�}
t |
|¡ t|ƒt|dd�t|td�fD ]N}|jdd�}t ||¡ |jdd�}	t |	|¡ |jdd�}
t |
|¡ �qHt|ƒt|dd�t|td�fD ]Z}|jdd�}t 	|t|ƒ¡ |jdd�}	t 	|	t|ƒ¡ |jdd�}
t 	|
t|ƒ¡ �q¶qÖd S )Nz
2011-01-01z
2011-01-02r   ú
2011-01-03z
2011-01-04z
2011-01-06ú1 daysz2 daysz3 daysz4 daysz6 daysc                 S   s   g | ]}t |ƒ‘qS r$   ©r   ©r'   r  r$   r$   r*   r+   È  s     z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>c                 S   s   g | ]}t |d d�‘qS )rï   rð   r†  r‡  r$   r$   r*   r+   É  s     c                 S   s   g | ]}t |d d�‘qS )rÊ   rp   )r   r‡  r$   r$   r*   r+   Ê  s     c                 S   s   g | ]}t  |¡‘qS r$   )r:   rž   r‡  r$   r$   r*   r+   Ë  s     c                 S   s   g | ]}t |ƒ‘qS r$   )r   r‡  r$   r$   r*   r+   Ì  s     FTrj  rk  rl  r{  r,   )
r:   rK   r   rn  r0   r=   r   r7   r   r0  )r?   rZ  rY  Zcasesr|  r}  r~  rt  r  r€  r�  r‚  rÕ   r$   r$   r*   Útest_datetime_likes¬  s|    ööûÿÿ


ý

ýz"TestDuplicated.test_datetime_likesr   c                 C   s.   |j dkst‚t | ¡ t dddg¡¡ d S )NTF)Z	is_uniquerz   r0   r=   rn  r:   rK   )r?   rt  r$   r$   r*   Útest_unique_indexÿ  s    z TestDuplicated.test_unique_indexzarr, uniquesr�   )r   rF   )rF   r   r€   )r]   r^   )r\   r]   r®   )r]   rG   )r\   r`   c                 C   s8   t jt|ƒtd�}||d d …< t |¡}t ||¡ d S r‚   )r:   r;  rx   r7   rY   r5   r0   r=   )r?   rg   rP   r~   r¤   r$   r$   r*   Útest_unique_tuples  s    
z!TestDuplicated.test_unique_tupleszarray,expectedr=  y      ð?       @y                y      ð?        c                 C   s   t  |¡}t ||¡ d S rû   rü   )r?   rK   r~   r¤   r$   r$   r*   Útest_unique_complex_numbers  s    
z*TestDuplicated.test_unique_complex_numbersN)r»   r¼   r½   rs  rŠ   r¾   r¿   r:   rK   rL   r7   r–   rƒ  rˆ  r   rY   r¢   r‰  rŠ  r‹  r$   r$   r$   r*   ri  C  sb   ' öÿ  ÿîþ
(S"

þ
þ÷þ
ýÿþ
ri  c                	   @   sˆ   e Zd Zej dejdfejdfej	dfej
dfejdfg¡dd„ ƒZej dejdfejdfej	dfej
dfejdfg¡dd	„ ƒZd
S )ÚTestHashTablezhtable, tm_dtypeÚStringÚFloatZIntZUIntc                 C   sÞ   t td| d ƒ}t|dƒƒ}|tjkr6tj|jd< n |tjkrVtjd t	g|jdd…< |j
ddd�jdd	�}|jj|d
� |jdd�j}|ƒ  |j¡}t ||¡ |ƒ j|jdd�\}}	t ||¡ ||	 }
t |
|j¡ d S )NÚmaker   rÌ   éô  éö  r`   T©ÚfracÚreplace©Zdropr�   rj  rk  )Zreturn_inverse)r1   r0   r   rw   ÚFloat64HashTabler:   rL   ÚlocÚPyObjectHashTabler   ÚsampleÚreset_indexrM   r’   Údrop_duplicatesr5   r=   )r?   ÚhtableÚtm_dtyper”   ÚmakerrÕ   Ús_duplicatedÚexpected_uniqueÚresult_uniqueÚresult_inverseZreconstrr$   r$   r*   Útest_hashtable_unique+  s$    

 ÿ
z#TestHashTable.test_hashtable_uniquec                 C   sØ   t td| d ƒ}t|dƒƒ}|tjkr6tj|jd< n |tjkrVtjd t	g|jdd…< |j
ddd�jdd	�}|jj|d
� | ¡ j}|ƒ  |j¡\}}	| ¡  ¡ j}
t ||
¡ ||	|   }| ¡ j}t ||¡ d S )Nr�  r   rÌ   r�  r‘  r`   Tr’  r•  r�   )r1   r0   r   rw   r–  r:   rL   r—  r˜  r   r™  rš  rM   r’   r{   r2   rW  r›  r=   )r?   rœ  r�  r”   rž  rÕ   rŸ  Zna_maskr¡  r¢  r   Zresult_reconstructZexpected_reconstructr$   r$   r*   Útest_hashtable_factorizeS  s    



z&TestHashTable.test_hashtable_factorizeN)r»   r¼   r½   rŠ   r¾   r¿   rw   r˜  ZStringHashTabler–  ZInt64HashTableZUInt64HashTabler£  r¤  r$   r$   r$   r*   rŒ  *  s(   ûþ

ûþ
rŒ  c                   @   s´   e Zd Zejej dej	ej	dddej	dddej	g
dej	dddej	dddej	g
g¡dd„ ƒƒZ
ej d	ejd
 ¡dd„ ƒZej d	ejejg¡dd„ ƒZdd„ Zejjdd„ ƒZdS )ÚTestRankrg   rb   rF   rG   r`   rc   c                 C   s`   ddl m} t |¡}t |¡ }| ¡ }t |¡}tj||< ||ƒ}tj	||< t
 ||¡ d S )Nr   )Úrankdata)Zscipy.statsr¦  r:   rK   ÚisfiniteÚcopyÚlibalgosZrank_1drk   rL   r0   rÑ   )r?   rg   r¦  Úmaskr¤   rf   r$   r$   r*   Útest_scipy_compat}  s    	



zTestRank.test_scipy_compatr-   Ú
AllIntegerc                 C   sT   t jddgt jd�}t jddg|d�}|j|d� t|ƒ}t |¡}t ||¡ d S )NrF   rG   r,   r±   r�   )	r:   rK   r‘   r’   r   r   Úrankr0   r=   )r?   r”   r-   rf   r„   rN   r¤   r$   r$   r*   rh   ’  s    
zTestRank.test_basicc                 C   s:   t jddgt jd�}tddg|d�}t t |¡|¡ d S )NrF   rG   r,   r§   )r:   rK   r‘   r   r0   r=   r   r­  )r?   r-   rf   rÕ   r$   r$   r*   rá   œ  s    zTestRank.test_uint64_overflowc              	   C   sP   t  dddgdddgddd	ggg¡}d
}tjt|d�� t |¡ W 5 Q R X d S )NrF   rG   r`   ra   r_   ru  rz  rm  é	   z%Array with ndim > 2 are not supportedrU   )r:   rK   rŠ   r‹   rŒ   r   r­  )r?   rg   rZ   r$   r$   r*   Útest_too_many_ndims£  s    $zTestRank.test_too_many_ndimsc                 C   s\   t  d¡}tj|dd� ¡ }|dks(t‚t  d¡ dd¡}tj|dd� ¡ }|dksXt‚d S )Ni  T)ZpctrF   i  rG   )r:   re   r   r­  Úmaxrz   Úreshape)r?   rM   r¤   r$   r$   r*   Útest_pct_max_many_rowsª  s    
zTestRank.test_pct_max_many_rowsN)r»   r¼   r½   rY  Zskip_if_no_scipyrŠ   r¾   r¿   r:   rL   r«  Ú	typecodesrh   r‘   r–   rá   r¯  Z
single_cpur²  r$   r$   r$   r*   r¥  |  s   þþ
	
r¥  c                  C   sÞ   t jg dd�} t jtdddƒgdd�}tjd | |ƒ}t jdgt jd�}t ||¡ tjd || ƒ}t jg t jd�}t ||¡ tjd | |ƒ}t jdgt jd�}t ||¡ tjd || ƒ}t jg t jd�}t ||¡ d S )Nrt   r,   iÚ  é   é   r7   rS   )	r:   rK   r   r©  Úpadr<   r0   r=   Úbackfill)ÚoldÚnewr¤   r~   r$   r$   r*   Ú!test_pad_backfill_object_segfault¶  s    rº  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestTseriesUtilc                 C   sÂ   t dddgƒ}t ttdƒƒƒ}tjd |j|jƒ}tjddddddddddddgtjd	�}t	 
||¡ t dd
gƒ}t ttddƒƒƒ}tjd |j|jƒ}tjdddddgtjd	�}t	 
||¡ d S )NrF   r_   r    r´  Úint64_tr   rG   rS   r,   ra   )r   r9   r‰   r©  r·  rM   r:   rK   r<   r0   r=   ©r?   r¸  r¹  ZfillerZexpect_fillerr$   r$   r*   Útest_backfillÍ  s    (zTestTseriesUtil.test_backfillc                 C   s¾   t dddgƒ}t ttdƒƒƒ}tjd |j|jƒ}tjddddddddddddgtjd	�}t	 
||¡ t ddgƒ}t t d¡ƒ}tjd |j|jƒ}tjdddddgtjd	�}t	 
||¡ d S )
NrF   r_   r    r´  r¼  rS   r   rG   r,   )r   r9   r‰   r©  r¶  rM   r:   rK   r<   r0   r=   re   r½  r$   r$   r*   Útest_padÞ  s    (zTestTseriesUtil.test_padN)r»   r¼   r½   r¾  r¿  r$   r$   r$   r*   r»  Ì  s   r»  c               ~   C   s   t jddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg|dd�t jddd	d
dddddddddddddddddddddd d!ddddddd	d
dddddddddddddddddddddd d!ddddddd	d
dddddddddddddddddddddd d!ddddddd	d
dddddddddddddddddddddd d!ddddg|dd�g} t | ¡�rt‚d S )"Nr`   rG   rF   r   r™   r,   é   é   é   é   é   é   é   é   é   é   ru   é   é   rˆ   é   é   é   é   r´  é   r    r®  rm  rz  ru  r_   ra   )r:   rK   r©  Zis_lexsortedrz   )Zfailurer$   r$   r*   Útest_is_lexsortedï  s   „~� „~�€ þ  rÑ  c                  C   s¬   t j ddd¡ t j¡} t j ddd¡ t j¡}t | d¡d }t j| dd�}| t j¡}t 	||¡ | d | }t |d¡d }t  
|| f¡}| t j¡}t 	||¡ d S )Nr   rÌ   r±   Z	mergesort)Úkindi@B )r:   rÄ   rÅ   r8   r<   r©  Zgroupsort_indexerÚargsortr0   r=   Zlexsort)r\   r]   r¤   r~   r|   r$   r$   r*   Útest_groupsort_indexerø  s    rÔ  c                     s�  t  ¡ ‰ t  ¡ ‰ˆtdƒdddtdƒˆ g} t‡ fdd„| D ƒƒsDt‚t‡ fdd„| D ƒƒs^t‚ˆ ˆ krnˆ ˆ ksrt‚ˆ ˆ k s‚ˆ ˆ kr†t‚t  ¡ t  ¡ ksšt‚t  ¡ t  ¡ kr®t‚t‡fd	d„| D ƒƒsÈt‚t‡fd
d„| D ƒƒsât‚ˆˆkròˆˆksöt‚ˆˆk �s
ˆˆk�rt‚t  ¡ t  ¡ k�s$t‚t  ¡ t  ¡ k�r:t‚t| ƒD ]}t|ƒ| k�sBt‚�qBt 	t  ¡ gd ¡ 
¡  t 	t  ¡ gd ¡ 
¡  d S )Nz-infg}Ã”%­I²Ôr   g}Ã”%­I²Trk   c                 3   s   | ]}ˆ |kV  qd S rû   r$   ©r'   rl   ©ÚInfr$   r*   Ú	<genexpr>  s     z%test_infinity_sort.<locals>.<genexpr>c                 3   s   | ]}ˆ |kp|ˆ kV  qd S rû   r$   rÕ  rÖ  r$   r*   rØ    s     c                 3   s   | ]}ˆ |kV  qd S rû   r$   rÕ  ©ÚNegInfr$   r*   rØ  #  s     c                 3   s   | ]}ˆ |k p|ˆ kV  qd S rû   r$   rÕ  rÙ  r$   r*   rØ  $  s     é    )r©  ÚInfinityÚNegInfinityr7  Úallrz   r   Úsortedr:   rK   rÓ  )Zref_numsÚpermr$   ©r×  rÚ  r*   Útest_infinity_sort  s&    râ  c                  C   s¼   t  ¡ } t  ¡ }| tjkrt‚| tjkr,t‚| tjk r:t‚| tjkrHt‚| tjkrVt‚| tjksdt‚|tjkrrt‚|tjkr€t‚|tjk rŽt‚|tjkrœt‚|tjkrªt‚|tjks¸t‚d S rû   )r©  rÜ  rÝ  r:   rL   rz   rá  r$   r$   r*   Útest_infinity_against_nan2  s    rã  c                  C   s*   t jdt jd�} t | ¡}|| ks&t‚d S )Nr±   r,   )r:   re   r<   r©  Zensure_platform_intrz   )rg   r¤   r$   r$   r*   Útest_ensure_platform_intE  s    
rä  c               
   C   sþ  d} t  t j¡j}t  t j¡j}tjt| d�� t 	t  
||g¡|¡ W 5 Q R X tjt| d��& t 	t  
||g¡t  
||g¡¡ W 5 Q R X tjt| d�� t 	t  
||g¡|¡ W 5 Q R X tjt| d��& t 	t  
||g¡t  
||g¡¡ W 5 Q R X tjt| d��& t 	t  
||g¡t  
||g¡¡ W 5 Q R X tjt| d��4 tj	t  
||g¡t  
||g¡t  
ddg¡d� W 5 Q R X tjt| d��4 tj	t  
||g¡t  
||g¡t  
ddg¡d� W 5 Q R X tjt| d��@ tj	t  
||g¡t  
||g¡t  
ddg¡t  
ddg¡d� W 5 Q R X tjt| d��> t t¡�( t 	t  
||g¡t  
t j|g¡¡ W 5 Q R X W 5 Q R X tj	t  
||g¡t  
||g¡t  
ddg¡d� tj	t  
||g¡t  
||g¡t  
ddg¡d� tj	t  
||g¡t  
||g¡t  
ddg¡t  
ddg¡d� d S )NzOverflow in int64 additionrU   FT)Úarr_mask)Úb_mask)rå  ræ  )r:   Ziinfor™   r°  ÚminrŠ   r‹   ÚOverflowErrorr   Zchecked_add_with_arrrK   r0   rW   ÚRuntimeWarningrL   )rZ   ÚmÚnr$   r$   r*   Útest_int64_add_overflowL  sf     * **  ÿ  ÿü6  ÿ  ÿürì  c                   @   sÂ   e Zd Zdd„ Zej dejd ejd  ¡dd„ ƒZ	dd	„ Z
ej dejd ejd  ¡d
d„ ƒZdd„ Zej deeg¡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 )ÚTestModec                 C   s0   t g tjtg td�d�}t t g ¡|j	¡ d S )Nr,   )r-   r&   )
r   r:   r‘   r   Úintr0   r=   r   ÚmoderM   ©r?   rf   r$   r$   r*   Útest_no_mode�  s    zTestMode.test_no_moderZ  r¬  rŽ  c                 C   sš   dg}dg}dg}ddg}t ||d�}t ||d�}t t |j¡|j¡ t | ¡ |¡ t ||d�}t ||d�}t t |j¡|j¡ t | ¡ |¡ d S )NrF   r,   ©r   r0   r=   r   rï  rM   r0  ©r?   rZ  Z
exp_singleZdata_singleZ	exp_multiZ
data_multirN   rf   r$   r$   r*   Útest_mode_single…  s    zTestMode.test_mode_singlec                 C   sT   t dgtd�}t t dg¡|j¡ t dddgtd�}t t dddg¡|j¡ d S )NrF   r,   r\   r]   r^   )r   rî  r0   r=   r   rï  rM   r7   rð  r$   r$   r*   Útest_mode_obj_int˜  s    zTestMode.test_mode_obj_intc                 C   sÀ   dg}dgd dgd  }ddg}dgd dgd  dgd  }t ||d�}t ||d�}t t |j¡|j¡ t | ¡ |¡ t ||d�}t ||d�}t t |j¡|j¡ t | ¡ |¡ d S )NrF   r_   rG   r`   r,   rò  ró  r$   r$   r*   Útest_number_modeŸ  s    zTestMode.test_number_modec                 C   s\   dg}dgd dgd  }t |dd�}t |dd�}t t |j¡|j¡ t | ¡ |¡ d S )Nr]   r\   rG   r`   r^   r,   rò  )r?   rf   r„   rN   r$   r$   r*   Útest_strobj_mode±  s    zTestMode.test_strobj_modec                 C   s\   dg}dgd dgd  }t ||d�}t ||d�}t t |j¡|j¡ t | ¡ |¡ d S )NÚbarr¬   rG   r`   r,   rò  )r?   rZ  rf   r„   rN   r$   r$   r*   Útest_strobj_multi_charº  s    zTestMode.test_strobj_multi_charc                 C   sš   t dddgdd�}t dddgdd�}t t |j¡|j¡ t | ¡ |¡ t ddgdd�}t dddddgdd�}t t |j¡|j¡ t | ¡ |¡ d S )Nz
1900-05-03r„  z
2013-01-02rÔ   r,   ©r   r0   r³   r   rï  rM   r  r0  ©r?   rf   rN   r$   r$   r*   Útest_datelike_modeÄ  s    þzTestMode.test_datelike_modec                 C   sœ   t dddgdd�}t dddgdd�}t t |j¡|j¡ t | ¡ |¡ t ddgdd�}t dddd	ddgdd�}t t |j¡|j¡ t | ¡ |¡ d S )
Nz-1 daysz0 daysr…  rÜ   r,   ú2 minrr   ú-1 dayú-1 day 2 minrú  rû  r$   r$   r*   Útest_timedelta_modeÒ  s    þzTestMode.test_timedelta_modec                 C   sB   t dgƒ}t dddgƒ}t t |j¡|j¡ t | ¡ |¡ d S )Nr¬   rF   rò  rû  r$   r$   r*   Útest_mixed_dtypeà  s    
zTestMode.test_mixed_dtypec                 C   s˜   t dgtjd�}t dddgtjd�}t t |j¡|j¡ t | ¡ |¡ t ddgtjd�}t ddgtjd�}t t |j¡|j¡ t | ¡ |¡ d S )Nr§   r,   rF   )	r   r:   r–   r0   r=   r   rï  rM   r0  rû  r$   r$   r*   rá   æ  s    zTestMode.test_uint64_overflowc              	   C   sê   t ddgƒ}|}d}tjt|d�� | ¡ }W 5 Q R X t ||¡ t dddgƒ}t dgddgd�}tjt|d�� | ¡ }W 5 Q R X t ||¡ t dddddgƒ}t ddgdddgd�}tjt|d�� | ¡ }W 5 Q R X t ||¡ d S )NrF   rG   zCategorical.mode is deprecatedrU   r\   rê   r`   )r   r0   rW   rX   rï  rë   )r?   r^   rf   rZ   r_  r$   r$   r*   rí   ñ  s     zTestMode.test_categoricalc              	   C   sÞ   t dddgƒ}tdddgtjd�}t t |¡|j¡ t dddgƒ}tdgt	d�}t t |¡|j¡ t dddddgƒ}tddgtjd�}t t |¡|j¡ t ddddd	d	gd
d�}t
jtdd�� t |¡ W 5 Q R X d S )NrF   rG   r`   r,   r\   rr   rþ  rÿ  rý  rÜ   ZTimedeltaIndexrU   )r   r   r:   r™   r0   r=   r   rï  rM   r7   rŠ   r‹   ÚAttributeError)r?   r‚  rf   r$   r$   r*   Ú
test_index	  s    þzTestMode.test_indexc                 C   s8   t dddgdd�}| ¡ }t dgdd�}t ||¡ d S )NrF   r`   r¬   rè   )r   rï  r0   r0  rG  r$   r$   r*   Útest_ser_mode_with_name	  s    z TestMode.test_ser_mode_with_nameN)r»   r¼   r½   rñ  rŠ   r¾   r¿   r:   r³  rô  rõ  rö  r÷  Ústrr7   rù  rü  r   r  rá   rí   r  r  r$   r$   r$   r*   rí  €  s    

	
	rí  c                   @   sH   e Zd Zej dddg¡dd„ ƒZdd„ Zej ddd	g¡d
d„ ƒZdS )ÚTestDiffr-   rÔ   rß   c                 C   s¾   t  d¡ t j¡ |¡ dd¡}|j dd¡|d d …df< tj	|ddd	�}t j
|jd
d�d }t  dd¡|d d …df< t  dd¡|dd d …f< t ||¡ tj	|jddd	�}t ||j¡ d S )Nr´  r`   ra   r   ÚnsrG   rF   r   ©ZaxisrÜ   r,   )r:   re   r8   r™   r  r±  r-   Útyper   Údiffr.  r  rX  r0   r=   ÚT©r?   r-   rg   r¤   r~   r$   r$   r*   Útest_diff_datetimelike_nat#	  s     z#TestDiff.test_diff_datetimelike_natc              	   C   sB   t dddd�j}d}tjt|d�� tj|ddd� W 5 Q R X d S )	Nrõ   r`   z
US/Pacific)r  rñ   z#cannot diff DatetimeArray on axis=1rU   rF   r  )r   Ú_datarŠ   r‹   Ú
ValueErrorr   r
  )r?   r  rZ   r$   r$   r*   Útest_diff_ea_axis3	  s    zTestDiff.test_diff_ea_axisZint8Zint16c                 C   sN   t jdddddg|d�}t |d¡}t jt jddddgdd�}t ||¡ d S )Nr   rF   r,   rS   Zfloat32)r:   rK   r   r
  rL   r0   r=   r  r$   r$   r*   Útest_diff_low_precision_int:	  s    z$TestDiff.test_diff_low_precision_intN)	r»   r¼   r½   rŠ   r¾   r¿   r  r  r  r$   r$   r$   r*   r  "	  s
   
r  Úopc                 C   sv   | ddddgƒ}| ddddgƒ}| ddddddgƒ}t |tjƒrZt ||¡}t ||¡ nt ||¡}t ||¡ d S )Nr`   rF   ra   rG   )r3   r:   r²   r   Zunion_with_duplicatesr0   r=   r³   )r  ZlvalsZrvalsr~   r¤   r$   r$   r*   Útest_union_with_duplicatesB	  s    r  )Pr   Ú	itertoolsr   r  Únumpyr:   rŠ   Zpandas._libsr   r©  r   rw   Zpandas.compatr   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrY  Zpandas.core.dtypes.commonr   r	   r
   r   r   Zpandas.core.dtypes.dtypesr   rM  ZpandasrY   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr0   Zpandas.core.algorithmsÚcoreZ
algorithmsZpandas.core.arraysr   Zpandas.core.commonÚcommonrƒ   r    rÀ   r  rI  ri  rŒ  r¥  rº  r»  rÑ  rÔ  râ  rã  rä  rì  rí  r  r¾   r¿   rK   r  r$   r$   r$   r*   Ú<module>   s^   L   P  [   R hR:#  !4 # 