a
    *ñ»j3 ã                   @   s¨  d dl m Z  d dlZd dlZd dlZd dlmZ d dlmZ	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&m'Z' d dl(m)Z* d dl+m,  m-Z d dl.m/Z/m0Z0 d dl1m,  m2Z3 G d	d
„ d
ƒZ4G dd„ dƒZ5dd„ Z6G dd„ dƒZ7G dd„ dƒZ8G dd„ dƒZ9G dd„ dƒZ:G dd„ dƒZ;G dd„ dƒZ<G dd„ dƒZ=ej> ?dej@ej@g¡dd„ ƒZAdS ) é    )ÚdatetimeN)Úusing_string_dtype)ÚalgosÚ	hashtable)Ú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ÚcutÚ
date_rangeÚtimedelta_rangeÚto_datetimeÚto_timedelta)ÚDatetimeArrayÚTimedeltaArrayc                   @   sx  e Zd Zdd„ Zejjeƒ ddd�ej 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 d¢g d¢g d¢fg d ¢g d¢g d!¢fg d"¢g d#¢g d$¢fg¡d%d&„ ƒZd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zej dddg¡d7d8„ ƒZej dddg¡d9d:„ ƒZd;d<„ Zej d=ej g d>¢d?d@�ej g dA¢dBd@�ej g dC¢dDd@�g¡dEdF„ ƒZ!ej dGej g dH¢d?d@�dIfej g dJ¢d?d@�dKfej g dL¢dBd@�dMfej g dN¢dBd@�dKfej g dO¢e"d@�dPfej g dQ¢e"d@�dRfej g dS¢e"d@�dTfg¡dUdV„ ƒZ#ej dddg¡ejjdWej g dX¢e"d@�ej dYdPge"d@�fe$j dZdKej%dZgd[d@�e$j dZdKgd[d@�fgd\d]gd^�d_d`„ ƒƒZ&ej dg da¢ej g db¢e 'dc¡d@�ej dPej%dYge"d@�fdPej%dYdPgej g db¢e 'dc¡d@�ej dPej%dYge"d@�fg¡ddde„ ƒZ(ej dg df¢ej g dH¢e 'dc¡d@�ej dKej%dZgdgd@�fdKej%dKdZgej g dH¢e 'dc¡d@�ej dKej%dZgej)d@�fg¡dhdi„ ƒZ*ej de+e,g dj¢ƒƒej g dk¢ej-d@�e.dPdYgdPdYgdldm�fe/e,g dj¢ƒƒej g dk¢ej-d@�e.dPdYgdPdYgdldm�fe/e0dndngdodp�ƒej dIdIgej-d@�e0dngdodp�fg¡dqdr„ ƒZ1dsdt„ Z2duS )vÚTestFactorizec                 C   sŠ   g d¢}d}t jt|d�� t |¡\}}W d   ƒ n1 s>0    Y  tjg d¢tjd�}t  ||¡ tjg d¢t	d�}t  ||¡ d S )N)é   é   ù       @      ð?ú0factorize with argument that is not not a Series©Úmatch)r   r!   r"   ©Údtype)ù      ð?        y       @        r#   )
ÚtmÚassert_produces_warningÚFutureWarningr   Ú	factorizeÚnpÚarrayÚintpÚassert_numpy_array_equalÚobject)Úselfr/   ÚmsgÚlabelsÚuniquesZexpected_labelsÚexpected_uniques© r8   ú=E:\soccer\ml_env\Lib\site-packages\pandas/tests/test_algos.pyÚtest_factorize_complex6   s    ,z$TestFactorize.test_factorize_complexzTODO(infer_string)F)ÚreasonÚstrictÚsortTc           
         sÎ   |}|j |d�\}}t}t|tƒr(tj}| ¡ }|jtjkrH| 	tj
¡}||ƒ}t|tƒrx|jtkrx|jtkrx| 	t¡}|r„| ¡ }t|ƒ‰ ‡ fdd„|D ƒ}	tj|	tjd�}	t ||	¡ tj||dd� d S )N©r=   c                    s   g | ]}ˆ   |¡‘qS r8   )Úindex)Ú.0Úval©Zexpected_uniques_listr8   r9   Ú
<listcomp>^   ó    z0TestFactorize.test_factorize.<locals>.<listcomp>r'   T©Úexact)r-   r   Ú
isinstancer   Úfrom_tuplesÚuniquer(   r.   Zfloat16ÚastypeÚfloat32Úboolr2   Zsort_valuesÚlistÚasarrayr0   r*   r1   Úassert_index_equal)
r3   Zindex_or_series_objr=   ÚobjZresult_codesZresult_uniquesÚconstructorZexpected_arrr7   Úexpected_codesr8   rB   r9   Útest_factorizeD   s.    
ÿþý
zTestFactorize.test_factorizec                 C   sl   t  dddt jg¡}t|ƒ}|jdd�\}}t jg d¢t jd�}tddt jgƒ}t ||¡ t 	||¡ d S )	Nr!   r"   F©Úuse_na_sentinel©r   r!   r   r"   r'   ç      ð?ç       @)
r.   r/   Únanr   r-   r0   r   r*   r1   rO   )r3   ÚvaluesÚserÚcodesr6   rR   r7   r8   r8   r9   Ú+test_series_factorize_use_na_sentinel_falsed   s    z9TestFactorize.test_series_factorize_use_na_sentinel_falsec                 C   sü  t jg d¢td�}t |¡\}}t |t jg d¢td�¡ tj|dd�\}}t jg d¢t jd�}t ||¡ t jg d¢td�}t ||¡ t jdt jd�d d d… }t |¡\}}t jg d	¢t jd�}t ||¡ t jg d
¢|j	d�}t ||¡ tj|dd�\}}t jg d
¢t jd�}t ||¡ t jg d	¢|j	d�}t ||¡ t  d¡d d d… }t |¡\}}t jg d	¢t jd�}t ||¡ t jg d¢|j	d�}t ||¡ tj|dd�\}}t jg d
¢t jd�}t ||¡ t jg d¢|j	d�}t ||¡ d S )N)ÚaÚbr_   r^   r^   Úcr`   r`   r'   ©r^   r_   r`   Tr>   )r   r!   r!   r   r   r"   r"   r"   é   éÿÿÿÿ)r   r!   r"   é   é   )re   rd   r"   r!   r   ç      @)ç      @ç      @rX   rW   ç        )ri   rW   rX   rh   rg   )
r.   r/   r2   r   r-   r*   r1   r0   Úaranger(   )r3   Úitemsr\   r6   ÚexpÚarrr8   r8   r9   Ú
test_basicp   s<    zTestFactorize.test_basicc                 C   s¸   t ddtjddtjgƒ}t |¡\}}tjg d¢tjd�}t 	||¡ t
dddtjgƒ}t ||¡ tj|dd�\}}tjg d¢tjd�}t 	||¡ t
dtjddgƒ}t ||¡ d S )	NÚAÚBg…ëQ¸	@)r   r   rc   r!   r"   rd   r'   Tr>   )r"   r"   rc   rd   r   r!   )r   r.   rY   Úinfr   r-   r/   r0   r*   r1   r   rO   )r3   Úxr\   r6   rl   r8   r8   r9   Ú
test_mixed—   s    zTestFactorize.test_mixedc                 C   s¸   t dƒ}t dƒ}t||||||gƒ}t |¡\}}tjg d¢tjd�}t ||¡ t	||gƒ}t 
||¡ tj|dd�\}}tjg d¢tjd�}t ||¡ t	||gƒ}t 
||¡ d S )Nz20130101 09:00:00.00004Ú20130101©r   r   r   r!   r!   r   r'   Tr>   )r!   r!   r!   r   r   r!   )r   r   r   r-   r.   r/   r0   r*   r1   r   rO   ©r3   Zv1Zv2rr   r\   r6   rl   r8   r8   r9   Útest_factorize_datetime64§   s    z'TestFactorize.test_factorize_datetime64c                 C   s¸   t ddd�}t ddd�}t||||||gƒ}t |¡\}}tjg d¢tjd�}t ||¡ t 	|t
||gƒ¡ tj|dd�\}}tjg d¢tjd�}t ||¡ t 	|t
||gƒ¡ d S )	NZ201302ÚM©ÚfreqZ201303ru   r'   Tr>   )r   r   r   r-   r.   r/   r0   r*   r1   rO   r   rv   r8   r8   r9   Útest_factorize_period¹   s    z#TestFactorize.test_factorize_periodc                 C   s²   t dƒ}t dƒ}t|||||||gƒ}t |¡\}}tjg d¢tjd�}t ||¡ t 	|t ||gƒ¡ tj|dd�\}}tjg d¢tjd�}t ||¡ t 	|t ||gƒ¡ d S )Nz1 day 1 minú1 day)r   r!   r   r   r!   r!   r   r'   Tr>   )r!   r   r!   r!   r   r   r!   )
r   r   r   r-   r.   r/   r0   r*   r1   rO   rv   r8   r8   r9   Útest_factorize_timedeltaÊ   s    z&TestFactorize.test_factorize_timedeltac                 C   s˜   t jdddt jgdd�}t t|ƒ¡}dD ]h}|j||d�}t jddd|gt jd�}tt|ƒƒtt|ƒƒkspJ ‚t	 
t |¡||k¡ t	 
||¡ q*d S )Nr!   r"   ÚOr'   )rc   é   )Úna_sentinelr   )r.   r/   rY   ÚhtÚObjectFactorizerÚlenr-   r0   Úsetr*   r1   ÚpdÚisna)r3   ÚkeyÚrizerr€   ÚidsÚexpectedr8   r8   r9   Útest_factorize_nanÙ   s    z TestFactorize.test_factorize_nanc                 C   s„   t jg d¢dd�}t  g d¢¡}t t|ƒ¡}|j||d�}t jg d¢t jd�}t ||¡ t jg d¢dd�}t |j	 
¡ |¡ d S )N)r!   r"   rd   r!   r!   r   Úint64r'   )FFFFFT)Úmask)r   r!   r"   r   r   rc   ©r!   r"   rd   )r.   r/   r�   ZInt64Factorizerrƒ   r-   r0   r*   r1   r6   Úto_array)r3   Údatar�   rˆ   ÚresultrŠ   r7   r8   r8   r9   Útest_factorizer_with_maskæ   s    z'TestFactorize.test_factorizer_with_maskc                 C   s|   t  ddddt jg¡}t t|ƒ¡}| | t¡¡}t jg d¢t j	d�}t
 ||¡ t jg d¢td�}t
 |j ¡ |¡ d S )Nr!   r"   rd   )r   r!   r"   r   rc   r'   rŽ   )r.   r/   rY   r�   r‚   rƒ   r-   rJ   r2   r0   r*   r1   r6   r�   )r3   r�   rˆ   r‘   rŠ   r7   r8   r8   r9   Útest_factorizer_object_with_nanñ   s    z-TestFactorize.test_factorizer_object_with_nanz&data, expected_codes, expected_uniques)©r!   r!   ©r!   r"   ©r   r   r•   Únonsense)r   r!   r"   r!   rd   )r”   r•   r–   r—   )r”   r•   r–   r•   rŽ   )r”   r•   r–   rŽ   )r”   r•   r–   r•   )r   r!   r"   r!   )r”   r•   r–   c                 C   sv   d}t jt|d�� t |¡\}}W d   ƒ n1 s60    Y  t  |tj|tjd�¡ t	j
