o
    �¨Êh£0 ã                   @   sœ  d dl m Z  d dlZd dlZd dlZd dlmZmZ	 d dl
mZ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-m.Z. d dl/m*  m0Z1 G dd	„ d	ƒZ2G d
d„ dƒZ3dd„ Z4G dd„ dƒZ5G dd„ dƒZ6G dd„ dƒZ7G dd„ dƒZ8G dd„ dƒZ9G dd„ dƒZ:G dd„ dƒZ;ej< =dej>ej>g¡dd„ ƒZ?dS )é    )ÚdatetimeN)Ú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                   @   sd  e Zd Zdd„ Z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-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zej dddg¡d5d6„ ƒZej dddg¡d7d8„ ƒZd9d:„ Zej d;ejg d<¢d=d>�ejg d?¢d@d>�ejg dA¢dBd>�g¡dCdD„ ƒZej dEejg dF¢d=d>�dGfejg dH¢d=d>�dIfejg dJ¢d@d>�dKfejg dL¢d@d>�dIfejg dM¢e d>�dNfejg dO¢e d>�dPfejg dQ¢e d>�dRfg¡dSdT„ ƒZ!ej dddg¡ejjdUejg dV¢e d>�ejdWdNge d>�fe"jdXdIej#dXgdYd>�e"jdXdIgdYd>�fgdZd[gd\�d]d^„ ƒƒZ$ej dg d_¢ejg d`¢e %da¡d>�ejdNej#dWge d>�fdNej#dWdNgejg d`¢e %da¡d>�ejdNej#dWge d>�fg¡dbdc„ ƒZ&ej dg dd¢ejg dF¢e %da¡d>�ejdIej#dXgded>�fdIej#dIdXgejg dF¢e %da¡d>�ejdIej#dXgej'd>�fg¡dfdg„ ƒZ(ej de)e*g dh¢ƒƒejg di¢ej+d>�e,dNdWgdNdWgdjdk�fe-e*g dh¢ƒƒejg di¢ej+d>�e,dNdWgdNdWgdjdk�fe-e.dldlgdmdn�ƒejdGdGgej+d>�e.dlgdmdn�fg¡dodp„ ƒZ/dqdr„ Z0dsS )tÚ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© r8   úI/var/www/html/env/lib/python3.10/site-packages/pandas/tests/test_algos.pyÚtest_factorize_complex4   s   ÿz$TestFactorize.test_factorize_complexÚsortTFc           
         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 r8   )Úindex)Ú.0Úval©Úexpected_uniques_listr8   r9   Ú
