o
    Û­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w   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ÚuniquesÚexpected_labelsÚexpected_uniques© r9   úT/var/www/html/CropPilot/venv/lib/python3.10/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r$| 	tj
¡}||ƒ}t|tƒr<|jtkr<|jtkr<| 	t¡}|rB| ¡ }t|ƒ‰ ‡ fdd„|D ƒ}	tj|	tjd�}	t ||	¡ tj||dd� d S )N©r>   c                    s   g | ]}ˆ   |¡‘qS r9   )Úindex)Ú.0Úval©Úexpected_uniques_listr9   r:   Ú
<listcomp>^   ó    z0TestFactorize.test_factorize.<locals>.<listcomp>r'   T©Úexact)r-   r   Ú
isinstancer   Úfrom_tuplesÚuniquer(   r.   Úfloat16ÚastypeÚfloat32Úboolr2   Úsort_valuesÚlistÚasarrayr0   r*   r1   Úassert_index_equal)
r3   Úindex_or_series_objr>   ÚobjÚresult_codesÚresult_uniquesÚconstructorÚexpected_arrr8   Úexpected_codesr9   rC   r:   Ú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   rS   )r3   ÚvaluesÚserÚcodesr6   rZ   r8   r9   r9   r:   Ú+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Úbrg   rf   rf   Úcrh   rh   r'   ©rf   rg   rh   Tr?   )r   r!   r!   r   r   r"   r"   r"   é   éÿÿÿÿ)r   r!   r"   é   é   )rm   rl   r"   r!   r   ç      @)ç      @ç      @r`   r_   ç        )rq   r_   r`   rp   ro   )
r.   r/   r2   r   r-   r*   r1   r0   Úaranger(   )r3   Úitemsrd   r6   ÚexpÚarrr9   r9   r:   Ú
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   rk   r!   r"   rl   r'   Tr?   )r"   r"   rk   rl   r   r!   )r   r.   ra   Úinfr   r-   r/   r0   r*   r1   r   rS   )r3   Úxrd   r6   rt   r9   r9   r:   Ú
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   rS   ©r3   Úv1Úv2rz   rd   r6   rt   r9   r9   r:   Ú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 )	NÚ201302ÚM©ÚfreqÚ201303r}   r'   Tr?   )r   r   r   r-   r.   r/   r0   r*   r1   rS   r   r~   r9   r9   r:   Ú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   rS   r~   r9   r9   r:   Ú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 ]4}|j||d�}t jddd|gt jd�}tt|ƒƒtt|ƒƒks8J ‚t	 
t |¡||k¡ t	 
||¡ qd S )Nr!   r"   ÚOr'   )rk   é   )Úna_sentinelr   )r.   r/   ra   ÚhtÚObjectFactorizerÚlenr-   r0   Úsetr*   r1   ÚpdÚisna)r3   ÚkeyÚrizerrŒ   ÚidsÚexpectedr9   r9   r:   Ú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"   rl   r!   r!   r   Úint64r'   )FFFFFT)Úmask)r   r!   r"   r   r   rk   ©r!   r"   rl   )r.   r/   r�   ÚInt64Factorizerr�   r-   r0   r*   r1   r6   Úto_array)r3   Údatar™   r”   Úresultr–   r8   r9   r9   r:   Ú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"   rl   )r   r!   r"   r   rk   r'   rš   )r.   r/   ra   r�   rŽ   r�   r-   rM   r2   r0   r*   r1   r6   rœ   )r3   r�   r”   rž   r–   r8   r9   r9   r:   Ú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!   rl   )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 sw   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   ÚcomÚasarray_tuplesafer2   )r3   r�   rZ   r8   r4   rd   r6   Úexpected_uniques_arrayr9   r9   r:   Útest_factorize_tuple_listû   s   ÿz'TestFactorize.test_factorize_tuple_listc                 C   sl   t jdd„ tdƒD ƒtd�}d}tjt|d�� tj|d d d… dd	� W d   ƒ d S 1 s/w   Y  d S )
Nc                 S   ó   g | ]}t |ƒ‘qS r9   )Úcomplex©rA   Úir9   r9   r:   rE     ó    z6TestFactorize.test_complex_sorting.<locals>.<listcomp>é   r'   z,'[<>]' not supported between instances of .*r%   rk   Tr?   )	r.   r/   Úranger2   ÚpytestÚraisesÚ	TypeErrorr   r-   )r3   Úx17r4   r9   r9   r:   Ú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   Úany_real_numpy_dtyper(   r�   rZ   r8   rd   r6   r9   r9   r:   Ú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)r_   ç    „×—Ar_   ç:Œ0âŽyE>r·   r_   r'   ©Úwrite)r   r!   r   r"   r!   r   )r_   r·   r¸   )	r.   r/   Úfloat64Úsetflagsr0   r   r-   r*   r1   ©r3   Úwritabler�   rZ   r8   rd   r6   r9   r9   r:   Útest_float64_factorize)  ó   z$TestFactorize.test_float64_factorizec                 C   ór   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½   r9   r9   r:   Útest_uint64_factorize3  rÀ   z#TestFactorize.test_uint64_factorizec                 C   rÁ   )N)ì   ÿÿÿÿ ìûÿÿÿ         rÆ   r'   r¹   rÃ   rÆ   rÇ   )	r.   r/   r˜   r¼   r0   r   r-   r*   r1   r½   r9   r9   r:   Útest_int64_factorize=  rÀ   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)rf   rh   rf   rg   rh   r'   r¹   )r   r!   r   r"   r!   ©rf   rh   rg   )	r.   r/   r2   r¼   r0   r   r-   r*   r1   r½   r9   r9   r:   Ú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 )Nrf   rh   rg   r'   r¹   )r   r!   rk   rk   r   r"   rk   r!   rÉ   )r.   r/   ra   r   r2   r¼   r0   r   r-   r*   r1   r½   r9   r9   r:   Ú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½   r9   r9   r:   Ú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!   TrG   ©r‘   Ú
RangeIndexÚ
from_ranger¯   r.   rr   r0   r   r-   r*   r1   rS   )r3   r>   Úrir–   rž   r9   r9   r:   Ú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}|r3|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'   rk   r   r!   r?   TrG   rÐ   )r3   r>   rÓ   r–   Úri2rž   r9   r9   r:   Ú$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 s#w   Y  t 	d¡� t |¡ W d   ƒ d S 1 s>w   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�   r9   r9   r:   Ú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�   rd   r6   r8   rZ   r9   r9   r:   Ú,test_parametrized_factorize_na_value_default’  s
   