|td�}t  ||¡ d S )Nr$   r%   r'   )r*   r+   r,   r…   r-   r1   r.   r/   r0   ÚcomZasarray_tuplesafer2   )r3   r�   rR   r7   r4   r\   r6   Zexpected_uniques_arrayr8   r8   r9   Útest_factorize_tuple_listû   s    ,z'TestFactorize.test_factorize_tuple_listc                 C   sj   t jdd„ tdƒD ƒtd�}d}tjt|d��( tj|d d d… dd	� W d   ƒ n1 s\0    Y  d S )
Nc                 S   s   g | ]}t |ƒ‘qS r8   )Úcomplex©r@   Úir8   r8   r9   rC     rD   z6TestFactorize.test_complex_sorting.<locals>.<listcomp>é   r'   z,'[<>]' not supported between instances of .*r%   rc   Tr>   )	r.   r/   Úranger2   ÚpytestÚraisesÚ	TypeErrorr   r-   )r3   Zx17r4   r8   r8   r9   Útest_complex_sorting  s    z"TestFactorize.test_complex_sortingc                 C   sf   |}t jg d¢|d�}t jg d¢t jd�}t jddg|d�}t |¡\}}t ||¡ t ||¡ d S )N)r!   r"   r"   r!   r'   )r   r!   r!   r   r!   r"   )r.   r/   r0   r   r-   r*   r1   )r3   Zany_real_numpy_dtyper(   r�   rR   r7   r\   r6   r8   r8   r9   Útest_numeric_dtype_factorize  s    z*TestFactorize.test_numeric_dtype_factorizec                 C   sr   t jg d¢t jd�}|j|d� t jg d¢t jd�}t jg d¢t jd�}t |¡\}}t ||¡ t ||¡ d S )N)rW   ç    „×—ArW   ç:Œ0âŽyE>r¤   rW   r'   ©Úwrite)r   r!   r   r"   r!   r   )rW   r¤   r¥   )	r.   r/   Úfloat64Úsetflagsr0   r   r-   r*   r1   ©r3   Úwritabler�   rR   r7   r\   r6   r8   r8   r9   Útest_float64_factorize)  s    z$TestFactorize.test_float64_factorizec                 C   sr   t jg d¢t jd�}|j|d� t jg d¢t jd�}t jddgt jd�}t |¡\}}t ||¡ t ||¡ d S )N)ì   ÿÿÿÿ r!   r­   r'   r¦   ©r   r!   r   r­   r!   )	r.   r/   Úuint64r©   r0   r   r-   r*   r1   rª   r8   r8   r9   Útest_uint64_factorize3  s    z#TestFactorize.test_uint64_factorizec                 C   sr   t jg d¢t jd�}|j|d� t jg d¢t jd�}t jddgt jd�}t |¡\}}t ||¡ t ||¡ d S )N)ì   ÿÿÿÿ ìûÿÿÿ         r±   r'   r¦   r®   r±   r²   )	r.   r/   rŒ   r©   r0   r   r-   r*   r1   rª   r8   r8   r9   Útest_int64_factorize=  s    z"TestFactorize.test_int64_factorizec                 C   sn   t jg d¢td�}|j|d� t jg d¢t jd�}t jg d¢td�}t |¡\}}t ||¡ t ||¡ d S )N)r^   r`   r^   r_   r`   r'   r¦   )r   r!   r   r"   r!   ©r^   r`   r_   )	r.   r/   r2   r©   r0   r   r-   r*   r1   rª   r8   r8   r9   Útest_string_factorizeG  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g d¢t jd�}t jg d¢td�}t |¡\}}t	 
||¡ t	 
||¡ d S )Nr^   r`   r_   r'   r¦   )r   r!   rc   rc   r   r"   rc   r!   r´   )r.   r/   rY   r   r2   r©   r0   r   r-   r*   r1   rª   r8   r8   r9   Útest_object_factorizeQ  s     z#TestFactorize.test_object_factorizec                 C   sn   t jt  d¡gdd�}|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.000úM8[ns]r'   r¦   r   z2020-01-01T00:00:00.000000000zdatetime64[ns])	r.   r/   Ú
datetime64r©   r0   r…   r-   r*   r1   rª   r8   r8   r9   Útest_datetime64_factorize[  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   r!   TrE   ©r…   Ú
RangeIndexZ
from_rangerž   r.   rj   r0   r   r-   r*   r1   rO   )r3   r=   ÚrirŠ   r‘   r8   r8   r9   Útest_factorize_rangeindexh  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'   rc   r   r!   r>   TrE   r»   )r3   r=   r½   rŠ   Zri2r‘   r8   r8   r9   Ú$test_factorize_rangeindex_decreasingv  s    $z2TestFactorize.test_factorize_rangeindex_decreasingc                 C   sˆ   t jg d¢t jd�}tjtdd�� tj|dd� W d   ƒ n1 sF0    Y  t 	d¡� t |¡ W d   ƒ n1 sz0    Y  d S )N)ì            r!   rÀ   r'   zgot an unexpected keywordr%   T)ÚorderF)
r.   r/   r¯   rŸ   r    r¡   r   r-   r*   r+   )r3   r�   r8   r8   r9   Útest_deprecate_order‰  s
    ,z"TestFactorize.test_deprecate_orderr�   r®   Úu8r'   )r²   r!   r²   Úi8)Ú__nan__ÚfoorÅ   r2   c                 C   sJ   t  |¡\}}|ddg }tjg d¢tjd�}t ||¡ t ||¡ d S )Nr   r!   r®   r'   )r   r-   r.   r/   r0   r*   r1   )r3   r�   r\   r6   r7   rR   r8   r8   r9   Ú,test_parametrized_factorize_na_value_default’  s
    
