HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/numpy/lib/tests/__pycache__/test_function_base.cpython-310.pyc
o

6��a��@sddlZddlZddlZddlZddlmZddlZddlZddlZddl	m
Z
ddlmZ
ddlZddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZddlmm Z!ddl"m#Z#ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDdd	�ZEd
d�ZFGdd
�d
�ZGGdd�d�ZHGdd�d�ZIGdd�d�ZJGdd�d�ZKGdd�d�ZLGdd�d�ZMGdd�d�ZNGdd�d�ZOGdd�d�ZPGd d!�d!�ZQGd"d#�d#�ZRGd$d%�d%�ZSGd&d'�d'�ZTGd(d)�d)�ZUGd*d+�d+�ZVGd,d-�d-�ZWGd.d/�d/�ZXGd0d1�d1�ZYGd2d3�d3�ZZdpd5d6�Z[dqd8d9�Z\Gd:d;�d;�Z]Gd<d=�d=�Z^Gd>d?�d?�Z_Gd@dA�dA�Z`GdBdC�dC�ZaGdDdE�dE�ZbGdFdG�dG�ZcGdHdI�dI�ZdGdJdK�dK�ZeGdLdM�dM�ZfGdNdO�dO�ZgGdPdQ�dQ�ZhGdRdS�dS�ZiGdTdU�dU�ZjGdVdW�dW�ZkGdXdY�dY�ZlGdZd[�d[�ZmGd\d]�d]�Znd^d_�ZoGd`da�da�ZpGdbdc�dc�ZqGddde�de�ZrGdfdg�dg�ZsGdhdi�di�ZtGdjdk�dk�ZuGdldm�dm�ZvGdndo�do�ZwdS)r�N��Fraction)�arrays)�ma)�assert_�assert_equal�assert_array_equal�assert_almost_equal�assert_array_almost_equal�
assert_raises�assert_allclose�IS_PYPY�assert_warns�assert_raises_regex�suppress_warnings�HAS_REFCOUNT)�rand) �add_newdoc_ufunc�angle�average�bartlett�blackman�corrcoef�cov�delete�diff�digitize�extract�flipud�gradient�hamming�hanning�i0�insert�interp�kaiser�meshgrid�msort�	piecewise�place�rot90�select�setxor1d�sinc�trapz�
trim_zeros�unwrap�unique�	vectorizecCst�|�}tj�||�}|S�N)�np�arange�add�outer)�n�data�r:�D/usr/lib/python3/dist-packages/numpy/lib/tests/test_function_base.py�get_mats
r<cCs(t�t�||�jtj�}||_||_|S)za
    Like real + 1j * imag, but behaves as expected when imag contains non-finite
    values
    )r4�zeros�	broadcast�shape�complex_�real�imag)rArB�retr:r:r;�
_make_complex$srDc@�$eZdZdd�Zdd�Zdd�ZdS)�	TestRot90cCs�tttt�d��tttt�d�dd�tttt�d�dd�tttt�d�dd�tttt�d�dd�gd�gd	�g}d
dgddgd
dgg}gd�gd�g}dd
gddgdd
gg}gd�gd	�g}tddd�D]}tt||d�|�qitddd�D]}tt||d�|�q{tddd�D]}tt||d�|�q�td
dd�D]}tt||d�|�q�ttt|dd�dd�|�tt|ddd�t|ddd��dS)N���rIrI�r�rI��axes�rIrI�rrI�rKrK)���rK��rG�rIrTrKrrS�rTrGrS�rIrKr����
)�krQ����rrK�rKr�rYrM)r�
ValueErrorr*r4�ones�ranger)�self�a�b1�b2�b3�b4rYr:r:r;�
test_basic0s@�����"zTestRot90.test_basiccCsRt�d�}tt|�jd�tt|dd�t|dd��tt|dd�t|dd��dS)N)�2�(rS)rirhrSrOrL�rrZ�rKrI�rQrZ)r4r_rr*r?�rarbr:r:r;�	test_axesPs
zTestRot90.test_axescCs�t�d��d�}ddgddggddgd	d
ggg}ddgddggd
dgd	dggg}d	dgddggd
dgddggg}d	d
gddggddgddggg}tt|dd�|�tt|d
d�|�tt|dd�|�tdd
�D]}tt||dd�t||ddd��qhdS)N�rHrIrS��rrKrGrTr[rLr\rk)rIrr])r4r5�reshaperr*r`)rarb�
a_rot90_01�
a_rot90_12�
a_rot90_20�
a_rot90_10rYr:r:r;�test_rotation_axesVsJ��������������zTestRot90.test_rotation_axesN)�__name__�
__module__�__qualname__rgrnrwr:r:r:r;rF/s rFc@�TeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestFlipcCslttjtjt�d�dd�ttjtjt�d�dd�ttjtjt�d�dd�ttjtjt�d�dd�dS)NrGrK��axis�rGrGrIrW�rrS)rr4�	AxisError�flipr_�rar:r:r;rnuszTestFlip.test_axescCsftd�}|dd�ddd�f}tt�|d�|�gd�gd�g}gd�gd�g}tt�|d�|�dS)NrGrZrKrJrRrVrU�r<rr4r��rarb�br:r:r;�
test_basic_lr{���zTestFlip.test_basic_lrcCsftd�}|ddd�dd�f}tt�|d�|�gd�gd�g}gd�gd�g}tt�|d�|�dS)NrGrZrrJrRr�r�r:r:r;�
test_basic_ud�r�zTestFlip.test_basic_udcCsbt�ddgddggddgddggg�}t�ddgddggddgddggg�}tt�|d�|�dS�	NrrKrIrSrGrTrprq�r4�arrayrr�r�r:r:r;�test_3d_swap_axis0��
���
���zTestFlip.test_3d_swap_axis0cCsbt�ddgddggddgddggg�}t�ddgddggddgddggg�}tt�|d�|�dSr�r�r�r:r:r;�test_3d_swap_axis1�r�zTestFlip.test_3d_swap_axis1cCsbt�ddgddggddgddggg�}t�ddgddggddgddggg�}tt�|d�|�dSr�r�r�r:r:r;�test_3d_swap_axis2�r�zTestFlip.test_3d_swap_axis2c	CsRt�d��dddd�}t|j�D]}tt�||�t�|�d|���|d��qdS)N�xrIrSrGrTr)	r4r5rrr`�ndimrr�r�swapaxes)rarb�ir:r:r;�test_4d�s��zTestFlip.test_4dcCs@t�gd�gd�g�}t�gd�gd�g�}tt�|�|�dS)N�rKrIrS�rGrTrp)rprTrG�rSrIrKr�r�r:r:r;�test_default_axis�s
�
�zTestFlip.test_default_axiscCs�t�ddgddggddgddggg�}ttj|d	d
�|�t�ddgddggddgddggg�}ttj|dd
�|�t�ddgddggddgddggg�}ttj|dd
�|�dS)
NrrKrIrSrGrTrprqr:r}rOrkr��rarbr��cr:r:r;�test_multiple_axes�s0
���
���
���zTestFlip.test_multiple_axesN)rxryrzrnr�r�r�r�r�r�r�r�r:r:r:r;r|ss




