HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/pandas/tests/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/pandas/tests/__pycache__/test_algos.cpython-36.pyc
3

���h�B�@s�ddlmZddlmZddlZddlZddlmZddlZddl	m
ZmZ
mZddlmZddljjZddlmZmZmZmZmZddlmZddlZ dd	lm!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(ddl)j*Z+ddl,j-j.Z
dd
l/m0Z0ddl1j-j2Z3Gdd�d�Z4Gd
d�d�Z5Gdd�d�Z6Gdd�d�Z7Gdd�d�Z8Gdd�d�Z9Gdd�de9�Z:Gdd�de9�Z;Gdd�d�Z<dd�Z=dd �Z>Gd!d"�d"�Z?d#d$�Z@Gd%d&�d&�ZAd'd(�ZBd)d*�ZCd+d,�ZDd-d.�ZEd/d0�ZFd1d2�ZGGd3d4�d4�ZHdS)5�)�datetime)�permutationsN)�RandomState)�algos�groupby�	hashtable)�np_array_datetime64_compat)�
is_bool_dtype�is_complex_dtype�is_float_dtype�is_integer_dtype�is_object_dtype)�CategoricalDtype)�Categorical�CategoricalIndex�
DatetimeIndex�Index�
IntervalIndex�Series�	Timestamp�compat)�
DatetimeArrayc@s�eZdZdd�Zdd�Zdd�Zdd�Zejj	d	dCdDdEdFd
gdd
dd
dgdGdHdId
gfdJdKdLdMdNgdd
dd
dgdOdPdQdRgfdSdTdUdVgdd
dd
gdWdXdYgfg�dd��Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zejj	dejdd
dgd d!�ejd[d
d]gd#d!�ejd$d%d$gd&d!�g�d'd(��Zejj	d)ejdd
ddgd d!�dfejd
dd
dgd d!�d
fejd_d
dadgd#d!�dcfejd
ded
dgd#d!�d
fejd*d+d*d,ged!�d*fejfdffdgged!�ffejdhfdidjged!�dkfg�d-d.��Zejj	d/d0d1g�ejj	d2dldmd4g�ejj	d5ejd,d*d6d,ged!�ejd,d*ged!�fejdd
ejdgd7d!�ejdd
gd7d!�fgd8d9gd:�d;d<����Zejj	d	d*d6d,d*gejddd
dgejd=�d!�ejd*d,ejged!�fd*ejd,d*gejddd
dgejd=�d!�ejd*d,ejged!�fg�d>d?��Zejj	d	d
d6d
dgejdddd
gejd=�d!�ejd
dejgd@d!�fd
ejd
dgejdddd
gejd=�d!�ejd
dejgejd!�fg�dAdB��Zd6S)n�
TestFactorizec	CsPtjddddddddg�\}}tj|tjdddgtd��tjddddddddgdd�\}}tjdddddd	d	d	gtjd�}tj||�tjdddgtd�}tj||�tjtt	t
d
����\}}tjddd	ddgtjd�}tj||�tjddd	ddgtjd�}tj||�tjtt	t
d
���dd�\}}tjddd	ddgtjd�}tj||�tjddd	ddgtjd�}tj||�tjtt	tjd
����\}}tjddd	ddgtjd�}tj||�tjdddddgtj
d�}tj||�tjtt	tjd
���dd�\}}tjddd	ddgtjd�}tj||�tjdddddgtj
d�}tj||�dS)N�a�b�c)�dtypeT)�sortr�����g@g@g@g@g�?g)r�	factorize�tm�assert_numpy_array_equal�np�array�object�intp�list�reversed�range�int64�arange�float64)�self�codes�uniques�exp�r4�9/tmp/pip-build-5_djhm0z/pandas/pandas/tests/test_algos.py�
test_basic(s8  zTestFactorize.test_basiccCs�tddtjddtjg�}tj|�\}}tjddddddgtjd�}tj	||�t
dddtjg�}tj||�tj|d	d
�\}}tjddddddgtjd�}tj	||�t
dtjddg�}tj||�dS)
N�A�Bg��Q�	@rrrr!)rT)r���r9)rr&�nan�infrr#r'r)r$r%r�assert_index_equal)r0�xr1r2r3r4r4r5�
test_mixedNszTestFactorize.test_mixedcCs^td�}td�}t||||||g�}tj|�\}}tjddddddgtjd�}tj||�t	||g�}tj
||�tj|dd�\}}tjddddddgtjd�}tj||�t	||g�}tj
||�tjdd	d
�}tjdd	d
�}t||||||g�}tj|�\}}tjddddddgtjd�}tj||�tj
|tj
||g��tj|dd�\}}tjddddddgtjd�}tj||�tj
|tj
||g��tjd�}tjd
�}t|||||||g�}tj|�\}}tjdddddddgtjd�}tj||�tj
|tj||g��tj|dd�\}}tjdddddddgtjd�}tj||�tj
|tj||g��dS)Nz20130101 09:00:00.00004�20130101rr)rT)rZ201302�M)�freqZ201303z1 day 1 minz1 day)rrrr#r&r'r)r$r%rr<�pd�PeriodZPeriodIndex�to_timedelta)r0Zv1Zv2r=r1r2r3r4r4r5�
test_datelike_sF

zTestFactorize.test_datelikecCstjdddtjgdd�}tjt|��}xddD]\}|j|d|d�}tjddd|gd	d�}tt|��tt|��ksrt�t	j
tj|�||k�q,Wtjdtjdgdd�}d
}|j|d
|d�}tjdddgd	d�}tt|��tt|��ks�t�t	j
tj|�||k�dS)Nrr�O)r�T)r�na_sentinelrZint32Fr9)r9rGr9r9)
r&r'r:�htZ
Factorizer�lenr#�set�AssertionErrorr$r%rB�isna)r0�keyZrizerrH�ids�expectedr4r4r5�test_factorize_nan�s
z TestFactorize.test_factorize_nanz&data, expected_codes, expected_uniquesrrrZnonsenser!cCsDtj|�\}}tj|tj|tjd��tj|t	d�}tj||�dS)N)r)
rBr#r$r%r&r'r)�comZasarray_tuplesafer()r0�data�expected_codes�expected_uniquesr1r2Zexpected_uniques_arrayr4r4r5�test_factorize_tuple_list�sz'TestFactorize.test_factorize_tuple_listcCsVtjdd�td�D�td�}d}tjt|d��tj|ddd
�dd	�WdQRXdS)NcSsg|]}t|��qSr4)�complex)�.0�ir4r4r5�
<listcomp>�sz6TestFactorize.test_complex_sorting.<locals>.<listcomp>�)rzJunorderable types: .* [<>] .*|'[<>]' not supported between instances of .*)�matchrT)rr9)	r&r'r,r(�pytest�raises�	TypeErrorrr#)r0Zx17�msgr4r4r5�test_complex_sorting�sz"TestFactorize.test_complex_sortingcCs�tjddddddgtjd�}|j|d�tjddddddgtjd�}tjdddgtjd�}tj|�\}}tj||�tj||�dS)	Ng�?g�חAg:�0�yE>)r)�writerrr)	r&r'r/�setflagsr)rr#r$r%)r0�writablerSrTrUr1r2r4r4r5�test_float64_factorize�sz$TestFactorize.test_float64_factorizecCsvtjddd
gtjd�}|j|d�tjdddgtjd�}tjddgtjd�}tj|�\}}tj||�tj||�dS)
Nr�@r)r)rbrll����ll����ll����)	r&r'�uint64rcr)rr#r$r%)r0rdrSrTrUr1r2r4r4r5�test_uint64_factorize�sz#TestFactorize.test_uint64_factorizecCsvtjdd
dgtjd�}|j|d�tjdddgtjd�}tjddgtjd�}tj|�\}}tj||�tj||�dS)Nr�?r)r)rbrll����ll����ll����ll����ll����)	r&r'r-rcr)rr#r$r%)r0rdrSrTrUr1r2r4r4r5�test_int64_factorize�sz"TestFactorize.test_int64_factorizecCs|tjdddddgtd�}|j|d�tjdddddgtjd�}tjdddgtd�}tj|�\}}tj||�tj||�dS)	Nrrr)r)rbrrr)	r&r'r(rcr)rr#r$r%)r0rdrSrTrUr1r2r4r4r5�test_string_factorize�sz#TestFactorize.test_string_factorizec	Cs�tjdddtjddtjdgtd�}|j|d�tjddd	d
ddddgtjd�}tjdddgtd�}tj	|�\}}t
j||�t
j||�dS)Nrrr)r)rbrrrr9r9r9)r&r'r:rB�NaTr(rcr)rr#r$r%)r0rdrSrTrUr1r2r4r4r5�test_object_factorize�s" z#TestFactorize.test_object_factorizecCsbtjd
ddgtjd�}tjtdd��tj|dd�WdQRXtj	d	��tj|�WdQRXdS)Nrrir)rzgot an unexpected keyword)r\T)�orderFll)
r&r'rgr]r^r_rr#r$�assert_produces_warning)r0rSr4r4r5�test_deprecate_order�s
z"TestFactorize.test_deprecate_orderrS�u8)rri�i8Z__nan__�foor(cCsLtj|�\}}|ddg}tjdddgtjd�}tj||�tj||�dS)Nrr)r)rr#r&r'r)r$r%)r0rSr1r2rUrTr4r4r5�,test_parametrized_factorize_na_value_defaults