z:TestFactorize.test_parametrized_factorize_na_value_defaultzdata, na_valuerV   r   )r!   r   r!   r"   r!   )r²   r!   r²   r   r²   )r!   r²   r!   r   )r^   Ú r^   r_   r^   )r8   ©r^   r!   r8   ©r^   r"   r8   )rÉ   r8   rÉ   rÊ   rÉ   c                 C   sN   t j||d�\}}|ddg }tjg d¢tjd�}t ||¡ t ||¡ d S )N)Úna_valuer!   rd   )rc   r   rc   r!   r'   )r   Zfactorize_arrayr.   r/   r0   r*   r1   )r3   r�   rË   r\   r6   r7   rR   r8   r8   r9   Ú$test_parametrized_factorize_na_value¢  s
    z2TestFactorize.test_parametrized_factorize_na_valuezdata, uniques)r_   r^   Nr_   r_   r"   ZInt64Znumpy_arrayZextension_array)r‰   c                 C   s†   t j||dd�\}}|r8tjg d¢tjd�}t  |¡}ntjg d¢tjd�}|}t ||¡ t|tj	ƒrvt ||¡ nt 
||¡ d S )NT)r=   rU   )r!   r   rc   r!   r'   )r   r!   rc   r   )r   r-   r.   r/   r0   Z	safe_sortr*   r1   rG   ÚndarrayÚassert_extension_array_equal)r3   r=   r�   r6   r\   rR   r7   r8   r8   r9   Útest_factorize_use_na_sentinelµ  s    z,TestFactorize.test_factorize_use_na_sentinel)r^   Nr_   r^   ©r   r!   r"   r   r0   c                 C   s@   t jtj|td�dd�\}}tj||dd� tj||dd� d S )Nr'   FrT   T©Z
strict_nan)r   r-   r.   r/   r2   r*   r1   ©r3   r�   rR   r7   r\   r6   r8   r8   r9   Ú+test_object_factorize_use_na_sentinel_falseÒ  s
    ÿ
z9TestFactorize.test_object_factorize_use_na_sentinel_false)r!   Nr!   r"   r~   c                 C   sh   d}t jt|d��" tj|dd�\}}W d   ƒ n1 s:0    Y  t j||dd� t j||dd� d S )Nr$   r%   FrT   TrÑ   )r*   r+   r,   r   r-   r1   )r3   r�   rR   r7   r4   r\   r6   r8   r8   r9   Ú(test_int_factorize_use_na_sentinel_falseë  s
    0z6TestFactorize.test_int_factorize_use_na_sentinel_false)r^   r^   r_   )r   r   r!   Úcategory)Ú
categoriesr(   Z2017ú
US/Eastern©Útzc                 C   s*   t  |¡\}}t ||¡ t ||¡ d S )N)r   r-   r*   r1   rO   rÒ   r8   r8   r9   Útest_factorize_mixed_values  s    z)TestFactorize.test_factorize_mixed_valuesc                 C   sÜ   t dtjdgƒ |¡}t dtjdgƒ |¡}t ||¡}| ¡ \}}|jd|› d�ksZJ ‚tdƒ |¡}t || || ¡}| ¡ \}	}
|
jd|› d�ksžJ ‚t | 	d	¡| 	d	¡¡}| ¡ \}}|jd|› d
�ksØJ ‚d S )Nú
2016-01-01z
2015-10-11z
2016-01-02z
2015-10-15zinterval[datetime64[z	], right]r   zinterval[timedelta64[ú
US/Pacificz, US/Pacific], right])
r   r.   rY   Úas_unitr   Úfrom_arraysr-   r(   r   Ztz_localize)r3   ÚunitÚleftÚrightÚidxr\   ÚcatsÚtsZidx2Zcodes2Zcats2Zidx3Zcodes3Zcats3r8   r8   r9   Ú test_factorize_interval_non_nano  s    ÿz.TestFactorize.test_factorize_interval_non_nanoN)3Ú__name__Ú
__module__Ú__qualname__r:   rŸ   ÚmarkZxfailr   ÚparametrizerS   r]   rn   rs   rw   r{   r}   r‹   r’   r“   r™   r¢   r£   r¬   r°   r³   rµ   r¶   r¹   r¾   r¿   rÂ   r.   r/   rÇ   r2   rÌ   r…   rY   rÏ   r(   rÓ   r¨   rÔ   r   r   r0   r   r   r   rÚ   rå   r8   r8   r8   r9   r    5   sê   '
ýýõþ







	ýþ
ùþ
þþû
ôýýúþ

ýýúþ

ýýýõþ
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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 d0ejeg¡d1d2„ ƒZd3d4„ Zd5d6„ Z d7S )8Ú
TestUniquec                 C   s6   t j d¡jdddd�}t |¡}t|t jƒs2J ‚d S )Nr"   r   éd   é2   ©Úsize)r.   ÚrandomÚdefault_rngÚintegersr   rI   rG   rÍ   ©r3   rm   r‘   r8   r8   r9   Ú	test_ints3  s    
zTestUnique.test_intsc                 C   s<   t j d¡jdddd� d¡}t |¡}t|t jƒs8J ‚d S )Nr"   r   rì   rí   rî   r~   )	r.   rð   rñ   rò   rJ   r   rI   rG   rÍ   ró   r8   r8   r9   Útest_objects9  s    
zTestUnique.test_objectsc                 C   s2   t jg d¢td�}tdƒD ]}tt |¡ƒ qd S )N)ro   rp   ÚCÚDÚEr'   éè  )r.   r/   r2   rž   rƒ   r   rI   )r3   Úlstrœ   r8   r8   r9   Ú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 )Nrb   r"   )r   rÞ   r.   rj   ÚrepeatÚtilerZ   r=   r…   rI   r*   Úassert_almost_equal)r3   ZmindexrŠ   r‘   r8   r8   r9   Útest_on_index_objectD  s     ÿ

zTestUnique.test_on_index_objectc                 C   sD  |t jt j v r"g d¢}ddg}n²t|ƒr<g d¢}ddg}n˜t|ƒrVg d¢}ddg}n~t|ƒr�tddƒtddƒtddƒg}tddƒtddƒg}nDt|ƒrªg d¢}dd	g}n*t|ƒrÄg d
¢}ddg}ng d¢}ddg}t	||d� 
¡ }tj||d�}|t jv �r| t¡}|jjdv �r4t|ttfƒ�s*J ‚t |¡}t  ||¡ d S )N)r!   r"   r"   r!   r"   rW   rX   r   ©TTFTF)ro   rp   rp   ro   rp   r'   )Úmrx   )r*   ZBYTES_DTYPESZSTRING_DTYPESr	   r   r   rš   r   r
   r   rI   r.   r/   rJ   r2   r(   ÚkindrG   r   r   r1   )r3   Zany_numpy_dtyper�   r6   r‘   rŠ   r8   r8   r9   Útest_dtype_preservationR  s8    






z"TestUnique.test_dtype_preservationc                 C   s¢   t jddgdd�}tg d¢ƒ}t |¡}t ||¡ |j|jksDJ ‚t|ƒ}t |¡}t ||¡ |j|jksrJ ‚|j	}t |¡}t ||¡ |j|jksžJ ‚d S )Nú2015-01-03T00:00:00.000000000ú2015-01-01T00:00:00.000000000r·   r'   )r  r  r  )
r.   r/   r   r   rI   r*   r1   r(   r   rZ   )r3   rŠ   Zdt_indexr‘   Úsrm   r8   r8   r9   Ú$test_datetime64_dtype_array_returnedw  s(    þûÿ


z/TestUnique.test_datetime64_dtype_array_returnedc                 C   s>   t jg d¢dd�}t |¡}t jddgdd�}t ||¡ d S )N©Ú2000r	  Ú2001zdatetime64[s]r'   r	  r
  ©r.   r/   r…   rI   r*   r1   ©r3   r^   r‘   rŠ   r8   r8   r9   Útest_datetime_non_ns–  s    
zTestUnique.test_datetime_non_nsc                 C   s>   t jg d¢dd�}t |¡}t jddgdd�}t ||¡ d S )Nr  ztimedelta64[s]r'   iÐ  iÑ  r  r  r8   r8   r9   Útest_timedelta_non_nsœ  s    
z TestUnique.test_timedelta_non_nsc                 C   s¢   t jg d¢dd�}tg d¢ƒ}t |¡}t ||¡ |j|jksDJ ‚t|ƒ}t |¡}t ||¡ |j|jksrJ ‚|j	}t |¡}t ||¡ |j|jksžJ ‚d S )N)éày  én²  é'  úm8[ns]r'   )r  r  r  r  r  )
r.   r/   r   r   rI   r*   r1   r(   r   rZ   )r3   rŠ   Ztd_indexr‘   r  rm   r8   r8   r9   Ú%test_timedelta64_dtype_array_returned¢  s    