r|c@�eZdZdd�Zdd�ZdS)�TestAnycCsHgd�}gd�}gd�}tt�|��tt�|��tt�|��dS)N�rrrKr�rrrr)rKrrKr)rr4�any�ra�y1�y2�y3r:r:r;rg�szTestAny.test_basiccCsXgd�gd�gd�g}tt�|��ttj|dd�gd��ttj|dd�gd��dS)N�rrr�rrKr�rKrKrrr}rK�rrKrK)rr4r�r�sometrue�rar�r:r:r;�test_nd�szTestAny.test_ndN�rxryrzrgr�r:r:r:r;r���r�c@r�)�TestAllcCs`gd�}gd�}gd�}tt�|��tt�|��tt�|��tt�t�|���dS)N)rrKrKrr��rKrKrKrK)rr4�allr�r�r:r:r;rg�szTestAll.test_basiccCsZgd�gd�gd�g}tt�|��ttj|dd�gd��ttj|dd�gd��dS)N�rrrKr��rKrKrKrr}rK)rr4r�r�alltruer�r:r:r;r��szTestAll.test_ndNr�r:r:r:r;r��s	r�c@rE)�TestCopycCsRt�ddgddgg�}t�|�}t||�d|d<t|dd�t|dd�dS)NrKrIrSrG�
)rr)r4r��copyrr)rarb�a_copyr:r:r;rg�s

zTestCopy.test_basiccCs�t�ddgddgg�}t|jj�t|jj�tjddgddggdd�}t|jj�t|jj�t�|�}t|jj�t|jj�t�|�}t|jj�t|jj�dS)NrKrIrSrG�F��order)r4r�r�flags�c_contiguous�f_contiguousr�)rarb�a_fortr��a_fort_copyr:r:r;�
test_orders

zTestCopy.test_ordercCsVt�d�}tt�tj|dd���tt�tj|dd���tt�t�|���dS)NrTF)�subokT)rr_r�
isMaskedArrayr4r�)ra�mxr:r:r;�
test_suboks
zTestCopy.test_subokN)rxryrzrgr�r�r:r:r:r;r��sr�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestAveragecCs�t�gd��}tt|dd�dk�t�gd��}tt|dd�dk�gd�}tt|dd�dk�t�d�}d|d	<d
|d<t|�d�t|d��t|�d�t|d��td
d
�}t|�d�t|d��t|�d�t|d��dS)Nr�rr}�@)��?r��@)�r�r�r�rr[rIr\rKrT)r4r�rrr_r	�meanr)rar�r�r��y4�y5r:r:r;rg"s

zTestAverage.test_basiccCsHt�d�}t�d�}t||d�}t�d�d��dt�d���}t||�t�gd�gd�g�}ddg}t||dd	�}t�gd
��}t||�gd�}t||dd	�}t�dd
g�}t||�gd�gd�g}t�dd
g�}tt||dd	�|�tt||d�d�td��	tj
�}	td��	tj�}
ttj|	|
d�j
t�|	|
�k�dS)Nr���weightsrIr�r�r�rKr)r�r~)r��@�@r�r��@)rrrIr�rT)r4r5r�sumr	r�rrr�astype�float32�float64r�dtype�result_type)ra�y�w�actual�desiredr��w0�w1�w2r��w3r:r:r;�test_weights4s*

$


$zTestAverage.test_weightscCst�gd�gd�g�}t|dd�\}}t|d�t|ddd�\}}t|t�gd���t|ddd�\}}t|t�d	d	g��dd
g}t||ddd�\}}t|t�gd���gd�}t||ddd�\}}t|t�ddg��gd
�gd�g}t||ddd�\}}t|t�ddg��dS)Nr�r�T)�returnedr�r)r�r�r�rKr�rI)r�r~r�)r�r�r�r�r�)r4r�rrr)rar��avg�sclr�r�r�r:r:r;�
test_returnedTs 
zTestAverage.test_returnedcCszGdd�dtj�}t�ddgddgg��|�}t�ddgddgg��|�}ttt�|��|�tttj||d��|�dS)Nc@�eZdZdS)z-TestAverage.test_subclasses.<locals>.subclassN�rxryrzr:r:r:r;�subclasso�r�rKrIrSrGr�)r4�ndarrayr��viewr�typer)rar�rbr�r:r:r;�test_subclassesns
zTestAverage.test_subclassescCslgd�}|D]-\}}}tjddgddgg|d�}tjddgddgg|d�}ttj||d�jt�|��qdS)N))�i4r��f8)r��f4r�)r�r�r�)r�r�r�)r�r�r�rKrIrSrG�r�r�)r4r�rrr�)ra�typs�at�wt�rtrbr�r:r:r;�test_upcastingws�zTestAverage.test_upcastingcCsXt�dd�td�D��}t�dd�td�D��}||��}t|�d�t||d��dS)NcSsg|]}t�|��qSr:��decimal�Decimal)�.0�xr:r:r;�
<listcomp>��z1TestAverage.test_object_dtype.<locals>.<listcomp>r�cSsg|]}t�d��qS�rKr�)r��_r:r:r;r��r�rr�)r4r�r`r�r	r�r)rarbr�r:r:r;�test_object_dtypeszTestAverage.test_object_dtypeN)	rxryrzrgr�r�r�r�rr:r:r:r;r� s 	r�c@s�eZdZe�gd��e�gd��e�gd��gZe�gd��e�gd��e�gd��gZddd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�
TestSelectr�r��rqro�	)FFF�FTF�FFTrcs<g}tt|��D]�|�fdd�t||�D�p|g7}q|S)Ncs g|]\}}|�r|��qSr:r:)r��V�C��mr:r;r��s z&TestSelect._select.<locals>.<listcomp>)r`�len�zip)ra�cond�values�default�outputr:rr;�_select�s$zTestSelect._selectcCsL|j}|j}tt||dd�|j||dd��tt|�d�tt|�d�dS)N��rrS)�choices�
conditionsrr+rrr
�rarrr:r:r;rg�s�zTestSelect.test_basiccCsdt�d�t�gd��g}dt�d��dd�g}tt||�t�d��ttdgdgdgd	�jd
�dS)NTrrK�rGrS�rGrSrrr�)	r4r�r5rrrr+r_rr?�rarrr:r:r;�test_broadcasting�s zTestSelect.test_broadcastingcCs�tt|j|jd�jtj�dd�|jD�}tt|j|�jtj�t�dddtj	ddg�}t�
|�}tt|g|g�d	d	d	tj	d	d	g�dS)
N��?cSsg|]}|�tj��qSr:)r�r4�int8)r��choicer:r:r;r���z0TestSelect.test_return_dtype.<locals>.<listcomp>rKrIrSrTrqr)rr+rrr�r4r@rr��nan�isnan)rar�dr	r:r:r;�test_return_dtype�s�
&zTestSelect.test_return_dtypecCs"tttggd�tttgg�dS)N�@)rr^r+r�r:r:r;�test_deprecated_empty�sz TestSelect.test_deprecated_emptycCsj|j}|jdd�}|d�tj�|d<ttt||�|d�tj�|d<ttt||�ttt||�dS�Nr)	rrr�r4�int_r�	TypeErrorr+�uint8rr:r:r;�test_non_bool_deprecation�sz$TestSelect.test_non_bool_deprecationcCs2t�dg�gd}t�dg�gd}t||�dS)NF�drK)r4r�r+rr:r:r;�test_many_arguments�szTestSelect.test_many_argumentsN�r)rxryrzr4r�rrrrgrr!r#r(r*r:r:r:r;r�s ��
		rc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�
TestInsertcCsvgd�}tt|dd�gd��tt|dd�gd��tt|gd�gd��gd��tt|dgd��gd��tt|gd	�d
�gd��tt|tddd�d
�gd
��tt|gd�gd��gd��tjddgtjd�}tt|d|d�gd��tt|gg�|�tjdd��*}t�ddt	�tt|t�dgd�d
�gd��t
|djt	u�Wd�dS1s�wYdS)Nr�rrK)rKrKrIrSrS)rKrIrSrKr�)rKrKrIrSrIrS)rKrZrSr)rKrrIrrSrrZ)rrKrrIrrS�rZrKrSr)rKrorIrqrSrr�)r�r�r�T��record�always�rG)rKrrrrrIrS)rr#�slicer4r�r��warnings�catch_warnings�filterwarnings�
FutureWarningr�category)rarbr�r�r:r:r;rg�s$�"�zTestInsert.test_basicc
Cs~gd�g}gd�gd�g}tt|ddg�gd��tt|dgd�dd�|�tt|dddd�|�tt|dddd�gd�g�t�ddgddgd	d	gg�}t�dd
��d	��d	d	�}tj|dd�dd�ft�dd
��d	��d	d	�j|dd�dd�ffdd�}tt|dgdgdgd	ggdd�|�tt|dggd�dd�|�tt|dgd�dd�|�tt|ddgdgd	ggdd�|�t�d
��dd�}tt|dd�dd�fd|dd�dfdd�|�tt|dd�dd�fd|ddd�fdd�|�t�d��d
�}tt|d|dd�dd�d	fdd�t|d|dd�dd�d	fdd��tt|d|dd�ddd�fdd�t|d|dd�ddd�fdd��t	tj
t|d|dd�ddd�fd	d�t	tj
t|d|dd�ddd�fdd�t�d��d
�}tt|d|dd�dd�d	fdd�t|d|dd�dd�d	fdd��tt|d|dd�ddd�fdd�t|d|dd�ddd�fdd��dS)Nr�rHrrKr�r}rI)rKrKrIrKrSrGr���rIrSrGrZrQ���)rr#r4r�r5�repeatrr�concatenate�Trr�)rarb�rr�r�r:r:r;�
test_multidim�sN
�,��$"22" �" �((" �" �zTestInsert.test_multidimcCs�t�d�}t�tj��t|gddd�Wd�n1swYt�t��t|gddd�Wd�dS1s<wYdS)NrKrIrr}�nonsense)r4r��pytest�raisesr�r#r&rmr:r:r;�test_0ds
�"�zTestInsert.test_0dc	Cs�Gdd�dtj�}t�d��|�}ttt�|ddg�|��ttt�|gg�|��ttt�|ddgddg�|��ttt�|tdd�ddg�|��ttt�|tddd�g�|��t�d��|�}ttt�|ddg�|��dS)	Nc@r�)z*TestInsert.test_subclass.<locals>.SubClassNr�r:r:r:r;�SubClassr�rDr�rrKrIrQrZ)	r4r�r5r�r�
isinstancer#r2r��rarDrbr:r:r;�
test_subclass
s " zTestInsert.test_subclasscCs<t�gd��}t�gd�|gd��t|t�gd���dS)Nr�rJrR)r4r�r#r�rar�r:r:r;�test_index_array_copiedsz"TestInsert.test_index_array_copiedcCs�tjgd�ddgd�}d}t�|d|�}t|dtj||jd��dgd}t�|ddg|�}t|ddgtj||jd��dS)	N))rKrb)rIr�)rSr�)�foor�)�bar�a1r�)rGr rrIrS)r4r�r#rr�)rarb�valr�r:r:r;�test_structured_arrays
�
"z TestInsert.test_structured_arraycCs�t�t��t�gd�t�ddg�ddg�Wd�n1s wYt�t��t�gd�tjgtd�g�Wd�dS1sDwYdS)NrJr�r�r��r�)rArB�
IndexErrorr4r#r��floatr�r:r:r;�test_index_floats&s"�"�zTestInsert.test_index_floatsN)
rxryrzrgr?rCrGrIrNrRr:r:r:r;r,�s*

r,c@�eZdZdd�ZdS)�TestAmaxcC�bgd�}tt�|�d�gd�gd�gd�g}ttj|dd�gd��ttj|d	d�gd
��dS)N�rSrGrTr�rW���r��$@�rSr��"@�rGrXr��ror�r�rr})� @rXrZrK)rZrXr])rr4�amaxr�r:r:r;rg/��zTestAmax.test_basicN�rxryrzrgr:r:r:r;rT-�rTc@rS)�TestAmincCrU)NrVg�rYr[r\rr})r�r�r�rK)r�r�r�)rr4�aminr�r:r:r;rg;r_zTestAmin.test_basicNr`r:r:r:r;rb9rarbc@rS)�TestPtpcCs�t�gd��}t|jdd�d�t�gd�gd�gd�g�}t|jdd�gd��t|jd	d�gd
��t|jddd�gd�g�t|jd
dd�dgg�dS)NrVrr}g.@rYr[r\)r��@rerZ)r�r�r�T�r~�keepdimsr[r])r4r�r�ptpr�r:r:r;rgGs
�zTestPtp.test_basicNr`r:r:r:r;rdErardc@rS)�
TestCumsumc
Cs�gd�}gd�gd�gd�g}tjtjtjtjtjtjtjtjtj	tj
f
D]R}t�||�}t�||�}t�gd�|�}ttj
|dd�|�t�gd�gd�gd	�g|�}ttj
|dd�|�t�gd
�gd�gd�g|�}ttj
|d
d�|�q%dS)N�rKrIr��rprTrG�rKrIrSrG�rTrprqr�r�rSrGrT)rKrSrXr8��#�'rr})rpror�rX)�rk��)rKrSrpr�)rTrkrt�)r�rX��rK)r4rr'�int16�uint16�int32�uint32r�r��	complex64�
complex128r�r�cumsum)ra�ba�ba2�ctyperb�a2�tgtr:r:r;rgVs&����zTestCumsum.test_basicNr`r:r:r:r;riTraric@rS)�TestProdcCs�gd�}gd�gd�gd�g}tjtjtjtjtjtjtjtjfD]I}t�	||�}t�	||�}|dvrCt
ttj|�t
ttj|d�q!t
|jdd�d	�t|jdd�t�	gd
�|��t|jdd�t�	gd�|��q!dS)
Nrjrlrmrn��1r�rKrr}� g�rh�$�T�rZ)r8�b�X)r4rxryrzr{r�r�r|r}r�r�ArithmeticError�prodrr�rarr�r�rbr�r:r:r;rgms$����zTestProd.test_basicNr`r:r:r:r;r�krar�c@rS)�TestCumprodc	Csgd�}gd�gd�gd�g}tjtjtjtjtjtjtjtjfD]g}t�	||�}t�	||�}|dvrJt
ttj|�t
ttj|d�t
ttj|�q!t
tj|dd�t�	gd	�|��t
tj|d
d�t�	gd�gd�gd�g|��t
tj|dd�t�	gd
�gd�gd�g|��q!dS)Nrjrlrmrnr�rKrZr})rKrIrO��i(i�r�r)rTr�r�r�)rKrIrpr8)rTro��r�)r�ror�r�)r4rxryrzr{r�r�r|r}r�rr��cumprodrr�r:r:r;rg�sB�
��
���
����zTestCumprod.test_basicNr`r:r:r:r;r�rar�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestDiffcCs�gd�}t�gd��}t�gd��}t�ddg�}tt|�|�tt|dd�|�tt|dd�|�gd	�}t�gd
��}tt|�|�gd�}t�gd��}t�d
d
g�}tt|�|�tt|dd�|�dS)N)rKrGrprqr)rSrIrKrT)rZrZrGrrTrI�r8rS)皙�����?皙����@r�g������ɿ皙������)r�g�������?g������	�皙�����?)TTFFrT)r4r�rrr	)rar��out�out2�out3r:r:r;rg�szTestDiff.test_basiccCs�t�d�}d|dd�ddd�dd�f<t�d�}d|dd�ddd�dd�f<tt|�t�d��tt|dd�t�d��tt|dd�t�d	��tt|dd�|�tt|d
d�|�ttjt|dd�ttjt|dd�t�d
tj�}tt	t|�dS)N)r�rOrorKrI)r��rorZ)r�rO�r}r)rrOrorQrSr:g��q��?)
r4r=r_rrrr�r�r�r^)rar��expr:r:r;�	test_axis�s

zTestDiff.test_axiscCs*dtddd�}|dd�dd�dd�f|dd�dd�dd�f}|dd�dd�dd�f|dd�dd�dd�f}|dd�dd�dd�f|dd�dd�dd�f}|dd�dd�dd�f|dd�dd�dd�f}tt|�|�tt|dd�|�tt|dd	�|�tt|ddd
�|�dS)NrOr�rorKrZrIr�rr})r8r~)rrr)rar��out1r�r��out4r:r:r;r��s4444zTestDiff.test_ndcs�ttd���ttt�dd��fdd�tdd�D�}ddgdgggg}tt�dd��u�tt||�dd	�D])\}\}}tt|�t	j
u�t||�t|j
t	j�tt|�tdt��|��q6dS)
NrSrZr�csg|]}t�|d��qS)r�)r)r�r8�r�r:r;r��rz#TestDiff.test_n.<locals>.<listcomp>rKrTr��start)�listr`rr^rr�	enumeraterr�r4r�rrr�r%r
�max)rar�expectedr8r�r:r�r;�test_n�s
�zTestDiff.test_ncCs�tjddtjd�}tjddgdd�tjdgdd�g}|�tjgdd�gd�t|dd�D]\}}t||d	�}t||�t|j	|j	�q-dS)
Nz
1066-10-13z
1066-10-16r�rK�timedelta64[D]rrSr�r�)
r4r5�
datetime64r��extendr�rrrr�)rar�r�r8r�r�r:r:r;�
test_times�s�
�zTestDiff.test_timescCs�tjddgddgddgddgd	d
ggddgddgddgddgddggd
�}t|�}t|jdgdgdgdgdgg�t|jdgdgdgdgdgg�tt|�t|�u�t|dd�}t|jgggggg�t|jgggggg�tt|�t|�u�dS)NrKrIrSrGrTrprqrorr�FT��maskr�)rr�rrr9r�rr�)rar�r�r�r:r:r;rG�s$�� �zTestDiff.test_subclasscCsNt�d�d}tt|dd�t�d��tt|dgd�t�d��tt�tj|dd��|�tt|ddgd�t�d��t�d��dd�}tj|ddd	�}ddgddgg}t||�tj|ddgdggd	�}t||�tj|ddd	�}ddgddgg}t||�tj|dddggd	�}t||�tttj|t�	d
�d�ttj
t|ddd�dS)
NrTrKr)�prependrZrprGrI)r~r��rSrSrS)r�r~)r4r5rrr_r~rrrr^r=r��rar��resultr�r:r:r;�test_prepend�s$



zTestDiff.test_prependcCs<t�d�}t|dd�}gd�}t||�t|dgd�}t||�t|ddgd�}|dg}t||�t�d��dd�}tj|ddd�}dd	gdd
gg}t||�tj|ddgdggd�}t||�tj|ddd�}ddgdd
gg}t||�tj|dddggd�}t||�tttj|t�d�d�ttjt|dd
d�dS)NrTr)�append)rKrKrKrKr:rIrGrK)r~r�rZrWrQr�rS)r�r~)	r4r5rrrrrr^r=r�r�r:r:r;�test_append	s,








zTestDiff.test_appendN)rxryrzrgr�r�r�r�rGr�r�r:r:r:r;r��sr�c@r{)�
TestDeletecCs,t�d�|_t�d��d��ddd�|_dS)NrTrIrK)r4r5rbr;rr�nd_ar�r:r:r;�setup(s zTestDelete.setupcCs�t|j|�}t|j|dd�}d|}tt||j|f�|j|d�t|ddd�df|jd|df�}t||jddd�df|d�dS)NrKr}zDelete failed for obj: %r)�err_msgr)rrbr�rr,)ra�indices�a_del�nd_a_del�msg�xorr:r:r;�_check_inverse_of_slicing,s�$"z$TestDelete._check_inverse_of_slicingcCsHgd�}gd�}|D]}|D]}|D]
}t|||�}|�|�qqq
dS)N)���rQrrKrIrGrT)rWrZrKrS)r2r�)ra�lims�stepsr��stop�step�sr:r:r;�test_slices5s���zTestDelete.test_slicescCsV|�t�ddgddgg��t�t��t|jdg�Wd�n1s%wYt�t��t|jdg�Wd�n1sAwY|�gd��|�gd��t�t��t|jd�Wd�n1sjwYt�t��t|jd	�Wd�n1s�wYt�t��t|jd	gd
�Wd�dS1s�wYdS)NrrKrIr)i����)rrZrIrI)TFFTFTFrG)	r�r4r�rArBrPrrbr^r�r:r:r;�
test_fancy>s$����"�zTestDelete.test_fancycCs|�d�|�d�dS)Nrr:)r�r�r:r:r;�test_singleSs
zTestDelete.test_singlecCs�t�d�}t�tj��t|gdd�Wd�n1swYt�t��t|gdd�Wd�dS1s:wYdS)NrKrr}r@)r4r�rArBr�rr&rmr:r:r;rCWs
�"�zTestDelete.test_0dcCs�Gdd�dtj�}|j�|�}ttt|d�|��ttt|g�|��ttt|ddg�|��ttt|tdd��|��ttt|tdd��|��dS)Nc@r�)z*TestDelete.test_subclass.<locals>.SubClassNr�r:r:r:r;rD_r�rDrrKrIrQ)r4r�rbr�rrErr2rFr:r:r;rG^szTestDelete.test_subclasscCsRt�d�jdddd�}t|tdd�dd�}t|jj|jj�t|jj|jj�dS)	Nr�rIrTr�r��<rKr})	r4r5rrrr2rr�r�r�)rarYr	r:r:r;�test_array_order_preservehsz$TestDelete.test_array_order_preservecCs�t�t��t�gd�t�ddg��Wd�n1swYt�t��t�gd�tjgtd��Wd�dS1s@wYdS)NrJr�r�r�)rArBrPr4rr�rQr�r:r:r;rRrs�"�zTestDelete.test_index_floatsN)rxryrzr�r�r�r�r�rCrGr�rRr:r:r:r;r�&s		