z:TestFactorize.test_parametrized_factorize_na_value_defaultzdata, na_valuer�rcCsRtj||d�\}}|ddg}tjddddgtjd�}tj||�tj||�dS)N)�na_valuerr!r)rr9r9)rZ_factorize_arrayr&r'r)r$r%)r0rSrvr1r2rUrTr4r4r5�$test_parametrized_factorize_na_values

z2TestFactorize.test_parametrized_factorize_na_valuerTFrH�
�dz
data, uniquesNZInt64Znumpy_arrayZextension_array)rOcCs�tj|||d�\}}|r<tjdd|dgtjd�}tj|�}ntjdd|dgtjd�}|}tj||�t|tj	�r~tj||�ntj
||�dS)N)rrHrr)r)rr#r&r'r)Z	safe_sortr$r%�
isinstance�ndarray�assert_extension_array_equal)r0rrHrSr2r1rTrUr4r4r5�test_factorize_na_sentinel*sz(TestFactorize.test_factorize_na_sentinelr)cCs.tj|dd�\}}tj||�tj||�dS)N)rH)rr#r$r%)r0rSrTrUr1r2r4r4r5�&test_object_factorize_na_sentinel_noneHsz4TestFactorize.test_object_factorize_na_sentinel_nonerFcCs.tj|dd�\}}tj||�tj||�dS)N)rH)rr#r$r%)r0rSrTrUr1r2r4r4r5�#test_int_factorize_na_sentinel_none_sz1TestFactorize.test_int_factorize_na_sentinel_none)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rrr!)rr)rr)rr)rrr!)rr)rr)rr)rr)rr)rr)rrll����ll����ll����ll����ll����ll����)rr)rr)rr)rr)rr)rrr9i����)�__name__�
__module__�__qualname__r6r>rErQr]�mark�parametrizerVrarerhrjrkrmrpr&r'rtr(rwrBr:r}rr~r/rr4r4r4r5r'sv&1,




	 &

$
rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zejjdd/ejddged �fd0ejd!ged �fg�d"d#��Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.S)1�
TestUniquecCs0tjjdddd�}tj|�}t|tj�s,t�dS)Nrry�2)�size)r&�random�randintr�uniquerzr{rL)r0�arr�resultr4r4r5�	test_intsxs
zTestUnique.test_intscCs6tjjdddd�jd�}tj|�}t|tj�s2t�dS)Nrryr�)r�rF)	r&r�r��astyperr�rzr{rL)r0r�r�r4r4r5�test_objects~s
zTestUnique.test_objectscCs2dddddg}xtd�D]}ttj|��qWdS)Nr7r8�C�D�Ei�)r,rJrr�)r0�lstrYr4r4r5�test_object_refcount_bug�sz#TestUnique.test_object_refcount_bugcCsdtjjtjd�jd�tjtjd�d�g�}|j}|j�|jd�}tj	|�}|j�t
j||�dS)Nr r)rBZ
MultiIndexZfrom_arraysr&r.�repeat�tile�valuesrr�r$�assert_almost_equal)r0ZmindexrPr�r4r4r5�test_on_index_object�s$

zTestUnique.test_on_index_objectcCs|tjtjkrtjd�n�t|�r8dddg}ddg}n�t|�rTdddg}ddg}n�t|�r�tdd�tdd�tdd�g}tdd�tdd�g}nJt	|�r�dddg}ddg}n.t
|�r�d	d
d
g}d	d
g}ndddg}ddg}t||d�j�}t
j||d�}tj||�dS)Nzskip string dtyperrg�?g@rTFr7r8)r)r$ZBYTES_DTYPESZ
STRING_DTYPESr]�skiprrr
rWr	r
rr�r&r'r%)r0Zany_numpy_dtyperSr2r�rPr4r4r5�test_dtype_preservation�s,








z"TestUnique.test_dtype_preservationcCs�tddgdd�}tjdddg�}tj|�}tj||�|j|jksFt�t	|�}tj|�}tj||�|j|jkstt�|j
}tj|�}tj||�|j|jks�t�dS)Nz"2015-01-03T00:00:00.000000000+0000z"2015-01-01T00:00:00.000000000+0000zM8[ns])rz2015-01-03T00:00:00.000000000z2015-01-01T00:00:00.000000000)rrB�to_datetimerr�r$r%rrLrr�)r0rPZdt_indexr��sr�r4r4r5�$test_datetime64_dtype_array_returned�s&


z/TestUnique.test_datetime64_dtype_array_returnedcCs@tjdddgdd�}tj|�}tjddgdd�}tj||�dS)N�2000�2001z
datetime64[s])rzdatetime64[ns])r&r'rBr�r$r%)r0rr�rPr4r4r5�test_datetime_non_ns�s
zTestUnique.test_datetime_non_nscCs@tjdddgdd�}tj|�}tjddgdd�}tj||�dS)Nr�r�ztimedelta64[s])rl �RFlj�IGztimedelta64[ns])r&r'rBr�r$r%)r0rr�rPr4r4r5�test_timedelta_non_ns�s
z TestUnique.test_timedelta_non_nscCs�tjdddgdd�}tjdddddg�}tj|�}tj||�|j|jksNt	�t
|�}tj|�}tj||�|j|jks|t	�|j}tj|�}tj||�|j|jks�t	�dS)Ni�yin�i'zm8[ns])r)r&r'rBrDrr�r$r%rrLrr�)r0rPZtd_indexr�r�r�r4r4r5�%test_timedelta64_dtype_array_returned�s