z0TestUnique.test_timedelta64_dtype_array_returnedc                 C   s<   t g d¢tjd�}tjg d¢tjd�}t t |¡|¡ d S )N)r!   r"   rÀ   rÀ   r'   )r!   r"   rÀ   )r   r.   r¯   r/   r*   r1   r   rI   )r3   r  rl   r8   r8   r9   Útest_uint64_overflowµ  s    zTestUnique.test_uint64_overflowc                 C   sH   dt jddg}t t j|td�¡}t jdt jdgtd�}t ||¡ d S )Nr^   r`   r'   )r.   rY   r…   rI   r/   r2   r*   r1   )r3   Zduplicated_itemsr‘   rŠ   r8   r8   r9   Ú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©rÖ   ÚorderedZbaabc©r  rÆ   ©Úname©rÖ   )
r   rM   rI   r*   Úassert_categorical_equalr   r   r…   r   rO   )r3   rŠ   Z
expected_or`   r‘   r  Úcir8   r8   r9   Útest_categoricalÀ  s.    



zTestUnique.test_categoricalc                 C   s¶   t tddd�tddd�gƒ |¡}t|ƒ}| ¡ }|d d… j}t ||¡ | ¡ }|d d… }t ||¡ t	 |¡}|d d… j}t ||¡ t	 |¡}|d d… }t ||¡ d S )NÚ20160101r×   rØ   r!   )
r   r   rÝ   r   rI   Ú_datar*   rÎ   rO   r…   )r3   rß   Údtir[   r‘   rŠ   r8   r8   r9   Útest_datetime64tz_awareé  s(    

þÿû

z"TestUnique.test_datetime64tz_awarec                 C   sð   t  tg d¢ƒ¡}t |tjg d¢dd�¡ t  tdgdgd  ƒ¡}t |tjddgdd�¡ d}tjt|d	�� t  t	d
ƒ¡}W d   ƒ n1 s–0    Y  tjg d¢t
d�}t ||¡ t  ttt	d
ƒƒƒ¡}tt	dƒƒ}t ||¡ d S )N)r"   r!   rd   rd   )r"   r!   rd   rŒ   r'   r"   r!   rb   z5unique with argument that is not not a Series, Index,r%   Zaabcra   r  )r…   rI   r   r*   r1   r.   r/   r+   r,   rM   r2   r   r  )r3   r‘   r4   rŠ   r8   r8   r9   Útest_order_of_appearance  s    ,z#TestUnique.test_order_of_appearancec                 C   sN   t tdƒtdƒgƒj |¡}t |¡}tjdgd|› d�d�}t 	||¡ d S )Nr   z2016-01-01T00:00:00.000000000zM8[ú]r'   )
r   r   ÚdtrÝ   r…   rI   r.   r/   r*   r1   )r3   rß   r[   r‘   rŠ   r8   r8   r9   Útest_order_of_appearance_dt64  s    
z(TestUnique.test_order_of_appearance_dt64c                 C   sT   t tddd�tddd�gƒ |¡}t |¡}t dgd|› d�d d�}t ||¡ d S )Nr   r×   rØ   z2016-01-01 00:00:00zdatetime64[z, US/Eastern])r(   rz   )r   r   rÝ   r…   rI   r*   rO   )r3   rß   r"  r‘   rŠ   r8   r8   r9   Útest_order_of_appearance_dt64tz  s    

þÿû
ÿz*TestUnique.test_order_of_appearance_dt64tzzarg ,expected)Ú1r)  Ú2r)  r*  r'   )rÆ   rÆ   c                 C   sL   d}t jt|d�� t |¡}W d   ƒ n1 s20    Y  t  ||¡ d S ©Nú-unique with argument that is not not a Seriesr%   ©r*   r+   r,   r…   rI   r1   )r3   ÚargrŠ   r4   r‘   r8   r8   r9   Ú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.   r/   r2   r…   rI   r*   r1   ©r3   rm   r‘   rŠ   r8   r8   r9   Útest_obj_none_preservation9  s    
z%TestUnique.test_obj_none_preservationc                 C   s4   t  ddg¡}t |¡}t  dg¡}t ||¡ d S )Ng       €ri   r  r  r8   r8   r9   Útest_signed_zeroA  s    
zTestUnique.test_signed_zeroc                 C   s~   t  dt  dd¡¡d }t  dt  dd¡¡d }||ks<J ‚||ksHJ ‚t ||g¡}t |¡}t tjg¡}t 	||¡ d S )NÚdú=Qì         À r   ì        À )
ÚstructÚunpackÚpackr.   r/   r…   rI   rY   r*   r1   )r3   ÚNAN1ÚNAN2r^   r‘   rŠ   r8   r8   r9   Útest_different_nansH  s    
zTestUnique.test_different_nansÚel_typec           	      C   s¦   d}d}t  dt  d|¡¡d }t  dt  d|¡¡d }||ksDJ ‚||ksPJ ‚tj||g|d�}t |¡}|jdkszJ ‚t  dt  d|d ¡¡d }||ks¢J ‚d S )Nl        À r6  r3  r4  r   r'   r!   )r7  r8  r9  r.   r/   r…   rI   rï   )	r3   r=  Zbits_for_nan1Zbits_for_nan2r:  r;  r^   r‘   Zresult_nan_bitsr8   r8   r9   Útest_first_nan_keptT  s    
zTestUnique.test_first_nan_keptc                 C   sZ   ||u rd S t j||gtd�}t |¡}|jdks6J ‚|d |u sFJ ‚|d |u sVJ ‚d S )Nr'   r"   r   r!   )r.   r/   r2   r…   rI   rï   )r3   Zunique_nulls_fixtureZunique_nulls_fixture2r^   r‘   r8   r8   r9   Útest_do_not_mangle_na_valuese  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 )Nr!   r"   rd   r'   )r   r…   ZNArI   r/   r*   rÎ   )r3   Zany_numeric_ea_dtyper[   r‘   rŠ   r8   r8   r9   Útest_unique_maskedo  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é   rê   r.   r/   r2   r/  r1  r2  r<  r¨   r>  r?  r@  r8   r8   r8   r9   rë   2  s<   %)þþ