<listcomp>[   ó    z0TestFactorize.test_factorize.<locals>.<listcomp>r&   T©Úexact)r,   r   Ú
isinstancer   Úfrom_tuplesÚuniquer'   r-   Úfloat16ÚastypeÚfloat32Úboolr1   Úsort_valuesÚlistÚasarrayr/   r)   r0   Úassert_index_equal)
r2   Úindex_or_series_objr;   ÚobjÚresult_codesÚresult_uniquesÚconstructorÚexpected_arrr7   Úexpected_codesr8   r@   r9   Útest_factorizeB   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,   r/   r   r)   r0   rP   )r2   ÚvaluesÚserÚcodesr5   rW   r7   r8   r8   r9   Ú+test_series_factorize_use_na_sentinel_falsea   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Úbrd   rc   rc   Úcre   re   r&   ©rc   rd   re   Tr<   )r   r    r    r   r   r!   r!   r!   é   éÿÿÿÿ)r   r    r!   é   é   )rj   ri   r!   r    r   ç      @)ç      @ç      @r]   r\   ç        )rn   r\   r]   rm   rl   )
r-   r.   r1   r   r,   r)   r0   r/   Úaranger'   )r2   Úitemsra   r5   ÚexpÚarrr8   r8   r9   Ú
test_basicm   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   rh   r    r!   ri   r&   Tr<   )r!   r!   rh   ri   r   r    )r   r-   r^   Úinfr   r,   r.   r/   r)   r0   r   rP   )r2   Úxra   r5   rq   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.   r/   r)   r0   r   rP   ©r2   Úv1Úv2rw   ra   r5   rq   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 )	NÚ201302ÚM©ÚfreqÚ201303rz   r&   Tr<   )r   r   r   r,   r-   r.   r/   r)   r0   rP   r   r{   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.   r/   r)   r0   rP   r{   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 ]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&   )rh   é   )Úna_sentinelr   )r-   r.   r^   ÚhtÚObjectFactorizerÚlenr,   r/   Úsetr)   r0   ÚpdÚisna)r2   Ú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!   ri   r    r    r   Úint64r&   )FFFFFT)Úmask)r   r    r!   r   r   rh   ©r    r!   ri   )r-   r.   rŠ   ÚInt64FactorizerrŒ   r,   r/   r)   r0   r5   Úto_array)r2   Ú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!   ri   )r   r    r!   r   rh   r&   r—   )r-   r.   r^   rŠ   r‹   rŒ   r,   rJ   r1   r/   r)   r0   r5   r™   )r2   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    ri   )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,   r0   r-   r.   r/   ÚcomÚasarray_tuplesafer1   )r2   rš   rW   r7   r3   ra   r5   Úexpected_uniques_arrayr8   r8   r9   Ú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 r8   )Úcomplex©r>   Úir8   r8   r9   rB     ó    z6TestFactorize.test_complex_sorting.<locals>.<listcomp>é   r&   z,'[<>]' not supported between instances of .*r$   rh   Tr<   )	r-   r.   Úranger1   ÚpytestÚraisesÚ	TypeErrorr   r,   )r2   Úx17r3   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.   r/   r   r,   r)   r0   )r2   Úany_real_numpy_dtyper'   rš   rW   r7   ra   r5   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)r\   ç    „×—Ar\   ç:Œ0âŽyE>r´   r\   r&   ©Úwrite)r   r    r   r!   r    r   )r\   r´   rµ   )	r-   r.   Úfloat64Úsetflagsr/   r   r,   r)   r0   ©r2   Úwritablerš   rW   r7   ra   r5   r8   r8   r9   Ú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¹   r/   r   r,   r)   r0   rº   r8   r8   r9   Útest_uint64_factorize0  r½   z#TestFactorize.test_uint64_factorizec                 C   r¾   )N)ì   ÿÿÿÿ ìûÿÿÿ         rÃ   r&   r¶   rÀ   rÃ   rÄ   )	r-   r.   r•   r¹   r/   r   r,   r)   r0   rº   r8   r8   r9   Ú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)rc   re   rc   rd   re   r&   r¶   )r   r    r   r!   r    ©rc   re   rd   )	r-   r.   r1   r¹   r/   r   r,   r)   r0   rº   r8   r8   r9   Útest_string_factorizeD  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 )Nrc   re   rd   r&   r¶   )r   r    rh   rh   r   r!   rh   r    rÆ   )r-   r.   r^   r   r1   r¹   r/   r   r,   r)   r0   rº   r8   r8   r9   Útest_object_factorizeN  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¹   r/   rŽ   r,   r)   r0   rº   r8   r8   r9   Útest_datetime64_factorizeX  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    TrD   ©rŽ   Ú
RangeIndexÚ
from_ranger¬   r-   ro   r/   r   r,   r)   r0   rP   )r2   r;   Úrir“   r›   r8   r8   r9   Útest_factorize_rangeindexe  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&   rh   r   r    r<   TrD   rÍ   )r2   r;   rÐ   r“   Úri2r›   r8   r8   r9   Ú$test_factorize_rangeindex_decreasings  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*   )r2   rš   r8   r8   r9   Útest_deprecate_order†  s   ÿ"ÿz"TestFactorize.test_deprecate_orderrš   rÀ   Úu8r&   )rÄ   r    rÄ   Úi8)Ú__nan__ÚfoorÙ   r1   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.   r/   r)   r0   )r2   rš   ra   r5   r7   rW   r8   r8   r9   Ú,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   )rc   Ú rc   rd   rc   )r8   ©rc   r    r8   ©rc   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    ri   )rh   r   rh   r    r&   )r   Úfactorize_arrayr-   r.   r/   r)   r0   )r2   rš   rß   ra   r5   r7   rW   r8   r8   r9   Ú$test_parametrized_factorize_na_valueŸ  s
   z2TestFactorize.test_parametrized_factorize_na_valuezdata, uniques)rd   rc   Nrd   rd   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;   rZ   )r    r   rh   r    r&   )r   r    rh   r   )r   r,   r-   r.   r/   Ú	safe_sortr)   r0   rF   ÚndarrayÚassert_extension_array_equal)r2   r;   rš   r5   ra   rW   r7   r8   r8   r9   Útest_factorize_use_na_sentinel²  s   z,TestFactorize.test_factorize_use_na_sentinel)rc   Nrd   rc   ©r   r    r!   r   r/   c                 C   s@   t jtj|td�dd�\}}tj||dd� tj||dd� d S )Nr&   FrY   T©Ú