r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
ej�dejejejejg�dd��Zej�dejejejejg�dd��Zej�dejejejejg�dd��Zej�dejejejejg�dd ��Zd!S)"�TestGradientcCsfddgddgg}t�|�}t�ddgddgg�t�ddgddgg�g}tt|�|�tt|�|�dS)NrKrSrGr�r�r�r�)r4r�rr�ra�vr��dxr:r:r;rg{s
�zTestGradient.test_basicc	Cs�t�t�d��}gd�}t�d��dd�}tt�d�d�tt�d�t�d��tt�d�|�t|d�t|t�d��t|||�t||d�t||dd�ttd	t|tj	|gdd
d�d�dS)NrT)r�r�r�rZ�&@�r���?rIrKr}z.*scalars or 1drZ)
r4r~r_r5rrrr�rr^�stack)rar��	dx_uneven�f_2dr:r:r;�	test_args�s
�zTestGradient.test_argscCs�t�d��dd�}t�t�d��}ttt||t�d��ttt|dt�d��ttt|t�d�t�d��ttt||�ttt||dd�ttt||||�ttt|ddd�ttt|||dd�ttt|dddd�dS)Nr�rTrIrKr[r})	r4r5rrr~r_rr^rr&)rar�r�r:r:r;�test_badargs�szTestGradient.test_badargscCsJtjgd�dd�}tjgd�dd�}tt|�|�t|jt�d�k�dS)N)z
1910-08-16z
1910-08-11z
1910-08-10z
1910-08-12z
1910-10-12z
1910-12-12z
1912-12-12z
datetime64[D]r�)rWrWr��=i�i�r��r4r�rrrr��rar�r�r:r:r;�test_datetime64�s��zTestGradient.test_datetime64cCs�tjjddgddggddgddggd�}t|�d}tt|�t|��t|j|ju�tj�d�}tjj	|d<tj|dd	�t
|jgd
��dS)NrKrSrGFr�rrTrI��
edge_order)FFTFF)r4rr�rrr�r�_maskr5�maskedrr�)rar�r��x2r:r:r;�test_masked�s�zTestGradient.test_maskedcCst�ddd�}|d|d}d|dd|dd|}d|dd|d}t�tj||dd	�|d�}tt�|d
k�dk�tj�d�t�tj�d��}d|dd|dd|}d|dd|d}t�tj||dd	�|d�}tt�|d
k�dk�dS)NrrKr�rIrSrGrpror�g���Q��?T)	r4�linspace�absrrr��random�seed�sort)rar�r�r��
analytical�	num_errorr:r:r;�test_second_order_accurate�s  z'TestGradient.test_second_order_accuratec
Cs�t�gd��}t�|d�|�dd�}t�gd��}t�d�}t�gd�d�}t�gd�d�}t�gd	�d�}t�gd
�d�}d|fd|ffD]r\}}	t|dd
|d�}
t|||d
|d�}t|||d|d�}t|
|�t||�t|
d|	j�t|
d|	�t|dd|d�}
t||d|d�}t	|
j
|j
k�t||	j�t|dd|d�}
t||d|d�}t	|
j
|j
k�t||	�qGd|fd|ffD]E\}}	t|||d
|d�}
t|||d|d�}t|
|�t|
d|	j�t|
d|	�t||d|d�}
t|
|	j�t||d|d�}
t|
|	�q�t|||d
dd�}
t|||ddd�}t|
d|d�t|
d|d�t|
d|j�t|
d|�t|||d
dd�}
t|||ddd�}t|
d|d�t|
d|d�t|
d|j�t|
d|�dS)N)rr�r�r�r�r�)rprKrZrK)r���?r�r�r�rer�)r�r�r�r�r�r�)�@r�r�r�r���)r�r��333333�?r���?r�)r�r�r�r�r�gпrIr�r[)r~r�rr\)r4r��tilerrr5rrr	r=rr?)
ra�f�x_uneven�x_even�
fdx_even_ord1�
fdx_even_ord2�fdx_uneven_ord1�fdx_uneven_ord2r��exp_res�res1�res2�res3r:r:r;�test_spacing�sl
��

��
zTestGradient.test_spacingcCs@ddgddgg}t�|�}t�ddgddgg�t�ddgddgg�g}tt|dd	�|d�tt|dd	�|d�tt|d
d	�|d�tt|dd	�|d|dg�tt|dd	�|d|dg�tt|dd	�t|��tt|dddd	�|dd|ddg�ttt|dddd	�ttjt|dd	�ttjt|d
d	�dS)NrKrSrGr�r�r�r�rr}rZr\rIrW)r4r�rrr	rr&r�r�r:r:r;�test_specific_axess"
��zTestGradient.test_specific_axescCsJtjgd�dd�}tjgd�dd�}tt|�|�t|jt�d�k�dS)N)rWrWr�rr�iA�,r�r�)rIrqrqr���wi��r�r�r:r:r;�test_timedelta645s��zTestGradient.test_timedelta64cCsDtjtjtjfD]}tjgd�|d�}tt|�jt�|�j�qdS)Nr�r�)	r4�float16r�r�r�rrr�r)ra�dtr�r:r:r;�test_inexact_dtypes@s�z TestGradient.test_inexact_dtypescCs�tt�d�dd�tt�d�dd�tttt�d�dd�tttt�d�dd�tttt�d�dd�tttt�d�dd�tttt�d�dd�dS)NrIrKr�rSr)rr4r5rr^r�r:r:r;�test_valuesFszTestGradient.test_values�f_dtypecCs2tjgd�|d�}t|�}t|dgt|��dS)N)rTrGrSrIrKr�rZ�r4r�rrr
)rar	r��gr:r:r;�test_f_decreasing_unsigned_intRsz+TestGradient.test_f_decreasing_unsigned_intcCsRt�|�j}t�ddg�}tjd|g|d�}t||�}t||ddgd�dS)NrKrSrZr�rI)r4�iinfor�r�rr)rar	�maxintr�r��dfdxr:r:r;�test_f_signed_int_big_jumpYs

z'TestGradient.test_f_signed_int_big_jump�x_dtypecCsBtjgd�|d�}t�gd��}t||�}t|dgt|��dS)Nr�r��rrIrGrQr
)rarr�r�rr:r:r;�test_x_decreasing_unsignedbs
z'TestGradient.test_x_decreasing_unsignedcCsXt�|�j}t�|�j}tjd|g|d�}t�|ddg�}t||�}t|ddg�dS)NrZr�rIrr�)r4r
�minr�r�rr)rar�minintrr�r�rr:r:r;�test_x_signed_int_big_jumpjs
z'TestGradient.test_x_signed_int_big_jumpN)rxryrzrgr�r�r�r�r�r�rrrrrA�mark�parametrizer4r'ryr{�uint64rrrxrz�int64rrrr:r:r:r;r�ys8@�
�
�
�r�c@r�)�	TestAnglecCs�dt�d�ddt�d�ddddddd	g}t|�}t�d
�t�d�dtjdtjtjdt�d
�tjt�d
�g}t|d
d�}t�|�dtj}t||d�t||d�dS)N��?@rIr�rrKrZ����?�y�@r�r�rT)�degr�rk)r4�sqrtr�arctan�pir�r
)rar�r��yo�z�zor:r:r;rgws � �zTestAngle.test_basiccCs�tj�ddt�d�ddg�}tjj|d<tj�t�d�dt�d�g�}tjj|d<t|�}tt|�t|��t|j	|j	�t||�dS)NrrKrI��?�?r�rr�)
r4rr�r r�r!rrr�r�)rar�r�r�r:r:r;rG�s zTestAngle.test_subclassN)rxryrzrgrGr:r:r:r;ru�
rc	@s�eZdZe�gd��Ze�e�Ze�e	�Z
e�e�Zdd�Z
dd�Zdd�Zdd	�Zd
d�Zdd
�Zej�de�gd��e�gd��e�gd��g�dd��Zdd�Zdd�ZdS)�
TestTrimZeros)rrrKrrIrSrGrcsd}�fdd�|D�S)N)rbr�r�r c3s�|]}t�|�VqdSr3)�getattr)r��namer�r:r;�	<genexpr>���z'TestTrimZeros.values.<locals>.<genexpr>r:)ra�
attr_namesr:r�r;r
�szTestTrimZeros.valuescCs6tjdd�}|��D]
}t|�}t|||�qdS)NrIrZ�r4�s_r
r/r�ra�slc�arr�resr:r:r;rg�s
�zTestTrimZeros.test_basiccCs:tjdd�}|��D]}t|dd�}t|||�qdS)NrZr���trimr.r0r:r:r;�test_leading_skip��
�zTestTrimZeros.test_leading_skipcCs:tjdd�}|��D]}t|dd�}t|||�qdS)NrIr�r4r.r0r:r:r;�test_trailing_skip�r7z TestTrimZeros.test_trailing_skipcCsZ|��D]&}tj||jd�}t|dd�}t|�dksJ�t|dd�}t|�dks*J�qdS)Nr��Br4rr�)r
r4�
zeros_liker�r/r
)ra�_arrr2r�r�r:r:r;�
test_all_zero�s�zTestTrimZeros.test_all_zerocCs t�d�}t|�}t||�dSr$)r4r=r/r�rar2r3r:r:r;�test_size_zero�s
zTestTrimZeros.test_size_zeror2)rlr)rlr)rlrcCs(tjdd�}t|�}t|||�dS)NrKrI)r4r/r/r)rar2r1r3r:r:r;�
test_overflow�szTestTrimZeros.test_overflowcCs$t�gd��}t|�}t||�dS)N)NrKN)r4r�r/rr=r:r:r;�test_no_trim�szTestTrimZeros.test_no_trimcCs t|j���}t|t�sJ�dSr3)r/rb�tolistrEr�)rar3r:r:r;�test_list_to_list�szTestTrimZeros.test_list_to_listN)rxryrzr4r�rbr�rQr��complexr��objectr r
rgr6r8r<r>rArrr?r@rBr:r:r:r;r(�s*



��
r(c@rE)�
TestExtinscCs.t�gd��}t|dk|�}t|gd��dS)N)rKrSrIrKrIrSrSrK)rSrIrIrSrS)r4r�rrr�r:r:r;rg�szTestExtins.test_basiccs�tttgd�ddgddg�t�gd���t�gd�gd��t�gd	��t�t�d
�g�t�t�dd��t�gd�dd
g�t�gd��tt	d�fdd��t�ddg��t�ddgd�t�ddg�dS)Nr�TFrrK)rKrGrSrIrTrorq)rrKrrKrrKr�rIrGrp)rKrIrSrGrTrprqrqro)rKrrKrrKrrKr)rorIrrGrorprz!Cannot insert from an empty arraycst�gd�g�S)N)rrrrrrKr)r)r:�rbr:r;�<lambda>�sz'TestExtins.test_place.<locals>.<lambda>�12�34�9)
rr&r)r4r�rr=r5rr^r�r:rGr;�
test_place�s
�zTestExtins.test_placecCsHtd�}|dk}|��}t||�}t||d�t|||�t||�dS)Nr�r�r)rr�rr)r)rarbr��acr�r:r:r;�	test_both�s
zTestExtins.test_bothN)rxryrzrgrLrNr:r:r:r;rE�srEr�cCs|t�|�Sr3��math�floor�r�r�r:r:r;�_foo1��rSr�cCs|t�|�|Sr3rO)r�r�r$r:r:r;�_foo2�srUc@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dES)F�
TestVectorizecCs4dd�}t|�}|gd�gd��}t|gd��dS)NcS�||kr||S||Sr3r:�rbr�r:r:r;�addsubtract�z.TestVectorize.test_simple.<locals>.addsubtract�rrSrpr�rKrSrTrq�rKrprKrI�r2r�rarYr�r>r:r:r;�test_simpleszTestVectorize.test_simplecCs0dd�}t|�}|gd�d�}t|gd��dS)NcSrWr3r:rXr:r:r;rYrZz.TestVectorize.test_scalar.<locals>.addsubtractr[rT)rTrorKrGr^r_r:r:r;�test_scalarszTestVectorize.test_scalarcCs0t�ddd�}tdd��}||�}t||�dS)NrWrIi'cS�|Sr3r:r�r:r:r;rH�z*TestVectorize.test_large.<locals>.<lambda>)r4r�r2r)rar�r�r�r:r:r;�
test_largeszTestVectorize.test_largecCsRttj�}t�ddtjtjdtjdtjg�}||�}t�|�}t||�dS)Nrr�r�rI)r2rP�cosr4r�r"r
)rar��args�r1�r2r:r:r;�
test_ufuncs

(
zTestVectorize.test_ufunccCsfddd�}t|�}t�gd��}||�}t�gd��}t||�||d�}t�gd��}t||�dS)	NrKcS�||Sr3r:rXr:r:r;rJ(�z(TestVectorize.test_keywords.<locals>.foor�r9rIrRr��r2r4r�r�rarJr�rfrgrhr:r:r;�
test_keywords&s


zTestVectorize.test_keywordscCs:tttgd�}|t�d�d�}|t�d��}t||�dS�N��otypesr�r��r2rSrQr4r5r�rar�rgrhr:r:r;� test_keywords_with_otypes_order14sz.TestVectorize.test_keywords_with_otypes_order1cCs:tttgd�}|t�d��}|t�d�d�}t||�dSrorrrsr:r:r;� test_keywords_with_otypes_order2>sz.TestVectorize.test_keywords_with_otypes_order2cCsTtttgd�}|t�d��}|t�d�dd�}|t�d��}t||�t||�dS)Nrpr�r��r�rr�rar�rgrh�r3r:r:r;� test_keywords_with_otypes_order3Is
z.TestVectorize.test_keywords_with_otypes_order3cCsdtttgd�}|ddd�}|ddd�}|d�}t|tddd��t|tddd��t|td��dS)Nrp�������$@r))r$rZrv�r2rUrQrrwr:r:r;�+test_keywords_with_otypes_several_kwd_args1Usz9TestVectorize.test_keywords_with_otypes_several_kwd_args1cCsRtttgd�}|dddd�}|ddd�}t|tdddd��t|tddd��dS)	Nrpr)rzrZ)r$r�r�rKrIrSr{rsr:r:r;�+test_keywords_with_otypes_several_kwd_args2bs
z9TestVectorize.test_keywords_with_otypes_several_kwd_args2cCs.ddl}zt|j�WdStyt��wr$)r�r2�	randrange�	Exception�AssertionError)rar�r:r:r;�test_keywords_no_func_codems�z(TestVectorize.test_keywords_no_func_codecCs�ddd�}t|�}t�gd��}||d�}t�gd��}t||�|d|d�}t||�||dd	�}t�gd
��}t||�dS)NrKcSrjr3r:rXr:r:r;rJzrkz5TestVectorize.test_keywords2_ticket_2100.<locals>.foor�rGr9)r�rbrI�r�rRr�rlrmr:r:r;�test_keywords2_ticket_2100ws