rë   c                 C   sB   | t j d¡ ddd¡ƒ}t |¡}tt |¡ƒ}||ks>J ‚d S )Nr"   r   r   é   )r.   rð   rñ   rò   r   Znunique_intsrƒ   rI   )Zindex_or_series_or_arrayrZ   r‘   rŠ   r8   r8   r9   Útest_nunique_intsw  s    
rB  c                   @   s,  e Zd Zdd„ Zdd„ Zdd„ Zej dg d¢¡ej d	g d
¢¡dd„ ƒƒZ	dd„ Z
ej d	g d¢¡dd„ ƒZej d	g d¢¡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d0d1„ Zd2d3„ Zd4d5„ Z d6S )7ÚTestIsinc                 C   sº   d}t jt|d�� t dd¡ W d   ƒ n1 s40    Y  t jt|d�� t ddg¡ W d   ƒ n1 sp0    Y  t jt|d�� t dgd¡ W d   ƒ n1 s¬0    Y  d S )NzOonly list-like objects are allowed to be passed to isin\(\), you passed a `int`r%   r!   )rŸ   r    r¡   r   Úisin)r3   r4   r8   r8   r9   Útest_invalid€  s    ÿ*,zTestIsin.test_invalidc                 C   sD  d}t jt|d��" t ddgdg¡}W d   ƒ n1 s:0    Y  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 jt|d��" t ddgdg¡}W d   ƒ n1 �s\0    Y  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 jt|d��" t ddgdg¡}W d   ƒ n1 �s0    Y  t ddg¡}t  ||¡ d S )	Nú+isin with argument that is not not a Seriesr%   r!   r"   TFr^   r_   )	r*   r+   r,   r   rD  r.   r/   r1   r   )r3   r4   r‘   rŠ   r8   r8   r9   rn   Œ  s>    022zTestIsin.test_basicc                 C   s8  t ddd�j}t ||d g¡}t g d¢¡}t ||¡ t ||dd… ¡}t g d¢¡}t ||¡ t |t|dd… ƒ¡}t g d¢¡}t ||¡ t	ddd�j}t ||d g¡}t g d¢¡}t ||¡ t ||dd… ¡}t g d¢¡}t ||¡ t |t|dd… ƒ¡}t g d¢¡}t ||¡ d S )	Nrt   rd   ©Úperiodsr   ©TFFr"   r   r|   )
r   rZ   r   rD  r.   r/   r*   r1   r„   r   r0  r8   r8   r9   Útest_i8µ  s(    zTestIsin.test_i8Údtype1)r  r·   úM8[ns, UTC]z	period[D]r(   )rÄ   Zf8rÃ   c                 C   s`   t ddd�j}t| d¡ƒj |¡}| d¡ |¡}t ||¡}tj	|j
td�}t ||¡ d S )Nú
2013-01-01rd   rG  rÄ   r'   )r   Ú_valuesr   Úviewr/   rJ   r   rD  r.   ÚzerosÚshaperL   r*   r1   )r3   r(   rK  Údtarm   Úcompsr‘   rŠ   r8   r8   r9   Ú+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  )rH  rz   r   r"   r'   Tr!   )
r   rZ   r   rD  r.   rP  rƒ   rL   r*   r1   ©r3   r  r‘   rŠ   r8   r8   r9   Ú
test_largeÞ  s    zTestIsin.test_largec                 C   s\   t ddd�j}t| d¡ƒj |¡}t|d< t |tg¡}tjg d¢t	d�}t
 ||¡ d S )NrM  rd   rG  rÄ   r   rI  r'   )r   rN  r   rO  r/   r   r   rD  r.   rL   r*   r1   )r3   r(   rR  rm   r‘   rŠ   r8   r8   r9   Útest_isin_datetimelike_all_natæ  s    z'TestIsin.test_isin_datetimelike_all_nat)r  r·   rL  c           	      C   sÔ   t ddd�j}t| d¡ƒj |¡}dd„ |D ƒ}d}tjt|d�� t 	||¡}W d   ƒ n1 sf0    Y  | 
¡ s|J ‚tj|td	�}tjt|d�� t 	||¡}W d   ƒ n1 sº0    Y  | 
¡ sÐJ ‚d S )
NrM  rd   rG  rÄ   c                 S   s   g | ]}t |ƒ‘qS r8   )Ústr)r@   rr   r8   r8   r9   rC   ÷  rD   zFTestIsin.test_isin_datetimelike_strings_deprecated.<locals>.<listcomp>z2The behavior of 'isin' with dtype=.* is deprecatedr%   r'   )r   rN  r   rO  r/   r*   r+   r,   r   rD  Úallr.   rX  )	r3   r(   rR  rm   Úvalsr4   ÚresZvals2Zres2r8   r8   r9   Ú)test_isin_datetimelike_strings_deprecatedñ  s    **z2TestIsin.test_isin_datetimelike_strings_deprecatedc                 C   sP   t dddd�}t|ƒ}t|d< t |jtg¡}tjg d¢td�}t	 
||¡ d S )NrÛ   rd   ÚUTC©rH  rÙ   r   rI  r'   )r   r   r   r   rD  rN  r.   r/   rL   r*   r1   )r3   r"  r[   r[  rl   r8   r8   r9   Útest_isin_dt64tz_with_nat  s    z"TestIsin.test_isin_dt64tz_with_natc                 C   sv   t  g d¢¡}g d¢}ttdgƒ ||¡ƒ}ttdgƒ t  ddg¡|¡ƒ}t  g d¢¡}t ||¡}t ||¡ d S ©NrÐ   ra   r!   r   )TTFT)	r.   r/   r   r   Ú
from_codesr   rD  r*   r1   )r3   rZ  rã   ZSdZStrŠ   r‘   r8   r8   r9   Útest_categorical_from_codes  s     z$TestIsin.test_categorical_from_codesc                 C   sn   t  g d¢¡}g d¢}tdgƒ ||¡}tdgƒ t  ddg¡|¡}t  g d¢¡}t ||¡}t ||¡ d S r`  )r.   r/   r   ra  r   rD  r*   r1   )r3   rZ  rã   ÚcatÚotherrŠ   r‘   r8   r8   r9   Útest_categorical_isin  s    zTestIsin.test_categorical_isinc                 C   sj   t jg}t jg}t  dg¡}d}tjt|d�� t ||¡}W d   ƒ n1 sP0    Y  t ||¡ d S )NTrF  r%   )	r.   rY   r/   r*   r+   r,   r   rD  r1   ©r3   rS  rZ   rŠ   r4   r‘   r8   r8   r9   Útest_same_nan_is_in!  s    *zTestIsin.test_same_nan_is_inc                 C   sP   t  dd¡}t j|d< t |t  t jdg¡¡}t jt|ƒtd�}t	 
||¡ d S ©NrW   iAB r   r!   r'   )r.   rý   rY   r   rD  r/   Úonesrƒ   rL   r*   r1   rU  r8   r8   r9   Útest_same_nan_is_in_large/  s
    
z"TestIsin.test_same_nan_is_in_largec                 C   sZ   t  dd¡}t|ƒ}t j|d< | t  t jdg¡¡}tt jt|ƒtd�ƒ}t	 
||¡ d S rh  )r.   rý   r   rY   rD  r/   ri  rƒ   rL   r*   Úassert_series_equal)r3   r  Zseriesr‘   rŠ   r8   r8   r9   Ú test_same_nan_is_in_large_series7  s    
z)TestIsin.test_same_nan_is_in_large_seriesc                 C   s’   G dd„ dƒ}|ƒ |ƒ  }}d}t jt|d��P t  t |g|g¡t dg¡¡ t  t |g|g¡t dg¡¡ W d   ƒ n1 s„0    Y  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 )NFr8   )r3   rd  r8   r8   r9   Ú__eq__G  s    z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__c                 S   s   dS )Nr   r8   )r3   r8   r8   r9   Ú__hash__J  s    z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__N)ræ   rç   rè   rL   rn  ro  r8   r8   r8   r9   ÚLikeNanF  s   rp  rF  r%   TF)r*   r+   r,   r1   r   rD  r.   r/   )r3   rp  r^   r_   r4   r8   r8   r9   Útest_same_object_is_in@  s     zTestIsin.test_same_object_is_inc                 C   s¾   t dƒg}t dƒg}|d |d us(J ‚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 )NrY   r   Tr'   )
Úfloatr   rD  r.   r/   r*   r1   rN   r2   r¨   )r3   rS  rZ   r‘   r8   r8   r9   r<  V  s    

ÿÿzTestIsin.test_different_nansc                 C   sj   ddg}dg}t  ddg¡}d}tjt|d�� t ||¡}W d   ƒ n1 sP0    Y  t ||¡ d S )NÚssé*   Z42Fz2isin with argument that is not not a Series, Indexr%   )r.   r/   r*   r+   r,   r   rD  r1   rf  r8   r8   r9   Útest_no_castn  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.   r/   r   rD  r*   r1   )r3   rv  rZ  rŠ   r‘   r8   r8   r9   Ú
test_emptyy  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  g d¢¡}t ||¡}t ||¡ d S )NrY   ù              ð?r'   )FFT)	r.   r/   rY   rr  r2   r   rD  r*   r1   )r3   rS  rZ  rŠ   r‘   r8   r8   r9   Útest_different_nan_objects‚  s
    z#TestIsin.test_different_nan_objectsc                 C   sÐ   t  dt  dd¡¡d }t  dt  dd¡¡d }||ks<J ‚||ksHJ ‚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 )Nr3  r4  r5  r   r6  r'   T)
r7  r8  r9  r.   r/   r¨   r   rD  r*   r1   )r3   r:  r;  rm   Zlookup1r‘   rŠ   Zlookup2r8   r8   r9   Ú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 1rZ   r!   r"   r)  FN)r   rD  r*   Úassert_frame_equal©r3   Zdfr‘   Zexpected_falser8   r8   r9   Útest_isin_int_df_string_search   s    z'TestIsin.test_isin_int_df_string_searchc                 C   sH   t dtjdgiƒ}| tjdgtd�¡}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 NaNrZ   r"   ÚNaNr'   FN)r   r.   rY   rD  r/   r2   r*   r{  r|  r8   r8   r9   Útest_isin_nan_df_string_search¨  s    z'TestIsin.test_isin_nan_df_string_searchc                 C   sF   t dddgiƒ}| tjdgtd�¡}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.4245rZ   g˜nƒÀÊö?gö#Ed˜@z1.4245r'   FN)r   rD  r.   r/   r2   r*   r{  r|  r8   r8   r9   Ú test_isin_float_df_string_search°  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¯   rD  r*   rk  ©r3   r[   r‘   rŠ   r8   r8   r9   Útest_isin_unsigned_dtype¸  s    z!TestIsin.test_isin_unsigned_dtypeN)!ræ   rç   rè   rE  rn   rJ  rŸ   ré   rê   rT  rV  rW  r\  r_  rb  re  rg  rj  rl  rq  r<  ru  r   r2   r.   r/   rw  ry  rz  r}  r  r€  r‚  r8   r8   r8   r9   rC    s8   )




	
rC  c                   @   s”   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	e
d
g¡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d„ ZdS )ÚTestValueCountsc                 C   s    t j d¡ d¡}t|dƒ}d}tjt|d�� t 	|¡}W d   ƒ n1 sN0    Y  g d¢}t
 |¡ tdd�¡}tg d¢|d	d