strict_nan)r   r,   r-   r.   r1   r)   r0   ©r2   rš   rW   r7   ra   r5   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w   Y  t j||dd� t j||dd� d S )Nr#   r$   FrY   Trê   )r)   r*   r+   r   r,   r0   )r2   rš   rW   r7   r3   ra   r5   r8   r8   r9   Ú(test_int_factorize_use_na_sentinel_falseè  s   ÿz6TestFactorize.test_int_factorize_use_na_sentinel_false)rc   rc   rd   )r   r   r    Úcategory)Ú
categoriesr'   Ú2017ú
US/Eastern©Útzc                 C   s*   t  |¡\}}t ||¡ t ||¡ d S )N)r   r,   r)   r0   rP   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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-   r^   Úas_unitr   Úfrom_arraysr,   r'   r   Útz_localize)r2   ÚunitÚleftÚrightÚidxra   ÚcatsÚtsÚidx2Úcodes2Úcats2Úidx3Úcodes3Úcats3r8   r8   r9   Ú test_factorize_interval_non_nano  s   ÿz.TestFactorize.test_factorize_interval_non_nanoN)1Ú__name__Ú
__module__Ú__qualname__r:   r­   ÚmarkÚparametrizerX   rb   rs   rx   r~   r„   r†   r”   rœ   r�   r¥   r±   r³   r¼   rÂ   rÅ   rÇ   rÈ   rË   rÑ   rÓ   rÖ   r-   r.   rÛ   r1   rá   rŽ   r^   rè   r'   rí   r¸   rî   r   r   r/   r   r   r   rõ   r  r8   r8   r8   r9   r   3   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   rH   rF   ræ   ©r2   rr   r›   r8   r8   r9   Ú	test_ints0  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  rJ   r   rH   rF   ræ   r  r8   r8   r9   Útest_objects6  s   
zTestUnique.test_objectsc                 C   s2   t jg d¢td�}tdƒD ]	}tt |¡ƒ qd S )N)rt   ru   ÚCÚDÚEr&   éè  )r-   r.   r1   r¬   rŒ   r   rH   )r2   Ú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 )Nrg   r!   )r   rù   r-   ro   ÚrepeatÚtiler_   r;   rŽ   rH   r)   Úassert_almost_equal)r2   Úmindexr“   r›   r8   r8   r9   Útest_on_index_objectA  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)rt   ru   ru   rt   ru   r&   )Úmr€   )r)   ÚBYTES_DTYPESÚSTRING_DTYPESr   r   r   r§   r   r	   r   rH   r-   r.   rJ   r1   r'   ÚkindrF   r   r   r0   )r2   Úany_numpy_dtyperš   r5   r›   r“   r8   r8   r9   Útest_dtype_preservationO  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   rH   r)   r0   r'   r   r_   )r2   r“   Údt_indexr›   Úsrr   r8   r8   r9   Ú$test_datetime64_dtype_array_returnedt  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©Ú2000r1  Ú2001zdatetime64[s]r&   r1  r2  ©r-   r.   rŽ   rH   r)   r0   ©r2   rc   r›   r“   r8   r8   r9   Útest_datetime_non_ns“  ó   
zTestUnique.test_datetime_non_nsc                 C   r/  )Nr0  ztimedelta64[s]r&   iÐ  iÑ  r3  r4  r8   r8   r9   Útest_timedelta_non_ns™  r6  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&   )r8  r9  r8  r:  r9  )
r-   r.   r   r   rH   r)   r0   r'   r   r_   )r2   r“   Útd_indexr›   r-  rr   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)   r0   r   rH   )r2   r-  rq   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 )Nrc   re   r&   )r-   r^   rŽ   rH   r.   r1   r)   r0   )r2   Ú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 )
NÚbacÚabcT©rð   ÚorderedÚbaabc©rD  rÚ   ©Úname©rð   )
r   rN   rH   r)   Úassert_categorical_equalr   r   rŽ   r   rP   )r2   r“   Ú
expected_ore   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   rH   Ú_datar)   rç   rP   rŽ   )r2   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 sKw   Y  tjg d¢t
d�}t ||¡ t  ttt	d
ƒƒƒ¡}tt	dƒƒ}t ||¡ d S )N)r!   r    ri   ri   )r!   r    ri   r•   r&   r!   r    rg   z5unique with argument that is not not a Series, Index,r$   Úaabcrf   rB  )rŽ   rH   r   r)   r0   r-   r.   r*   r+   rN   r1   r   rJ  )r2   r›   r3   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 )NrN  z2016-01-01T00:00:00.000000000zM8[ú]r&   )
r   r   Údtrø   rŽ   rH   r-   r.   r)   r0   )r2   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 )NrN  rò   ró   z2016-01-01 00:00:00zdatetime64[z, US/Eastern])r'   r‚   )r   r   rø   rŽ   rH   r)   rP   )r2   rû   rP  r›   r“   r8   r8   r9   Útest_order_of_appearance_dt64tz  s   