z:TestFactorize.test_parametrized_factorize_na_value_defaultzdata, na_valuer^   r   )r!   r   r!   r"   r!   )rÇ   r!   rÇ   r   rÇ   )r!   rÇ   r!   r   )rf   Ú rf   rg   rf   )r9   ©rf   r!   r9   ©rf   r"   r9   )rà   r9   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!   rl   )rk   r   rk   r!   r'   )r   Úfactorize_arrayr.   r/   r0   r*   r1   )r3   r�   râ   rd   r6   r8   rZ   r9   r9   r:   Ú$test_parametrized_factorize_na_value¢  s
   z2TestFactorize.test_parametrized_factorize_na_valuezdata, uniques)rg   rf   Nrg   rg   r"   ÚInt64Únumpy_arrayÚextension_array)r•   c                 C   sˆ   t j||dd�\}}|rtjg d¢tjd�}t  |¡}ntjg d¢tjd�}|}t ||¡ t|tj	ƒr<t ||¡ d S t 
||¡ d S )NT)r>   r]   )r!   r   rk   r!   r'   )r   r!   rk   r   )r   r-   r.   r/   r0   Ú	safe_sortr*   r1   rI   ÚndarrayÚassert_extension_array_equal)r3   r>   r�   r6   rd   rZ   r8   r9   r9   r:   Útest_factorize_use_na_sentinelµ  s   z,TestFactorize.test_factorize_use_na_sentinel)rf   Nrg   rf   ©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'   Fr\   T©Ú
strict_nan)r   r-   r.   r/   r2   r*   r1   ©r3   r�   rZ   r8   rd   r6   r9   r9   r:   Ú+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w   Y  t j||dd� t j||dd� d S )Nr$   r%   Fr\   Trí   )r*   r+   r,   r   r-   r1   )r3   r�   rZ   r8   r4   rd   r6   r9   r9   r:   Ú(test_int_factorize_use_na_sentinel_falseë  s   ÿz6TestFactorize.test_int_factorize_use_na_sentinel_false)rf   rf   rg   )r   r   r!   Úcategory)Ú
categoriesr(   Ú2017ú
US/Eastern©Útzc                 C   s*   t  |¡\}}t ||¡ t ||¡ d S )N)r   r-   r*   r1   rS   rï   r9   r9   r:   Ú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s-J ‚tdƒ |¡}t || || ¡}| ¡ \}	}
|
jd|› d�ksOJ ‚t | 	d	¡| 	d	¡¡}| ¡ \}}|jd|› d
�kslJ ‚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.   ra   Úas_unitr   Úfrom_arraysr-   r(   r   Útz_localize)r3   ÚunitÚleftÚrightÚidxrd   ÚcatsÚtsÚidx2Úcodes2Úcats2Úidx3Úcodes3Úcats3r9   r9   r:   Ú test_factorize_interval_non_nano  s   ÿz.TestFactorize.test_factorize_interval_non_nanoN)3Ú__name__Ú
__module__Ú__qualname__r;   r°   ÚmarkÚxfailr   Úparametrizer[   re   rv   r{   r�   r‡   r‰   r—   rŸ   r    r¨   r´   r¶   r¿   rÅ   rÈ   rÊ   rË   rÎ   rÔ   rÖ   rÙ   r.   r/   rÞ   r2   rä   r‘   ra   rë   r(   rð   r»   rñ   r   r   r0   r   r   r   rø   r
  r9   r9   r9   r:   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ƒsJ ‚d S )Nr"   r   éd   é2   ©Úsize)r.   ÚrandomÚdefault_rngÚintegersr   rK   rI   ré   ©r3   ru   rž   r9   r9   r:   Ú	test_ints3  s   
zTestUnique.test_intsc                 C   s<   t j d¡jdddd� d¡}t |¡}t|t jƒsJ ‚d S )Nr"   r   r  r  r  rŠ   )	r.   r  r  r  rM   r   rK   rI   ré   r  r9   r9   r:   Útest_objects9  s   
zTestUnique.test_objectsc                 C   s2   t jg d¢td�}tdƒD ]	}tt |¡ƒ qd S )N)rw   rx   ÚCÚDÚEr'   éè  )r.   r/   r2   r¯   r�   r   rK   )r3   Úlstr¬   r9   r9   r:   Útest_object_refcount_bug?  s   ÿz#TestUnique.test_object_refcount_bugc                 C   sb   t  t d¡ d¡t t d¡d¡g¡}|j}| ¡  | d¡}t 	|¡}| ¡  t
 ||¡ d S )Nrj   r"   )r   rü   r.   rr   ÚrepeatÚtilerb   r>   r‘   rK   r*   Úassert_almost_equal)r3   Úmindexr–   rž   r9   r9   r:   Útest_on_index_objectD  s    ÿ