�}t | ¡ | ¡ ¡ d S )NiÒ  re   ú!pandas.value_counts is deprecatedr%   )gV-²ù¿g}?5^ºIð¿g/Ý$�•Û¿g×£p=
×Ã?gƒÀÊ¡E¶ç?Tr  )r!   r   r"   r!   Úcount©r?   r  )r.   rð   rñ   Zstandard_normalr   r*   r+   r,   r   Úvalue_countsr   Zfrom_breaksrJ   r   r   rk  Z
sort_index)r3   rm   Úfactorr4   r‘   Zbreaksr?   rŠ   r8   r8   r9   Útest_value_countsÁ  s    
(z!TestValueCounts.test_value_countsc                 C   sÖ   g d¢}d}t jt|d�� tj|dd�}W d   ƒ n1 s>0    Y  tdgt dg¡dd	�}t  ||¡ t jt|d��  tj|d
dd�}W d   ƒ n1 s 0    Y  td
d
gt ddg¡dd	�}t  ||¡ d S )N)r!   r"   rd   re   r„  r%   r!   ©Úbinsre   )ç¬Zd;ßï?rg   r…  r†  r"   F)r‹  r=   )rŒ  ç      @)r�  rg   )	r*   r+   r,   r   r‡  r   r   rH   rk  )r3   r  r4   r‘   rŠ   r8   r8   r9   Útest_value_counts_binsÎ  s     ,ÿ.ýz&TestValueCounts.test_value_counts_binsc              	   C   s€  d}t jt|d��$ t t ddg¡¡}W d   ƒ n1 s<0    Y  t|ƒdksVJ ‚t jt|d��( tjt ddg¡dd�}W d   ƒ n1 s’0    Y  t|ƒdks¬J ‚t jt|d��" t tg d¢ƒ¡}W d   ƒ n1 sâ0    Y  t|ƒdksüJ ‚d}t	j
t|d��\ t jt|d��, tjtjd	dgtd
�dd� W d   ƒ n1 �sR0    Y  W d   ƒ n1 �sr0    Y  d S )Nr„  r%   r!   rW   rŠ  )r!   rW   r)  r"   z*bins argument only works with numeric datar)  r'   )r*   r+   r,   r   r‡  r.   r/   rƒ   r   rŸ   r    r¡   r2   )r3   Zmsg2r‘   r4   r8   r8   r9   Útest_value_counts_dtypesá  s    260z(TestValueCounts.test_value_counts_dtypesc              	   C   sT  t t d¡tgdd�}tddgƒ}d}||fD ]j}tjt|d��( t 	|¡}tj	|dd	�}W d   ƒ n1 sn0    Y  t
|ƒd
ksˆJ ‚t
|ƒdks.J ‚q.t tdƒd
idd�}tjt|d�� t 	|¡}W d   ƒ n1 sÜ0    Y  t ||¡ t d
gt d¡gdd�}	tjt|d�� t 	|¡}
W d   ƒ n1 �s:0    Y  t |
|	¡ d S )Nr  útimedelta64[ns]r'   r   z
2014-01-01r„  r%   F©Údropnar!   r"   z2014-01-01 00:00:00r…  r  r†  )r   r.   Útimedelta64r   r   r*   r+   r,   r   r‡  rƒ   r   rk  )r3   Útdr&  r4   r[   ÚvcZ
vc_with_naZexp_dtZ	result_dtZexp_tdZ	result_tdr8   r8   r9   Útest_value_counts_natô  s"    
,(*z%TestValueCounts.test_value_counts_natr(   zM8[us]c              
   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|d�}| ¡ }ttdddƒtdddƒtdddƒg|d�}t g d¢|dd�}t ||¡ d S )	Ni¸  r!   iˆ  ip  r'   ©rd   r"   r!   r…  r†  )r   r   r‡  r   r*   rk  )r3   r(   r[   r[  Z	exp_indexrl   r8   r8   r9   Ú&test_value_counts_datetime_outofbounds  s"    





ú÷ þz6TestValueCounts.test_value_counts_datetime_outofboundsc                 C   st   t ttdƒƒƒ}| ¡ }t g d¢tg d¢ƒdd�}tj||dd� |j ¡ }| ¡ }|j	 ¡ |_	tj||dd� d S )NZaaabbcr—  ra   r…  r†  T©Zcheck_index_type)
r   r   rM   r‡  r   r*   rk  rc  Z
as_orderedr?   rU  r8   r8   r9   r  "  s    ÿ
z TestValueCounts.test_categoricalc                 C   s>  t ttdƒƒƒ}tj|jd< | ¡ }t g d¢tg d¢g d¢d�dd�}tj	||dd	� |jd
d�}t g d¢tdddtjgƒdd�}tj	||dd	� t ttdƒdg d¢d�ƒ}tj|jd< | ¡ }t g d¢tg d¢g d¢dd�dd�}tj	||dd	� |jd
d�}t g d¢tdddtjgg d¢dd�dd�}tj	||dd	� d S )NZ
aaaaabbbccr!   )re   rd   r"   ra   r  r…  r†  Tr™  Fr‘  )re   rd   r"   r!   r^   r_   r`   )r_   r^   r`   )r  rÖ   r  )
r   r   rM   r.   rY   Zilocr‡  r   r*   rk  rU  r8   r8   r9   Útest_categorical_nans1  sL    ýÿÿýù	ÿûz%TestValueCounts.test_categorical_nansc                 C   sZ   t ttdƒtdƒdd�ƒ}| ¡ }t g d¢tg d¢tdƒdd�dd�}tj||dd	� d S )
NZbbbaacÚabcdTr  )rd   r"   r!   r   )r_   r^   r`   r3  r…  r†  r™  )r   r   rM   r‡  r*   rk  rU  r8   r8   r9   Útest_categorical_zeroes\  s    ÿûz'TestValueCounts.test_categorical_zeroesc              	   C   s°  t  tg d¢ƒjdd�tddgddgdd�¡ t  tg d¢ƒjdd�tddgddgd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d�¡ t  tdgd
 dgd	  d gd  ƒjdd�tg d¢g d¢dd�¡ t  tg d¢ƒjdd�tddgddgdd�¡ t  tg d¢ƒjdd�tddgddgdd�¡ t  tg d¢ƒjdd�tddgddgdd�¡ tg d¢ƒjdd�}tg d¢g d¢dd�}t  ||¡ d S )Nr   Tr‘  r"   r!   Fr…  r†  rd   rb   r'   )rb   rd   r"   )TFN)çš™™™™™$@rf   rf   rf   r�  )r�  rf   rf   N)r�  r�  rf   rf   rf   Nr—  )rf   r�  N)r*   rk  r   r‡  r   r2   )r3   r‘   rŠ   r8   r8   r9   Útest_value_counts_dropnai  s>    þþ(þ(þþþþz(TestValueCounts.test_value_counts_dropnar·   c                 C   s¦   t dgd dgd  tjgd  ƒ}| |¡}|jddd�}t g d¢t tjd	d