z(TestVectorize.test_keywords2_ticket_2100cCsrdd�}tj|ddgd�}ddg}t||ddggd	�d
��t||ddggd	�d��t||ddggd	���dS)NcSs0t|�}|�d�}|r|||�d�}|s|Sr$)r��pop)r��p�_pr3r:r:r;�	mypolyval�s
�z;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyvalr�rK)�excludedrSrprr�)r�r�)r�)r4r2r)rar��vpolyval�ansr:r:r;�test_keywords3_ticket_2100�sz(TestVectorize.test_keywords3_ticket_2100cCs.tdd��}t|ddgddgd�ddg�dS)	Nc[sd}|D]}|||9}q|S�Nr�r:)�kwr3�_kr:r:r;r��sz3TestVectorize.test_keywords4_ticket_2100.<locals>.frKrIrSrGrXror^�rar�r:r:r;�test_keywords4_ticket_2100�s
"z(TestVectorize.test_keywords4_ticket_2100cCs,tdd��}t|ddgddg�ddg�dS)NcW�
t�|�Sr3)r4r�)r�r:r:r;r��s
z3TestVectorize.test_keywords5_ticket_2100.<locals>.frKrIrSrGror^r�r:r:r;�test_keywords5_ticket_2100�s
 z(TestVectorize.test_keywords5_ticket_2100cCs dd�}t|�}t|�d�dS)NcS�dS�NrKr:r:r:r:r;rJ��z5TestVectorize.test_coverage1_ticket_2100.<locals>.foorKr^�rarJr�r:r:r;�test_coverage1_ticket_2100�sz(TestVectorize.test_coverage1_ticket_2100cCs>dd�}t|�}t|j|j�d}t||d�}t|j|�dS)NcSrb)zOriginal documentationr:r�r:r:r;rJ��z3TestVectorize.test_assigning_docstring.<locals>.foozProvided documentation)�doc)r2r�__doc__)rarJr�r�r:r:r;�test_assigning_docstring�sz&TestVectorize.test_assigning_docstringcCs`Gdd�d�}tt|�j�t�d��t�d�d�tt|j�|�t�d��t�d�d�dS)Nc@seZdZdZdd�ZdS)z9TestVectorize.test_UnboundMethod_ticket_1156.<locals>.FoorIcSs
||jSr3r�rmr:r:r;rK�s
z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.barN)rxryrzr�rKr:r:r:r;�Foo�sr�rrI)rr2rKr4r5)rar�r:r:r;�test_UnboundMethod_ticket_1156�s��z,TestVectorize.test_UnboundMethod_ticket_1156cCsltdd��}|t�d��}|t�dd��}tdd��}|t�dd��}|t�d��}t||�t||�dS)NcSrbr3r:r�r:r:r;rH�rcz@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>rSr�cSrbr3r:r�r:r:r;rH�rc)r2r4r5r)ra�f1�res1a�res1b�f2�res2b�res2ar:r:r;� test_execution_order_ticket_1487�s
z.TestVectorize.test_execution_order_ticket_1487cCs$t�dd��}d}t|||��dS)NcSrbr3r:r�r:r:r;rH�rcz7TestVectorize.test_string_ticket_1892.<locals>.<lambda>�d0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r4r2r)rar�r�r:r:r;�test_string_ticket_1892�sz%TestVectorize.test_string_ticket_1892csNdg�t�fdd��}d|_t�d�}t||�||�t�dt|��dS)Nrcs�dd7<|dS)NrrKrIr:r���_callsr:r;r��sz#TestVectorize.test_cache.<locals>.fTrT)r2�cacher4r5rrr
�rar�r�r:r�r;�
test_cache�s
zTestVectorize.test_cachecCs0t�dd��}d|_t�d�}t||�|�dS)NcSrbr3r:r�r:r:r;rH�rcz+TestVectorize.test_otypes.<locals>.<lambda>r�rT)r4r2rqr5rr�r:r:r;�test_otypes�s
zTestVectorize.test_otypescCs2tt�d�dgdgf�tt�d�dgdgf�tt�d�ddgdgf�tt�d�dgdgf�tt�d	�dgddgf�tt�d
�gd�dgf�tt��
t�d
�Wd�n1s_wYtt��
t�d�Wd�n1sxwYtt��t�d�Wd�dS1s�wYdS)Nz(x)->()r�r:z	(x,y)->()rRz(x),(y)->()rvz(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r:)rbr�r�)r )r �ez
(x)(y)->()z	(x),(y)->z
((x))->(x))r�nfb�_parse_gufunc_signaturerr^r�r:r:r;�test_parse_gufunc_signature�s2

�
�

�
�
�
�
�
"�z)TestVectorize.test_parse_gufunc_signaturecCs8dd�}t|dd�}|gd�gd��}t|gd��dS)NcSrWr3r:rXr:r:r;rYrZz8TestVectorize.test_signature_simple.<locals>.addsubtractz	(),()->()��	signaturer[r\r]r^r_r:r:r;�test_signature_simplesz#TestVectorize.test_signature_simplecCs:dd�}t|dd�}|ddgddgg�}t|ddg�dS)	NcSs|��Sr3�r�rGr:r:r;r�rkz4TestVectorize.test_signature_mean_last.<locals>.meanz(n)->()r�rKrSrIrGr^)rar�r�r>r:r:r;�test_signature_mean_last
sz&TestVectorize.test_signature_mean_lastcCsBdd�}t|dd�}|ddgddgg�}t|d	dgd	dgg�dS)
NcSs||��Sr3r�rGr:r:r;�centersz3TestVectorize.test_signature_center.<locals>.center�(n)->(n)r�rKrSrIrGrZr^)rar�r�r>r:r:r;�test_signature_centersz#TestVectorize.test_signature_centercCs^tdd�dd�}|gd��}tt|t�ot|�dk�t|dgd��t|dgd��dS)	NcS�||fSr3r:r�r:r:r;rH�z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>�	()->(),()r�r�rIrrK)r2rrE�tupler
r�rar�r>r:r:r;�test_signature_two_outputss
z(TestVectorize.test_signature_two_outputscCs�ttjdd�}|ddggd��}t|gd�gd�g�|ddggggd��}t|gd�gd�ggg�|ddgddgggd��}t|gd�gd�ggd�gd�gg�|ddggd�gd�g�}t|gd�gd�ggd�gd�gg�dS)	Nz(a),(b)->(a,b)r�rKrIr�rFrr�)r2r4r7rr�r:r:r;�test_signature_outer$s�
�z"TestVectorize.test_signature_outercCsXtdd�dd�}|gd��}t|ddg�|gd�gd�g�}t|ddgdd	gg�dS)
NcS�|dd�S�NrZr:r�r:r:r;rH5�z<TestVectorize.test_signature_computed_size.<locals>.<lambda>z(n)->(m)r�r�rKrIr9rSr^r�r:r:r;�test_signature_computed_size4s
z*TestVectorize.test_signature_computed_sizecCsNddd�}t|ddhd�}t|gd��gd��t|gd�d	d
�gd��dS)NrKcSrjr3r:rXr:r:r;rJ>rkz2TestVectorize.test_signature_excluded.<locals>.foo�()->()r�)r�r�r�r9rr�r�r^r�r:r:r;�test_signature_excluded<s
z%TestVectorize.test_signature_excludedcCsDtdd�ddgd�}|gd��}t|jt�d��t|gd��dS)NcSrbr3r:r�r:r:r;rHFrcz5TestVectorize.test_signature_otypes.<locals>.<lambda>r�r��r�rqr�)r2rr�r4rr�r:r:r;�test_signature_otypesEsz#TestVectorize.test_signature_otypescCs�ttjdd�}ttd��|ddg�Wd�n1swYttd��
|dd�Wd�n1s7wYttd��|ddggd��Wd�n1sUwYttjd	d�}ttd��|dd�Wd�dS1swwYdS)
Nz(n),(n)->(n)r�zwrong number of positionalrKrIzdoes not have enough dimensions�$inconsistent size for core dimensionr�r�)r2�operatorr6rr&r^r�r:r:r;�test_signature_invalid_inputsKs$�����"�z+TestVectorize.test_signature_invalid_inputscCs�tdd�dd�}ttd��|gd��Wd�n1swYtdd�dd�}ttd	��|d
�Wd�n1s?wYtdd�dd�}ttd	��|d
d
g�Wd�dS1scwYdS)NcSr�r�r:r�r:r:r;rH\r�z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>r�r�r�r�cSrbr3r:r�r:r:r;rHarcr�zwrong number of outputsrKcSr�r3r:r�r:r:r;rHer�r�rI)r2rr^r�r:r:r;�test_signature_invalid_outputsZs��
�"�z,TestVectorize.test_signature_invalid_outputscCs^t�dd��}tjddgtd�}ttd��||�Wd�n1s$wYd|_t||�|�tjdd�d	d
�}ttd��||�Wd�n1sPwYtjdd�d	dd�}t||�|�tjd
d�ddd�}t||�|�tjdd�dd
�}t||j�|j�tjdd�ddd�}ttd��
||�Wd�dS1s�wYdS)NcSrbr3r:r�r:r:r;rHkrcz5TestVectorize.test_size_zero_output.<locals>.<lambda>rrTr�rqr�cSrbr3r:r�r:r:r;rHsrcr�r�cSrbr3r:r�r:r:r;rHwrcr�cSrbr3r:r�r:r:r;rHzrcr�cSrbr3r:r�r:r:r;rH}rccSs|gSr3r:r�r:r:r;rH�sz()->(n)znew output dimensions)	r4r2r=�intrr^rqrr=r�r:r:r;�test_size_zero_outputis*
�
�
"�z#TestVectorize.test_size_zero_outputN)%rxryrzr`rardrirnrtruryr|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;rVsF



	rVc@sLeZdZGdd�d�Zejjedd�ej�ddej	fdg�dd	���Z
d
S)�	TestLeaksc@s$eZdZdZdd�Zedd��ZdS)zTestLeaks.ArOcGr�r$r:�rarfr:r:r;�bound�r�zTestLeaks.A.boundcGr�r$r:)rfr:r:r;�unbound�r�zTestLeaks.A.unboundN)rxryrz�itersr��staticmethodr�r:r:r:r;�A�s
r��Python lacks refcounts��reasonz
name, incrr�)r�rc	Cs�ddl}t|j|�}|��zKt�|�}t|jj�D]}|��}t�	t||�dd�|_
|�
t�d��}qd}tt�|�||�td�D]}|�
�qDtt�|�|�W|��dS|��w)NrrKr�rT)�gcr)r��disable�sys�getrefcountr`r�r4�
frompyfuncr�r5r�collect�enable)	rar*�incrr��A_func�refcountr�rbr�r:r:r;�test_frompyfunc_leaks�s

zTestLeaks.test_frompyfunc_leaksN)rxryrzr�rAr�skipifrrr�r�r:r:r:r;r��s
�r�c@szeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
ejjdd�dd��ZdS)�TestDigitizecCs2t�dd�}t�dd�}tt||�t�d��dS)Nr�rTrWrk�r4r5rr�rar��binsr:r:r;�test_forward�szTestDigitize.test_forwardcCs6t�ddd�}t�ddd�}tt||�t�d��dS)NrTr�rZrWrkr�r�r:r:r;�test_reverse�szTestDigitize.test_reversecCs:td�}t�|��|��d�}tt�t||�dk��dS)Nr�r�rr4r�rr�rr�r)rar��binr:r:r;�test_random�szTestDigitize.test_randomcCsFgd�}gd�}gd�}tt||�|�gd�}tt||d�|�dS)N)rKrTrGr�rorkr)rKrTr�)rKrIrKrSrIrSr)rrKrKrIrIrSrT)rr)rar�r��default_answer�right_answerr:r:r;�test_right_basic�szTestDigitize.test_right_basiccCs4t�dd�}t�dd�}tt||d�t�d��dS)Nr�rTrGTrkr�r�r:r:r;�test_right_open�szTestDigitize.test_right_opencCs8t�ddd�}t�ddd�}tt||d�t�d��dS)NrTr�rZrGTrkr�r�r:r:r;�test_right_open_reverse�sz$TestDigitize.test_right_open_reversecCs<td�}t�|��|��d�}tt�t||d�dk��dS)Nr�Tr�r�r:r:r;�test_right_open_random�sz#TestDigitize.test_right_open_randomcCs�gd�}gd�}tt||d�gd��tt||d�gd��gd�}tt||d�gd��tt||d�gd	��gd
�}tt||d�gd��tt||d�gd��gd
�}ttt||�gd�}ttt||�dS)N)rZrrKrIr�F)rrIrSrST)rrrIrSr�)rSrIrr)rSrSrIrr�)rrrGrG)rrrrGr�)rKrKrrK)rrrr^r�r:r:r;�test_monotonic�szTestDigitize.test_monotoniccCs:gd�}gd�}ttt||�||}}ttt||�dS)N)rKrIy@�?r�)rr&rr�r:r:r;�test_casting_error�s

zTestDigitize.test_casting_errorcCshGdd�dtj�}t�d��|�}t�dd��|�}ttt||d�|��ttt||d�|��dS)Nc@r�)z(TestDigitize.test_return_type.<locals>.ANr�r:r:r:r;r��r�r�rTrKrSFT)r4r�r5r�rrEr)rar�rbr�r:r:r;�test_return_type�s
zTestDigitize.test_return_typecCs&d}tt�||d|dg�d�dS�NlrK�rr4rrHr:r:r;�test_large_integers_increasing�s"z+TestDigitize.test_large_integers_increasingz8gh-11022: np.core.multiarray._monoticity loses precisionr�cCs&d}tt�||d|dg�d�dSr�r�rHr:r:r;�test_large_integers_decreasing�s"z+TestDigitize.test_large_integers_decreasingN)rxryrzr�r�r�r�r�r�r�r�r�r�r�rAr�xfailr�r:r:r:r;r��s 	�r�c@r�)�
TestUnwrapcCsHttdddtjg�ddg�tt�tttd�d��tjk��dS)NrKrIr�r))rr0r4r"rr�rrr�r:r:r;r`s (zTestUnwrap.test_simplecCs�ttddgdd�ddg�tt�tttd�ddd��dk��t�gd��}t�|d�}tt|dd�|�t�gd	��}t�|d
�}t|d
d�}t|gd��t|d
dd
�}t|gd	��|j	|j	ksfJ�dS)NrKi���periodrIr���)r�K���r)rrrrri��)rrrrrr��)r��discont)
rr0rr4r�rrr��modr�)ra�
simple_seq�wrap_seq�
uneven_seq�wrap_uneven�
no_discont�
sm_discontr:r:r;�test_period
s&zTestUnwrap.test_periodN)rxryrzr`r
r:r:r:r;r��r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestFilterwindowscC�0td�}t|t|��ttj|dd�dd�dS)Nr�rr}�@rG)r!rrr	r4r��rar�r:r:r;�test_hanning�zTestFilterwindows.test_hanningcCr)Nr�rr}g�(\��@rG)r rrr	r4r�rr:r:r;�test_hamming&rzTestFilterwindows.test_hammingcCr)Nr�rr}g�^)��@rG)rrrr	r4r�rr:r:r;�
test_bartlett-rzTestFilterwindows.test_bartlettcCr)Nr�rr}g=
ףp=@rG)rrrr	r4r�rr:r:r;�
test_blackman4rzTestFilterwindows.test_blackmanN)rxryrzrrrrr:r:r:r;rs
rc@rE)�	TestTrapzcCsHt�ddd�}tt�d|d�t�dtj�dd�}t|dd�dS)	N���r�r�r�rI)r�rKrq)r4r5r.r�r r"r	)rar�r>r:r:r;r`>s*zTestTrapz.test_simplecCs&t�ddd�}t�ddd�}t�ddd�}t�|�|d|d}|dd<|dd<t�|�|d|d}|dd<|dd<t�|�|d|d}|dd<|dd<|dd�ddf|ddd�df|dddd�f}||dd�ddfjdd�}||ddd�dfjdd�}	||dddd�fjdd�}
t||dd�ddfdd	�}t||�t||ddd�dfdd	�}t||	�t||dddd�fdd	�}t||
�t||dd	�}t||�t||dd	�}t||	�t||dd	�}t||
�dS)
NrrKrSrIrorXrZr})r�r~)r4r��	ones_liker�r.r	)rar�r�r$�wx�wy�wz�q�qx�qy�qzr>r:r:r;�	test_ndimDs86