zTestUnique.test_on_index_objectc                 C   s>  |t jt j v rg d¢}ddg}nYt|ƒrg d¢}ddg}nLt|ƒr+g d¢}ddg}n?t|ƒrHtddƒtddƒtddƒg}tddƒtddƒg}n"t|ƒrUg d¢}dd	g}nt|ƒrbg d
¢}ddg}ng d¢}ddg}t	||d� 
¡ }tj||d�}|t jv rƒ| t¡}|jjdv r—t|ttfƒs’J ‚t |¡}t  ||¡ d S )N)r!   r"   r"   r!   r"   r_   r`   r   ©TTFTF)rw   rx   rx   rw   rx   r'   )Úmrƒ   )r*   ÚBYTES_DTYPESÚSTRING_DTYPESr	   r   r   rª   r   r
   r   rK   r.   r/   rM   r2   r(   ÚkindrI   r   r   r1   )r3   Úany_numpy_dtyper�   r6   rž   r–   r9   r9   r:   Ú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s"J ‚t|ƒ}t |¡}t ||¡ |j|jks9J ‚|j	}t |¡}t ||¡ |j|jksOJ ‚d S )Nú2015-01-03T00:00:00.000000000ú2015-01-01T00:00:00.000000000rÌ   r'   )r.  r/  r/  )
r.   r/   r   r   rK   r*   r1   r(   r   rb   )r3   r–   Údt_indexrž   Úsru   r9   r9   r:   Ú$test_datetime64_dtype_array_returnedw  s(   þûÿ


z/TestUnique.test_datetime64_dtype_array_returnedc                 C   ó>   t jg d¢dd�}t |¡}t jddgdd�}t ||¡ d S )N©Ú2000r5  Ú2001zdatetime64[s]r'   r5  r6  ©r.   r/   r‘   rK   r*   r1   ©r3   rf   rž   r–   r9   r9   r:   Útest_datetime_non_ns–  ó   
zTestUnique.test_datetime_non_nsc                 C   r3  )Nr4  ztimedelta64[s]r'   iÐ  iÑ  r7  r8  r9   r9   r:   Útest_timedelta_non_nsœ  r:  z TestUnique.test_timedelta_non_nsc                 C   s¢   t jg d¢dd�}tg d¢ƒ}t |¡}t ||¡ |j|jks"J ‚t|ƒ}t |¡}t ||¡ |j|jks9J ‚|j	}t |¡}t ||¡ |j|jksOJ ‚d S )N)éày  én²  é'  úm8[ns]r'   )r<  r=  r<  r>  r=  )
r.   r/   r   r   rK   r*   r1   r(   r   rb   )r3   r–   Útd_indexrž   r1  ru   r9   r9   r:   Ú%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   rK   )r3   r1  rt   r9   r9   r:   Ú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 )Nrf   rh   r'   )r.   ra   r‘   rK   r/   r2   r*   r1   )r3   Úduplicated_itemsrž   r–   r9   r9   r:   Útest_nan_in_object_arrayº  s   z#TestUnique.test_nan_in_object_arrayc                 C   s  t tdƒƒ}t tdƒtdƒdd�}t tdƒƒ}| ¡ }t ||¡ t |¡}t ||¡ t tdƒdd�}| ¡ }t ||¡ t |¡}t ||¡ tt tdƒƒdd�}| ¡ }t ||¡ t |¡}t ||¡ tt tdƒtdƒd	�ƒ}t|ƒ}| ¡ }t 	||¡ t |¡}t 	||¡ d S )
NÚbacÚabcT©ró   ÚorderedÚbaabc©rH  rÝ   ©Úname©ró   )
r   rQ   rK   r*   Úassert_categorical_equalr   r   r‘   r   rS   )r3   r–   Ú
expected_orh   rž   r1  Úcir9   r9   r:   Ú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   rK   Ú_datar*   rê   rS   r‘   )r3   rþ   Údtirc   rž   r–   r9   r9   r:   Ú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 sKw   Y  tjg d¢t
d�}t ||¡ t  ttt	d
ƒƒƒ¡}tt	dƒƒ}t ||¡ d S )N)r"   r!   rl   rl   )r"   r!   rl   r˜   r'   r"   r!   rj   z5unique with argument that is not not a Series, Index,r%   Úaabcri   rF  )r‘   rK   r   r*   r1   r.   r/   r+   r,   rQ   r2   r   rN  )r3   rž   r4   r–   r9   r9   r:   Ú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 )NrR  z2016-01-01T00:00:00.000000000zM8[ú]r'   )
r   r   Údtrû   r‘   rK   r.   r/   r*   r1   )r3   rþ   rc   rž   r–   r9   r9   r:   Ú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 )NrR  rõ   rö   z2016-01-01 00:00:00zdatetime64[z, US/Eastern])r(   r…   )r   r   rû   r‘   rK   r*   rS   )r3   rþ   rT  rž   r–   r9   r9   r:   Útest_order_of_appearance_dt64tz  s   

þÿû
ÿz*TestUnique.test_order_of_appearance_dt64tzzarg ,expected)Ú1r\  Ú2r\  r]  r'   )rÝ   rÝ   c                 C   óL   d}t jt|d�� t |¡}W d   ƒ n1 sw   Y  t  ||¡ d S ©Nú-unique with argument that is not not a Seriesr%   ©r*   r+   r,   r‘   rK   r1   )r3   Úargr–   r4   rž   r9   r9   r:   Útest_tuple_with_strings+  s
   	ÿz"TestUnique.test_tuple_with_stringsc                 C   sB   t jdd gtd�}t |¡}t jdd gtd�}tj||dd� d S )NrÝ   r'   Trí   )r.   r/   r2   r‘   rK   r*   r1   ©r3   ru   rž   r–   r9   r9   r:   Ú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       €rq   r7  r8  r9   r9   r:   Ú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s$J ‚t ||g¡}t |¡}t tjg¡}t 	||¡ d S )NÚdú=Qì         À r   ì        À )
