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   úV/var/www/html/laksyashrimp/venv/lib/python3.9/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   Úv1Ú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   ry   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'   )Úmrz   )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(   r|   )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        À r8  r5  r6  r   r'   r!   )r9  r:  r;  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   r1  r3  r4  r>  rª   r@  rA  rB  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    
rD  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   rF  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   rF  r.   r/   r*   r1   r†   r   r2  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   rI  rÆ   r'   )r   Ú_valuesr   Úviewr/   rJ   r   rF  r.   ÚzerosÚshaperL   r*   r1   )r3   r(   rM  Ú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  )rJ  r|   r   r"   r'   Tr!   )
r   rZ   r   rF  r.   rR  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 )NrO  rd   rI  rÆ   r   rK  r'   )r   rP  r   rQ  r/   r   r   rF  r.   rL   r*   r1   )r3   r(   rT  rm   r“   rŒ   r8   r8   r9   Útest_isin_datetimelike_all_natæ  s    z'TestIsin.test_isin_datetimelike_all_nat)r  r¹   rN  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 )
NrO  rd   rI  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   rP  r   rQ  r/   r*   r+   r,   r   rF  Úallr.   rZ  )	r3   r(   rT  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©rJ  rÛ   r   rK  r'   )r   r   r   r   rF  rP  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   rF  r*   r1   )r3   r\  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 rb  )r.   r/   r   rc  r   rF  r*   r1   )r3   r\  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 )NTrH  r%   )	r.   rY   r/   r*   r+   r,   r   rF  r1   ©r3   rU  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   rF  r/   Úonesr…   rL   r*   r1   rW  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 rj  )r.   rÿ   r   rY   rF  r/   rk  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   rf  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   rp  rq  r8   r8   r8   r9   ÚLikeNanF  s   rr  rH  r%   TF)r*   r+   r,   r1   r   rF  r.   r/   )r3   rr  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   rF  r.   r/   r*   r1   rN   r2   rª   )r3   rU  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   rF  r1   rh  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   rF  r*   r1   )r3   rx  r\  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   rt  r2   r   rF  r*   r1   )r3   rU  r\  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 )Nr5  r6  r7  r   r8  r'   T)
r9  r:  r;  r.   r/   rª   r   rF  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   rF  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   rF  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   rF  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±   rF  r*   rm  ©r3   r[   r“   rŒ   r8   r8   r9   Útest_isin_unsigned_dtype¸  s    z!TestIsin.test_isin_unsigned_dtypeN)!rè   ré   rê   rG  rn   rL  r¡   rë   rì   rV  rX  rY  r^  ra  rd  rg  ri  rl  rn  rs  r>  rw  r   r2   r.   r/   ry  r{  r|  r  r�  r‚  r„  r8   r8   r8   r9   rE    s8   )




	
rE  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   rm  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   rm  )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   rm  )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*   rm  )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*   rm  re  Z
as_orderedr?   rW  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*   rm  rW  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`   r5  r‡  rˆ  r›  )r   r   rM   r‰  r*   rm  rW  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*   rm  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*   rm  )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‰  rm  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*   rm  )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   rx  Ú	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_   r5  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   rm  )
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@   r5  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ù   r{   )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   rm  )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.   rx  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!   rz  ù      ð?       @rÓ  )r²  y                r)   rz  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   rm  ©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   rZ  r*   rÐ   r   rù  rZ   r1   rm  )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   rP  rm  ©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   rm  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   rm  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ù  rP  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*   rm  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  rZ  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Ž   rQ  rô  r(   Útyper   Údiffrk  rS  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   rT  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   r9  Ú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í   rD  rE  r…  r¥  rÕ  rê  r÷  r  rë   rì   r/   r"  r8   r8   r8   r9   Ú<module>   sJ   P      G  C   k\9 " 