zTestTrapz.test_ndimcCs�t�d�}||}|dk}tjj||d�}d}tt||�|�tjj||d�}tt||�|�tjj||d�}tt||�|�dS)NrTrIr�g*@)r4r5rr�r	r.)rar�r�r��ymr>�xmr:r:r;r�is
zTestTrapz.test_maskedN)rxryrzr`r"r�r:r:r:r;r<s%rc@r�)�TestSinccCs6ttd�dk�tt�ddd��}t|t|�d�dS)NrrKrZr)rq)rr-r4r�r
rrr:r:r;r`|szTestSinc.test_simplecCsFddg}tt�|��}tt|��}tt|��}t||�t||�dS)Nrr�)r-r4r�r�r�r)rar�r�r�r�r:r:r;�test_array_like�s
zTestSinc.test_array_likeN)rxryrzr`r&r:r:r:r;r%zrr%c@rS)�
TestUniquecCs�t�gd��}tt�t|�gd�k��ttt�gd���t�dg�k�gd�}tt�t|�gd�k��t�gd��}tt�t|�gd�k��dS)	N)	rGrSrIrKrKrIrSrGr)rrKrIrSrG)rKrKrKrKrKrK)�widget�hamrJrKrJr))rKrJr)r()�@@r&��?$@r�r*)r&r+r*r�)r4r�rr�r1rHr:r:r;r`�s"zTestUnique.test_simpleN�rxryrzr`r:r:r:r;r'�rar'c@r�)�TestCheckFinitecCsPgd�}ddtjg}ddtjg}tj�|�tttjj|�tttjj|�dS)Nr�rKrI)r4�infr�lib�asarray_chkfiniterr^r�r:r:r;r`�szTestCheckFinite.test_simplecCs0gd�}tjj|dtjd�}t|jtjk�dS)Nr�r�)r�r�)r4r/r0r�rr�rmr:r:r;�test_dtype_order�sz TestCheckFinite.test_dtype_orderN)rxryrzr`r1r:r:r:r;r-�r�r-c	@s�eZdZe�gd�gd�gd�g�Ze�gd�gd�gd�g�Ze�gd�gd�gd	�g�Ze�gd
�gd�gd�gd
�gd�gd�g�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zej�d ejejejejg�d!d"��Zd#S)$�TestCorrCoef)g����^��?g�.{�<�?g���$,�?)g���4��?gp�)��?g�J��G��?)gY�����?g������?g�ވ0v��?)gة����?gB�F�U�?g�G)t��?)g3�TB��?gL�\���?g��A��?)g>
���?gq�F�E`�?g�5��?)r��ޛ����?����r@��)r3r��p��]�4�?)r4r5r�)r�r3r4�?�'L�?���(��8�?���4V�}�?)r3r�r5���w�{���,H��5�?�jS�,
��?)r4r5r�������)h����?��5#A���?)r6r9r<r���t��o��BC��,�)r7r:r=r?r��@��02v�?)r8r;r>r@rAr�cCs*tt�gd�gd��ddgddgg�dS)Nr�)rKrrKr���)r	r4rr�r:r:r;�test_non_array�s�zTestCorrCoef.test_non_arraycCsdt|j�}t||j�tt�t�|�dk��t|j|j�}t||j	�tt�t�|�dk��dSr�)
rr�r	r�rr4r�r�r9r�)ra�tgt1�tgt2r:r:r;r`�s
zTestCorrCoef.test_simplecCs�t��L}t�d�ttt|jdd�|�t�tt|jdd�|j	�tt|j|j
dd�|j�tt|jdd�|j	�tt|j|j
dd�|j�Wd�dS1sRwYdS)Nr0rZ��ddofrS)rr3�simplefilterr�DeprecationWarningrr��filterr	r�r9r��ra�supr:r:r;�	test_ddof�s

"�zTestCorrCoef.test_ddofcCs~t��2}t�d�ttt|j|jdd�ttt|jdd�|�t�t	t|jdd�|j
�Wd�dS1s8wYdS)Nr0rKr)�bias)rr3rHrrIrr�r9rJr	r�rKr:r:r;�	test_bias�s

"�zTestCorrCoef.test_biascCsZt�gd�gd�g�}t|�}t�ddgddgg�}t||�tt�t�|�dk��dS�Nr��ry@r"r�rr)r4r�rrrr�r�)rar�r3r�r:r:r;�test_complex�s

zTestCorrCoef.test_complexcCsHt�gd�g�}t�gd�g�}tt�||�t�ddgddgg��dSrP)r4r�rr�rar�r�r:r:r;�test_xy�s(zTestCorrCoef.test_xycC�tjdd��Jt�dt�ttt�g��tj�ttt�g��	dd��t�g��	dd��ttt�g��	dd��t�tjtjgtjtjgg��Wd�dS1sSwYdS�NTr.r0rrI)
r3r4rH�RuntimeWarningrrr4r�rrrr�r:r:r;�
test_empty����"�zTestCorrCoef.test_emptycCs|ddgddgg}tjdd��t|�}Wd�n1swYt|t�ddgddgg��tt�t�|�dk��dS)Ng0��.�++g}Ô%�I�T�raise)r�r�rB)r4�errstaterr
r�rr�r�)rar�r�r:r:r;�test_extreme�s
�zTestCorrCoef.test_extreme�	test_typecC�*|j�|�}t||d�}||jksJ�dS�Nr�)r�r�rr�)rar]�cast_Ar3r:r:r;�test_corrcoef_dtype��z TestCorrCoef.test_corrcoef_dtypeN)rxryrzr4r�r�r9r�r�rCr`rMrOrRrTrXr\rArr�half�single�double�
longdoublerar:r:r:r;r2�sL��������	
	r2c@s\eZdZe�ddgddgddgg�jZe�ddgddgg�Zejgd�dd�Ze�gd��Z	e�d	gdgdgdgdgd
gg�jZ
e�ddgddgg�Zejd
ej
d�Ze�gd��Ze�ddgddgg�Ze�d
�Ze�gd��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zej�d'ej ej!ej"ej#g�d(d)��Z$d*S)+�TestCovrrIrKr�rB)r�r�r�)�ndmin)rKrGrKr�r�g�������?g������ٿrSr�)r�r�r�gUUUUUU�?gUUUUUU�)g&S��:�?g�o_��?g#�~j��?g���ZӼ�?g�Q�|�?cCstt|j�|j�dSr3)rr�x1r�r�r:r:r;rgszTestCov.test_basiccCsVt�gd�gd�g�}t�ddgddgg�}tt|�|�tt|t�d�d�|�dS)Nr�rQr�rrrS��aweights)r4r�rrr_)rar�r3r:r:r;rRszTestCov.test_complexcCsFt�gd�g�}t�gd�g�}tt||�t�ddgddgg��dSrP)r4r�rrrSr:r:r;rTs&zTestCov.test_xycCrUrV)
r3r4rHrWrrr4r�rrrr�r:r:r;rXrYzTestCov.test_emptycCsptjdd��(t�dt�tt|jdd�t�tj	tj	gtj	tj	gg��Wd�dS1s1wYdS)NTr.r0rTrF)
r3r4rHrWrrrir4r�r.r�r:r:r;�test_wrong_ddof's��"�zTestCov.test_wrong_ddofcCsJtt|j�t|jdd��t�gd��}tt|j|�t|j|dd��dS)NF)�rowvar)g+����?g4��@���?g��&S�?g�o_��?g�J�4�?)rr�x3r4r��rar�r:r:r;�test_1D_rowvar.s"zTestCov.test_1D_rowvarcCs$tt|jdd�tj|jdd��dS)NrKrF)rrrnr4�varr�r:r:r;�test_1D_variance3s$zTestCov.test_1D_variancecCs�tt|j|jd�t|j��tt|j|jd�|j�tt|j|jd�|j�|jd}t	t
t|j|d�tjdtj
d�}t	tt|j|d�tjdtj
d�}t	tt|j|d�dtjdtj
d�}t	tt|j|d�dS)N)�fweightsr��rIrSr�rIrZrS)rrr��frequencies�
x2_repeatsrir��unit_frequenciesr�rr&r4r_r%�RuntimeErrorr^)ra�nonintr�r:r:r;�
test_fweights6s"���
zTestCov.test_fweightscCs�tt|j|jd�|j�tt|jd|jd�t|j|jd��tt|j|jd�|j�t�d�}t	t
t|j|d�t�d�}t	t
t|j|d�dt�d�}t	tt|j|d�dS)Nrjr�rtrIrBrS)rrrir�r��unit_weightsr�r4r_rrxr^rr:r:r;�
test_aweightsFs�

zTestCov.test_aweightscCs�tt|j|j|jd�t|j��tt|j|j|jd�|j�tt|j|j|jd�|j	�tt|j|j|j
d�|j�tt|j|jd|j
d�t|j|j
d��tt|j|j|jd�|j	�dS)N)rsrkr�rj)rrr�rur{rvrir�rwr�r�r�r�r:r:r;�test_unit_fweights_and_aweightsRs<������������z'TestCov.test_unit_fweights_and_aweightsr]cCr^r_)rir�rr�)rar]�cast_x1r3r:r:r;�test_cov_dtypefrbzTestCov.test_cov_dtypeN)%rxryrzr4r�r=rir�r�rurvr�r_r%rwr�r�r{rnrgrRrTrXrlrprrrzr|r}rArrrcrdrerfrr:r:r:r;rgs0$
	rgc@rE)�Test_I0c
Cs�ttd�t�d��t�gd��}t�gd��}tt|�|�tt|�|�t�ddgddgd	d
gddgd
dgg�}tt|�t�ddgddgddgddgddgg��t�dg�}t|jd�tt�dg�t�dg��dS)Nr�g�ǒ#�?)gC��7��?g�m�M�?g��3a�,�?g�$WV?ۏ?rX)g�ֿN^�?gE��?g閡�1�?g�%�m?�?gD��n��@g>@���v�?g�u�ͥ��?gV�X�˳�?g�ua�&�?gB-�sJ�?g-^���?g�_��V�?g
�X��.�?gV��aX��?g�j���?gp����?g~-��@�?g��D/b�?gݦ�����?g,�Y1ؔ�?g�[!���?g�Q�L��?gW�sU+�?g���@��?g�fx�w�?r�r�r�)r	r"r4r�rr?r)rar�r�r9�i0_0r:r:r;r`os4�
�
��zTest_I0.test_simplecsVt�d��G�fdd�d�}tt�|��|�sJ�t���}t�|��}t||�dS)NrGcseZdZ�jZdd�ZdS)z*Test_I0.test_non_array.<locals>.array_likecSrbr3r:)rar2r:r:r;�__array_wrap__�r�z9Test_I0.test_non_array.<locals>.array_like.__array_wrap__N)rxryrz�__array_interface__r�r:rGr:r;�
array_like�sr�)r4r5rEr�r"r)rar�r�r3r:rGr;rC�s