ÚstructÚunpackÚpackr.   r/   r‘   rK   ra   r*   r1   )r3   ÚNAN1ÚNAN2rf   rž   r–   r9   r9   r:   Ú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s"J ‚||ks(J ‚tj||g|d�}t |¡}|jdks=J ‚t  dt  d|d ¡¡d }||ksQJ ‚d S )Nl        À rj  rg  rh  r   r'   r!   )rk  rl  rm  r.   r/   r‘   rK   r  )	r3   rq  Úbits_for_nan1Úbits_for_nan2rn  ro  rf   rž   Úresult_nan_bitsr9   r9   r:   Ú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sJ ‚|d |u s#J ‚|d |u s+J ‚d S )Nr'   r"   r   r!   )r.   r/   r2   r‘   rK   r  )r3   Úunique_nulls_fixtureÚunique_nulls_fixture2rf   rž   r9   r9   r:   Ú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"   rl   r'   )r   r‘   ÚNArK   r/   r*   rê   )r3   Úany_numeric_ea_dtyperc   rž   r–   r9   r9   r:   Útest_unique_maskedo  s   
zTestUnique.test_unique_maskedN)!r  r  r  r  r  r!  r&  r-  r2  r9  r;  rA  rB  rD  rQ  rU  rW  rZ  r[  r°   r  r  r.   r/   r2   rc  re  rf  rp  r»   ru  rx  r{  r9   r9   r9   r:   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   Únunique_intsr�   rK   )Úindex_or_series_or_arrayrb   rž   r–   r9   r9   r:   Útest_nunique_intsw  s   
r  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 sw   Y  t jt|d�� t ddg¡ W d   ƒ n1 s8w   Y  t jt|d�� t dgd¡ W d   ƒ d S 1 sWw   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   r9   r9   r:   Útest_invalid€  s   ÿÿÿ"ÿzTestIsin.test_invalidc                 C   sB  d}t jt|d�� t ddgdg¡}W d   ƒ n1 sw   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­w   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w   Y  t ddg¡}t  ||¡ d S )	Nú+isin with argument that is not not a Seriesr%   r!   r"   TFrf   rg   )	r*   r+   r,   r   r�  r.   r/   r1   r   )r3   r4   rž   r–   r9   r9   r:   rv   Œ  sD   ÿÿÿ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 )	Nr|   rl   ©Úperiodsr   ©TFFr"   r'  rˆ   )
r   rb   r   r�  r.   r/   r*   r1   r�   r   rd  r9   r9   r:   Útest_i8µ  s(   zTestIsin.test_i8Údtype1)r?  rÌ   úM8[ns, UTC]z	period[D]r(   )rÛ   Ú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-01rl   r„  rÛ   r'   )r   Ú_valuesr   Úviewr/   rM   r   r�  r.   ÚzerosÚshaperO   r*   r1   )r3   r(   rˆ  Údtaru   Úcompsrž   r–   r9   r9   r:   Ú+test_isin_datetimelike_values_numeric_compsÐ  s   z4TestIsin.test_isin_datetimelike_values_numeric_compsc                 C   sV   t dddd�j}t ||dd… ¡}tjt|ƒtd�}d|d< d|d	< t 	||¡ d S )
NÚ20000101i€„ r1  )r…  r…   r   r"   r'   Tr!   )
r   rb   r   r�  r.   rŽ  r�   rO   r*   r1   ©r3   r1  rž   r–   r9   r9   r:   Ú
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 )Nr‹  rl   r„  rÛ   r   r†  r'   )r   rŒ  r   r�  r/   r   r   r�  r.   rO   r*   r1   )r3   r(   r�  ru   rž   r–   r9   r9   r:   Útest_isin_datetimelike_all_natæ  s   z'TestIsin.test_isin_datetimelike_all_nat)r?  rÌ   r‰  c           	      C   sÔ   t ddd�j}t| d¡ƒj |¡}dd„ |D ƒ}d}tjt|d�� t 	||¡}W d   ƒ n1 s3w   Y  | 
¡ s>J ‚tj|td	�}tjt|d�� t 	||¡}W d   ƒ n1 s]w   Y  | 
¡ shJ ‚d S )
Nr‹  rl   r„  rÛ   c                 S   r©   r9   )Ústr)rA   rz   r9   r9   r:   rE   ÷  r­   zFTestIsin.test_isin_datetimelike_strings_deprecated.<locals>.<listcomp>z2The behavior of 'isin' with dtype=.* is deprecatedr%   r'   )r   rŒ  r   r�  r/   r*   r+   r,   r   r�  Úallr.   r—  )	r3   r(   r�  ru   Úvalsr4   ÚresÚvals2Úres2r9   r9   r:   Ú)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ù   rl   ÚUTC©r…  r÷   r   r†  r'   )r   r   r   r   r�  rŒ  r.   r/   rO   r*   r1   )r3   rT  rc   rš  rt   r9   r9   r:   Ú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ì   ri   r!   r   )TTFT)	r.   r/   r   r   Ú
from_codesr   r�  r*   r1   )r3   r™  r  ÚSdÚStr–   rž   r9   r9   r:   Ú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   r¢  r   r�  r*   r1   )r3   r™  r  ÚcatÚotherr–   rž   r9   r9   r:   Ú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 s(w   Y  t ||¡ d S )NTrƒ  r%   )	r.   ra   r/   r*   r+   r,   r   r�  r1   ©r3   r‘  rb   r–   r4   rž   r9   r9   r:   Ú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 ©Nr_   iAB r   r!   r'   )r.   r#  ra   r   r�  r/   Úonesr�   rO   r*   r1   r”  r9   r9   r:   Ú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 r«  )r.   r#  r   ra   r�  r/   r¬  r�   rO   r*   Úassert_series_equal)r3   r1  Úseriesrž   r–   r9   r9   r:   Ú 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��) t  t |g|g¡t dg¡¡ t  t |g|g¡t dg¡¡ W d   ƒ d S 1 sCw   Y  d S )Nc                   @   s"   e Zd Zdefdd„Zdd„ ZdS )z0TestIsin.test_same_object_is_in.<locals>.LikeNanÚreturnc                 S   ó   dS )NFr9   )r3   r§  r9   r9   r:   Ú__eq__G  ó   z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__c                 S   r²  )Nr   r9   )r3   r9   r9   r:   Ú__hash__J  r´  z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__N)r  r  r  rO   r³  rµ  r9   r9   r9   r:   ÚLikeNanF  s    r¶  rƒ  r%   TF)r*   r+   r,   r1   r   r�  r.   r/   )r3   r¶  rf   rg   r4   r9   r9   r:   Ú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 )Nra   r   Tr'   )
Úfloatr   r�  r.   r/   r*   r1   rR   r2   r»   )r3   r‘  rb   rž   r9   r9   r:   rp  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 s(w   Y  t ||¡ d S )NÚssé*   Ú42Fz2isin with argument that is not not a Series, Indexr%   )r.   r/   r*   r+   r,   r   r�  r1   r©  r9   r9   r:   Ú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 )Nrf   rg   F)r   r.   r/   r   r�  r*   r1   )r3   r½  r™  r–   rž   r9   r9   r:   Ú
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 )Nra   ù              ð?r'   )FFT)	r.   r/   ra   r¸  r2   r   r�  r*   r1   )r3   r‘  r™  r–   rž   r9   r9   r:   Ú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s$J ‚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 )Nrg  rh  ri  r   rj  r'   T)
rk  rl  rm  r.   r/   r»   r   r�  r*   r1   )r3   rn  ro  ru   Úlookup1rž   r–   Úlookup2r9   r9   r:   Útest_different_nans_as_float64Š  s   z'TestIsin.test_different_nans_as_float64c                 C   s<   t dddgiƒ}| dg¡}t dddgiƒ}t ||¡ dS )zComparing df with int`s (1,2) with a string at isin() ("1")
        -> should not match values because int 1 is not equal str 1rb   r!   r"   r\  FN)r   r�  r*   Úassert_frame_equal©r3   Údfrž   Úexpected_falser9   r9   r:   Ú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 NaNrb   r"   ÚNaNr'   FN)r   r.   ra   r�  r/   r2   r*   rÄ  rÅ  r9   r9   r:   Ú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.4245rb   g˜nƒÀÊö?gö#Ed˜@z1.4245r'   FN)r   r�  r.   r/   r2   r*   rÄ  rÅ  r9   r9   r:   Ú 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Ä   r�  r*   r®  ©r3   rc   rž   r–   r9   r9   r:   Útest_isin_unsigned_dtype¸  s   z!TestIsin.test_isin_unsigned_dtypeN)!r  r  r  r‚  rv   r‡  r°   r  r  r’  r•  r–  r�  r   r¥  r¨  rª  r­  r°  r·  rp  r¼  r   r2   r.   r/   r¾  rÀ  rÃ  rÈ  rÊ  rË  rÍ  r9   r9   r9   r:   r€    s:    )




	