þÿû
ÿz*TestUnique.test_order_of_appearance_dt64tzzarg ,expected)Ú1rX  Ú2rX  rY  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Ž   rH   r0   )r2   Úargr“   r3   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.   r1   rŽ   rH   r)   r0   ©r2   rr   r›   r“   r8   r8   r9   Útest_obj_none_preservation6  s   
z%TestUnique.test_obj_none_preservationc                 C   s4   t  ddg¡}t |¡}t  dg¡}t ||¡ d S )Ng       €rn   r3  r4  r8   r8   r9   Útest_signed_zero>  s   
zTestUnique.test_signed_zeroc                 C   s~   t  dt  dd¡¡d }t  dt  dd¡¡d }||ksJ ‚||ks$J ‚t ||g¡}t |¡}t tjg¡}t 	||¡ d S )NÚdú=Qì         À r   ì        À )
ÚstructÚunpackÚpackr-   r.   rŽ   rH   r^   r)   r0   )r2   ÚNAN1ÚNAN2rc   r›   r“   r8   r8   r9   Útest_different_nansE  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        À rf  rc  rd  r   r&   r    )rg  rh  ri  r-   r.   rŽ   rH   r  )	r2   rm  Úbits_for_nan1Úbits_for_nan2rj  rk  rc   r›   Úresult_nan_bitsr8   r8   r9   Útest_first_nan_keptQ  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.   r1   rŽ   rH   r  )r2   Úunique_nulls_fixtureÚunique_nulls_fixture2rc   r›   r8   r8   r9   Útest_do_not_mangle_na_valuesb  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!   ri   r&   )r   rŽ   ÚNArH   r.   r)   rç   )r2   Úany_numeric_ea_dtyper`   r›   r“   r8   r8   r9   Útest_unique_maskedl  s   
zTestUnique.test_unique_maskedN)!r  r	  r
  r  r  r  r"  r)  r.  r5  r7  r=  r>  r@  rM  rQ  rS  rV  rW  r­   r  r  r-   r.   r1   r_  ra  rb  rl  r¸   rq  rt  rw  r8   r8   r8   r9   r  /  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Œ   rH   )Úindex_or_series_or_arrayr_   r›   r“   r8   r8   r9   Útest_nunique_intst  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)r2   r3   r8   r8   r9   Ú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!   TFrc   rd   )	r)   r*   r+   r   r}  r-   r.   r0   r   )r2   r3   r›   r“   r8   r8   r9   rs   ‰  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 )	Nry   ri   ©Úperiodsr   ©TFFr!   r#  r…   )
r   r_   r   r}  r-   r.   r)   r0   r�   r   r`  r8   r8   r9   Ú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-01ri   r€  rØ   r&   )r   Ú_valuesr   Úviewr.   rJ   r   r}  r-   ÚzerosÚshaperL   r)   r0   )r2   r'   r„  Údtarr   Ú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 )
NÚ20000101i€„ r-  )r�  r‚   r   r!   r&   Tr    )
r   r_   r   r}  r-   rŠ  rŒ   rL   r)   r0   ©r2   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 )Nr‡  ri   r€  rØ   r   r‚  r&   )r   rˆ  r   r‰  r.   r   r   r}  r-   rL   r)   r0   )r2   r'   rŒ  rr   r›   r“   r8   r8   r9   Ú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‡  ri   r€  rØ   c                 S   r¦   r8   )Ústr)r>   rw   r8   r8   r9   rB   ô  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“  )	r2   r'   rŒ  rr   Úvalsr3   ÚresÚvals2Ú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ö   ri   ÚUTC©r�  rô   r   r‚  r&   )r   r   r   r   r}  rˆ  r-   r.   rL   r)   r0   )r2   rP  r`   r–  rq   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é   rf   r    r   )TTFT)	r-   r.   r   r   Ú
from_codesr   r}  r)   r0   )r2   r•  rÿ   ÚSdÚStr“   r›   r8   r8   r9   Útest_categorical_from_codes
  s    z$TestIsin.test_categorical_from_codesc                 C   sn   t  g d¢¡}g d¢}tdgƒ ||¡}tdgƒ t  ddg¡|¡}t  g d¢¡}t ||¡}t ||¡ d S r�  )r-   r.   r   rž  r   r}  r)   r0   )r2   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 s(w   Y  t ||¡ d S )NTr  r$   )	r-   r^   r.   r)   r*   r+   r   r}  r0   ©r2   r�  r_   r“   r3   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 ©Nr\   iAB r   r    r&   )r-   r  r^   r   r}  r.   ÚonesrŒ   rL   r)   r0   r�  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 r§  )r-   r  r   r^   r}  r.   r¨  rŒ   rL   r)   Úassert_series_equal)r2   r-  Úseriesr›   r“   r8   r8   r9   Ú test_same_nan_is_in_large_series4  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 )NFr8   )r2   r£  r8   r8   r9   Ú__eq__D  ó   z7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__c                 S   r®  )Nr   r8   )r2   r8   r8   r9   Ú__hash__G  r°  z9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__N)r  r	  r
  rL   r¯  r±  r8   r8   r8   r9   ÚLikeNanC  s    r²  r  r$   TF)r)   r*   r+   r0   r   r}  r-   r.   )r2   r²  rc   rd   r3   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 )Nr^   r   Tr&   )
Úfloatr   r}  r-   r.   r)   r0   rO   r1   r¸   )r2   r�  r_   r›   r8   r8   r9   rl  S  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}  r0   r¥  r8   r8   r9   Útest_no_castk  s   ÿzTestIsin.test_no_castÚemptyr&   c                 C   s6   t ddgƒ}t ddg¡}t ||¡}t ||¡ d S )Nrc   rd   F)r   r-   r.   r   r}  r)   r0   )r2   r¹  r•  r“   r›   r8   r8   r9   Ú
test_emptyv  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 )Nr^   ù              ð?r&   )FFT)	r-   r.   r^   r´  r1   r   r}  r)   r0   )r2   r�  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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 )Nrc  rd  re  r   rf  r&   T)
rg  rh  ri  r-   r.   r¸   r   r}  r)   r0   )r2   rj  rk  rr   Úlookup1r›   r“   Ú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 1r_   r    r!   rX  FN)r   r}  r)   Úassert_frame_equal©r2   Údfr›   Ú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 NaNr_   r!   ÚNaNr&   FN)r   r-   r^   r}  r.   r1   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.4245r_   g˜nƒÀÊö?gö#Ed˜@z1.4245r&   FN)r   r}  r-   r.   r1   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Á   r}  r)   rª  ©r2   r`   r›   r“   r8   r8   r9   Útest_isin_unsigned_dtypeµ  s   z!TestIsin.test_isin_unsigned_dtypeN)!r  r	  r
  r~  rs   rƒ  r­   r  r  rŽ  r‘  r’  r™  rœ  r¡  r¤  r¦  r©  r¬  r³  rl  r¸  r   r1   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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Ò  rj   ú!pandas.value_counts is deprecatedr$   )gV-²ù¿g}?5^ºIð¿g/Ý$�•Û¿g×£p=