zTest_I0.test_non_arraycCsJt�ddg�}tjtdd��
t|�}Wd�dS1swYdS)Nry�?@z#i0 not supported for complex values��match)r4r�rArBr&r")rarbr3r:r:r;rR�s
"�zTest_I0.test_complexN)rxryrzr`rCrRr:r:r:r;r�msr�c@r�)�
TestKaisercCs|tt�tdd���ttdd�t�g��ttdd�t�ddg��ttdd�t�gd���ttdd�t�gd	���dS)
NrKr�rrI� ��oF�?rT)r��vT�=�?r�r�r�gg���?)�����?��Y�J�?r�r�r�)rr4�isfiniter%r	r�r�r:r:r;r`�s
�
�
�
�zTestKaiser.test_simplecCstdd�dS)NrSrG)r%r�r:r:r;�
test_int_beta�rTzTestKaiser.test_int_betaN)rxryrzr`r�r:r:r:r;r��r'r�c@rS)�	TestMsortcCsFt�gd�gd�gd�g�}tt|�t�gd�gd�gd�g��dS)N)��\��?�b��CQ�?�ה�s��?)�w�����?��kl��?�*dta��?)���ӯ��?�6H����?�ܘC��?)r�r�r�)r�r�r�)r�r�r�)r4r�r	r')rar�r:r:r;r`�s
�
��zTestMsort.test_simpleNr,r:r:r:r;r��rar�c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestMeshgridc	Csjtgd�gd��\}}t|t�gd�gd�gd�gd�g��t|t�gd�gd�gd�gd�g��dS)Nr��rGrTrprq)rGrGrG)rTrTrT)rprprp)rqrqrq�r&rr4r��ra�X�Yr:r:r;r`�s��zTestMeshgrid.test_simplecCs&tgd��\}t|t�gd���dS)Nrlr�)rar�r:r:r;�test_single_input�szTestMeshgrid.test_single_inputcCs*g}tgt|��tgt|ddi��dS)Nr�F)rr&r�r:r:r;�
test_no_input�szTestMeshgrid.test_no_inputcCs�gd�}gd�}t||dd�\}}t|t�gd�gd�gd�g��t|t�gd�gd�gd�g��dd	g}tt||�d
jdk�tt||dd�d
jdk�tt|||�d
jd
k�tt|||dd�d
jdk�ttt||dd�dS)Nr�r��ij��indexingr�)rIrIrIrI)rSrSrSrSrorrr�rSrG)rGrSrI)rSrGrI�notvalid)r&rr4r�rr?rr^)rar�r�r�r�r$r:r:r;�
test_indexing�s"��zTestMeshgrid.test_indexingcCsTtgd�gd�dd�\}}t|t�gd�g��t|t�dgdgdgdgg��dS)	Nr�r�T��sparserGrTrprqr�r�r:r:r;�test_sparse�s$zTestMeshgrid.test_sparsecCstttgd�gd�dd�dS)Nr�r�r�)r�)rr&r&r�r:r:r;�test_invalid_arguments�s
�z#TestMeshgrid.test_invalid_argumentscCs�tjddtjd�}tjddtjd�}t�||�\}}t|j|jk�t|j|jk�tj||dd�\}}t|j|jk�t|j|jk�tj||dd�\}}t|j|jk�t|j|jk�dS)Nrr�r�rOT)r�r�)r4r5r�r�r&rr�)rar�r�r�r�r:r:r;r��szTestMeshgrid.test_return_typecCsrt�ddg�}t�ddg�}tj||ddd�\}}d|ddd�f<t|ddd�fd�t|d	dd�f|�dS)
Nr�r�gffffff
@g������@FT)r�r�rrK)r4r�r&r)rar�r�r�r�r:r:r;�test_writeback	szTestMeshgrid.test_writebackcCshtjdd�tdd�D��\}}}}}d}t|j|�t|j|�t|j|�t|j|�t|j|�dS)Ncss�|]}dg|VqdS)rNr:�r�r�r:r:r;r+	r,z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>rKrp)rIrKrSrGrT)r4r&r`rr?)rarbr�r�r r��expected_shaper:r:r;�
test_nd_shape	s$zTestMeshgrid.test_nd_shapecCspt�dgddggd��\}}}t|gd�ggd�gg�t|gd�ggd�gg�t|gd�ggd�gg�dS)NrrKrIrRr�r�rH�r4r&rr�r:r:r;�test_nd_values!	szTestMeshgrid.test_nd_valuescCsntjdgddggd�dd�\}}}t|gd�gd�gg�t|gd�gd	�gg�t|gd�gd�gg�dS)
NrrKrIrRr�r�r�r�rHr�r�r:r:r;�test_nd_indexing'	s"zTestMeshgrid.test_nd_indexingN)rxryrzr`r�r�r�r�r�r�r�r�r�r�r:r:r:r;r��s
	r�c@r{)�
TestPiecewisecCs4tddgddgdg�}t|ddg�tddgddggdg�}t|ddg�tddgt�ddg�dg�}t|ddg�tddgt�ddg�dg�}t|ddg�tddgt�ddg�gdg�}t|ddg�tddgddggdd�g�}t|ddg�ttdtddgddggg�ttdtddgddgggd	��dS)
NrTFrKcSr�r�r:r�r:r:r;rHE	rcz+TestPiecewise.test_simple.<locals>.<lambda>rZz1 or 2 functions are expectedr�)r(rr4r�rr^rHr:r:r;r`0	s$��zTestPiecewise.test_simplecCs2tddgddgddggddg�}t|ddg�dS)NrKrITFrSrG�r(rrHr:r:r;�test_two_conditionsM	s z!TestPiecewise.test_two_conditionscCs"tdgd�gd��}t|d�dS)NrS)TFF)rGrIrrG)r(rrHr:r:r;�$test_scalar_domains_three_conditionsQ	sz2TestPiecewise.test_scalar_domains_three_conditionscCsNtddgddgdg�}t|ddg�tddgddgddg�}t|ddg�dS)NrKrITFrrSr�rHr:r:r;�test_defaultU	szTestPiecewise.test_defaultcCs�t�d�}t||dkddg�}t|jdk�t|dk�d}t|ddgddg�}t|jdk�t|dk�t|gd�gd	��}t|d�dS)
NrSrGrrTTFrKrr�)r4r�r(rr�rrSr:r:r;rC^	s
zTestPiecewise.test_0dcCs�d}t||dk|dkgddg�}t|d�d}t||dk|dk|dk|dkggd��}t|d�ttdt||dk|dkgdg�ttdt||dk|dkggd	��dS)
NrSrGrrTr�rIz2 or 3 functions are expectedrKr�)r(rrrr^rSr:r:r;�test_0d_comparisonm	s
*
��z TestPiecewise.test_0d_comparisoncCs8t�d�}t�|dk�}t||gddg�}t|d�dS)NrSrKrI)r4r�r(r)rar�r�r�r:r:r;�test_0d_0d_condition|	s
z"TestPiecewise.test_0d_0d_conditioncCsRt�gd�gd�g�}t||dk|dkggd��}t|t�gd�gd�g��dS)N)g�g��r�)r�r�r�rrIr-)rBrBrB)r�r�r�)r4r�r(rrSr:r:r;�test_multidimensional_extrafunc�	s
��z-TestPiecewise.test_multidimensional_extrafunccCs^Gdd�dtj�}t�d��|�}t||dk|dkggd��}tt|�|�t|gd��dS)Nc@r�)z/TestPiecewise.test_subclasses.<locals>.subclassNr�r:r:r:r;r��	r�r�r�r�rG)rBr�r�)rBrBr�r�r�)r4r�r5r�r(rr�)rar�r�r>r:r:r;r��	s
zTestPiecewise.test_subclassesN)rxryrzr`r�r�r�rCr�r�r�r�r:r:r:r;r�.	s	r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Ze
jjedd�dd��Ze
j�dddggdg�dd��ZdS)�TestBincountcCs$t�t�d��}t|t�d��dS)NrG)r4�bincountr5rr_ror:r:r;r`�	szTestBincount.test_simplecCs,t�t�gd���}t|t�gd���dS)N)rKrTrIrGrK)rrIrKrrKrK)r4r�r�rror:r:r;�test_simple2�	szTestBincount.test_simple2cCs2t�d�}t�gd��}t�||�}t||�dS)NrG)皙�����?�333333�?r�r�)r4r5r�r�r�rar�r�r�r:r:r;�test_simple_weight�	s
zTestBincount.test_simple_weightcCs@t�gd��}t�gd��}t�||�}t|t�gd���dS)N�rKrIrGrTrI�r�r�r�r�r�)rr�r�rr�r��r4r�r�rr�r:r:r;�test_simple_weight2�	sz TestBincount.test_simple_weight2cCsVt�gd��}tj|dd�}t|t�gd���g}tj|dd�}t|t�g��dS)N)rrKrrKrKrS��	minlength)rIrSrrr�rSr:r:r;�test_with_minlength�	sz TestBincount.test_with_minlengthcCsVt�gd��}tj|dd�}t|t�gd���tj|dd�}t|t�gd���dS)N)rrKrKrIrIrSrSrIr�)rKrIrIrIrr�rSr:r:r;�)test_with_minlength_smaller_than_maxvalue�	s
z6TestBincount.test_with_minlength_smaller_than_maxvaluecCsBt�gd��}t�gd��}t�||d�}t|t�gd���dS)Nr�r�ro)rr�r�rr�r�rrr�r�r:r:r;�test_with_minlength_and_weights�	�z,TestBincount.test_with_minlength_and_weightscCs&tjgtd�}t�|�}t||�dSr_)r4r�r�r�rrSr:r:r;rX�	s
zTestBincount.test_emptycCs4tjgtd�}tj|dd�}t|tjdtd��dS)Nr�rTr�)r4r�r�r�rr=rSr:r:r;�test_empty_with_minlength�	sz&TestBincount.test_empty_with_minlengthcsltjgtd��ttd�fdd��ttd�fdd��t�d��ttd�fdd��ttd�fd	d��dS)
Nr�z"'str' object cannot be interpretedc�tj�dd�S�N�foobarr��r4r�r:r�r:r;rH�	�z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>zmust not be negativecr��NrZr�r�r:r�r:r;rH�	r�rTcr�r�r�r:r�r:r;rH�	r�cr�r�r�r:r�r:r;rH�	r�)r4r�r�rr&r^r5r�r:r�r;�test_with_incorrect_minlength�	s$
�
�

�
�z*TestBincount.test_with_incorrect_minlengthr�r�cCs�t�t�tj��}t�t�tj��}td�D]	}t�gd��qtt�t�tj��|�tt�t�tj��|�td�D]}t�gd�gd��q<tt�t�tj��|�tt�t�tj��|�dS)Nr�r�r�)	r�r�r4r��intprer`r�r)ra�
intp_refcount�double_refcount�jr:r:r;�test_dtype_reference_leaks�	sz'TestBincount.test_dtype_reference_leaks�valsrIcCstt�|�}tt��
t�|�Wd�n1swYtt��t�|�Wd�dS1s3wYdSr3)r4�asarrayrr^r�)rar��vals_arrr:r:r;�test_error_not_1d�	s

�
"�zTestBincount.test_error_not_1dN)rxryrzr`r�r�r�r�r�r�rXr�r�rArr�rr�rr�r:r:r:r;r��	s
r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	dd�d
d�dd�dd�ggd�d�dd��Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&S)'�
TestInterpcCsttttdgg�tttddgddg�tttdddgddgdd�tttdggdd�tttddgddgdd�dS)NrrKrIr��h)rr^r$r�r:r:r;�test_exceptions�	s
zTestInterp.test_exceptionscCsBt�ddd�}t�ddd�}t�ddd�}tt�|||�|�dS)NrrKrTrh)r4r�r	r$�rar�r��x0r:r:r;rg�	r�zTestInterp.test_basicc
Cs�tdd�D]�}tj|tjd�}tj|tjd�}tjdd|d|gtjd�}|ddd�}t|||�}t|||�}tjgd�td�}|ddd�}	t||�t||	�t|||dd�}t|||dd�}tjgd�td�}|ddd�}	t||�t||	�t|||d	d
�}t|||d	d
�}tjgd�td�}|ddd�}	t||�t||	�t|||dd	d�}t|||dd	d�}tjgd
�td�}|ddd�}	t||�t||	�qdS)NrKr�r�rZrr���left)rrKrKrKrI��right)rKrKrKrI)r�r�)rrKrKrI)	r`r4r5rer_r�r$rQr)
ra�size�xp�yp�incpts�decpts�incres�decres�inctgt�dectgtr:r:r;�test_right_left_behavior
s<






�z#TestInterp.test_right_left_behaviorcCs�t�ddd�}t�ddd�}d}tt�|||�|�d}tt�|||�|�t�d�}tt�|||�|�t�d�}tt�|||�|�tj}tt�|||�|�dS)NrrKrTr�)r4r�r	r$r�r�rr�r:r:r;�test_scalar_interpolation_point'
s

z*TestInterp.test_scalar_interpolation_pointcCstgd�}gd�}ddtjdg}tt�|||�ddtjtjdg�ddtjdg}tt�|||�ddtjtjdg�dS)N�rKrIr�rSrGrlrKrIrG)r4r.r	r$r)rar�r��fpr:r:r;� test_non_finite_behavior_exact_x5
s"&z+TestInterp.test_non_finite_behavior_exact_xcCr�r3)r4�float_r�r:r:r;rH>
�
zTestInterp.<lambda>cCs
t|d�Sr$�rDr�r:r:r;rH?
r�cCs
td|�Sr$r�r�r:r:r;rH@
r�cCst|t�|d��S)NrQ)rDr4�multiplyr�r:r:r;rHA
s)rAzcomplex-realzcomplex-imagzcomplex-both)�params�idscCs|jS)z( scale function used by the below tests )�param)ra�requestr:r:r;�sc=
s
z
TestInterp.sccCs�tt�dtjdg|ddg��|tj��tt�ddtjg|ddg��|tj��tt�dddg|tjdg��|tj��tt�dddg|dtjg��|tj��dS)z test that nans are propagated r�rKrr�N)rr4r$r�rar�r:r:r;�test_non_finite_any_nanL
s(((,z"TestInterp.test_non_finite_any_nancCs�tt�dtjtj
g|ddg��|tj��tt�dddg|tjtj
g��|tj��tt�dddg|tj
tjg��|tj��tt�dtjtj
g|ddg��|d��dS)z2 Test that interp between opposite infs gives nan r�rr�rKN�rr4r$r.rr�r:r:r;�test_non_finite_infS
s...0zTestInterp.test_non_finite_infcCsttt�dtjdg|tjdg��|tj��tt�dtjdg|tj
dg��|tj��tt�dtjdg|dtjg��|tj��tt�dtjdg|dtj
g��|tj��tt�ddtj
g|tjdg��|tj��tt�ddtj
g|tj
dg��|tj��tt�ddtj
g|dtjg��|tj��tt�ddtj
g|dtj
g��|tj��dS)z@ Test that interp where both axes have a bound at inf gives nan r�rKr�rNr�r�r:r:r;�test_non_finite_half_inf_xf\
s.......2z&TestInterp.test_non_finite_half_inf_xfcCs�tt�dtjtjg|ddg��|d��tt�dtjdg|ddg��|d��tt�ddtj
g|ddg��|d��tt�dtj
tj
g|ddg��|d��dS)z1 Test interp where the x axis has a bound at inf r�rr�rKN�rr4r$r.r�r:r:r;�test_non_finite_half_inf_xg
s,((0z%TestInterp.test_non_finite_half_inf_xcCstt�dddg|dtjg��|tj��tt�dddg|dtj
g��|tj
��tt�dddg|tjdg��|tj��tt�dddg|tj
dg��|tj
��tt�dddg|tjtjg��|tj��tt�dddg|tj
tj
g��|tj
��dS)z1 Test interp where the f axis has a bound at inf r�rrKr�Nrr�r:r:r;�test_non_finite_half_inf_fn
s,,,,04z%TestInterp.test_non_finite_half_inf_fc	Cst�ddd�}t�ddd�dt�ddd�d}d}|d|d}tt�|||�|�d}d}ttj||||d�|�d	}d}ttj||||d
�|�gd�}gd�}dd
tjdg}dd
tjdtjdg}tt�|||�|�gd�}gd�}gd�}gd�}ttj|||dd�|�dS)NrrKrTrr�rZ�@@r�r�r�r�rl�@�?rGy�?�iL���iV���iG����rrWrim��iB���i^i����)�@�?y$@@�@@y@@)y@�?r	y�!@�?y@�?r
y
@
@y@@y@@r�r�)r4r�r	r$r.)	rar�r�r��y0r�r�r�r�r:r:r;�test_complex_interpw
s*$zTestInterp.test_complex_interpcCs�t�ddd�}t�ddd�}t�d�}tt�|||�|�t�gd��}t�gd��}t�t�d�||�}t|d�tt|tj��tjt�d�||dd	�}t|d
�tt|tj��dS)NrrKrTr�r)rKrZrKrrGr�r�)	r4r�r�r	r$rrrEr�)rar�r�r�r�r�r�r:r:r;�)test_zero_dimensional_interpolation_point�
s


z4TestInterp.test_zero_dimensional_interpolation_pointcCs2t�ddd�}t�|�}tt�tj||�d�dS)Nrr�g-C��6?r�)r4r5�sinr	r$r")rar�r�r:r:r;�test_if_len_x_is_small�
s
z!TestInterp.test_if_len_x_is_smallcCs�gd�}gd�}gd�}gd�}ttj|||dd�|�tj|dd��d	d
�}tj|dd��d	d
�}ttj|||dd�|�dS)Nrr)rTr�rSrG)g@r���!@g@r�g
@�@g@r�r�r�r�rIrZr)r	r4r$r�rr)rar�r�r�r�r:r:r;r
�
szTestInterp.test_periodN)rxryrzr�rgr�r�r�rA�fixturer�r�r�r�rrrr
rr
r:r:r:r;r��	s0&��
		r�cCs(tt|��D]}t||||�qdSr3)r`r