r€  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 s'w   Y  g d¢}t
 |¡ tdd�¡}tg d¢|d	d
�}t | ¡ | ¡ ¡ d S )NiÒ  rm   ú!pandas.value_counts is deprecatedr%   )gV-²ù¿g}?5^ºIð¿g/Ý$�•Û¿g×£p=
×Ã?gƒÀÊ¡E¶ç?TrJ  )r!   r   r"   r!   Úcount©r@   rL  )r.   r  r  Ústandard_normalr   r*   r+   r,   r   Úvalue_countsr   Úfrom_breaksrM   r   r   r®  Ú
sort_index)r3   ru   Úfactorr4   rž   Úbreaksr@   r–   r9   r9   r:   Ú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w   Y  tdgt dg¡dd	�}t  ||¡ t jt|d�� tj|d
dd�}W d   ƒ n1 sPw   Y  td
d
gt ddg¡dd	�}t  ||¡ d S )N)r!   r"   rl   rm   rÏ  r%   r!   ©Úbinsrm   )ç¬Zd;ßï?ro   rÐ  rÑ  r"   F)rÚ  r>   )rÛ  ç      @)rÜ  ro   )	r*   r+   r,   r   rÓ  r   r   rJ   r®  )r3   r1  r4   rž   r–   r9   r9   r:   Ú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w   Y  t|ƒdks+J ‚t jt|d�� tjt ddg¡dd�}W d   ƒ n1 sIw   Y  t|ƒdksVJ ‚t jt|d�� t tg d¢ƒ¡}W d   ƒ n1 sqw   Y  t|ƒdks~J ‚d}t	j
t|d��6 t jt|d�� tjtjd	dgtd
�dd� W d   ƒ n1 s¨w   Y  W d   ƒ d S W d   ƒ d S 1 sÀw   Y  d S )NrÏ  r%   r!   r_   rÙ  )r!   r_   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   Úmsg2rž   r4   r9   r9   r:   Útest_value_counts_dtypesá  s*   ÿÿÿÿÿ"ÿz(TestValueCounts.test_value_counts_dtypesc              	   C   sR  t t d¡tgdd�}tddgƒ}d}||fD ]5}tjt|d�� t 	|¡}tj	|dd	�}W d   ƒ n1 s7w   Y  t
|ƒd
ksDJ ‚t
|ƒdksLJ ‚qt tdƒd
idd�}tjt|d�� t 	|¡}W d   ƒ n1 snw   Y  t ||¡ t d
gt d¡gdd�}	tjt|d�� t 	|¡}
W d   ƒ n1 sœw   Y  t |
|	¡ d S )Nr>  útimedelta64[ns]r'   r   z
2014-01-01rÏ  r%   F©Údropnar!   r"   z2014-01-01 00:00:00rÐ  rK  rÑ  )r   r.   Útimedelta64r   r   r*   r+   r,   r   rÓ  r�   r   r®  )r3   ÚtdrY  r4   rc   ÚvcÚ
vc_with_naÚexp_dtÚ	result_dtÚexp_tdÚ	result_tdr9   r9   r:   Ú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'   ©rl   r"   r!   rÐ  rÑ  )r   r   rÓ  r   r*   r®  )r3   r(   rc   rš  Ú	exp_indexrt   r9   r9   r:   Ú&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 )NÚaaabbcrì  ri   rÐ  rÑ  T©Úcheck_index_type)
r   r   rQ   rÓ  r   r*   r®  r¦  Ú
as_orderedr@   r”  r9   r9   r:   rQ  "  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 )NÚ
aaaaabbbccr!   )rm   rl   r"   ri   rM  rÐ  rÑ  Trð  Frá  )rm   rl   r"   r!   rf   rg   rh   )rg   rf   rh   )rH  ró   rG  )
r   r   rQ   r.   ra   ÚilocrÓ  r   r*   r®  r”  r9   r9   r:   Ú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 )
NÚbbbaacÚabcdTrG  )rl   r"   r!   r   )rg   rf   rh   rg  rÐ  rÑ  rð  )r   r   rQ   rÓ  r*   r®  r”  r9   r9   r:   Ú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Ñ  rl   rj   r'   )rj   rl   r"   )TFN)çš™™™™™$@rn   rn   rn   rù  )rù  rn   rn   N)rù  rù  rn   rn   rn   Nrì  )rn   rù  N)r*   r®  r   rÓ  r   r2   )r3   rž   r–   r9   r9   r:   Ú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"   rl   rj   TF)Ú	normalizerâ  )g      à?g333333Ó?gš™™™™™É?r`   r_   r'   Ú
proportionrÑ  g333333ã?gš™™™™™Ù?)r   r.   ra   rM   rÓ  r*   r®  )r3   r(   r1  Ús_typedrž   r–   r9   r9   r:   Ú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 s+w   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 saw   Y  t 	||¡ d S )	Nr×   r'   r!   rÐ  rÑ  rÏ  r%   rk   )r.   r/   rÄ   r   r*   r+   r,   r   rÓ  r®  r2   )r3   ru   r–   r4   rž   r9   r9   r:   Ú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 )Nrl   r!   r"   rm   rÙ  )r"   r"   r!   ))rÛ  r`   )r`   rp   )rp   ro   zinterval[float64, right]r'   rÐ  rÑ  )	r.   r/   ra   r   rÓ  r   rJ   r*   r®  )r3   rb   rž   r–   r9   r9   r:   Útest_value_counts_series²  s   ÿûz(TestValueCounts.test_value_counts_seriesN)r  r  r  rØ  rÝ  rß  rë  r°   r  r  r2   rî  rQ  rõ  rø  rú  r.   r»   rþ  rÿ  r   r9   r9   r9   r:   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©ÚkeepÚlast)TFTFFFF)TFTTFTé   rm   T)r.   r/   ra   r2   r   Ú
duplicatedr*   r1   r½  Ú	enumerateÚzip)r3   Úkeysrž   r–   r¬   ÚtÚfalsesÚtruesr9   r9   r:   Útest_duplicated_with_nasÁ  s:   
(ÿ



z'TestDuplicated.test_duplicated_with_nasÚcase)
r!   r"   r!   rj   rl   r"   rm   r!   rj   é   gš™™™™™ñ?gš™™™™™@gffffff
@gš™™™™™@gffffff@)
ù      ð?      ð?ù       @       @r  ù      @      @y      @      @r  y      @      @r  r  y      @      @)
rf   rg   rf   Úerh   rg   rg  rf   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 ]&}|jdd�}t ||¡ |jdd�}t ||¡ |jdd�}t ||¡ qCt|ƒt|dd�fD ],}	|	jdd�}t |t|ƒ¡ |	jdd�}t |t|ƒ¡ |	jdd�}t |t|ƒ¡ qtd S )	N©
FFTFFTFTTF©
TTTTFFFFFFr  r  r  Frò   r'   )	r.   r/   r   r  r*   r1   r   r   r®  )
r3   r  Ú	exp_firstÚexp_lastÚ	exp_falseÚ	res_firstÚres_lastÚ	res_falser  r1  r9   r9   r:   Útest_numeric_object_likesè  s8   ÿÿø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 ]&}|jdd�}t ||¡ |jdd�}	t |	|¡ |jdd�}
t |
|¡ qƒt|ƒt|dd�t|td�fD ],}|jdd�}t 	|t|ƒ¡ |jdd�}	t 	|	t|ƒ¡ |jdd�}
t 	|
t|ƒ¡ q¹qKd 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   r©   r9   ©r   ©rA   rg  r9   r9   r:   rE   D  r­   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>c                 S   ó   g | ]}t |d d�‘qS )rõ   rö   r'  r(  r9   r9   r:   rE   E  ó    c                 S   r)  )r  r„   )r   r(  r9   r9   r:   rE   F  r*  c                 S   s   g | ]}t  |¡‘qS r9   )r.   rÍ   r(  r9   r9   r:   rE   G  rF   c                 S   r©   r9   )r   r(  r9   r9   r:   rE   H  r­   r  r  r  r  r  Frò   r'   )
r.   r/   r   r  r*   r1   r   r2   r   r®  )r3   rY  rä  Úcasesr  r  r  r  r  r  r   r  r1  r9   r9   r:   Útest_datetime_likes)  sX   ûÿÿ