×Ã?gƒÀÊ¡E¶ç?TrF  )r    r   r!   r    Úcount©r=   rH  )r-   r  r  Ústandard_normalr   r)   r*   r+   r   Úvalue_countsr   Úfrom_breaksrJ   r
   r   rª  Ú
sort_index)r2   rr   Úfactorr3   r›   Ú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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!   ri   rj   rË  r$   r    ©Úbinsrj   )ç¬Zd;ßï?rl   rÌ  rÍ  r!   F)rÖ  r;   )r×  ç      @)rØ  rl   )	r)   r*   r+   r   rÏ  r   r   rG   rª  )r2   r-  r3   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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\   rX  r!   z*bins argument only works with numeric datarX  r&   )r)   r*   r+   r   rÏ  r-   r.   rŒ   r   r­   r®   r¯   r1   )r2   Úmsg2r›   r3   r8   r8   r9   Útest_value_counts_dtypesÞ  s*   ÿÿÿÿÿ"ÿz(TestValueCounts.test_value_counts_dtypesc              	   C   sP  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 t d¡d
i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Ì  rG  )r   r-   Útimedelta64r   r   r)   r*   r+   r   rÏ  rŒ   r   rª  )r2   ÚtdrU  r3   r`   ÚvcÚ
vc_with_naÚexp_dtÚ	result_dtÚexp_tdÚ	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&   ©ri   r!   r    rÌ  rÍ  )r   r   rÏ  r   r)   rª  )r2   r'   r`   r–  Ú	exp_indexrq   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 )NÚaaabbcrè  rf   rÌ  rÍ  T©Úcheck_index_type)
r   r   rN   rÏ  r   r)   rª  r¢  Ú
as_orderedr=   r�  r8   r8   r9   rM    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    )rj   ri   r!   rf   rI  rÌ  rÍ  Trì  FrÝ  )rj   ri   r!   r    rc   rd   re   )rd   rc   re   )rD  rð   rC  )
r   r   rN   r-   r^   ÚilocrÏ  r   r)   rª  r�  r8   r8   r9   Útest_categorical_nans.  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ÚabcdTrC  )ri   r!   r    r   )rd   rc   re   rc  rÌ  rÍ  rì  )r   r   rN   rÏ  r)   rª  r�  r8   r8   r9   Útest_categorical_zeroesY  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Í  ri   rg   r&   )rg   ri   r!   )TFN)çš™™™™™$@rk   rk   rk   rõ  )rõ  rk   rk   N)rõ  rõ  rk   rk   rk   Nrè  )rk   rõ  N)r)   rª  r   rÏ  r   r1   )r2   r›   r“   r8   r8   r9   Útest_value_counts_dropnaf  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!   ri   rg   TF)Ú	normalizerÞ  )g      à?g333333Ó?gš™™™™™É?r]   r\   r&   Ú
proportionrÍ  g333333ã?gš™™™™™Ù?)r   r-   r^   rJ   rÏ  r)   rª  )r2   r'   r-  Ú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 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$   rh   )r-   r.   rÁ   r   r)   r*   r+   r   rÏ  rª  r1   )r2   rr   r“   r3   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 )Nri   r    r!   rj   rÕ  )r!   r!   r    ))r×  r]   )r]   rm   )rm   rl   zinterval[float64, right]r&   rÌ  rÍ  )	r-   r.   r^   r   rÏ  r   rG   r)   rª  )r2   r_   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  r1   rê  rM  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©ÚkeepÚlast)TFTFFFF)TFTTFTé   rj   T)r-   r.   r^   r1   r   Ú
duplicatedr)   r0   r¹  Ú	enumerateÚzip)r2   Úkeysr›   r“   r©   ÚtÚfalsesÚtruesr8   r8   r9   Útest_duplicated_with_nas¾  s:   
(ÿ



z'TestDuplicated.test_duplicated_with_nasÚcase)
r    r!   r    rg   ri   r!   rj   r    rg   é   gš™™™™™ñ?gš™™™™™@gffffff
@gš™™™™™@gffffff@)
ù      ð?      ð?ù       @       @r  ù      @      @y      @      @r  y      @      @r  r  y      @      @)
rc   rd   rc   Úere   rd   rc  rc   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)   r0   r   r   rª  )
r2   r  Ú	exp_firstÚexp_lastÚ	exp_falseÚ	res_firstÚres_lastÚ	res_falserþ   r-  r8   r8   r9   Ú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¦   r8   ©r   ©r>   rc  r8   r8   r9   rB   A  rª   z6TestDuplicated.test_datetime_likes.<locals>.<listcomp>c                 S   ó   g | ]}t |d d�‘qS )rò   ró   r#  r$  r8   r8   r9   rB   B  ó    c                 S   r%  )r  r�   )r   r$  r8   r8   r9   rB   C  r&  c                 S   s   g | ]}t  |¡‘qS r8   )r-   rÊ   r$  r8   r8   r9   rB   D  rC   c                 S   r¦   r8   )r   r$  r8   r8   r9   rB   E  rª   r  r  rþ  rÿ  r  Frï   r&   )
r-   r.   r   r  r)   r0   r   r1   r   rª  )r2   rU  rà  Úcasesr  r  r  r  r  r  r  rþ   r-  r8   r8   r9   Útest_datetime_likes&  sX   ûÿÿ