r)r3r�r�r:r:r;�compare_results�
s�rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S)4�TestPercentilecCs~t�d�d}tt�|d�d�tt�|d�d�tt�|d�d�tj|d	<tt�|d�tj�ttj|dd
d�tj�dS)Nror�rr�r)rrh��?rK�nearest��
interpolation)r4r5r�
percentilerrHr:r:r;rg�
s
zTestPercentile.test_basiccCs�dd�td�D�}t�|td��}t|td��tt|�t�t�|td��}t|tdd��tt|�t�t�|td��}t|tdd	��tt|�t�t�|td�g�}t|t�tdd	�g��tt|�tj�dS)
NcS�g|]}t|d��qS�rIrr�r:r:r;r��
r�z0TestPercentile.test_fraction.<locals>.<listcomp>rorr)rqrIrhrG)r`r4rrrr�r�r�)rar�r�r:r:r;�
test_fraction�
szTestPercentile.test_fractioncCsRt�d�}t�|dddd�t�|ddddd�t�d�}t�|dd|dd�dS)NrTF�linearr�)r4r_r)rar �or:r:r;�test_api�
s


zTestPercentile.test_apicCsFt�gd�gd�gd�gd�gd�g�}ttj|ddd�gd��dS)Nr�)rGrGrSrhrr})r4r�rrrHr:r:r;�test_2D�
s
�zTestPercentile.test_2DcCs4tt�td�d�d�ttjtd�ddd�d�dS)Nr�rhrrr�rr4rr`r�r:r:r;�test_linear�
s��zTestPercentile.test_linearcCs8ttjtd�ddd�d�ttjtd�ddd�d�dS)Nr�rh�lowerrrG�higherrTr!r�r:r:r;�test_lower_higher�
s����z TestPercentile.test_lower_highercCsRttjtd�ddd�d�ttjtd�ddd�d�ttjtd�ddd�d	�dS)
Nr��3�midpointrrrk�@rhrTr!r�r:r:r;�
test_midpoint�
s������zTestPercentile.test_midpointcCs8ttjtd�ddd�d�ttjtd�ddd�d�dS)Nr�r&rrrT�1rGr!r�r:r:r;�test_nearest�
s����zTestPercentile.test_nearestcCs,t�d�d}tt�|gd��gd��dS)Nror�)rr)rh)rrr)r4r5rrrHr:r:r;�
test_sequenceszTestPercentile.test_sequencecCs�t�d��dd�}tt�|d�gd��gd�gd�gd�g}ttj|dd	d
�|�gd�gd�gd
�g}ttj|ddd
�t�|�j�t�d��dddd�}tt�|d�jd�tt�|d�jd�ttj|dd	d
�jd�ttj|ddd
�jd�ttj|ddd
�jd�ttj|ddd
�jd�ttj|ddd
�jd�ttj|ddd�jd�ttj|ddd�jd�ttj|dd	dd�jd�ttj|dddd�jd�ttj|dddd�jd�ttj|dddd�jd�ttj|dddd�jd�dS)NrrSrG)r�rhr))g@r(r�)rIrSrGrTr�)rorr�rkrr})��?r�rS)�@r(rq)r�#@rkrKr�rTrp�r�rhr)r�rhr�rS)rIrGrTrp)rIrSrTrprI)rIrSrGrp)rSrSrTrpr$r�r~r)r4r5rrrrr�r=r?)rar��r0rgr:r:r;r�	sf�
��
������������zTestPercentile.test_axiscCs�t�d��dd�}tt�|d�d�tt�t�|d���t�gd��}ttj|ddd�|�ttj|ddd�j|j�t�gd	��}t	tj|dd
d�|�ttj|dd
d�j|j�t�
d
�}ttj|d|d�d�t|d�t�
d�}ttj|dd|d�|�t||�t�
d�}ttj|dd
|d�|�t||�t�d��dd�}ttj|dd
d�d�tt�t�|d���t�gd��}tj|dd
dd�}t||�t|j|j�t�gd��}tj|dd
d
d�}t	||�t|j|j�tj
d|jd�}tj|dd
|d�}t|d�t|d�tj
d|jd�}tj|dd
d|d�}t||�t||�tj
d|jd�}tj|dd
d
|d�}t||�t||�dS)NrrSrGrhr(�r�r�r�rerr}�r�r(r/rK�r��r~r�r#rr�)rr~)r�r�rZr:r��rr�rT�rr~r�)r4r5rrrrr�isscalarr�r?r	�emptyr�)rar�r3rgr��c0�c1r�r:r:r;�
test_scalar_q-sR












zTestPercentile.test_scalar_qcCs�tttjddgddd�tttjdgd�tttjdgd�tttjdgttd��dg�tttjdgttd��d	g�dS)
NrKrI�8r�r�erZrhr�)rr^r4rr�r`r�r:r:r;�test_exception]s� $zTestPercentile.test_exceptioncCstt�gd�d�d�dS)Nr�rrK)rr4rr�r:r:r;�test_percentile_listesz#TestPercentile.test_percentile_listcCs�t�gd��}t�d�}d}tj|||d�t|t�||��t�gd�gd�g�}t�d�}tj||d|d�t|tj||dd��t�d	�}tj||d
|d�t|tj||d
d��t�d��dd
�}t�gd�gd�g�}t�d�}ttj|dd|d�|�t||�t�gd�gd�g�}t�d�}ttj|dd
|d�|�t||�t�gd�gd�g�}tjd|jd�}tj|ddd|d�}t||�t||�t�gd�gd�g�}tjd|jd�}tj|ddd
|d�}t||�t||�dS)Nr�r1r6r�r�rr7r}�rSrIrKrrSrG)r�r�r�r�r4)rIrGr0)r-r.rr5rt�rrKrIrSr�r�r#r9)rrGro)rKrTr)	r4r�r=rrr5rrr;r�)rar�r�r�r3r�rgr�r:r:r;�test_percentile_outhsB

�








z"TestPercentile.test_percentile_outcCs�t�d��dddd�}ttj|ddd�jd�ttj|ddd�jd	�ttj|ddd�jd
�ttj|ddd�jd�ttj|dd
d�jd�ttj|ddd�jd
�ttj|ddd�jd	�ttj|ddd�jd�ttj|dddd�jd
�ttj|dddd�jd
�tt�tj|ddgdd��jd�tt�tj|ddgdd��jd�tt�tj|ddgdd��jd�tt�tj|ddgdd��jd�dS)NrwrkrKrIrhrr})rKrIrK)rkrIrK)rkrKrKrS)rkrKrIrZrQrWr:r'r2r�)rIrKrIrK)rIrkrIrK)rIrkrKrK)rIrkrKrI)r4r5rrrrr?r��rar r:r:r;�test_percentile_empty_dim�sB��������z(TestPercentile.test_percentile_empty_dimcCsht�gd��}tj|dgdd�t|t�gd���t�gd��}t�|dg�t|t�gd���dS)N�rIrSrGrKrhF��overwrite_input�r4r�rrrmr:r:r;�test_percentile_no_overwrite�sz+TestPercentile.test_percentile_no_overwritecCs�tjdddd�}tjt�d�|dd�t|tjdddd��tjdddd���}tjt�d�|dd�t|tjdddd����dS)Nr��Y@rT)�numr'r)r4r�rr5rrA)rar�r:r:r;�test_no_p_overwrite�sz"TestPercentile.test_no_p_overwritecCs^t�gd��}tj|dgdd�}t|t�dg��tjgd�dgdd�}t|t�dg��dS)NrHrhTrIr�rKr�r:r:r;�test_percentile_overwrite�s
z(TestPercentile.test_percentile_overwritec
Cs�tjjdd�}t�|gd�}ttj|ddd�t�|d��t�|dd�}ttj|dd	d�t�|d��|�dd
���}ttj|ddd�t�|d��|�dd
���}ttj|dd
gdd�tj|dd
gdd��ttj|dd
gdd�tj|dd
gdd��t�	d��
d�}tj�|���ttj|ddd�dt�|dd�dd�dd�df�
�d��ttj|ddgdd�dd�d
ft�|dd�dd�d
dd�f�
�ddg��ttj|ddd�dt�|dd�dd�ddd�f�
�d��ttj|ddd�dt�|ddd�dd�dd�f�
�d��ttj|ddd�dt�|dd
dd�dd�f�
�d��ttj|ddd�dt�|ddd�dd�d
f�
�d��ttj|ddd�dt�|ddd�ddd�f�
�d��dS)N��G��r�r�ror[r}rZrrlrKrjr�r�rJr+��rSrTrqrk�Z�rrKrS�rSrKr:rI�rSrKrIrC�rIrK�rKrQ�rKrSrN)r4r��normal�dstackrr�moveaxisr�r�r5rr�shuffle�ravel�flatten�rarr�r r:r:r;�test_extended_axis�sJ��&� *�&�&�"�"�"�z!TestPercentile.test_extended_axiscCs�t�d�}ttjtj|ddd�ttjtj|ddd�ttjtj|ddd�ttjtj|ddd�tttj|ddd�tttj|d	dd�tttj|d
dd�dS)NrVrWr�)r~r�rrWrG�rrGrP)rZrZ)rSrZ)r4r_rr�rr^rFr:r:r;�test_extended_axis_invalid�s
z)TestPercentile.test_extended_axis_invalidcCs�t�d�}ttj|dddd�jd�ttj|dddd�jd�ttj|dddd�jd	�ttj|dd
dd�jd�ttj|dddd
�jd�ttj|dddd�jd�ttj|ddgddd�jd�ttj|ddgddd�jd�dS)NrVrqTrfr�r[�rKrKrqrkr��rKrTrqrKr��rSrKrqrkrD)rgrX�rKrKrqrKrK)rIrKrKrqrK)rIrKrTrqrK)r4r_rrr?rFr:r:r;�
test_keepdims�s:
����������zTestPercentile.test_keepdimscCs�t�d�}t�d�}ttj|dd|d�|�ttj|ddd|d�|�t�d�}ttj|dd|d�|�ttj|ddd|d�|�t�d	�}ttj|d
|d�|�ttj|d
d|d�|�dS)N�rGr�rr6rr8r1rKr:rI)r4r=r_rr�rarr r:r:r;�test_outs



zTestPercentile.test_outc	Cstjdd��rt�ddt�t�d�}t�d�}tj|d<ttj	|dd|d	�|�ttj	|ddd
|d�|�t�d�}ttj	|d
d
|d	�|�ttj	|d
d
d
|d�|�t�d�}ttj	|d
|d	�|�ttj	|d
d
|d�|�Wd�dS1s{wYdS)NTr.r0r1rnr�r[rr6rr8r1rKr:)
r3r4r5rWr4r=r_rrrror:r:r;�test_out_nans(


�
�
�"�zTestPercentile.test_out_nancCs:tjdtd�}tj|d<tt�|d�tj�ttj|ddd�tj�ttj|ddgdd�t�tjgd��tjdtd��ddd	�}tj|d
<tj|d<tt�|d�tj�tt�|d�jd�t�tjdtd��ddd	�dd�}tj|d<tj|d
<tt�|dd�|�t�tjdtd��ddd	�ddgd�}tj|dd�ddf<tj|dd�ddf<tt�|ddgd�|�t�tjdtd��ddd	�dd�}tj|d<tj|d
<tt�|dd�|�t�tjdtd��ddd	�ddgd�}tj|dd�ddf<tj|dd�ddf<tt�|ddgd�|�t�tjdtd��ddd	�dd�}tj|d<tj|d<tt�|dd�|�t�tjdtd��ddd	�ddgd�}tj|dd�df<tj|dd�df<tt�|ddgd�|�tjtjdtd��ddd	�ddgddd�}tj|dd�df<tj|dd�df<ttj|ddgddd�|�dS)Nr8r�rIr�rr}g333333�?rSrGr��rKrKrIrtrkrKr]rOrr)	r4r5rQrrrr�rrr�r�r:r:r;�test_nan_behavior$sl
�

"

�"

��

�
���z TestPercentile.test_nan_behaviorcCs�tjtdd��t�gd�tj�Wd�n1swYtjtdd��t�gd�tjg�Wd�n1s<wYt�ddd�}tj|d<tjtdd��t�gd�|�Wd�dS1shwYdS)NzPercentiles must be inr�)rKrIrSr�r�g�X@rrr)rArBr^r4rrr�)rarr:r:r;�
test_nan_qas��
"�zTestPercentile.test_nan_qN)rxryrzrgrrr r"r%r)r+r,r�r>rArBrErGrLrOrPrerhrmrprqrsrtr:r:r:r;r�
s4		$0)	 
=rc
@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	e
eje
jddd
�e
jddddd�d�d�dd��ZdS)�TestQuantilecCsHt�d�d}tt�|d�d�tt�|d�d�tt�|d�d�dS)Nror�rr�rKrr)r4r5r�quantilerHr:r:r;rgoszTestQuantile.test_basiccCslt�dg�}t�dd�}t||d�tt|�|j�t�gd��}t�||�}t||�t|j|j�dS)NTFr)FTT)r4r�rvrr�r�r)rarb�tf_quant�	quant_resr:r:r;�test_correct_quantile_valueus
z(TestQuantile.test_correct_quantile_valuecCs8dd�td�D�}t�|d�}t|d�tt|�t�t�|d�}t|tdd��tt|�t�t�|tdd��}t|tdd��tt|�t�t�|tdd�g�}t|t�tdd�g��tt|�tj�t�|tdd�gg�}t|t�tdd�gg��tt|�tj�t�d�}tt�|tdd��tdd��dS)	NcSrrrr�r:r:r;r��r�z.TestQuantile.test_fraction.<locals>.<listcomp>rorrKrqrIrG)	r`r4rvrr�rr�r�r5)rar�rr:r:r;rs$