ý

ýôæz"TestDuplicated.test_datetime_likesrš   r   rl   c                 C   s,   |j du sJ ‚t | ¡ t g d¢¡¡ d S )NT)FFF)Ú	is_uniquer*   r1   r  r.   r/   )r3   r  r9   r9   r:   Útest_unique_index{  s   z TestDuplicated.test_unique_indexzarr, uniques)r£   ©r   r!   ©r!   r   r¡   r£   r/  r0  r¡   )r£   r/  r0  r¡   )©rg   rh   ©rf   rg   r2  r1  r1  r2  )rà   ©rg   r"   ©rf   rl   rà   )rà   r3  r4  c                 C   sj   t jt|ƒtd�}||d d …< d}tjt|d�� t |¡}W d   ƒ n1 s(w   Y  t 	||¡ d S )Nr'   r`  r%   )
r.   r½  r�   r2   r*   r+   r,   r‘   rK   r1   )r3   ru   r6   r–   r4   rž   r9   r9   r:   Útest_unique_tuples€  s   ÿz!TestDuplicated.test_unique_tupleszarray,expected)r  r   r!   r¿  ù      ð?       @r6  )r  y                r)   r¿  r6  c                 C   r^  r_  ra  )r3   r/   r–   r4   rž   r9   r9   r:   Útest_unique_complex_numbers˜  s
   ÿz*TestDuplicated.test_unique_complex_numbersN)r  r  r  r  r°   r  r  r.   r/   ra   r2   rÄ   r!  r,  r   r‘   rÑ   r.  r5  r7  r9   r9   r9   r:   r  À  sN    ' ÿ