z0TestUnique.test_timedelta64_dtype_array_returnedcCsBtddddgtjd�}tjdddgtjd�}tjtj|�|�dS)Nrrri)rlll)rr&rgr'r$r%rr�)r0r�r3r4r4r5�test_uint64_overflow�szTestUnique.test_uint64_overflowcCs>dtjddg}tj|�}tjdtjdgtd�}tj||�dS)Nrr)r)r&r:rBr�r'r(r$r%)r0Zduplicated_itemsr�rPr4r4r5�test_nan_in_object_array�s
z#TestUnique.test_nan_in_object_arraycCs&ttd�td�d�}ttd�td�dd�}ttd��}|j�}tj||�tj|�}tj||�ttd�dd�}|j�}tj||�tj|�}tj||�tttd��dd	�}|j�}tj||�tj|�}tj||�tttd�td�d��}t|�}|j�}tj	||�tj|�}tj	||�dS)
NZbac)�
categories�abcT)r��orderedZbaabc)r�rs)�name)
rr*r�r$�assert_categorical_equalrrrBrr<)r0rPZ
expected_orr�r�Zcir4r4r5�test_categorical�s.



zTestUnique.test_categoricalcCstttddd�tddd�g��j�}tjtjtddd�g��}tj	||�ttddd�tddd�g�j�}t
dgddd�}tj||�tjtttddd�tddd�g���}tjtjtddd�g��}tj	||�tjttddd�tddd�g��}t
dgddd�}tj||�dS)	N�20160101z
US/Eastern)�tzz2016-01-01 00:00:00-0500z2016-01-01 00:00:00zdatetime64[ns, US/Eastern])rrAz
2016-01-01)
rrrr�rZ_from_sequencer&r'r$r|rr<rB)r0r�rPr4r4r5�test_datetime64tz_aware(s8



z"TestUnique.test_datetime64tz_awarecCs:tjtddddg��}tj|tjdddgdd��tjtdgdgd��}tj|tjddgdd��tjttd�td�g��}tjdgd	d�}tj||�tjttdd
d�tdd
d�g��}t	dgd
dd�}tj
||�tjtd��}tjdddgtd�}tj||�tjtt
td����}t
td��}tj||�dS)Nrrr!r-)rr r�z2016-01-01T00:00:00.000000000zdatetime64[ns]z
US/Eastern)r�z2016-01-01 00:00:00zdatetime64[ns, US/Eastern])rrAZaabcrrrr�)rBr�rr$r%r&r'rrrr<r*r(rr�)r0r�rPr4r4r5�test_order_of_appearance_s(
z#TestUnique.test_order_of_appearancez
arg ,expected�1�2)rrscCstj|�}tj||�dS)N)rBr�r$r%)r0�argrPr�r4r4r5�test_tuple_with_strings�s	
z"TestUnique.test_tuple_with_stringscCsBtjddgtd�}tj|�}tjddgtd�}tj||dd�dS)Nrs)rT)Z
strict_nan)r&r'r(rBr�r$r%)r0r�r�rPr4r4r5�test_obj_none_preservation�s
z%TestUnique.test_obj_none_preservationcCs4tjddg�}tj|�}tjdg�}tj||�dS)Ngg�g�)r&r'rBr�r$r%)r0rr�rPr4r4r5�test_signed_zero�s
zTestUnique.test_signed_zerocCs~tjdtjdd��d}tjdtjdd��d}||ks<t�||ksHt�tj||g�}tj|�}tjtjg�}t	j
||�dS)N�dz=Ql�rl�)�struct�unpack�packrLr&r'rBr�r:r$r%)r0�NAN1�NAN2rr�rPr4r4r5�test_different_nans�s
zTestUnique.test_different_nansc	Cs�d}d}tjdtjd|��d}tjdtjd|��d}||ksDt�||ksPt�xdtjtgD]V}tj||g|d�}tj	|�}|j
dks�t�tjdtjd|d��d}||ks\t�q\WdS)Nl�l�r�z=Qr)rr)r�r�r�rLr&r/r(r'rBr�r�)	r0Z
bits_for_nan1Z
bits_for_nan2r�r�Zel_typerr�Zresult_nan_bitsr4r4r5�test_first_nan_kept�s
zTestUnique.test_first_nan_keptcCsZ||krdStj||gtd�}tj|�}|jdks6t�|d|ksFt�|d|ksVt�dS)N)rrrr)r&r'r(rBr�r�rL)r0Zunique_nulls_fixtureZunique_nulls_fixture2rr�r4r4r5�test_do_not_mangle_na_values�s
z'TestUnique.test_do_not_mangle_na_valuesN)r�r�r�)rs)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r]r�r�r&r'r(r�r�r�r�r�r�r4r4r4r5r�ws.*7# r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zejjdgeed�ejg�g�dd��Zdd�Zdd �Zejjd!d"�d#d$��Zejjd!d"�d%d&��Zejjd!d"�d'd(��Zd)S)*�TestIsincCs~d}tjt|d��tjdd�WdQRXtjt|d��tjddg�WdQRXtjt|d��tjdgd�WdQRXdS)NzQonly list-like objects are allowed to be passed to isin\(\), you passed a \[int\])r\r)r]r^r_r�isin)r0r`r4r4r5�test_invalid�szTestIsin.test_invalidcCs�tjddgdg�}tjddg�}tj||�tjtjddg�dg�}tjddg�}tj||�tjtddg�dg�}tjddg�}tj||�tjtddg�tdg��}tjddg�}tj||�tjtddg�dh�}tjddg�}tj||�tjddgdg�}tjddg�}tj||�tjtddg�tdg��}tjddg�}tj||�tjtddg�dh�}tjddg�}tj||�tjddgdg�}tjddg�}tj||�dS)NrrTFrr)rr�r&r'r$r%r)r0r�rPr4r4r5r6�s6zTestIsin.test_basiccCsHtjddd�j}tj||dg�}tjdddg�}tj||�tj||dd��}tjdddg�}tj||�tj|t	|dd���}tjdddg�}tj||�tj
ddd�j}tj||dg�}tjdddg�}tj||�tj||dd��}tjdddg�}tj||�tj|t	|dd���}tjdddg�}tj||�dS)	Nr?r!)�periodsrTFrz1 day)rB�
date_ranger�rr�r&r'r$r%rKZtimedelta_range)r0r�r�rPr4r4r5�test_i8�s(zTestIsin.test_i8cCsXtjdddd�j}tj||dd��}tjt|�td�}d|d<d|d	<t	j
||�dS)
NZ20000101i��r�)r�rArr)rTr)rBr�r�rr�r&�zerosrJ�boolr$r%)r0r�r�rPr4r4r5�
test_largeszTestIsin.test_largecCs|tjddddg�}dddg}ttd�j||��}ttd�jtjddg�|��}tjddddg�}tj||�}tj||�dS)	NrrrrrrTF)	r&r'rr�
from_codesrr�r$r%)r0�vals�catsZSdZStrPr�r4r4r5�test_categorical_from_codess
z$TestIsin.test_categorical_from_codescCsttjddddg�}dddg}td�j||�}td�jtjddg�|�}tjddddg�}tj||�}tj||�dS)	NrrrrrrTF)r&r'rr�rr�r$r%)r0r�r��cat�otherrPr�r4r4r5�test_categorical_isin's
zTestIsin.test_categorical_isincCs8tjg}tjg}tjdg�}tj||�}tj||�dS)NT)r&r:r'rr�r$r%)r0�compsr�rPr�r4r4r5�test_same_nan_is_in1s
zTestIsin.test_same_nan_is_incCsJtjdd�}tj|d<tj|tjdg�}tjt|�td�}tj	||�dS)Ng�?iABrr)r)
r&r�r:rr��onesrJr�r$r%)r0r�r�rPr4r4r5�test_same_nan_is_in_large=s