g|d�dd�}t ||¡ |jddd�}t ddgt d	d
g|d�dd�}t ||¡ d S )Nr!   r"   rd   rb   TF)Ú	normalizer’  )g      à?g333333Ó?gš™™™™™É?rX   rW   r'   Z
proportionr†  g333333ã?gš™™™™™Ù?)r   r.   rY   rJ   r‡  r*   rk  )r3   r(   r  Zs_typedr‘   rŠ   r8   r8   r9   Útest_value_counts_normalized�  s    $
ýÿz,TestValueCounts.test_value_counts_normalizedc                 C   sÜ   t jdgt jd�}tdgdgdd�}d}tjt|d�� t |¡}W d   ƒ n1 sV0    Y  t 	||¡ t jddgt
d�}tddgddgdd�}tjt|d�� t |¡}W d   ƒ n1 sÂ0    Y  t 	||¡ d S )	NrÀ   r'   r!   r…  r†  r„  r%   rc   )r.   r/   r¯   r   r*   r+   r,   r   r‡  rk  r2   )r3   rm   rŠ   r4   r‘   r8   r8   r9   Útest_value_counts_uint64¢  s    ((z(TestValueCounts.test_value_counts_uint64c                 C   sX   t  dddddt jg¡}t|ƒjdd�}tg d¢tjg d¢dd	�d
d�}t ||¡ d S )Nrd   r!   r"   re   rŠ  )r"   r"   r!   ))rŒ  rX   )rX   rh   )rh   rg   zinterval[float64, right]r'   r…  r†  )	r.   r/   rY   r   r‡  r   rH   r*   rk  )r3   rZ   r‘   rŠ   r8   r8   r9   Útest_value_counts_series²  s    ÿûz(TestValueCounts.test_value_counts_seriesN)ræ   rç   rè   r‰  rŽ  r�  r–  rŸ   ré   rê   r2   r˜  r  rš  rœ  rž  r.   r¨   r   r¡  r¢  r8   r8   r8   r9   rƒ  À  s   
+&
rƒ  c                   @   s$  e Zd Zdd„ Zej de g d¢¡e dddej	ddddej	d	g
¡e g d
¢¡ejg d¢e
d�ejg d¢ejd�g¡dd„ ƒZdd„ Zej deg d¢ƒe dd¡g¡dd„ ƒZej dg d¢g d¢fg d¢ddgfg d¢g d¢fg¡dd „ ƒZej d!g d"¢ejg d#¢e
d�fg¡d$d%„ ƒZd&S )'ÚTestDuplicatedc                 C   s”  t jddt jddt jgtd�}t |¡}t  g d¢¡}t ||¡ tj|dd�}t  g d¢¡}t ||¡ tj|dd�}t  g d	¢¡}t ||¡ tj|d
d�}t  g d¢¡}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   r!   r"   r'   )FFFTFTÚfirst©ZkeepÚlast)TFTFFFF)TFTTFTé   re   T)r.   r/   rY   r2   r   Ú
duplicatedr*   r1   rv  Ú	enumerateÚzip)r3   Úkeysr‘   rŠ   rœ   ÚtZfalsesZtruesr8   r8   r9   Útest_duplicated_with_nasÁ  s:    
(ÿ



z'TestDuplicated.test_duplicated_with_nasÚcase)
r!   r"   r!   rb   rd   r"   re   r!   rb   é   gš™™™™™ñ?gš™™™™™@gffffff
@gš™™™™™@gffffff@)
ù      ð?      ð?ù       @       @r°  ù      @      @y      @      @r±  y      @      @r°  r²  y      @      @)
r^   r_   r^   Úer`   r_   r3  r^   r³  Úfr'   )
r!   rÀ   r!   éó   rº   rÀ   é'   r!   rµ  é   c           
      C   sF  t  g d¢¡}t  g d¢¡}||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 ]X}	|	jdd�}t |t|ƒ¡ |	jdd�}t |t|ƒ¡ |	jdd�}t |t|ƒ¡ qèd S )	N©
FFTFFTFTTF©
TTTTFFFFFFr¤  r¥  r¦  FrÕ   r'   )	r.   r/   r   r¨  r*   r1   r   r   rk  )
r3   r®  Ú	exp_firstÚexp_lastÚ	exp_falseÚ	res_firstÚres_lastÚ	res_falserâ   r  r8   r8   r9   Útest_numeric_object_likesè  s6    ÿÿz(TestDuplicated.test_numeric_object_likesc                 C   sØ  g d¢}g d¢}t  dd„ |D ƒ¡t  dd„ |D ƒ¡t  dd„ |D ƒ¡t  dd„ |D ƒ¡t  dd„ |D ƒ¡g}t  g d	¢¡}t  g d
¢¡}||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 |
|¡ �qt|ƒt|dd�t|td�fD ]Z}|jdd�}t 	|t|ƒ¡ |jdd�}	t 	|	t|ƒ¡ |jdd�}
t 	|
t|ƒ¡ �qvq–d S )N)
ú
2011-01-01ú
2011-01-02rÁ  r   ú
2011-01-03rÂ  z
2011-01-04rÁ  r   z
2011-01-06)
ú1 daysú2 daysrÄ  r   z3 daysrÅ  z4 daysrÄ  r   z6 daysc                 S   s   g | ]}t |ƒ‘qS r8   ©r   ©r@   r3  r8   r8   r9   rC   D  rD   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>c                 S   s   g | ]}t |d d�‘qS )r×   rØ   rÆ  rÇ  r8   r8   r9   rC   E  rD   c                 S   s   g | ]}t |d d�‘qS )r÷   ry   )r   rÇ  r8   r8   r9   rC   F  rD   c                 S   s   g | ]}t  |¡‘qS r8   )r.   r¸   rÇ  r8   r8   r9   rC   G  rD   c                 S   s   g | ]}t |ƒ‘qS r8   )r   rÇ  r8   r8   r9   rC   H  rD   r¸  r¹  r¤  r¥  r¦  FrÕ   r'   )
r.   r/   r   r¨  r*   r1   r   r2   r   rk  )r3   r&  r”  Zcasesrº  r»  r¼  r®  r½  r¾  r¿  râ   r  r8   r8   r9   Útest_datetime_likes)  sT    ûÿÿ


ý

ýz"TestDuplicated.test_datetime_likesrŽ   r   rd   c                 C   s,   |j du sJ ‚t | ¡ t g d¢¡¡ d S )NT)FFF)Z	is_uniquer*   r1   r¨  r.   r/   )r3   r®  r8   r8   r9   Útest_unique_index{  s    z TestDuplicated.test_unique_indexzarr, uniques)r–   ©r   r!   ©r!   r   r”   r–   rÊ  rË  r”   )r–   rÊ  rË  r”   )©r_   r`   ©r^   r_   rÍ  rÌ  rÌ  rÍ  )rÉ   ©r_   r"   ©r^   rd   rÉ   )rÉ   rÎ  rÏ  c                 C   sj   t jt|ƒtd�}||d d …< d}tjt|d�� t |¡}W d   ƒ n1 sP0    Y  t 	||¡ d S )Nr'   r,  r%   )
r.   rv  rƒ   r2   r*   r+   r,   r…   rI   r1   )r3   rm   r6   rŠ   r4   r‘   r8   r8   r9   Útest_unique_tuples€  s    (z!TestDuplicated.test_unique_tupleszarray,expected)r°  r   r!   rx  ù      ð?       @rÑ  )r°  y                r)   rx  rÑ  c                 C   sL   d}t jt|d�� t |¡}W d   ƒ n1 s20    Y  t  ||¡ d S r+  r-  )r3   r/   rŠ   r4   r‘   r8   r8   r9   Útest_unique_complex_numbers˜  s    (z*TestDuplicated.test_unique_complex_numbersN)ræ   rç   rè   r­  rŸ   ré   rê   r.   r/   rY   r2   r¯   rÀ  rÈ  r   r…   r¼   rÉ  rÐ  rÒ  r8   r8   r8   r9   r£  À  sL   ' ÿ
ÿîþ
(R 
þþ÷þ

ýÿþ
r£  c                   @   s0  e Zd Zej dejej	dd„ e
dƒD ƒed�fejej	dd„ e
dƒD ƒed�fejejdejd�fejejdejd�fejejdejd�fg¡dd„ ƒZej dejej	d	d„ e
dƒD ƒed�fejej	d
d„ e
dƒD ƒed�fejejdejd�fejejdejd�fejejdejd�fg¡dd„ ƒZdS )ÚTestHashTablezhtable, datac                 C   s   g | ]}d |› �‘qS ©Zfoo_r8   r›   r8   r8   r9   rC   °  rD   zTestHashTable.<listcomp>rù   r'   c                 C   s   g | ]}d |› �‘qS rÔ  r8   r›   r8   r8   r9   rC   ´  rD   c           
      C   sÎ   t ||jd�}|tjkr&tj|jd< n |tjkrFt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 )Nr'   éô  éö  rd   T©ÚfracÚreplace©Zdropr¦   r¤  r¥  )Zreturn_inverse)r   r(   r�   ÚFloat64HashTabler.   rY   ÚlocÚPyObjectHashTabler   ÚsampleÚreset_indexrZ   r©   Údrop_duplicatesrI   r*   r1   )
r3   Úhtabler�   r«   r  Ús_duplicatedÚexpected_uniqueÚresult_uniqueÚresult_inverseZreconstrr8   r8   r9   Útest_hashtable_unique«  s     

ÿ
z#TestHashTable.test_hashtable_uniquec                 C   s   g | ]}d |› �‘qS rÔ  r8   r›   r8   r8   r9   rC   Ý  rD   c                 C   s   g | ]}d |› �‘qS rÔ  r8   r›   r8   r8   r9   rC   á  rD   c                 C   sÈ   t ||jd�}|tjkr&tj|jd< n |tjkrFt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Ö  rd   Tr×  rÚ  r¦   )r   r(   r�   rÛ  r.   rY   rÜ  rÝ  r   rÞ  rß  rZ   r©   r†   r-   r’  rà  r*   r1   )r3   rá  r«   r�   r  râ  Zna_maskrä  rå  rã  Zresult_reconstructZexpected_reconstructr8   r8   r9   Útest_hashtable_factorizeØ  s    