ÿîþ
( 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   ó   g | ]}d |› �‘qS ©Úfoo_r9   r«   r9   r9   r:   rE   °  rF   zTestHashTable.<listcomp>r  r'   c                 C   r9  r:  r9   r«   r9   r9   r:   rE   ´  rF   c           
      C   sÎ   t ||jd�}|tjkrtj|jd< n|tjkr#t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'   éô  éö  rl   T©ÚfracÚreplace©Údropr¹   r  r  )Úreturn_inverse)r   r(   r�   ÚFloat64HashTabler.   ra   ÚlocÚPyObjectHashTabler   ÚsampleÚreset_indexrb   r¼   Údrop_duplicatesrK   r*   r1   )
r3   Úhtabler�   r¾   r1  Ús_duplicatedÚexpected_uniqueÚresult_uniqueÚresult_inverseÚreconstrr9   r9   r:   Útest_hashtable_unique«  s    


ÿz#TestHashTable.test_hashtable_uniquec                 C   r9  r:  r9   r«   r9   r9   r:   rE   Ý  rF   c                 C   r9  r:  r9   r«   r9   r9   r:   rE   á  rF   c                 C   sÈ   t ||jd�}|tjkrtj|jd< n|tjkr#t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=  rl   Tr>  rA  r¹   )r   r(   r�   rD  r.   ra   rE  rF  r   rG  rH  rb   r¼   r’   r-   râ  rI  r*   r1   )r3   rJ  r¾   r�   r1  rK  Úna_maskrM  rN  rL  Úresult_reconstructÚexpected_reconstructr9   r9   r:   Útest_hashtable_factorizeØ  s   



z&TestHashTable.test_hashtable_factorizeN)r  r  r  r°   r  r  r�   rF  r.   r/   r¯   r2   ÚStringHashTablerD  rr   r»   ÚInt64HashTabler˜   ÚUInt64HashTablerÄ   rP  rT  r9   r9   r9   r:   r8  ª  s:    þþõþ
þþõþr8  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 )ÚTestRankru   rn   r!   r"   rl   ro   c                 C   s`   t  d¡}t |¡}t |¡ }| ¡ }t |¡}tj||< | 	|¡}tj
||< t ||¡ d S )Nzscipy.stats)r°   Úimportorskipr.   r/   ÚisfiniteÚcopyÚlibalgosÚrank_1dry   Úrankdatara   r*   r$  )r3   ru   Úsp_statsr™   rž   rt   r9   r9   r:   Útest_scipy_compat  s   