z"TestIsin.test_same_nan_is_in_largecCsXtjdd�}tj|�}tj|d<|jtjdg�}tjtjt|�td��}t	j
||�dS)Ng�?iABrr)r)r&r�rBrr:r�r�rJr�r$�assert_series_equal)r0r�Zseriesr�rPr4r4r5� test_same_nan_is_in_large_seriesEs

z)TestIsin.test_same_nan_is_in_large_seriescCs`Gdd�d�}|�|�}}tjtj|g|g�tjdg��tjtj|g|g�tjdg��dS)Nc@s"eZdZed�dd�Zdd�ZdS)z0TestIsin.test_same_object_is_in.<locals>.LikeNan)�returncSsdS)NFr4)r0r�r4r4r5�__eq__Usz7TestIsin.test_same_object_is_in.<locals>.LikeNan.__eq__cSsdS)Nrr4)r0r4r4r5�__hash__Xsz9TestIsin.test_same_object_is_in.<locals>.LikeNan.__hash__N)r�r�r�r�r�r�r4r4r4r5�LikeNanTsr�TF)r$r%rr�r&r')r0r�rrr4r4r5�test_same_object_is_inNs zTestIsin.test_same_object_is_incCs�td�g}td�g}|d|dk	s(t�tj||�}tjtjdg�|�tjtj|t	d�tj|t	d��}tjtjdg�|�tjtj|tj
d�tj|tj
d��}tjtjdg�|�dS)Nr:rT)r)�floatrLrr�r$r%r&r'Zasarrayr(r/)r0r�r�r�r4r4r5r�as

 zTestIsin.test_different_nanscCs8ddg}dg}tjddg�}tj||�}tj||�dS)N�ss�*Z42F)r&r'rr�r$r%)r0r�r�rPr�r4r4r5�test_no_castys
zTestIsin.test_no_cast�empty)rcCs6tddg�}tjddg�}tj||�}tj||�dS)NrrF)rr&r'rr�r$r%)r0r�r�rPr�r4r4r5�
test_empty�szTestIsin.test_emptycCs^tjdtjdtd�gtd�}tjtd�gtd�}tjdddg�}tj||�}tj||�dS)Nr:y�?)rFT)	r&r'r:r�r(rr�r$r%)r0r�r�rPr�r4r4r5�test_different_nan_objects�s
z#TestIsin.test_different_nan_objectscCs�tjdtjdd��d}tjdtjdd��d}||ks<t�||ksHt�tj||gtjd�}tj|gtjd�}tj||�}tjddg�}t	j
||�tj|gtjd�}tj||�}tjddg�}t	j
||�dS)Nr�z=Ql�rl�)rT)r�r�r�rLr&r'r/rr�r$r%)r0r�r�r�Zlookup1r�rPZlookup2r4r4r5�test_different_nans_as_float64�sz'TestIsin.test_different_nans_as_float64z!problem related with issue #34125)�reasoncCs@tjdddgi�}|jdg�}tjdddgi�}tj||�dS)zComparing df with int`s (1,2) with a string at isin() ("1")
        -> should not match values because int 1 is not equal str 1r�rrr�FN)rB�	DataFramer�r$�assert_frame_equal)r0�dfr��expected_falser4r4r5�test_isin_int_df_string_search�sz'TestIsin.test_isin_int_df_string_searchcCsBtjdtjdgi�}|jdg�}tjdddgi�}tj||�dS)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 NaN r�r�NaNFN)rBr�r&r:r�r$r�)r0r�r�r�r4r4r5�test_isin_nan_df_string_search�sz'TestIsin.test_isin_nan_df_string_searchcCs@tjdddgi�}|jdg�}tjdddgi�}tj||�dS)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�@z1.4245FN)rBr�r�r$r�)r0r�r�r�r4r4r5� test_isin_float_df_string_search�sz)TestIsin.test_isin_float_df_string_searchN)r�r�r�r�r6r�r�r�r�r�r�r�r�r�r�r]r�r�rr(r&r'r�r�r�Zxfailr�r�r�r4r4r4r5r��s$
&

		(			r�c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestValueCountscCs�tjjd�ddlm}tjjd�}||d�}tj|�}ddddd	g}tj	|�j
td
d��}tddddg|d
�}t
j|j�|j��dS)Ni�r)�cutr"g��v���?g��Q��?g`��"��?gw��/��?g!�rh��?T)r�r)�indexg��v���g��Q��)r&r��seedZpandas.core.reshape.tiler��randnr�value_countsrZfrom_breaksr��CDTrr$r�Z
sort_index)r0r�r�Zfactorr�Zbreaksr�rPr4r4r5�test_value_counts�s

z!TestValueCounts.test_value_countscCsvddddg}tj|dd�}tdgtjdg�d�}tj||�tj|dd	d
�}tddgtjd
dg�d�}tj||�dS)Nrrr!r")�bins�Zd;��?�@)r�F)r�r�@)r�r�)r�r�)r�r�)rr�rr�from_tuplesr$r�)r0r�r�rPr4r4r5�test_value_counts_bins�sz&TestValueCounts.test_value_counts_binscCs�tjddg�}t|�dkst�tjddgdd�}t|�dks@t�tjtdddg��}t|�dksdt�d}tjt|d��tjddgdd�WdQRXdS)Nrg�?)r�r�rz*bins argument only works with numeric data)r\)rr�rJrLrr]r^r_)r0r�r`r4r4r5�test_value_counts_dtypes�sz(TestValueCounts.test_value_counts_dtypescCs�ttjd�tjgdd�}tjddg�}xH||gD]<}tj|�}tj|dd�}t|�dks\t	�t|�d	ks0t	�q0Wtt
d
�di�}tjtj|�|�dS)Ni'ztimedelta64[ns])rrlz
2014-01-01F)�dropnarrz2014-01-01 00:00:00)
rr&Ztimedelta64rBrlr�rr�rJrLrr$r�)r0�td�dtr�ZvcZ
vc_with_naZexp_dtr4r4r5�test_value_counts_nat�s
z%TestValueCounts.test_value_counts_natc
Cs�ttddd�tddd�tddd�tddd�tddd�tddd�g�}|j�}ttddd�tddd�tddd�gtd�}tdddg|d�}tj||�tjtd	t	j
g�d
d�}td	t	j
gtd�}tj||�dS)Ni�ri�ip)rr!r)r�z
2362-01-01�ignore)�errors)rrr�rr(r$r�rBr�r&r:)r0r��resZ	exp_indexr3r4r4r5�&test_value_counts_datetime_outofbounds�s 




 z6TestValueCounts.test_value_counts_datetime_outofboundscCsvtttd���}|j�}tdddgtdddg�d�}tj||d	d