z&TestHashTable.test_hashtable_factorizeN)ræ   rç   rè   rŸ   ré   rê   r�   rÝ  r.   r/   rž   r2   ZStringHashTablerÛ  rj   r¨   ZInt64HashTablerŒ   ZUInt64HashTabler¯   ræ  rç  r8   r8   r8   r9   rÓ  ª  s8   þþõþ
þþõþrÓ  c                   @   s®   e Zd Z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 )ÚTestRankrm   rf   r!   r"   rd   rg   c                 C   s`   t  d¡}t |¡}t |¡ }| ¡ }t |¡}tj||< | 	|¡}tj
||< t ||¡ d S )Nzscipy.stats)rŸ   Zimportorskipr.   r/   ÚisfiniteÚcopyÚlibalgosZrank_1drq   ZrankdatarY   r*   rþ   )r3   rm   Zsp_statsr�   r‘   rl   r8   r8   r9   Ú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 )Nr!   r"   r'   rì   r¦   )	r.   r/   r¨   r©   r   r   Úrankr*   r1   )r3   r«   r(   rl   r�   r[   r‘   r8   r8   r9   rn     s    
zTestRank.test_basicc                 C   s:   t jddgt jd�}tddg|d�}t t |¡|¡ d S )Nr!   r"   r'   rÀ   )r.   r/   r¨   r   r*   r1   r   rî  )r3   r(   rl   r  r8   r8   r9   r  %  s    zTestRank.test_uint64_overflowc                 C   s^   t  g d¢g d¢g d¢gg¡}d}tjt|d�� t |¡ W d   ƒ n1 sP0    Y  d S )NrŽ   )re   rb   r¯  )r·  r§  é	   z%Array with ndim > 2 are not supportedr%   )r.   r/   rŸ   r    r¡   r   rî  )r3   rm   r4   r8   r8   r9   Útest_too_many_ndims,  s    zTestRank.test_too_many_ndimsc                 C   s\   t  d¡}tj|dd� ¡ }|dks(J ‚t  d¡ dd¡}tj|dd� ¡ }|dksXJ ‚d S )Ni  T)Zpctr!   i  r"   )r.   rj   r   rî  ÚmaxÚreshape)r3   rZ   r‘   r8   r8   r9   Útest_pct_max_many_rows3  s    
zTestRank.test_pct_max_many_rowsN)ræ   rç   rè   rŸ   ré   rê   r.   rY   rì  Ú	typecodesrn   r¨   r¯   r  rð  Z
single_cpuró  r8   r8   r8   r9   rè    s   þþ

	
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   s6   t g tjtg td�d�}t t t 	g ¡¡|j
¡ d S )Nr'   )r(   r?   )r   r.   r¨   r   Úintr*   r1   r   Úmoder/   rZ   ©r3   rl   r8   r8   r9   Útest_no_mode@  s    zTestMode.test_no_moder&  rí  ÚFloatc                 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 )Nr!   r'   ©r   r*   r1   r   r÷  rZ   rk  ©r3   r&  Z
exp_singleZdata_singleZ	exp_multiZ
data_multir[   rl   r8   r8   r9   Útest_mode_singleD  s    zTestMode.test_mode_singlec                 C   sN   t dgtd�}t t |j¡|j¡ t g d¢td�}t t |j¡|j¡ d S )Nr!   r'   ra   )r   rö  r*   r1   r   r÷  rZ   r2   rø  r8   r8   r9   Útest_mode_obj_intW  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 )Nr!   rb   r"   rd   r'   rû  rü  r8   r8   r9   Ú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^   r"   rd   r`   r'   rû  )r3   rl   r�   r[   r8   r8   r9   Útest_strobj_modep  s    zTestMode.test_strobj_modec                 C   s€   dg}dgd dgd  }t ||d�}t ||d�}|rV|tu rVt t |j¡|j¡ nt t |j¡|j¡ t | ¡ |¡ d S )NÚbarrÆ   r"   rd   r'   )	r   rX  r*   rÎ   r   r÷  rZ   r1   rk  )r3   r&  Zusing_infer_stringrl   r�   r[   r8   r8   r9   Útest_strobj_multi_chary  s    zTestMode.test_strobj_multi_charc                 C   s�   t g d¢dd�}t g d¢dd�}t t |j¡|j¡ t | ¡ |¡ t ddgdd�}t g d¢dd�}t t |j¡|j¡ t | ¡ |¡ d S )N)ú
1900-05-03rÃ  ú
2013-01-02r·   r'   )rÃ  r  r  rÃ  r  )rÃ  r  r  rÃ  r  ©r   r*   rÎ   r   r÷  rZ   rN  rk  ©r3   rl   r[   r8   r8   r9   Útest_datelike_mode†  s    þzTestMode.test_datelike_modec                 C   s�   t g d¢dd�}t g d¢dd�}t t |j¡|j¡ t | ¡ |¡ t ddgdd�}t g d¢dd�}t t |j¡|j¡ t | ¡ |¡ d S )N)ú-1 daysú0 daysrÄ  r�  r'   )rÄ  r  r	  ú2 minr|   ©r|   r|   z-1 dayz-1 day 2 minr
  r
  r  r  r8   r8   r9   Útest_timedelta_mode”  s    þzTestMode.test_timedelta_modec                 C   sD   t dgtd�}t g d¢ƒ}t t |j¡|j¡ t | ¡ |¡ d S )NrÆ   r'   )r!   rÆ   rÆ   )r   r2   r*   r1   r   r÷  rZ   rk  r  r8   r8   r9   Útest_mixed_dtype¢  s    zTestMode.test_mixed_dtypec                 C   s–   t dgtjd�}t g d¢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'   )r!   rÀ   rÀ   r!   )	r   r.   r¯   r*   r1   r   r÷  rZ   rk  r  r8   r8   r9   r  ¨  s    zTestMode.test_uint64_overflowc                 C   s    t ddgƒ}|}t|ƒ ¡ j}t ||¡ t g d¢ƒ}t dgddgd�}t|ƒ ¡ j}t ||¡ t g d¢ƒ}t ddgg d¢d�}t|ƒ ¡ j}t ||¡ d S )	Nr!   r"   ©r!   r^   r^   r^   r  ©r!   r!   r"   rd   rd   rd   rŽ   )r   r   r÷  rN  r*   r  )r3   r`   rl   r[  r8   r8   r9   r  ³  s    zTestMode.test_categoricalc                 C   sÞ   t g d¢ƒ}tg d¢tjd�}t t |¡|j¡ t g d¢ƒ}tdgt	d�}t t |¡|j¡ t g d¢ƒ}tddgtjd�}t t |¡|j¡ t g d¢d	d�}t
jtd
d�� t |¡ W d   ƒ n1 sÐ0    Y  d S )NrŽ   r'   r  r^   r  r!   rd   r  r�  ZTimedeltaIndexr%   )r   r   r.   rŒ   r*   r1   r   r÷  rZ   r2   rŸ   r    ÚAttributeError)r3   râ   rl   r8   r8   r9   Ú
test_indexÃ  s    þzTestMode.test_indexc                 C   s6   t g d¢dd�}| ¡ }t dgdd�}t ||¡ d S )N)r!   r!   rd   rÆ   r  r!   )r   r÷  r*   rk  r�  r8   r8   r9   Ú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   rX  r2   r  r  r  r  r  r  r  r  r8   r8   r8   r9   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 )Né   rd   re   r   Únsr"   r!   r   ©Zaxisr�  r'   )r.   rj   rJ   rŒ   rO  rò  r(   Útyper   Údiffri  rQ  r“  r*   r1   ÚT©r3   r(   rm   r‘   rŠ   r8   r8   r9   Útest_diff_datetimelike_natá  s     z#TestDiff.test_diff_datetimelike_natc                 C   sV   t dddd�j}d}tjt|d��  tj|ddd� W d   ƒ n1 sH0    Y  d S )	NrÛ   rd   rÜ   r^  z#cannot diff DatetimeArray on axis=1r%   r!   r  )r   r!  rŸ   r    Ú
ValueErrorr   r  )r3   rR  r4   r8   r8   r9   Útest_diff_ea_axisñ  s    zTestDiff.test_diff_ea_axisZint8Zint16c                 C   sH   t jg d¢|d�}t |d¡}t jt jddddgdd�}t ||¡ d S )N)r   r!   r!   r   r   r'   r!   r   rc   rK   )r.   r/   r   r  rY   r*   r1   r  r8   r8   r9   Útest_diff_low_precision_intø  s    z$TestDiff.test_diff_low_precision_intN)	ræ   rç   rè   rŸ   ré   rê   r  r  r  r8   r8   r8   r9   r  à  s
   
r  Úopc                 C   sf   | g d¢ƒ}| g d¢ƒ}| g d¢ƒ}t |tjƒrJt ||¡}t ||¡ nt ||¡}t ||¡ d S )N)rd   r!   rd   re   )r"   rd   r!   r!   )rd   rd   r!   r!   re   r"   )rG   r.   rÍ   r   Zunion_with_duplicatesr*   r1   rÎ   )r  ZlvalsZrvalsrŠ   r‘   r8   r8   r9   Útest_union_with_duplicates   s    r   )Br   r7  Únumpyr.   rŸ   Zpandas._configr   Zpandas._libsr   rë  r   r�   Zpandas.core.dtypes.commonr   r   r   r	   r
   Zpandas.core.dtypes.dtypesr   Zpandasr…   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr*   Zpandas.core.algorithmsÚcoreZ
algorithmsZpandas.core.arraysr   r   Zpandas.core.commonÚcommonr˜   r    rë   rB  rC  rƒ  r£  rÓ  rè  rõ  r  ré   rê   r/   r   r8   r8   r8   r9   Ú<module>   sJ   P      G  C   k\9 " 