"zTestQuantile.test_fractioncCsjt�gd��}|��}tjt�d�|dd�t||�|��}|��}tjt�d�|dd�t||�dS)N)rr-r�r�r�rMr'r)r4r�r�rvr5rrA)ra�p0r�r:r:r;rO�s
z TestQuantile.test_no_p_overwritecCs<t�ddd�}t�t�gd��d|�}tt�|�|�dS)NrrK�{�G�z�?)rrKrKrIrIrSrSrGrTrTrKrKrrrrororqr�)r4r5rvr�rr�)rarzrvr:r:r;�test_quantile_monotonic�s��z$TestQuantile.test_quantile_monotonicrSr�)�	min_value�	max_valueF�u�<�7��u�<�7~)�allow_infinity�	allow_nanr}r~)r�r?�elements)r2cCs.t�ddd�}t�||�}tt�|�|�dS)NrrKr{)r4r5rvrr�)rar2rzrvr:r:r;�test_quantile_monotonic_hypo�sz)TestQuantile.test_quantile_monotonic_hypoN)rxryrzrgryrrOr|�
hypothesis�givenrr4r��st�integers�floatsr�r:r:r:r;ruls
���ruc
@s�eZdZejejddddd�ejddddd�ejddddd�ejddddd�d�dd	��Zejejddddd�ejddddd�ejddddd�d
�dd��Zejejddddd�ejddddd�ejddddd�d
�d
d��Z	dd�Z
dS)�TestLerpFrrK)r�r�r}r~rr�)�t0�t1rbr�cCsttjj�|||�}tjj�|||�}||ks||kr"||ks J�dS||k||kkr2||ks0J�dS||ks8J�dSr3�r4r/�
function_base�_lerp)rar�r�rbr��l0�l1r:r:r;�test_lerp_monotonic�s	zTestLerp.test_lerp_monotonic)�trbr�cCsd||kr|tjj�|||�kr|ksJ�J�dS|tjj�|||�kr-|ks0J�J�dSr3r�)rar�rbr�r:r:r;�test_lerp_bounded�s..zTestLerp.test_lerp_boundedcCs@tjj�||dd|�}tjj�||d|�}||ksJ�dSr�r�)rar�rbr�r�r�r:r:r;�test_lerp_symmetric�szTestLerp.test_lerp_symmetriccCs<t�d�}t�d�}t�d�}tjj�|||�dksJ�dS)NrIrTr�g������@)r4r�r/r�r�)rarbr�r�r:r:r;�test_lerp_0d_inputs�s


zTestLerp.test_lerp_0d_inputsN)rxryrzr�r�r�r�r�r�r�r�r:r:r:r;r��sL�����

����
����
r�c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�
TestMediancCs>t�d�}t�d�}t�d��dd�}tt�|�d�tt�|�d�tt�|�d�ttj|dd�gd	��ttj|dd�dd
g�ttj|dd�d�t�gd��}t|d|ddt�|��t�gd
��}t|dt�|��t�gd��}t|dt�|��tt�|�jd�tj	|d<tt�|�jd�dS)NrKrIrprSr�r�rr}�r�r�rrG)��6-¦?��0���?���}r�?g��4�?r�)r�r�r�)r�r�r�rZ)
r4r�r5rrr�medianrr	r�r)ra�a0rLr�rbr:r:r;rg�s$

 
zTestMedian.test_basiccCs�t�ddgddgddgddgg�}|tjjdd	d
d�fD]!}|��}tj|dd�t|j�D]	}tj||d�q.t||�qt	tj|dd�ddg�t	tj|j
dd�ddg�t	t�|�d
�t	tj|dd�d
�t	t�|j
�d
�dS)NrIrSrrKrprqrGrTr)r9rTr}r)r4r�r��randintr�r�r`r�rrr=)ra�a3rb�orig�axr:r:r;�test_axis_keyword
s 
�zTestMedian.test_axis_keywordcCs�t�ddgddgddgddgg�}t�d�}t�d�}t�d��dd�}ttj|��d	d
�d�ttj|��d	d
�d�ttj|��d	d
�d�ttj|��d	dd
�gd��ttj|��d	dd
�ddg�ttj|��d	dd
�d�ttj|��d	dd
�ddg�ttj|j��d	dd
�ddg�tjdtjd��d�}tj	�
|���ttj|dd�tj|��dd	d��ttj|dd�tj|��dd	d��ttj|dd�tj|��dd	d��ttj|dd�tj|��dd	d��dS)NrIrSrrKrprqrGrTTrIr�r�)rJr~r�r�r�rRr})r~rJ)r4r�r5rrrr�r�r=r�r�rarb)rar�r�rLr��a4r:r:r;�test_overwrite_keyword
sP
�

���������z!TestMedian.test_overwrite_keywordcCsFgd�}tt�|�d�|g}tt�|�d�ttj|dd�|�dS)Nr�rIrr})r	r4r�r)rar�r�r:r:r;r&7
s
zTestMedian.test_array_likecCs2Gdd�dtj�}|gd��}tt�|�d�dS)Nc@s eZdZddd�Zddd�ZdS)z,TestMedian.test_subclass.<locals>.MySubClassNcSst�|��|�}||_|Sr3)r4r�r��info)�cls�input_arrayr��objr:r:r;�__new__B
sz4TestMedian.test_subclass.<locals>.MySubClass.__new__cSr�)N���r:)rar~r�r�r:r:r;r�G
r�z1TestMedian.test_subclass.<locals>.MySubClass.meanr3)NNN)rxryrzr�r�r:r:r:r;�
MySubClass@
s
r�r�r�)r4r�rr�)rar�rbr:r:r;rG>
s
zTestMedian.test_subclasscCslt�d�}t�d�}ttj|d|d�|�t�d�}ttj|d|d�|�t�d�}ttj||d�|�dS)Nrnr�rr6r1rKr:)r4r=r_rr�ror:r:r;rpM
s



zTestMedian.test_outcCs�tjdd��It�ddt�t�d�}t�d�}tj|d<ttj	|d|d	�|�t�d
�}ttj	|d|d	�|�t�d�}ttj	||d	�|�Wd�dS1sRwYdS)
NTr.r0r1rnr�r[rr6r1rKr:)
r3r4r5rWr4r=r_rrr�ror:r:r;rqV
s




"�zTestMedian.test_out_nancCsftjdtd�}tj|d<tt�|�tj�ttj|dd�tj�tjdtd��ddd�}tj|d<tj|d	<tt�|�tj�tt�|�jd�t�tjdtd��ddd�d�}tj|d
<tj|d<tt�|d�|�t�tjdtd��ddd�d�}tj|d
<tj|d<tt�|d�|�t�tjdtd��ddd�d�}tj|d<tj|d<tt�|d�|�dS)Nr8r�rIrr}rSrGr�rrrtrkrKr]rO)r4r5rQrrr�rrr�r�r:r:r;rsb
s*


 

 

 

zTestMedian.test_nan_behaviorcCs�tjgtd�}tjdd��(}t�ddt�tt�|�tj	�t
|djtu�tt|�d�Wd�n1s8wYtjgtdd	�}tjdd��!}t�ddt�tt�|�tj	�t
|djtu�Wd�n1sowYtjgtdd	�}ttj|dd
�|�ttj|dd
�|�tjtj	tdd	�}tjdd��#}t�ddt�ttj|dd
�|�t
|djtu�Wd�dS1s�wYdS)Nr�Tr.r0r1rrIrS)r�rhr}rK)
r4r�rQr3r4r5rWrr�rrr7r
)rarbr�r�r:r:r;rX�
s,��"�zTestMedian.test_emptycCsLt�d�}ttt�|�t���t�tj|d<ttt�|�t���t�dS)NrerI)	r4r5rr�r�r�rDrQr)rarr:r:r;�test_object�
s

zTestMedian.test_objectc
Cs�tjjdd�}t�|gd�}ttj|dd�t�|��t�|dd�}ttj|dd�t�|��|�dd	���}ttj|d
d�t�|��ttj|dd�tj|dd��ttj|dd�tj|dd��ttj|d
d�tj|dd��t�	d��
d�}tj�|���ttj|dd�dt�|dd�dd�dd�df�
���ttj|dd�d	t�|dd�dd�d	dd�f�
���ttj|dd�dt�|dd�dd�ddd�f�
���ttj|dd�dt�|ddd�dd�dd�f�
���ttj|dd�dt�|dd	dd�dd�f�
���ttj|dd�dt�|ddd�dd�d	f�
���ttj|dd�dt�|ddd�ddd�f�
���dS)NrQrTr�r[r}rZrrlrKrjrJr+)rZrUrVrXrYrIrZrCr[r\r]rN)r4r�r^r_rr�r`r�r�r5rrrarbrcrdr:r:r;re�
sB$�$�$�$� � � �zTestMedian.test_extended_axiscCspt�d�}ttjtj|dd�ttjtj|dd�ttjtj|dd�ttjtj|dd�tttj|dd�dS)NrVrWr}rfrGrgrP)r4r_rr�r�r^rFr:r:r;rh�
s
z%TestMedian.test_extended_axis_invalidcCs�t�d�}ttj|ddd�jd�ttj|ddd�jd�ttj|ddd�jd�ttj|d	dd�jd
�ttj|ddd�jd�ttj|ddd�jd
�dS)NrVTrfr�r[rir�rjr�rkrDrXrl)r4r_rr�r?rFr:r:r;rm�
s&
������zTestMedian.test_keepdimsN)rxryrzrgr�r�r&rGrprqrsrXr�rerhrmr:r:r:r;r��s!	 r�c@r�)�TestAdd_newdoc_ufunccCs"tttdd�ttttjd�dS)NrI�blah)rr&rr^r4r6r�r:r:r;�test_ufunc_arg�
sz#TestAdd_newdoc_ufunc.test_ufunc_argcCsttttjd�dS)NrS)rr&rr4r6r�r:r:r;�test_string_arg�
sz$TestAdd_newdoc_ufunc.test_string_argN)rxryrzr�r�r:r:r:r;r��
sr�c@s\eZdZejjejjdkdd�ejj	e
dd�dd���Zejjejjdkdd�dd��Zd	S)
�TestAdd_newdocrI�Python running -OOr��PyPy does not modify tp_doccCsVd}ttjjjjdt|��|�tttjjj	j�dk�tttj
jjj�dk�dS)Nz"Current flat index into the array.r)
rr4�core�flatiter�indexr�r
r�ufunc�identityr/�index_tricks�mgrid)rar�r:r:r;�test_add_doc�
szTestAdd_newdoc.test_add_doccCs2tjjjj}t�ddd�|tjjjjksJ�dS)Nz
numpy.corer�)r�z
bad docstring)r4r�r�r�r��
add_newdoc)ra�prev_docr:r:r;�test_errors_are_ignored�
sz&TestAdd_newdoc.test_errors_are_ignoredN)
rxryrzrArr�r�r��optimizer�r
r�r�r:r:r:r;r��
sr�c@s\eZdZejjejjdkdd�ejje	dd�dd���Z
ejjejjdkdd�dd��Zd	S)
�TestAddDocstringrIr�r�r�cCs0t�tjjtjjj�dd�}t�||j�dS)NcSr���	docstringNr:r:r:r:r;�funcr�z6TestAddDocstring.test_add_same_docstring.<locals>.func)r4�
add_docstringr��flatr��rar�r:r:r;�test_add_same_docstring�
sz(TestAddDocstring.test_add_same_docstringcCsztt��t�tjjd�Wd�n1swYdd�}tt��t�|d�Wd�dS1s6wYdS)Nzdifferent docstringcSr�r�r:r:r:r:r;r�r�z=TestAddDocstring.test_different_docstring_fails.<locals>.func)rrxr4r�r�r�r�r:r:r;�test_different_docstring_failss
�
"�z/TestAddDocstring.test_different_docstring_failsN)rxryrzrArr�r�r�r�r
r�r�r:r:r:r;r��
s
r�c@s.eZdZej�dgd��dd��Zdd�ZdS)�TestSortComplexztype_in, type_out))�l�D)�hr�)�Hr�)r�r�)r9r�)r�GcCsHtjgd�|d�}t�|�}t�|��|�}t||�t|j|j�dS)N)rTrSrprIrKr�)r4r��sort_complexr�r�rr�)ra�type_in�type_outrbr�r�r:r:r;�test_sort_reals



zTestSortComplex.test_sort_realcCsJtjgd�dd�}tjgd�dd�}t�|�}t||�t|j|j�dS)N)r��?�rrr�r�)rr�rr)r4r�r�rr�)rarbr�r�r:r:r;�test_sort_complex(s


z!TestSortComplex.test_sort_complexN)rxryrzrArrr�r�r:r:r:r;r�s
r�)r�)r�r�)xr�r3r�r��	fractionsrrPrAr��hypothesis.extra.numpyr�hypothesis.strategies�
strategiesr��numpyr4r�
numpy.testingrrrr	r
rrr
rrrr�numpy.lib.function_baser/r�r��numpy.randomr�	numpy.librrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r<rDrFr|r�r�r�r�rr,rTrbrdrir�r�r�r�r�rr(rErSrUrVr�r�r�rrr%r'r-r2rgr�r�r�r�r�r�r�rrrur�r�r�r�r�r�r:r:r:r;�<module>s�8�Dg#e>j
S}A
)
(U>[j3
nd`C6N2p