ý

ýôæz"TestDuplicated.test_datetime_likesr—   r   ri   c                 C   s,   |j du sJ ‚t | ¡ t g d¢¡¡ d S )NT)FFF)Ú	is_uniquer)   r0   r  r-   r.   )r2   r  r8   r8   r9   Útest_unique_indexx  s   z TestDuplicated.test_unique_indexzarr, uniques)r    ©r   r    ©r    r   rž   r    r+  r,  rž   )r    r+  r,  rž   )©rd   re   ©rc   rd   r.  r-  r-  r.  )rÝ   ©rd   r!   ©rc   ri   rÝ   )rÝ   r/  r0  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Œ   r1   r)   r*   r+   rŽ   rH   r0   )r2   rr   r5   r“   r3   r›   r8   r8   r9   Útest_unique_tuples}  s   ÿz!TestDuplicated.test_unique_tupleszarray,expected)r  r   r    r»  ù      ð?       @r2  )r  y                r(   r»  r2  c                 C   rZ  r[  r]  )r2   r.   r“   r3   r›   r8   r8   r9   Útest_unique_complex_numbers•  s
   ÿz*TestDuplicated.test_unique_complex_numbersN)r  r	  r
  r
  r­   r  r  r-   r.   r^   r1   rÁ   r  r(  r   rŽ   rÎ   r*  r1  r3  r8   r8   r8   r9   rý  ½  sN    ' ÿ
ÿîþ
( R
þþ÷þ

ýÿþ
rý  c                   @   s  e Zd Zej dejdd„ edƒD ƒfej	dd„ edƒ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d	d„ edƒD ƒfej	d
d„ edƒ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_r8   r¨   r8   r8   r9   rB   «  rC   zTestHashTable.<listcomp>r  c                 C   r5  r6  r8   r¨   r8   r8   r9   rB   ¬  rC   r&   c           
      C   sÈ   t |ƒ}|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 )Néô  éö  ri   T©ÚfracÚreplace©Údropr¶   rþ  rÿ  )Úreturn_inverse)r   rŠ   ÚFloat64HashTabler-   r^   ÚlocÚPyObjectHashTabler   ÚsampleÚreset_indexr_   r¹   Údrop_duplicatesrH   r)   r0   )