zTestRank.test_scipy_compatr(   Ú
AllIntegerc                 C   sT   t jddgt jd�}t jddg|d�}|j|d� t|ƒ}t |¡}t ||¡ d S )Nr!   r"   r'   r  r¹   )	r.   r/   r»   r¼   r   r   Úrankr*   r1   )r3   r¾   r(   rt   r�   rc   rž   r9   r9   r:   rv     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   rb  )r3   r(   rt   r1  r9   r9   r:   rB  %  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   ƒ d S 1 s)w   Y  d S )Nrš   )rm   rj   r  )r  r  é	   z%Array with ndim > 2 are not supportedr%   )r.   r/   r°   r±   r²   r   rb  )r3   ru   r4   r9   r9   r:   Ú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s,J ‚d S )Ni  T)Úpctr!   i  r"   )r.   rr   r   rb  ÚmaxÚreshape)r3   rb   rž   r9   r9   r:   Útest_pct_max_many_rows3  s   
zTestRank.test_pct_max_many_rowsN)r  r  r  r°   r  r  r.   ra   r`  Ú	typecodesrv   r»   rÄ   rB  rd  Ú
single_cpurh  r9   r9   r9   r:   rX    s    þþ

	
rX  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/   rb   ©r3   rt   r9   r9   r:   Útest_no_mode@  s   zTestMode.test_no_moderY  ra  Ú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   rm  rb   r®  ©r3   rY  Ú
exp_singleÚdata_singleÚ	exp_multiÚ
data_multirc   rt   r9   r9   r:   Ú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'   ri   )r   rl  r*   r1   r   rm  rb   r2   rn  r9   r9   r:   Ú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!   rj   r"   rl   r'   rq  rr  r9   r9   r:   Útest_number_mode^  s   zTestMode.test_number_modec                 C   s\   dg}dgd dgd  }t |dd�}t |dd�}t t |j¡|j¡ t | ¡ |¡ d S )Nrg   rf   r"   rl   rh   r'   rq  )r3   rt   r�   rc   r9   r9   r:   Útest_strobj_modep  s   zTestMode.test_strobj_modec                 C   s€   dg}dgd dgd  }t ||d�}t ||d�}|r+|tu r+t t |j¡|j¡ nt t |j¡|j¡ t | ¡ |¡ d S )NÚbarrÝ   r"   rl   r'   )	r   r—  r*   rê   r   rm  rb   r1   r®  )r3   rY  Úusing_infer_stringrt   r�   rc   r9   r9   r:   Útest_strobj_multi_chary  s   zTestMode.test_strobj_multi_charc                 C   ó�   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   rm  rb   rŒ  r®  ©r3   rt   rc   r9   r9   r:   Útest_datelike_mode†  ó   þzTestMode.test_datelike_modec                 C   r~  )N)ú-1 daysú0 daysr%  rà  r'   )r%  r…  r†  ú2 minrˆ   ©rˆ   rˆ   z-1 dayz-1 day 2 minr‡  r‡  r�  r‚  r9   r9   r:   Útest_timedelta_mode”  r„  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   rm  rb   r®  r‚  r9   r9   r:   Ú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   rm  rb   r®  r‚  r9   r9   r:   rB  ¨  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!   rf   rf   rf   rM  ©r!   r!   r"   rl   rl   rl   rš   )r   r   rm  rŒ  r*   rN  )r3   rh   rt   rš  r9   r9   r:   rQ  ³  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   ƒ d S 1 siw   Y  d S )Nrš   r'   r‹  rf   rŒ  r!   rl   rˆ  rà  ÚTimedeltaIndexr%   )r   r   r.   r˜   r*   r1   r   rm  rb   r2   r°   r±   ÚAttributeError)r3   r  rt   r9   r9   r:   Ú
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!   rl   rÝ   rK  r!   )r   rm  r*   r®  rÌ  r9   r9   r:   Útest_ser_mode_with_nameØ  s   z TestMode.test_ser_mode_with_nameN)r  r  r  ro  r°   r  r  r.   ri  rw  rx  ry  rz  r—  r2   r}  rƒ  r‰  rŠ  rB  rQ  r�  r�  r9   r9   r9   r:   rk  ?  s"    

	
rk  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é   rl   rm   r   Únsr"   r!   r   ©Úaxisrà  r'   )r.   rr   rM   r˜   r�  rg  r(   Útyper   Údiffr¬  r�  rã  r*   r1   ÚT©r3   r(   ru   rž   r–   r9   r9   r:   Útest_diff_datetimelike_natá  s    z#TestDiff.test_diff_datetimelike_natc                 C   sX   t dddd�j}d}tjt|d�� tj|ddd� W d   ƒ d S 1 s%w   Y  d S )	Nrù   rl   rú   rŸ  z#cannot diff DatetimeArray on axis=1r%   r!   r”  )r   rS  r°   r±   Ú
ValueErrorr   r—  )r3   r�  r4   r9   r9   r:   Útest_diff_ea_axisñ  s
   "ÿzTestDiff.test_diff_ea_axisÚint8Ú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   rk   rN   )r.   r/   r   r—  ra   r*   r1   r™  r9   r9   r:   Útest_diff_low_precision_intø  s   z$TestDiff.test_diff_low_precision_intN)	r  r  r  r°   r  r  rš  rœ  rŸ  r9   r9   r9   r:   r‘  à  s    
r‘  Úopc                 C   sh   | g d¢ƒ}| g d¢ƒ}| g d¢ƒ}t |tjƒr&t ||¡}t ||¡ d S t ||¡}t ||¡ d S )N)rl   r!   rl   rm   )r"   rl   r!   r!   )rl   rl   r!   r!   rm   r"   )rI   r.   ré   r   Úunion_with_duplicatesr*   r1   rê   )r   ÚlvalsÚrvalsr–   rž   r9   r9   r:   Útest_union_with_duplicates   s   r¤  )Br   rk  Únumpyr.   r°   Úpandas._configr   Úpandas._libsr   r\  r   r�   Úpandas.core.dtypes.commonr   r   r   r	   r
   Úpandas.core.dtypes.dtypesr   Úpandasr‘   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingr*   Úpandas.core.algorithmsÚcoreÚ
algorithmsÚpandas.core.arraysr   r   Úpandas.core.commonÚcommonr¥   r    r  r  r€  rÎ  r  r8  rX  rk  r‘  r  r  r/   r¤  r9   r9   r9   r:   Ú<module>   sL    P      G  C   k\9 " 