�|jj�}|j�}|j	j�|_	tj||d	d
�dS)NZaaabbcr!rrrrr)r�T)�check_index_type)
rrr*r�rr$r�r�Z
as_orderedr�)r0r�r�rPr4r4r5r�s
z TestValueCounts.test_categoricalcCsNtttd���}tj|jd<|j�}tdddgtdddgdddgd	�d
�}tj	||dd�|jd
d�}tddddgtdddtjg�d
�}tj	||dd�tttd�ddddgd��}tj|jd<|j�}tdddgtdddgdddgdd�d
�}tj	||dd�|jd
d�}tddddgtdddtjgdddgdd�d
�}tj	||dd�dS)NZ
aaaaabbbccrr"r!rrrr)r�)r�T)rF)r�)r�r�)r�r�)
rrr*r&r:Zilocr�rr$r�)r0r�r�rPr4r4r5�test_categorical_nans#s2"
 z%TestValueCounts.test_categorical_nanscCs`tttd�td�dd��}|j�}tddddgtd	d
ddgtd�dd�d
�}tj||dd�dS)NZbbbaacZabcdT)r�r�r!rrrrrrr�)r�)r)rrr*r�r$r�)r0r�r�rPr4r4r5�test_categorical_zeroesGs
z'TestValueCounts.test_categorical_zeroescCs�tjtdddg�jdd�tddgddgd��tjtdddg�jdd�tddgddgd��tjtddddg�jdd�tddgddgd��tjtddddg�jdd�tdddgddtjgd��tjtdddg�jdd�tddgddgd��tjtdddg�jdd�tddgddgd��tjtddddg�jdd�tddgddgd��tj��s�tddddg�jdd�}tdddgddtjgd�}tj||�dS)	NTF)r�rr)r�g������$@g@)r$r�rr�r&r:r�is_platform_32bit)r0r�rPr4r4r5�test_dropnaSs2
zTestValueCounts.test_dropnacCs�tddtjtjtjg�}tjtdf}x�|D]�}|j|�}|jddd�}tdddgttjd	d
g|d�d�}tj||�|jddd�}td
d
gtd	d
g|d�d�}tj||�q*WdS)NrrzM8[ns]TF)�	normalizer�g333333�?g�������?g@g�?)r)r�g�?)	rr&r:r/r(r�r�r$r�)r0r�Zdtypes�tZs_typedr�rPr4r4r5�test_value_counts_normalized{s

 z,TestValueCounts.test_value_counts_normalizedcCs�tjdgtjd�}tdgdgd�}tj|�}tj||�tjdd	gtd�}tddgd
dgd�}tj|�}t	j
�s|tj||�dS)Nrri)rr)r�llr9lr9l)r&r'rgrrr�r$r�r(rr)r0r�rPr�r4r4r5�test_value_counts_uint64�s

z(TestValueCounts.test_value_counts_uint64N)r�r�r�r�r�r�r�rr�rrrr	r
r4r4r4r5r��s
$(r�c@s.eZdZdd�Zejjdejdddddddddd	g
�ejd
dd
ej	ddd
d
ej	dg
�ejd+d,d-d.d/d0d1d2d3d4g
�ejddddddddddg
e
d�ejdd5dd6dd7ddd8dg
ejd�g�d d!��Zd"d#�Z
d$d%�Zejjd&d9d:d;d<d=d>d?d@gdAdBdCdDgfdEdFdGdHgdIdJgfdKdLdMdNgdOdPdQgfg�d(d)��Zd*S)R�TestDuplicatedcCs�tjddtjddtjgtd�}tj|�}tjddddddg�}tj||�tj|dd�}tjddddddg�}tj||�tj|d	d�}tjddddddg�}tj||�tj|dd�}tjddddddg�}tj||�tjd
td�}xDt	t
ddtjtjgddtjdtjgd��D]\}}|||<�qWtj|�}dgd}dgd}tj||�}tj||�tj|d	d�}tj||�}tj||�tj|dd�}tj||�}tj||�dS)Nrrr)rFT�first)�keep�last�r")r&r'r:r(r�
duplicatedr$r%r��	enumerate�zip)r0�keysr�rPrYrZfalsesZtruesr4r4r5�test_duplicated_with_nas�s8
4


z'TestDuplicated.test_duplicated_with_nas�caserrr r!r"�g�������?g������@gffffff
@g������@gffffff@y�?y@y@y@y@y@rr�err��f)rrirx�'�c
Csptjddddddddddg
�}tjddddddddddg
�}||B}tj|dd�}tj||�tj|dd�}tj||�tj|dd�}tj||�xdt|�t|dd�gD]L}|jdd�}tj||�|jdd�}tj||�|jdd�}tj||�q�Wxrt|�t|dd�gD]Z}	|	jdd�}tj|t|��|	jdd�}tj|t|��|	jdd�}tj|t|���qWdS)NFTr)r
r�category)r)	r&r'rrr$r%rrr�)
r0r�	exp_first�exp_last�	exp_false�	res_first�res_last�	res_false�idxr�r4r4r5�test_numeric_object_likes�s2z(TestDuplicated.test_numeric_object_likesc
Cs&ddddddddddg
}ddddd	dd
dddg
}tjdd
�|D��tjdd
�|D��tjdd
�|D��tjdd
�|D��tjdd
�|D��g}tjddddddddddg
�}tjddddddddddg
�}||B}�xL|D�]B}tj|dd�}tj||�tj|dd�}	tj|	|�tj|dd�}
tj|
|�xpt|�t|dd�t|td�gD]N}|jdd�}tj||�|jdd�}	tj|	|�|jdd�}
tj|
|��qNWx|t|�t|dd�t|td�gD]Z}|jdd�}tj	|t|��|jdd�}	tj	|	t|��|jdd�}
tj	|
t|���q�Wq�WdS)Nz
2011-01-01z
2011-01-02rlz
2011-01-03z
2011-01-04z
2011-01-06z1 daysz2 daysz3 daysz4 daysz6 dayscSsg|]}t|��qSr4)r)rXr�r4r4r5rZ sz6TestDuplicated.test_datetime_likes.<locals>.<listcomp>cSsg|]}t|dd��qS)z
US/Eastern)r�)r)rXr�r4r4r5rZ!scSsg|]}tj|dd��qS)r�)rA)rBrC)rXr�r4r4r5rZ"scSsg|]}tj|��qSr4)r&Z
datetime64)rXr�r4r4r5rZ#scSsg|]}tj|��qSr4)rBZ	Timedelta)rXr�r4r4r5rZ$sFTr)r
rr)r)
r&r'rrr$r%rr(rr�)
r0r�r��casesrrrrrr r!r"r�r4r4r5�test_datetime_likessr

z"TestDuplicated.test_datetime_likescCsVtdddg�tjdd�g}x6|D].}|jdks2t�tj|j�tj	dddg��q WdS)Nrrr!rTF)
rrBZ
RangeIndexZ	is_uniquerLr$r%rr&r')r0r$rr4r4r5�test_unique_indexWs

z TestDuplicated.test_unique_indexzarr, uniquercCs8tjt|�td�}||dd�<tj|�}tj||�dS)N)r)r&r�rJr(rBr�r$r%)r0r�r�rPr�r4r4r5�test_unique_tuples_s
z!TestDuplicated.test_unique_tuplesNy�?�?y@@y�?�?y@@y@@y@@y@@y�?�?y@@y@@l��lr()rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr!)rr)rr)rr)rr!)r�r�r�rr]r�r�r&r'r:r(rgr#r%r&r'r4r4r4r5r�s8'  ,,S
rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�GroupVarTestMixincCs�td�}tjtjd
�j|j�}tjddd�}d|jdd�j|j�}tjtj	d�d�jd�}tj
|�jdd	d
�jddd�ddd�tj
f}|d}|j||||�tj|||j�s�t�tj||�dS)Ni�r rr-)rrx�r!�F)rn)�axis�ddofr)r r)r!)r r!)rr&r:r�r�rr��randr�r.Zsqueeze�reshape�stdZnewaxis�algo�allclose�rtolrLr$r%)r0�prng�out�countsr��labels�expected_out�expected_countsr4r4r5�test_group_var_generic_1dws&
z+GroupVarTestMixin.test_group_var_generic_1dcCs�td�}tjtjd	�j|j�}tjddd�}d|jdd�j|j�}tjddd�}tj|j	dd�dgg�}|d}|j
||||�tj|||j�s�t
�tj||�dS)
Ni�rr-)rrxr )r-r)rr)rr&r:r�r�rr�r.r'r0r1r2r3rLr$r%)r0r4r5r6r�r7r8r9r4r4r5�%test_group_var_generic_1d_flat_labels�sz7GroupVarTestMixin.test_group_var_generic_1d_flat_labelscCs�td�}tjtjd
�j|j�}tjddd�}d|jdd�j|j�}tjtj	d�d�jd�}tj
|jddd�ddd	�d}|d}|j||||�tj
|||j�s�t�tj||�dS)Ni�r rr-)rrxrr)r-r,)r r)r)rr&r:r�r�rr�r.r�r.r0r/r1r2r3rLr$r%)r0r4r5r6r�r7r8r9r4r4r5�$test_group_var_generic_2d_all_finite�sz6GroupVarTestMixin.test_group_var_generic_2d_all_finitecCs�td�}tjtjd�j|j�}tjddd�}d|jdd�j|j�}tj|dd�df<tjtj	d�d�jd�}tj
|dd�dfjddd	d
�jddd�dtjtjd�g�j
j|j�}|d}|j||||�tj||dd
�tj||�dS)Ni�r rr-)rrxrrr+)rn)r-r,g���Ơ>)r3)r r)r)rr&r:r�r�rr�r.r�r.Zvstackr/r0�Tr1r$r�r%)r0r4r5r6r�r7r8r9r4r4r5�"test_group_var_generic_2d_some_nan�s(z4GroupVarTestMixin.test_group_var_generic_2d_some_nancCs�tjtjgg|jd�}tjdgdd�}dtjd|jd�}tjddd�}|j||||�|ddksht�|d	dksxt�tj	|d
d�dS)N)rrr-gUUUժ��?r!rg)r!r)rr)rr)
r&r'r:rr�r�r1rLr$r�)r0r5r6r�r7r4r4r5�test_group_var_constant�sz)GroupVarTestMixin.test_group_var_constantN)r�r�r�r:r;r<r>r?r4r4r4r5r)vs
r)c@s,eZdZdZeej�Zej	Z
dZdd�ZdS)�TestGroupVarFloat64Tg�h㈵��>cCs�td�}tjtjgg|jd�}tjdgdd�}|jd�d
j|j�}d|_tjddd�}|j	||||�|ddksxt
�tj|ddd
d�dS)Ni�)rrr-rxr�rg�?g����Mb@?)r3i@BlJ)��@B)rBri@Bi@B)rrgUUUUUU�?)
rr&r'r:rr.r��shaper�r1rLr$r�)r0r4r5r6r�r7r4r4r5�test_group_var_large_inputs�sz/TestGroupVarFloat64.test_group_var_large_inputsN)
r�r�r��__test__�staticmethod�
libgroupbyZgroup_var_float64r1r&r/rr3rDr4r4r4r5r@�s

r@c@s$eZdZdZeej�Zej	Z
dZdS)�TestGroupVarFloat32Tg{�G�z�?N)r�r�r�rErFrGZgroup_var_float32r1r&Zfloat32rr3r4r4r4r5rH�s
rHc@sPeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
jd
ddg�e	j
jdej
ejddfejejddfejejddfejejddfejejddfg�dd���Ze	j
jdej
dfejdfejdfejdfejdfg�dd��Ze	j
jdej
dfejdfejdfejdfejdfg�d d!��Ze	j
jd"ej
ejejejejg�d#d$��Zd%S)&�
TestHashTablecCsttj�}|jdd�|jd�dks&t�tjtdd��|jdd�WdQRXtjtdd��|jd�WdQRXdS)NrNrz'key' has incorrect type)r\r"rz'val' has incorrect type)rI�StringHashTable�set_itemZget_itemrLr]r^r_)r0�tblr4r4r5�(test_string_hashtable_set_item_signature�sz6TestHashTable.test_string_hashtable_set_item_signaturecCs^tjddtjd	dddg�}|j|d�tj�}|j|�tj|j	|�tj
t|�tjd��dS)
NgX9��v�@g��Q�	@rr rr!)rb)ri����)
r&r'r:rcrI�Float64HashTable�
map_locationsr$r%�lookupr.rJr-)r0rd�xs�mr4r4r5�test_lookup_nan�s

zTestHashTable.test_lookup_nancCs:d}tj|�}|jdd�|jdd�t|�dks6t�dS)Nr"grrg�)rIrNrKrJrL)r0�NrRr4r4r5�test_add_signed_zeross

z#TestHashTable.test_add_signed_zeroscCs|tjdtjdd��d}tjdtjdd��d}||ks<t�||ksHt�tj�}|j|d�|j|d�t|�dksxt�dS)Nr�z=Ql�rl�r)r�r�r�rLrIrNrKrJ)r0r�r�rRr4r4r5�test_add_different_nanssz%TestHashTable.test_add_different_nanscCsZtjdddgtjd�}|j|d�tj�}|j|�tj|j	|�tj
t|�tjd��dS)Nrrri)r)rbl)
r&r'rgrcrI�UInt64HashTablerOr$r%rPr.rJr-)r0rdrQrRr4r4r5�test_lookup_overflows

z"TestHashTable.test_lookup_overflowcCs@tddddgtjd�}tjdddgtjd�}tj|j�|�dS)Nrrri)rlll)rr&rgr'r$r%r�)r0r�r3r4r4r5�test_get_unique!szTestHashTable.test_get_unique�nvalsrrxz&htable, uniques, dtype, safely_resizesr(FTr/r-rgc
Cs�tjtjjd�|d�}|j|d�|�}|�}|j|d|�|dd�|j�}|j}	|rj|j||dd	�n*tj	t
dd��|j||dd
�WdQRX|j�|j|	ks�t�dS)Ni�)r)rbrrzexternal reference.*)r\r9r9r9)r&r'r�r�rcZ
get_labelsZto_arrayrCr]r^�
ValueErrorrL)
r0rd�htabler2rZsafely_resizesrZr��tmpZoldshaper4r4r5�test_vector_resize&sz TestHashTable.test_vector_resizezhtable, tm_dtype�String�FloatZIntZUIntcCs�ttd|d�}t|d��}|tjkr6tj|jd<n"|tjkrXtjdt	j
g|jdd�<|jddd�jdd	�}|j
j|d
�|jdd�j
}|�j|j
�}tj||�|�j|j
dd
�\}}	tj||�||	}
tj|
|j
�dS)N�makeri�i�i�r!T)�frac�replace)�drop)rbr)r
)Zreturn_inverse)�getattrr$rrIrNr&r:�loc�PyObjectHashTablerBrl�sample�reset_indexr�rc�drop_duplicatesr�r%)r0r\�tm_dtyperd�makerr��s_duplicated�expected_unique�
result_unique�result_inverseZreconstrr4r4r5�test_hashtable_uniqueRs 

z#TestHashTable.test_hashtable_uniquec
Cs�ttd|d�}t|d��}|tjkr6tj|jd<n"|tjkrXtjdt	j
g|jdd�<|jddd�jdd	�}|j
j|d
�|j�j
}|�j|j
�\}}	|j�j�j
}
tj||
�||	|}|j�j
}tj||�dS)Nrari�i�i�r!T)rbrc)rd)rb)rer$rrIrNr&r:rfrgrBrlrhrir�rcrMr#r�rjr%)
r0r\rkrdrlr�rmZna_maskrorprnZresult_reconstructZexpected_reconstructr4r4r5�test_hashtable_factorizezs



z&TestHashTable.test_hashtable_factorizercCs tjtj�jd}||d�}dS)Nr)�	size_hint)r&�iinfoZuint32�max)r0rrsrLr4r4r5�test_hashtable_large_sizehint�sz+TestHashTable.test_hashtable_large_sizehintN)r�r�r�rMrSrUrVrXrYr]r�r�rIrgZObjectVectorrJrNZ
Float64VectorZInt64HashTableZInt64VectorrWZUInt64Vectorr^rqrrrvr4r4r4r5rI�sF
$!!rIcCsNttjjd��}tj|dddddg�}tj|jdddddg�}tj||�dS)Nryrg�?g�?g�?g�?)	rr&r�r�rZquantiler�r$r�)r�r�rPr4r4r5�
test_quantile�srwcCs�tjjdd	d
�jd�}tj|�}tj|dd�d}tj||dd�d|tjj	t
|�d�<tj|�}tj|dd�ddd�}tj||dd�dS)Nrrxr*rrT)Zreturn_indexF)Zcheck_dtypeii�r9)r&r�r�r�rIZunique_label_indicesr�r$r%�choicerJ)r�left�rightr4r4r5�test_unique_label_indices�s

r{c@sxeZdZejdd��Zdd�Zdd�Zdd�Ze	j
je	j
je	j
j
d	ejd�ejd�jdd
�gddgd�dd����ZdS)�TestRankcsnddlm��fdd�}|tjtjtjdddtjdddtjg
��|tjd	tjdddtjddd	tjg
��dS)
Nr)�rankdatacsJtj|�}|j�}tj|�}tj||<�|�}tj||<tj||�dS)N)	r&�isfinite�copy�libalgosZrank_1dr;r:r$r�)r��maskr�r3)r}r4r5�_check�s


z*TestRank.test_scipy_compat.<locals>._checkg@rrr!g@)Zscipy.statsr}r&r'r:)r0r�r4)r}r5�test_scipy_compat�s	*zTestRank.test_scipy_compatcCsdtjddgtjd�}xJtjdD]<}tjddg|d�}|j|d�t|�}tjtj	|�|�q WdS)Nrr)r�
AllIntegerry)rb)
r&r'r/�	typecodesrcrr$r%r�rank)r0rdr3rrSr�r4r4r5r6�szTestRank.test_basiccCsPtjddgtjd�}x6tjtjgD]&}tddg|d�}tjtj|�|�q"WdS)Nrr)rril)	r&r'r/rgrr$r%rr�)r0r3rr�r4r4r5r��szTestRank.test_uint64_overflowc	CsPtjdddgdddgddd	ggg�}d
}tjt|d��tj|�WdQRXdS)Nrrr!r"r rrr�	z%Array with ndim > 2 are not supported)r\)r&r'r]r^r_rr�)r0r�r`r4r4r5�test_too_many_ndims�s$zTestRank.test_too_many_ndimsr�r�r�Z1dZ2d)rOcCs"tj|dd�j�}|dkst�dS)NT)Zpctr)rr�rurL)r0r�r�r4r4r5�test_pct_max_many_rows�s	zTestRank.test_pct_max_many_rowsNiiiiii)r�r�r�r�Zskip_if_no_scipyr�r6r�r�r]r�ZsingleZhigh_memoryr�r&r.r/r�r4r4r4r5r|�s	r|cCs�tjgdd�}tjtddd�gdd�}tjd||�}tjdgtjd�}tj||�tjd||�}tjgtjd�}tj||�tjd||�}tjd	gtjd�}tj||�tjd||�}tjgtjd�}tj||�dS)
NrF)ri�rA�r(rr9r9)	r&r'rr��padr-r$r%�backfill)�old�newr�rPr4r4r5�!test_pad_backfill_object_segfault�sr�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestTseriesUtilcCsdS)Nr4)r0r4r4r5�test_combineFuncsz TestTseriesUtil.test_combineFunccCsdS)Nr4)r0r4r4r5�test_reindexszTestTseriesUtil.test_reindexcCsdS)Nr4)r0r4r4r5�	test_isnaszTestTseriesUtil.test_isnacCsdS)Nr4)r0r4r4r5�test_groupbyszTestTseriesUtil.test_groupbycCsdS)Nr4)r0r4r4r5�test_groupby_withnull!sz%TestTseriesUtil.test_groupby_withnullc
Cs�tdddg�}tttd���}tjd|j|j�}tjdddddddddddd
gtjd�}t	j
||�tdd	g�}tttdd���}tjd|j|j�}tjddd
ddgtjd�}t	j
||�dS)Nrr rxrA�int64_trr)rr"r9r9r9r9r9r9)rr*r,r�r�r�r&r'r-r$r%)r0r�r��filler�
expect_fillerr4r4r5�
test_backfill$s(zTestTseriesUtil.test_backfillc
Cs�tdddg�}tttd���}tjd|j|j�}tjd	dddddddddddgtjd�}t	j
||�tddg�}ttjd��}tjd|j|j�}tjd
ddd
dgtjd�}t	j
||�dS)Nrr rxrAr�rr)rr9r9r9r9r9r9)rr*r,r�r�r�r&r'r-r$r%r.)r0r�r�r�r�r4r4r5�test_pad5s(zTestTseriesUtil.test_padN)
r�r�r�r�r�r�r�r�r�r�r4r4r4r5r�sr�c~Cs"tjddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg|dd�tjddd	d
ddd
ddddddddddddddddddd d!ddddddd	d
ddd
ddddddddddddddddddd d!ddddddd	d
ddd
ddddddddddddddddddd d!ddddddd	d
ddd
ddddddddddddddddddd d!ddddg|dd�g}tj|��st�dS)"Nr!rrrr-)r�����r�r����rG��r[�r*��
rA�rxr�rrrr r")r&r'r�Zis_lexsortedrL)Zfailurer4r4r5�test_is_lexsortedFs�
r�cCs�tjjddd�jtj�}tjjddd�jtj�}tj|d�d}tj|dd�}|jtj�}tj	||�|d|}tj|d�d}tj
||f�}|jtj�}tj	||�dS)Nri�ryZ	mergesort)�kindi@B)r&r�r�r�r-r�Zgroupsort_indexer�argsortr$r%Zlexsort)rrr�rPrNr4r4r5�test_groupsort_indexerOsr�cs�tj��tj���td�dddtd��g}t�fdd�|D��sDt�t�fdd�|D��s^t���krn��ksrt���kr���ks�t�tj�tj�ks�t�tj�tj�ks�t�t�fdd�|D��s�t�t�fd	d�|D��s�t���kr���ks�t���k�r��k�st�tj�tj�k�s.t�tj�tj�k�sFt�x$t|�D]}t|�|k�sPt��qPWtj	tj�gd
�j
�tj	tj�gd
�j
�dS)Nz-infg}Ô%�I�Trr;c3s|]}�|kVqdS)Nr4)rXr=)�Infr4r5�	<genexpr>ssz%test_infinity_sort.<locals>.<genexpr>c3s|]}�|kp|�kVqdS)Nr4)rXr=)r�r4r5r�tsc3s|]}�|kVqdS)Nr4)rXr=)�NegInfr4r5r�zsc3s|]}�|kp|�kVqdS)Nr4)rXr=)r�r4r5r�{s� g}Ô%�I��)r��Infinity�NegInfinityr��allrLr�sortedr&r'r�)Zref_numsZpermr4)r�r�r5�test_infinity_sorths&r�cCs�tj�}tj�}|tjks t�|tjks0t�|tjks@t�|tjksPt�|tjks`t�|tjksnt�|tjks~t�|tjks�t�|tjks�t�|tjks�t�|tjks�t�|tjks�t�dS)N)r�r�r�r&r:rL)r�r�r4r4r5�test_infinity_against_nan�sr�cCs*tjdtjd�}tj|�}||ks&t�dS)Nry)r)r&r.r)r�Zensure_platform_intrL)r�r�r4r4r5�test_ensure_platform_int�s
r�cMCs�d}tjtj�j}tjtj�j}tjt|d��tj	tj
||g�|�WdQRXtjt|d��&tj	tj
||g�tj
||g��WdQRXtjt|d��tj	tj
||g�|�WdQRXtjt|d��&tj	tj
||g�tj
||g��WdQRXtjt|d��&tj	tj
||g�tj
||g��WdQRXtjt|d��4tj	tj
||g�tj
||g�tj
ddg�d�WdQRXtjt|d��4tj	tj
||g�tj
||g�tj
ddg�d�WdQRXtjt|d��@tj	tj
||g�tj
||g�tj
ddg�tj
ddg�d�WdQRXtjt|d��>tjt
��(tj	tj
||g�tj
tj|g��WdQRXWdQRXtj	tj
||g�tj
||g�tj
ddg�d�tj	tj
||g�tj
||g�tj
ddg�d�tj	tj
||g�tj
||g�tj
ddg�tj
ddg�d�dS)NzOverflow in int64 addition)r\FT)�arr_mask)�b_mask)r�r�)r&rtr-ru�minr]r^�
OverflowErrorrZchecked_add_with_arrr'r$ro�RuntimeWarningr:)r`rR�nr4r4r5�test_int64_add_overflow�sJ * **446**r�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestModecCs$tgtjd�}tjtjg�|�dS)N)r)rr&r/r$r�r�mode)r0r3r4r4r5�test_no_mode�szTestMode.test_no_modecCs�dg}dg}dg}ddg}xptjdtjdD]X}t||d�}t||d�}tjtj|�|�t||d�}t||d�}tjtj|�|�q0Wtdgtd�}tjtjdg�|�tdddgtd�}tjtjdddg�|�dS)Nrr�r`)rrrr)	r&r�rr$r�rr��intr()r0�
exp_single�data_single�	exp_multi�
data_multir�r�r3r4r4r5�test_mode_single�szTestMode.test_mode_singlecCs�dg}dgddgd}ddg}dgddgddgd}xptjdtjdD]X}t||d�}t||d�}tjtj|�|�t||d�}t||d�}tjtj|�|�qVWdS)Nrr rr!r�r`)r)r&r�rr$r�rr�)r0r�r�r�r�r�r�r3r4r4r5�test_number_mode�szTestMode.test_number_modecCs�dg}dgddgd}t|dd�}t|dd�}tjtj|�|�dg}dgddgd}x:ttgD].}t||d�}t||d�}tjtj|�|�qhWdS)	Nrrrr!r)r�barrs)rr$r�rr��strr()r0r3rSr�r�r4r4r5�test_strobj_mode	szTestMode.test_strobj_modecCsrtdddgdd�}tdddgdd�}tjtj|�|�tddgdd�}tdddddgdd�}tjtj|�|�dS)Nz
1900-05-03z
2011-01-03z
2013-01-02zM8[ns])r)rr$r�rr�)r0r3r�r4r4r5�test_datelike_mode	szTestMode.test_datelike_modecCsttdddgdd�}tdddgdd�}tjtj|�|�tddgdd�}tdddd	ddgdd�}tjtj|�|�dS)
Nz-1 daysz0 daysz1 daysztimedelta64[ns])rz2 minz1 dayz-1 dayz-1 day 2 min)rr$r�rr�)r0r3r�r4r4r5�test_timedelta_mode	szTestMode.test_timedelta_modecCs.tdg�}tdddg�}tjtj|�|�dS)Nrsr)rr$r�rr�)r0r3r�r4r4r5�test_mixed_dtype+	s
zTestMode.test_mixed_dtypecCsptdgtjd�}tdddgtjd�}tjtj|�|�tddgtjd�}tdd	gtjd�}tjtj|�|�dS)
Nrri)rrlllll)rr&rgr$r�rr�)r0r3r�r4r4r5r�0	szTestMode.test_uint64_overflowcCs�tddg�}|}tjtj|�|�tj|j�|�tdddg�}tdgddgd�}tjtj|�|�tj|j�|�tdddddg�}tddgdddgd�}tjtj|�|�tj|j�|�dS)Nrrr)r�r!)rr$r�rr�)r0rr3r4r4r5r�9	szTestMode.test_categoricalcCs�tdddg�}tdddgtjd�}tjtj|�|�tdddg�}tdgtd�}tjtj|�|�tdddddg�}tddgtjd�}tjtj|�|�tddgdd�}tddd	d
ddgdd�}tjtj|�|�dS)Nrrr!)rrz2 minz1 dayztimedelta64[ns]z-1 dayz-1 day 2 min)	rrr&r-r$r�rr�r()r0r"r3r4r4r5�
test_indexI	szTestMode.test_indexN)
r�r�r�r�r�r�r�r�r�r�r�r�r�r4r4r4r5r��s	r�)Ir�	itertoolsrr�Znumpyr&Znumpy.randomrr]Zpandas._libsrr�rrGrrIZpandas.compat.numpyrZpandas.util._test_decorators�utilZ_test_decoratorsr�Zpandas.core.dtypes.commonr	r
rrr
Zpandas.core.dtypes.dtypesrr�ZpandasrBrrrrrrrrZpandas._testingZ_testingr$Zpandas.core.algorithms�coreZ
algorithmsZpandas.core.arraysrZpandas.core.common�commonrRrr�r�r�rr)r@rHrIrwr{r|r�r�r�r�r�r�r�r�r�r4r4r4r5�<module>s`(

RPW\UI52!4