r2   Úhtablerš   r»   r-  Ús_duplicatedÚexpected_uniqueÚresult_uniqueÚresult_inverseÚreconstrr8   r8   r9   Útest_hashtable_unique¨  s    


ÿz#TestHashTable.test_hashtable_uniquec                 C   r5  r6  r8   r¨   r8   r8   r9   rB   Ò  rC   c                 C   r5  r6  r8   r¨   r8   r8   r9   rB   Ó  rC   c                 C   sÂ   t |ƒ}|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 )Nr8  r9  ri   Tr:  r=  r¶   )r   rŠ   r@  r-   r^   rA  rB  r   rC  rD  r_   r¹   r�   r,   rÞ  rE  r)   r0   )r2   rF  r»   rš   r-  rG  Úna_maskrI  rJ  rH  Úresult_reconstructÚexpected_reconstructr8   r8   r9   Útest_hashtable_factorizeÏ  s   



z&TestHashTable.test_hashtable_factorizeN)r  r	  r
  r­   r  r  rŠ   rB  r¬   ÚStringHashTabler@  r-   ro   r¸   ÚInt64HashTabler•   ÚUInt64HashTablerÁ   rL  rP  r8   r8   r8   r9   r4  §  s*    ûþ

ûþ
r4  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 )ÚTestRankrr   rk   r    r!   ri   rl   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_1drv   Úrankdatar^   r)   r   )r2   rr   Úsp_statsr–   r›   rq   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)   r0   )r2   r»   r'   rq   rš   r`   r›   r8   r8   r9   rs     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)   r0   r   r^  )r2   r'   rq   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   ƒ d S 1 s)w   Y  d S )Nr—   )rj   rg   r  )r  r  é	   z%Array with ndim > 2 are not supportedr$   )r-   r.   r­   r®   r¯   r   r^  )r2   rr   r3   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s,J ‚d S )Ni  T)Úpctr    i  r!   )r-   ro   r   r^  ÚmaxÚreshape)r2   r_   r›   r8   r8   r9   Útest_pct_max_many_rows$  s   
zTestRank.test_pct_max_many_rowsN)r  r	  r
  r­   r  r  r-   r^   r\  Ú	typecodesrs   r¸   rÁ   r>  r`  Ú
single_cpurd  r8   r8   r8   r9   rT  ÷  s    þþ

	
rT  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)   r0   r   Úmoder.   r_   ©r2   rq   r8   r8   r9   Útest_no_mode1  s   zTestMode.test_no_moderU  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)   r0   r   ri  r_   rª  ©r2   rU  Ú
exp_singleÚdata_singleÚ	exp_multiÚ
data_multir`   rq   r8   r8   r9   Útest_mode_single5  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&   rf   )r   rh  r)   r0   r   ri  r_   r1   rj  r8   r8   r9   Útest_mode_obj_intH  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    rg   r!   ri   r&   rm  rn  r8   r8   r9   Útest_number_modeO  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 )Nrd   rc   r!   ri   re   r&   rm  )r2   rq   rš   r`   r8   r8   r9   Útest_strobj_modea  s   zTestMode.test_strobj_modec                 C   s\   dg}dgd dgd  }t ||d�}t ||d�}t t |j¡|j¡ t | ¡ |¡ d S )NÚbarrÚ   r!   ri   r&   rm  )r2   rU  rq   rš   r`   r8   r8   r9   Útest_strobj_multi_charj  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{  rz  r   r{  )r   r{  rz  r   r{  ©r   r)   rç   r   ri  r_   rˆ  rª  ©r2   rq   r`   r8   r8   r9   Útest_datelike_modet  ó   þzTestMode.test_datelike_modec                 C   ry  )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‚  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   r1   r)   r0   r   ri  r_   rª  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)   r0   r   ri  r_   rª  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    rc   rc   rc   rI  ©r    r    r!   ri   ri   ri   r—   )r   r   ri  rˆ  r)   rJ  )r2   re   rq   r–  r8   r8   r9   rM  ¡  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†  rc   r‡  r    ri   rƒ  rÜ  ÚTimedeltaIndexr$   )r   r   r-   r•   r)   r0   r   ri  r_   r1   r­   r®   ÚAttributeError)r2   rþ   rq   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    ri   rÚ   rG  r    )r   ri  r)   rª  rÈ  r8   r8   r9   Útest_ser_mode_with_nameÆ  s   z TestMode.test_ser_mode_with_nameN)r  r	  r
  rk  r­   r  r  r-   re  rs  rt  ru  rv  r“  r1   rx  r~  r„  r…  r>  rM  rŠ  r‹  r8   r8   r8   r9   rg  0  s"    

	
	rg  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é   ri   rj   r   Únsr!   r    r   ©ÚaxisrÜ  r&   )r-   ro   rJ   r•   r‰  rc  r'   Útyper   Údiffr¨  r‹  rß  r)   r0   ÚT©r2   r'   rr   r›   r“   r8   r8   r9   Ú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ö   ri   r÷   r›  z#cannot diff DatetimeArray on axis=1r$   r    r�  )r   rO  r­   r®   Ú
ValueErrorr   r’  )r2   rŒ  r3   r8   r8   r9   Ú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   rh   rK   )r-   r.   r   r’  r^   r)   r0   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   sh   | g d¢ƒ}| g d¢ƒ}| g d¢ƒ}t |tjƒr&t ||¡}t ||¡ d S t ||¡}t ||¡ d S )N)ri   r    ri   rj   )r!   ri   r    r    )ri   ri   r    r    rj   r!   )rF   r-   ræ   r   Úunion_with_duplicatesr)   r0   rç   )r›  ÚlvalsÚrvalsr“   r›   r8   r8   r9   Útest_union_with_duplicatesî  s   rŸ  )@r   rg  Únumpyr-   r­   Úpandas._libsr   rX  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ý  r4  rT  rg  rŒ  r  r  r.   rŸ  r8   r8   r8   r9   Ú<module>   sH    P     G  C   kP9  