o
    Ô­j†h ã                   @   sR  d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZ d dlZd dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZm Z  d dl!m"  m#Z$ d dl%m&Z& d dl'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@mAZAmBZBmCZCmDZDmEZEmFZFmGZG d d	lHmIZI d
d„ ZJdd„ ZKG dd„ dƒZLG dd„ dƒZMG dd„ dƒZNG dd„ dƒZOG dd„ dƒZPG dd„ dƒZQG dd„ dƒZRG dd„ dƒZSG dd„ dƒZTG d d!„ d!ƒZUG d"d#„ d#ƒZVG d$d%„ d%ƒZWG d&d'„ d'ƒZXG d(d)„ d)ƒZYG d*d+„ d+ƒZZG d,d-„ d-ƒZ[G d.d/„ d/ƒZ\G d0d1„ d1ƒZ]G d2d3„ d3ƒZ^G d4d5„ d5ƒZ_dwd7d8„Z`dxd:d;„ZaG d<d=„ d=ƒZbG d>d?„ d?ƒZcG d@dA„ dAƒZdG dBdC„ dCƒZeejf gdDdEejhdF  ejhdG  ¡ejf gdHg dI¢¡G dJdK„ dKƒƒƒZiG dLdM„ dMƒZjG dNdO„ dOƒZkG dPdQ„ dQƒZlG dRdS„ dSƒZmG dTdU„ dUƒZnG dVdW„ dWƒZoG dXdY„ dYƒZpG dZd[„ d[ƒZqG d\d]„ d]ƒZrG d^d_„ d_ƒZsG d`da„ daƒZtG dbdc„ dcƒZuG ddde„ deƒZvG dfdg„ dgƒZwg dh¢ZxG didj„ djƒZyG dkdl„ dlƒZzG dmdn„ dnƒZ{G dodp„ dpƒZ|G dqdr„ drƒZ}G dsdt„ dtƒZ~G dudv„ dvƒZdS )yé    N©ÚFraction)Úarrays)Úpartial)Ú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ÚIS_WASM)Ú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Ú	vectorize)Únormalize_axis_tuplec                 C   s   t  | ¡}t j ||¡}|S ©N)ÚnpÚarangeÚaddÚouter)ÚnÚdata© r=   ú_/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/lib/tests/test_function_base.pyÚget_mat   s   
r?   c                 C   s(   t  t  | |¡jt j¡}| |_||_|S )za
    Like real + 1j * imag, but behaves as expected when imag contains non-finite
    values
    )r7   ÚzerosÚ	broadcastÚshapeÚcomplex_ÚrealÚimag)rD   rE   Úretr=   r=   r>   Ú_make_complex%   s   rG   c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	TestRot90c                 C   s’  t ttt d¡ƒ t ttt d¡dd� t ttt d¡dd� t ttt d¡dd� t ttt d¡dd� g d¢g d	¢g}d
dgddgddgg}g d¢g d¢g}ddgddgdd
gg}g d¢g d	¢g}tdddƒD ]}tt||d�|ƒ qitdddƒD ]}tt||d�|ƒ q{tdddƒD ]}tt||d�|ƒ q�tdddƒD ]}tt||d�|ƒ qŸttt|dd�dd�|ƒ tt|ddd�t|ddd�ƒ d S )Né   ©é   rL   rL   ©r   é   rL   ©Úaxes©rL   rL   ©r   rL   ©rN   rN   )éþÿÿÿrN   ©é   rJ   é   rL   rW   rN   r   rV   ©rW   rJ   rV   ©rL   rN   r   éýÿÿÿé   )ÚkrT   éÿÿÿÿ©r   rN   ©rN   r   ©r\   rP   )r   Ú
ValueErrorr,   r7   ÚonesÚranger   )ÚselfÚaÚb1Úb2Úb3Úb4r\   r=   r=   r>   Ú
test_basic1   s@   ÿþÿþÿ"zTestRot90.test_basicc                 C   sR   t  d¡}tt|ƒjdƒ tt|dd�t|dd�ƒ tt|dd�t|dd�ƒ d S )N)é2   é(   rV   )rl   rk   rV   rR   rO   ©r   r]   ©rN   rL   ©rT   r]   )r7   rb   r   r,   rB   ©rd   re   r=   r=   r>   Ú	test_axesQ   s   
zTestRot90.test_axesc                 C   sü   t  d¡ d¡}ddgddggddgd	d
ggg}ddgddggd
dgd	dggg}d	dgddggd
dgddggg}d	d
gddggddgddggg}tt|dd�|ƒ tt|dd�|ƒ tt|dd�|ƒ tdd
ƒD ]}tt||dd�t||d dd�ƒ qhd S )Né   rK   rL   rV   é   é   r   rN   rJ   rW   r^   rO   r_   rn   )rL   r   r`   )r7   r8   Úreshaper   r,   rc   )rd   re   Ú
a_rot90_01Ú
a_rot90_12Ú
a_rot90_20Ú
a_rot90_10r\   r=   r=   r>   Útest_rotation_axesW   sJ   ÿÿþÿÿþÿÿþÿÿþÿÿzTestRot90.test_rotation_axesN)Ú__name__Ú
__module__Ú__qualname__rj   rq   rz   r=   r=   r=   r>   rI   0   s     rI   c                   @   óT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestFlipc                 C   sl   t tjtjt d¡dd� t tjtjt d¡dd� t tjtjt d¡dd� t tjtjt d¡dd� d S )NrJ   rN   ©Úaxis©rJ   rJ   rL   rZ   ©r   rV   )r   r7   Ú	AxisErrorÚfliprb   ©rd   r=   r=   r>   rq   v   s   zTestFlip.test_axesc                 C   sf   t dƒ}|d d …d d d…f }tt |d¡|ƒ g d¢g d¢g}g d¢g d¢g}tt |d¡|ƒ d S )NrJ   r]   rN   rM   rU   rY   rX   ©r?   r   r7   r…   ©rd   re   Úbr=   r=   r>   Útest_basic_lr|   ó   ÿÿzTestFlip.test_basic_lrc                 C   sf   t dƒ}|d d d…d d …f }tt |d¡|ƒ g d¢g d¢g}g d¢g d¢g}tt |d¡|ƒ d S )NrJ   r]   r   rM   rU   r‡   rˆ   r=   r=   r>   Útest_basic_ud†   r‹   zTestFlip.test_basic_udc                 C   sb   t  ddgddggddgddggg¡}t  ddgddggddgddggg¡}tt  |d¡|ƒ d S ©	Nr   rN   rL   rV   rJ   rW   rs   rt   ©r7   Úarrayr   r…   rˆ   r=   r=   r>   Útest_3d_swap_axis0�   ó   
ÿÿþ
ÿÿþzTestFlip.test_3d_swap_axis0c                 C   sb   t  ddgddggddgddggg¡}t  ddgddggddgddggg¡}tt  |d¡|ƒ d S r�   rŽ   rˆ   r=   r=   r>   Útest_3d_swap_axis1�   r‘   zTestFlip.test_3d_swap_axis1c                 C   sb   t  ddgddggddgddggg¡}t  ddgddggddgddggg¡}tt  |d¡|ƒ d S r�   rŽ   rˆ   r=   r=   r>   Útest_3d_swap_axis2ª   r‘   zTestFlip.test_3d_swap_axis2c              	   C   sR   t  d¡ dddd¡}t|jƒD ]}tt  ||¡t  | d|¡¡ |d¡ƒ qd S )Néx   rL   rV   rJ   rW   r   )	r7   r8   ru   rc   Úndimr   r…   r    Úswapaxes)rd   re   Úir=   r=   r>   Útest_4d·   s   ÿÿzTestFlip.test_4dc                 C   s@   t  g d¢g d¢g¡}t  g d¢g d¢g¡}tt  |¡|ƒ d S )N©rN   rL   rV   ©rJ   rW   rs   )rs   rW   rJ   ©rV   rL   rN   rŽ   rˆ   r=   r=   r>   Útest_default_axis½   s   
ÿ
ÿzTestFlip.test_default_axisc                 C   s²   t  ddgddggddgddggg¡}tt j|d	d
�|ƒ t  ddgddggddgddggg¡}tt j|dd
�|ƒ t  ddgddggddgddggg¡}tt j|dd
�|ƒ d S )Nr   rN   rL   rV   rJ   rW   rs   rt   r=   r€   rR   rn   rŽ   ©rd   re   r‰   Úcr=   r=   r>   Útest_multiple_axesÄ   s0   
ÿÿþ
ÿÿþ
ÿÿþzTestFlip.test_multiple_axesN)r{   r|   r}   rq   rŠ   rŒ   r�   r’   r“   r˜   rœ   rŸ   r=   r=   r=   r>   r   t   s    

r   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚTestAnyc                 C   sH   g d¢}g d¢}g d¢}t t |¡ƒ t t |¡ƒ t t |¡ ƒ d S )N©r   r   rN   r   ©r   r   r   r   )rN   r   rN   r   )r   r7   Úany©rd   Úy1Úy2Úy3r=   r=   r>   rj   Ý   s   zTestAny.test_basicc                 C   sX   g d¢g d¢g d¢g}t t |¡ƒ ttj|dd�g d¢ƒ ttj|dd�g d¢ƒ d S )N©r   r   r   ©r   rN   r   ©rN   rN   r   r   r€   rN   ©r   rN   rN   )r   r7   r¤   r	   ©rd   r¦   r=   r=   r>   Útest_ndå   s   zTestAny.test_ndN©r{   r|   r}   rj   r®   r=   r=   r=   r>   r¡   Û   ó    r¡   c                   @   r    )ÚTestAllc                 C   s`   g d¢}g d¢}g d¢}t t |¡ ƒ t t |¡ƒ t t |¡ ƒ t t t |¡ ¡ƒ d S )N)r   rN   rN   r   r£   ©rN   rN   rN   rN   )r   r7   Úallr�   r¥   r=   r=   r>   rj   î   s   zTestAll.test_basicc                 C   sZ   g d¢g d¢g d¢g}t t |¡ ƒ ttj|dd�g d¢ƒ ttj|dd�g d¢ƒ d S )N©r   r   rN   r¬   ©rN   rN   rN   r   r€   rN   )r   r7   r³   r	   r­   r=   r=   r>   r®   ÷   s   zTestAll.test_ndNr¯   r=   r=   r=   r>   r±   ì   s    	r±   c                   @   rH   )ÚTestCopyc                 C   sR   t  ddgddgg¡}t  |¡}t||ƒ d|d< t|d dƒ t|d dƒ d S )NrN   rL   rV   rJ   é
   )r   r   )r7   r�   Úcopyr	   r   )rd   re   Úa_copyr=   r=   r>   rj      s   

zTestCopy.test_basicc                 C   s°   t  ddgddgg¡}t|jjƒ t|jj ƒ t jddgddggdd�}t|jj ƒ t|jjƒ t  |¡}t|jjƒ t|jj ƒ t  |¡}t|jj ƒ t|jjƒ d S )NrN   rL   rV   rJ   ÚF©Úorder)r7   r�   r   ÚflagsÚc_contiguousÚf_contiguousr¸   )rd   re   Úa_fortr¹   Úa_fort_copyr=   r=   r>   Ú
test_order  s   

zTestCopy.test_orderc                 C   sV   t  d¡}tt  tj|dd�¡ ƒ tt  tj|dd�¡ƒ tt  t |¡¡ ƒ d S )NrW   F)ÚsubokT)r   rb   r   ÚisMaskedArrayr7   r¸   )rd   Úmxr=   r=   r>   Ú
test_subok  s   
zTestCopy.test_subokN)r{   r|   r}   rj   rÂ   rÆ   r=   r=   r=   r>   r¶   þ   s    r¶   c                   @   s¦   e Zd Zdd„ Zej dg d¢ddgg d¢dgd	gfg d
¢g d¢gdg d¢gddgg d¢gg d¢gfg¡dd„ ƒZdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS ) ÚTestAveragec                 C   sà   t  g d¢¡}tt|dd�dkƒ t  g d¢¡}tt|dd�dkƒ g d¢}tt|dd�dkƒ t  d¡}d|d	< d
|d< t| d¡t|dƒƒ t| d¡t|dƒƒ tddƒ}t| d¡t|dƒƒ t| d¡t|dƒƒ d S )Nr™   r   r€   ç       @©ç      ð?rÈ   ç      @)ç        rÌ   rÌ   rÌ   r‚   r^   rL   r_   rN   rW   )r7   r�   r   r   rb   r
   Úmeanr   )rd   r¦   r§   r¨   Úy4Úy5r=   r=   r>   rj   #  s   

zTestAverage.test_basicz<x, axis, expected_avg, weights, expected_wavg, expected_wsumr™   NrÈ   )rV   rJ   rN   ç      ü?ç       @)rN   rL   rW   )rN   rs   é   r   )rÊ   ç      @rÑ   rN   rV   )rÊ   ç      @ç      #@©rJ   rJ   rJ   c           
      C   s¶   t j||dd�}|jt  |¡ksJ ‚t||ƒ t j|||dd�}|jt  |¡ks*J ‚t||ƒ t j|||ddd�\}}	|jt  |¡ksEJ ‚t||ƒ |	jt  |¡ksTJ ‚t|	|ƒ d S )NT©r�   Úkeepdims)r�   ÚweightsrØ   )r�   rÙ   ÚreturnedrØ   )r7   r   rB   r	   )
rd   Úxr�   Úexpected_avgrÙ   Úexpected_wavgÚexpected_wsumÚavgÚwavgÚwsumr=   r=   r>   Útest_basic_keepdims5  s   


ÿ
zTestAverage.test_basic_keepdimsc                 C   sÐ  t  d¡}t  d¡}t||d�}t  d¡d  ¡ d t  d¡ ¡  }t||ƒ t  g d¢g d¢g¡}ddg}t||dd	�}t  g d
¢¡}t||ƒ g d¢}t||dd	�}t  ddg¡}t||ƒ g d¢g d¢g}t  ddg¡}tt||dd	�|ƒ tt||d�dƒ tdƒ 	t j
¡}	tdƒ 	t j¡}
tt j|	|
d�jt  |	|
¡kƒ t  g d¢¡ dd¡}t  g d¢¡ dd¡}t j||ddd�}t  g d¢¡}t||ƒ t j||ddd�}t  dgdgdgg¡}t||ƒ d S )Nr·   ©rÙ   rL   rÊ   r™   rš   rN   r   )rÙ   r�   )rË   rÓ   rÔ   r´   rË   ç      @)r   r   rL   rÔ   rW   ©rL   rV   rJ   rV   F)rÙ   r�   rØ   )rÈ   rË   rÓ   TrÈ   rÓ   )r7   r8   r   Úsumr
   r�   r	   r   r   ÚastypeÚfloat32Úfloat64r   ÚdtypeÚresult_typeru   )rd   ÚyÚwÚactualÚdesiredr¦   Úw0Úw1Úw2r¨   Úw3rÛ   r=   r=   r>   Útest_weightsL  s:   

$


 
zTestAverage.test_weightsc                 C   s  t  g d¢g d¢g¡}t|dd�\}}t|dƒ t|ddd�\}}t|t  g d¢¡ƒ t|ddd�\}}t|t  d	d	g¡ƒ dd
g}t||ddd�\}}t|t  g d¢¡ƒ g d¢}t||ddd�\}}t|t  ddg¡ƒ g d¢g d¢g}t||ddd�\}}t|t  ddg¡ƒ d S )Nr™   rš   T)rÚ   rä   r   )rÈ   rÈ   rÈ   rN   rË   rL   )rÙ   r�   rÚ   )rË   rË   rË   r´   rÊ   )r7   r�   r   r   r	   )rd   rì   rß   Úsclrð   rñ   rò   r=   r=   r>   Útest_returnedx  s    
zTestAverage.test_returnedc                 C   sz   G dd„ dt jƒ}t  ddgddgg¡ |¡}t  ddgddgg¡ |¡}ttt  |¡ƒ|ƒ ttt j||d�ƒ|ƒ d S )Nc                   @   ó   e Zd ZdS )z-TestAverage.test_subclasses.<locals>.subclassN©r{   r|   r}   r=   r=   r=   r>   Úsubclass“  ó    rù   rN   rL   rV   rJ   rã   )r7   Úndarrayr�   Úviewr   Útyper   )rd   rù   re   rí   r=   r=   r>   Útest_subclasses’  s
   zTestAverage.test_subclassesc                 C   sl   g d¢}|D ]-\}}}t jddgddgg|d�}t jddgddgg|d�}tt j||d�jt  |¡ƒ qd S )N))Úi4rÿ   Úf8)rÿ   Úf4r   )r  rÿ   r   )r  r  r  )r  r   r   rN   rL   rV   rJ   ©rê   rã   )r7   r�   r   r   rê   )rd   ÚtypsÚatÚwtÚrtre   rí   r=   r=   r>   Útest_upcasting›  s   ýzTestAverage.test_upcastingc                 C   sX   t  dd„ tdƒD ƒ¡}t  dd„ tdƒD ƒ¡}|| ¡  }t| d¡t||d�ƒ d S )Nc                 S   s   g | ]}t  |¡‘qS r=   ©ÚdecimalÚDecimal)Ú.0rÛ   r=   r=   r>   Ú
<listcomp>¤  ó    z1TestAverage.test_object_dtype.<locals>.<listcomp>r·   c                 S   s   g | ]}t  d ¡‘qS ©rN   r  )r  Ú_r=   r=   r>   r  ¥  r  r   rã   )r7   r�   rc   ræ   r
   rÍ   r   )rd   re   rí   r=   r=   r>   Útest_object_dtype£  s   zTestAverage.test_object_dtypec                 C   s4   t  tddƒtddƒg¡}tt  |¡tddƒƒ d S )NrN   rW   rV   rL   )r7   r�   r   r   r   rp   r=   r=   r>   Ú test_average_class_without_dtype©  s   z,TestAverage.test_average_class_without_dtype)r{   r|   r}   rj   ÚpytestÚmarkÚparametrizerâ   rô   rö   rþ   r  r  r  r=   r=   r=   r>   rÇ   !  s"    ÿÿþ
,	rÇ   c                   @   s–   e Zd Ze g d¢¡e g d¢¡e g d¢¡gZe g d¢¡e g d¢¡e g d¢¡gZddd	„Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )Ú
TestSelectr™   rš   ©rt   rr   é	   )FFF©FTF©FFTr   c                    s<   g }t t|ƒƒD ]‰ |‡ fdd„t||ƒD ƒp|g7 }q|S )Nc                    s    g | ]\}}|ˆ  r|ˆ  ‘qS r=   r=   )r  ÚVÚC©Úmr=   r>   r  ¹  s     z&TestSelect._select.<locals>.<listcomp>)rc   ÚlenÚzip)rd   ÚcondÚvaluesÚdefaultÚoutputr=   r  r>   Ú_select¶  s   $zTestSelect._selectc                 C   sL   | j }| j}tt||dd�| j||dd�ƒ tt|ƒdƒ tt|ƒdƒ d S )Né   ©r"  rV   )ÚchoicesÚ
conditionsr	   r-   r$  r   r  ©rd   r'  r(  r=   r=   r>   rj   ¼  s   ÿzTestSelect.test_basicc                 C   sd   t  d¡t  g d¢¡g}dt  d¡ dd¡g}tt||ƒt  d¡ƒ ttdgdgdgd	�jd
ƒ d S )NTr  rN   é   rJ   rV   ©rJ   rV   r   r&  r  )	r7   r�   r8   ru   r	   r-   rb   r   rB   ©rd   r(  r'  r=   r=   r>   Útest_broadcastingÅ  s    zTestSelect.test_broadcastingc                 C   sˆ   t t| j| jdƒjtjƒ dd„ | jD ƒ}t t| j|ƒjtjƒ t dddtj	ddg¡}t 
|¡}t t|g|gƒd	d	d	tj	d	d	gƒ d S )
Nù              ð?c                 S   s   g | ]}|  tj¡‘qS r=   )rç   r7   Úint8)r  Úchoicer=   r=   r>   r  Ñ  ó    z0TestSelect.test_return_dtype.<locals>.<listcomp>rN   rL   rV   rW   rt   r   )r   r-   r(  r'  rê   r7   rC   r/  r�   ÚnanÚisnan)rd   r'  Údr  r=   r=   r>   Útest_return_dtypeÌ  s   ÿ
&zTestSelect.test_return_dtypec                 C   s"   t ttg g dƒ t ttg g ƒ d S )Nù              @)r   ra   r-   r†   r=   r=   r>   Útest_deprecated_emptyØ  s   z TestSelect.test_deprecated_emptyc                 C   sj   | j }| jd d … }|d  tj¡|d< ttt||ƒ |d  tj¡|d< ttt||ƒ ttt||ƒ d S ©Nr   )	r'  r(  rç   r7   Úint_r   Ú	TypeErrorr-   Úuint8r)  r=   r=   r>   Útest_non_bool_deprecationÜ  s   z$TestSelect.test_non_bool_deprecationc                 C   s2   t  dg¡gd }t  dg¡gd }t||ƒ d S )NFéd   rN   )r7   r�   r-   r,  r=   r=   r>   Útest_many_argumentså  s   zTestSelect.test_many_argumentsN©r   )r{   r|   r}   r7   r�   r'  r(  r$  rj   r-  r5  r7  r<  r>  r=   r=   r=   r>   r  ®  s     þþ
		r  c                   @   s^   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dddg¡dd„ ƒZdS )Ú
TestInsertc                 C   sv  g d¢}t t|ddƒg d¢ƒ t t|ddƒg d¢ƒ t t|g d¢g d¢ƒg d¢ƒ t t|dg d¢ƒg d¢ƒ t t|g d	¢d
ƒg d¢ƒ t t|tdd dƒd
ƒg d¢ƒ t t|g d¢g d¢ƒg d¢ƒ tjddgtjd�}t t|d|d ƒg d¢ƒ t t|g g ƒ|ƒ tjdd��*}t ddt	¡ t t|t dgd ¡d
ƒg d¢ƒ t
|d jt	u ƒ W d   ƒ d S 1 s´w   Y  d S )Nr™   r   rN   )rN   rN   rL   rV   rV   )rN   rL   rV   rN   rµ   )rN   rN   rL   rV   rL   rV   )rN   r]   rV   r  )rN   r  rL   r  rV   r  r]   )r  rN   r  rL   r  rV   ©r]   rN   rV   r  )rN   rr   rL   rt   rV   r  r  ©rÌ   rÌ   rÊ   T©ÚrecordÚalwaysÚ rJ   )rN   r  r  r  r  rL   rV   )r   r%   Úslicer7   r�   ré   ÚwarningsÚcatch_warningsÚfilterwarningsÚFutureWarningr   Úcategory)rd   re   r‰   rí   r=   r=   r>   rj   î  s$   ÿ"üzTestInsert.test_basicc              
   C   s~  g d¢g}g d¢g d¢g}t t|ddgƒg d¢ƒ t t|dg d¢dd�|ƒ t t|dddd�|ƒ t t|dddd�g d¢gƒ t ddgddgd	d	gg¡}t dd
¡ d	¡ d	d	¡}tj|d d …dd…f t dd
¡ d	¡ d	d	¡j|d d …dd…f fdd�}t t|dgdgdgd	ggdd�|ƒ t t|dgg d¢dd�|ƒ t t|dg d¢dd�|ƒ t t|ddgdgd	ggdd�|ƒ t d
¡ dd¡}t t|d d …d d…f d|d d …df dd�|ƒ t t|d d…d d …f d|dd d …f dd�|ƒ t d¡ d¡}t t|d|d d …d d …d	f dd�t|d|d d …d d …d	f dd�ƒ t t|d|d d …dd d …f dd�t|d|d d …dd d …f dd�ƒ t	tj
t|d|d d …dd d …f d	d� t	tj
t|d|d d …dd d …f dd� t d¡ d¡}t t|d|d d …d d …d	f dd�t|d|d d …d d …d	f dd�ƒ t t|d|d d …dd d …f dd�t|d|d d …dd d …f dd�ƒ d S )Nrµ   rK   r   rN   r²   r€   rL   )rN   rN   rL   rN   rV   rJ   r™   é   rå   r]   rT   éüÿÿÿ)r   r%   r7   r�   r8   Úrepeatru   ÚconcatenateÚTr   r„   )rd   re   Úrr‰   rž   r=   r=   r>   Útest_multidim  sN   
ÿ,ÿþ$"22" ÿ" ÿ((" ÿ" ÿzTestInsert.test_multidimc                 C   s†   t  d¡}t t j¡� t|g ddd� W d   ƒ n1 sw   Y  t t¡� t|g ddd� W d   ƒ d S 1 s<w   Y  d S )NrN   rL   r   r€   Únonsense)r7   r�   r  Úraisesr„   r%   r:  rp   r=   r=   r>   Útest_0d,  s   
ÿ"ÿzTestInsert.test_0dc              	   C   sä   G dd„ dt jƒ}t  d¡ |¡}ttt  |ddg¡|ƒƒ ttt  |g g ¡|ƒƒ ttt  |ddgddg¡|ƒƒ ttt  |tddƒddg¡|ƒƒ ttt  |tdddƒg ¡|ƒƒ t  d¡ |¡}ttt  |ddg¡|ƒƒ d S )	Nc                   @   r÷   )z*TestInsert.test_subclass.<locals>.SubClassNrø   r=   r=   r=   r>   ÚSubClass4  rú   rW  r·   r   rN   rL   rT   r]   )	r7   rû   r8   rü   r   Ú
isinstancer%   rG  r�   ©rd   rW  re   r=   r=   r>   Útest_subclass3  s    " zTestInsert.test_subclassc                 C   s<   t  g d¢¡}t  g d¢|g d¢¡ t|t  g d¢¡ƒ d S )Nrµ   rM   rU   )r7   r�   r%   r   ©rd   rÛ   r=   r=   r>   Útest_index_array_copied@  s   z"TestInsert.test_index_array_copiedc                 C   s€   t jg d¢ddgd�}d}t  |d|¡}t|d t j||jd�ƒ dgd }t  |ddg|¡}t|ddg t j||jd�ƒ d S )	N))rN   re   )rL   r‰   )rV   rž   )Úfoor—   )ÚbarÚa1r  )rJ   r4  r   rL   rV   )r7   r�   r%   r	   rê   )rd   re   Úvalr‰   r=   r=   r>   Útest_structured_arrayE  s   
ÿ
"z TestInsert.test_structured_arrayc                 C   s–   t  t¡� t g d¢t ddg¡ddg¡ W d   ƒ n1 s w   Y  t  t¡� t g d¢tjg td�g ¡ W d   ƒ d S 1 sDw   Y  d S )NrM   rÊ   rÈ   r·   é   r  )r  rU  Ú
IndexErrorr7   r%   r�   Úfloatr†   r=   r=   r>   Útest_index_floatsO  s   "ÿ"ÿzTestInsert.test_index_floatsÚidxrJ   rN  c                 C   sL   t jtdd�� t g d¢|gddg¡ W d   ƒ d S 1 sw   Y  d S )Nzout of bounds©ÚmatchrM   rV   rJ   )r  rU  rc  r7   r%   )rd   rf  r=   r=   r>   Útest_index_out_of_boundsU  s   "ÿz#TestInsert.test_index_out_of_boundsN)r{   r|   r}   rj   rS  rV  rZ  r\  ra  re  r  r  r  ri  r=   r=   r=   r>   r@  ì  s    *
r@  c                   @   ó   e Zd Zdd„ ZdS )ÚTestAmaxc                 C   ób   g d¢}t t |¡dƒ g d¢g d¢g d¢g}t tj|dd�g d¢ƒ t tj|d	d�g d
¢ƒ d S )N©rV   rJ   rW   r·   rZ   éûÿÿÿrä   ç      $@©rV   rä   ç      "@©rJ   ro  rÔ   ©rr   rË   rÈ   r   r€   )rÑ   ro  rq  rN   )rq  ro  rÑ   )r   r7   Úamaxrˆ   r=   r=   r>   rj   ]  ó   þzTestAmax.test_basicN©r{   r|   r}   rj   r=   r=   r=   r>   rk  [  ó    rk  c                   @   rj  )ÚTestAminc                 C   rl  )Nrm  g      Àrp  rr  rs  r   r€   )rË   rË   rÈ   rN   )rË   rÓ   rÈ   )r   r7   Úaminrˆ   r=   r=   r>   rj   i  ru  zTestAmin.test_basicNrv  r=   r=   r=   r>   rx  g  rw  rx  c                   @   rj  )ÚTestPtpc                 C   sž   t  g d¢¡}t|jdd�dƒ t  g d¢g d¢g d¢g¡}t|jdd�g d¢ƒ t|jd	d�g d
¢ƒ t|jddd�g d¢gƒ t|jddd�dggƒ d S )Nrm  r   r€   ç      .@rp  rr  rs  )rÔ   ç      @r|  r]   )rä   rä   rä   Tr×   r^   rÑ   )r7   r�   r   Úptprˆ   r=   r=   r>   rj   u  s   
þzTestPtp.test_basicNrv  r=   r=   r=   r>   rz  s  rw  rz  c                   @   rj  )Ú
TestCumsumc              
   C   sô   g d¢}g d¢g d¢g d¢g}t jt jt jt jt jt jt jt jt j	t j
f
D ]R}t  ||¡}t  ||¡}t  g d¢|¡}tt j|dd�|ƒ t  g d¢g d¢g d	¢g|¡}tt j|dd�|ƒ t  g d
¢g d¢g d¢g|¡}tt j|dd�|ƒ q%d S )N©rN   rL   r·   rÒ   rs   rW   rJ   ©rN   rL   rV   rJ   ©rW   rs   rt   r  ©r·   rV   rJ   rW   )rN   rV   r[   rM  é   é#   é'   r   r€   )rs   rr   r·   r[   )é   rÒ   é   é   )rN   rV   rs   r·   )rW   rÒ   rˆ  é   )r·   r[   é   é   rN   )r7   r/  r;  Úint16Úuint16Úint32Úuint32rè   ré   Ú	complex64Ú
complex128r�   r	   Úcumsum)rd   ÚbaÚba2Úctypere   Úa2Útgtr=   r=   r>   rj   „  s&   þÿÿñzTestCumsum.test_basicNrv  r=   r=   r=   r>   r~  ‚  rw  r~  c                   @   rj  )ÚTestProdc                 C   sÚ   g d¢}g d¢g d¢g d¢g}t jt jt jt jt jt jt jt jfD ]I}t  	||¡}t  	||¡}|dv rCt
tt j|ƒ t
tt j|dƒ q!t|jdd�d	ƒ t|jdd�t  	g d
¢|¡ƒ t|jdd�t  	g d¢|¡ƒ q!d S )Nr  r€  r�  r‚  ©Ú1r‰   rN   r   r€   é g  ©rk   é$   éT   é´   r]   )rM  éb  éX  )r7   rŒ  r�  rŽ  r�  rè   ré   r�  r‘  r�   r   ÚArithmeticErrorÚprodr   r	   ©rd   r“  r”  r•  re   r–  r=   r=   r>   rj   ›  s$   ÿÿÿõzTestProd.test_basicNrv  r=   r=   r=   r>   r˜  ™  rw  r˜  c                   @   rj  )ÚTestCumprodc              	   C   s  g d¢}g d¢g d¢g d¢g}t jt jt jt jt jt jt jt jfD ]g}t  	||¡}t  	||¡}|dv rJt
tt j|ƒ t
tt j|dƒ t
tt j|ƒ q!tt j|dd�t  	g d	¢|¡ƒ tt j|d
d�t  	g d¢g d¢g d¢g|¡ƒ tt j|dd�t  	g d¢g d¢g d¢g|¡ƒ q!d S )Nr  r€  r�  r‚  r™  rN   r]   r€   )rN   rL   rb  éÜ   i(  iÈ  r›  r   )rW   r*  é   r�  rœ  )rN   rL   rs   rM  )rW   rƒ  éÒ   r   )r·   rƒ  r”   r¡  )r7   rŒ  r�  rŽ  r�  rè   ré   r�  r‘  r�   r   r¢  Úcumprodr	   r¤  r=   r=   r>   rj   ¯  sB   ÿ
ÿÿ
þþÿ
þþÿðzTestCumprod.test_basicNrv  r=   r=   r=   r>   r¥  ­  rw  r¥  c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚTestDiffc                 C   sÐ   g d¢}t  g d¢¡}t  g d¢¡}t  ddg¡}tt|ƒ|ƒ tt|dd�|ƒ tt|dd�|ƒ g d	¢}t  g d
¢¡}tt|ƒ|ƒ g d¢}t  g d¢¡}t  ddg¡}tt|ƒ|ƒ tt|dd�|ƒ d S )N)rN   rJ   rs   rt   r*  )rV   rL   rN   rW   )r]   r]   rJ   r   rW   rL   ©r;   rV   )çš™™™™™ñ?çš™™™™™@rË   gš™™™™™É¿çš™™™™™¹¿)r¬  gš™™™™™é?gš™™™™™	Àçš™™™™™¹?)TTFFr  T)r7   r�   r	   r   r
   )rd   rÛ   ÚoutÚout2Úout3r=   r=   r>   rj   Ê  s   zTestDiff.test_basicc                 C   sö   t  d¡}d|d d …dd d…d d …f< t  d¡}d|d d …dd d…d d …f< tt|ƒt  d¡ƒ tt|dd�t  d¡ƒ tt|dd�t  d	¡ƒ tt|dd�|ƒ tt|d
d�|ƒ tt jt|dd� tt jt|dd� t  dt j¡}tt	t|ƒ d S )N)r·   rb  rƒ  rN   rL   )r·   é   rƒ  r]   )r·   rb  é   r€   r   )r  rb  rƒ  rT   rV   rN  gæÇqÇñ?)
r7   r@   rb   r	   r   r   r„   r�   ré   ra   )rd   rÛ   Úexpr=   r=   r>   Ú	test_axisÝ  s   

zTestDiff.test_axisc                 C   s*  dt dddƒ }|d d …d d …dd …f |d d …d d …d d…f  }|d d …d d …dd …f |d d …d d …d d…f  }|dd …d d …d d …f |d d…d d …d d …f  }|dd …d d …d d …f |d d…d d …d d …f  }tt|ƒ|ƒ tt|dd�|ƒ tt|dd	�|ƒ tt|ddd
�|ƒ d S )Nrb  r·   rƒ  rN   r]   rL   r«  r   r€   )r;   r�   )r   r	   r   )rd   rÛ   Úout1r±  r²  Úout4r=   r=   r>   r®   í  s   4444zTestDiff.test_ndc                    sÄ   t tdƒƒ‰ tttˆ dd� ‡ fdd„tddƒD ƒ}ddgdgg g g}ttˆ dd�ˆ u ƒ tt||ƒdd	�D ])\}\}}tt|ƒt	j
u ƒ t||ƒ t|jt	jƒ tt|ƒtdtˆ ƒ| ƒƒ q6d S )
NrV   r]   r«  c                    s   g | ]}t ˆ |d �‘qS )r«  )r   )r  r;   ©rÛ   r=   r>   r  û  r1  z#TestDiff.test_n.<locals>.<listcomp>rN   rW   r   ©Ústart)Úlistrc   r   ra   r   r   Ú	enumerater  rý   r7   rû   r	   r   rê   r9  r  Úmax)rd   r#  Úexpectedr;   r°  r=   r¹  r>   Útest_nø  s   
üzTestDiff.test_nc                 C   sŒ   t jddt jd�}t jddgdd�t jdgdd�g}| t jg dd�gd ¡ t|dd�D ]\}}t||d	�}t||ƒ t|j	|j	ƒ q-d S )
Nz
1066-10-13z
1066-10-16r  rN   útimedelta64[D]r   rV   rº  r«  )
r7   r8   Ú
datetime64r�   Úextendr½  r   r	   r   rê   )rd   rÛ   r¿  r;   rµ  r°  r=   r=   r>   Ú
test_times  s   þ
ýzTestDiff.test_timesc                 C   sö   t jddgddgddgddgd	d
ggddgddgddgddgddggd�}t|ƒ}t|jdgdgdgdgdggƒ t|jdgdgdgdgdggƒ tt|ƒt|ƒu ƒ t|dd�}t|jg g g g g gƒ t|jg g g g g gƒ tt|ƒt|ƒu ƒ d S )NrN   rL   rV   rJ   rW   rs   rt   rr   r  r·   FT©Úmaskr«  )r   r�   r   r	   r<   rÆ  r   rý   )rd   rÛ   r°  r²  r=   r=   r>   rZ    s   $ÿÿ ÿzTestDiff.test_subclassc                 C   sN  t  d¡d }tt|dd�t  d¡ƒ tt|dgd�t  d¡ƒ tt  t j|dd�¡|ƒ tt|ddgd�t  d¡ƒ t  d¡ dd¡}t j|ddd	�}ddgddgg}t||ƒ t j|ddgdggd	�}t||ƒ t j|ddd	�}ddgddgg}t||ƒ t j|dddggd	�}t||ƒ ttt j|t  	d
¡d� tt j
t|ddd� d S )NrW   rN   r   )Úprependr]   rs   rJ   rL   )r�   rÇ  ©rV   rV   rV   )rÇ  r�   )r7   r8   r	   r   rb   r’  ru   r   ra   r@   r„   ©rd   rÛ   Úresultr¿  r=   r=   r>   Útest_prepend  s$   



zTestDiff.test_prependc                 C   s<  t  d¡}t|dd�}g d¢}t||ƒ t|dgd�}t||ƒ t|ddgd�}|dg }t||ƒ t  d¡ dd¡}t j|ddd�}dd	gdd
gg}t||ƒ t j|ddgdggd�}t||ƒ t j|ddd�}ddgdd
gg}t||ƒ t j|dddggd�}t||ƒ ttt j|t  d¡d� tt jt|ddd� d S )NrW   r   )Úappend)rN   rN   rN   rN   rN  rL   rJ   rN   )r�   rÌ  r]   rZ   rT   rÈ  rV   )rÌ  r�   )	r7   r8   r   r	   ru   r   ra   r@   r„   rÉ  r=   r=   r>   Útest_append7  s,   








zTestDiff.test_appendN)r{   r|   r}   rj   r¶  r®   rÀ  rÄ  rZ  rË  rÍ  r=   r=   r=   r>   rª  È  s    rª  c                   @   s€   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zej de dg¡dgg¡dd„ ƒZdd„ ZdS )Ú
TestDeletec                 C   s,   t  d¡| _t  d¡ d¡ ddd¡| _d S )NrW   rL   rN   )r7   r8   re   rO  ru   Únd_ar†   r=   r=   r>   Úsetup_methodV  s    zTestDelete.setup_methodc                 C   sˆ   t | j|ƒ}t | j|dd�}d| }tt|| j|f ƒ| j|d� t|dd d …df | jd|df ƒ}t|| jdd d …df |d� d S )NrN   r€   zDelete failed for obj: %r)Úerr_msgr   )r   re   rÏ  r	   r.   )rd   ÚindicesÚa_delÚnd_a_delÚmsgÚxorr=   r=   r>   Ú_check_inverse_of_slicingZ  s   ÿ$"z$TestDelete._check_inverse_of_slicingc                 C   sH   g d¢}g d¢}|D ]}|D ]}|D ]}t |||ƒ}|  |¡ qqq
d S )N)éúÿÿÿrT   r   rN   rL   rJ   rW   )rZ   r]   rN   rV   )rG  r×  )rd   ÚlimsÚstepsr»  ÚstopÚstepÚsr=   r=   r>   Útest_slicesc  s   þÿÿzTestDelete.test_slicesc                 C   sV  |   t ddgddgg¡¡ t t¡� t| jdgƒ W d   ƒ n1 s%w   Y  t t¡� t| jdgƒ W d   ƒ n1 sAw   Y  |   g d¢¡ |   g d¢¡ t t¡� t| jdƒ W d   ƒ n1 sjw   Y  t t¡� t| jd	ƒ W d   ƒ n1 s…w   Y  t t¡� t| jd	gd
 ƒ W d   ƒ d S 1 s¤w   Y  d S )Nr   rN   rL   r=  iœÿÿÿ)r   r]   rL   rL   )TFFTFTFrJ   )	r×  r7   r�   r  rU  rc  r   re   ra   r†   r=   r=   r>   Ú
test_fancyl  s$   ÿÿÿÿ"ÿzTestDelete.test_fancyc                 C   s   |   d¡ |   d¡ d S )Nr   rN  )r×  r†   r=   r=   r>   Útest_single�  s   
zTestDelete.test_singlec                 C   s‚   t  d¡}t t j¡� t|g dd� W d   ƒ n1 sw   Y  t t¡� t|g dd� W d   ƒ d S 1 s:w   Y  d S )NrN   r   r€   rT  )r7   r�   r  rU  r„   r   r:  rp   r=   r=   r>   rV  …  s   
ÿ"ÿzTestDelete.test_0dc                 C   s–   G dd„ dt jƒ}| j |¡}ttt|dƒ|ƒƒ ttt|g ƒ|ƒƒ ttt|ddgƒ|ƒƒ ttt|tddƒƒ|ƒƒ ttt|tddƒƒ|ƒƒ d S )Nc                   @   r÷   )z*TestDelete.test_subclass.<locals>.SubClassNrø   r=   r=   r=   r>   rW  �  rú   rW  r   rN   rL   rT   )r7   rû   re   rü   r   rX  r   rG  rY  r=   r=   r>   rZ  Œ  s   zTestDelete.test_subclassc                 C   sR   t  d¡jdddd�}t|tdd ƒdd�}t|jj|jjƒ t|jj|jjƒ d S )	Nr·   rL   rW   rº   r»   é<   rN   r€   )	r7   r8   ru   r   rG  r   r½   r¾   r¿   )rd   r\   r  r=   r=   r>   Útest_array_order_preserve–  s   z$TestDelete.test_array_order_preservec                 C   sŽ   t  t¡� t g d¢t ddg¡¡ W d   ƒ n1 sw   Y  t  t¡� t g d¢tjg td�¡ W d   ƒ d S 1 s@w   Y  d S )NrM   rÊ   rÈ   r  )r  rU  rc  r7   r   r�   rd  r†   r=   r=   r>   re     s   ÿ"ÿzTestDelete.test_index_floatsÚindexerrN   c                 C   sX   t | jdƒ}t | j|ƒ}t||ƒ t | jddd�}t | jt dg¡dd�}t||ƒ d S )NrN   r€   )r   re   r   rÏ  r7   r�   )rd   rã  Ú	a_del_intrÓ  Únd_a_del_intrÔ  r=   r=   r>   Útest_single_item_array¦  s   
z!TestDelete.test_single_item_arrayc                 C   s$  t t d¡t dg¡ƒ}t|t d¡ƒ t d¡}tjdgtd�}tjdgtd�}t ||dd�}t||ƒ t ||dd�}t||d d …d d…f ƒ t t¡� t t d	¡tjdgt	d�ƒ W d   ƒ n1 sgw   Y  t t¡� t t d	¡tjdgd
d�ƒ W d   ƒ d S 1 s‹w   Y  d S )NrN   F)rV   rN   r  Tr]   r€   r   rL   zm8[ns])
r   r7   rb   r�   r	   Úboolr  rU  rc  Úobject)rd   ÚresrÛ   Ú
false_maskÚ	true_maskr=   r=   r>   Útest_single_item_array_non_int°  s   

ÿ"þz)TestDelete.test_single_item_array_non_intN)r{   r|   r}   rÐ  r×  rÞ  rß  rà  rV  rZ  râ  re  r  r  r  r7   r�   ræ  rì  r=   r=   r=   r>   rÎ  T  s    		


	rÎ  c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zej dejejejejg¡dd„ ƒZej dejejejejg¡dd„ ƒZej dejejejejg¡dd„ ƒZej dejejejejg¡dd „ ƒZd!d"„ Zd#S )$ÚTestGradientc                 C   sf   ddgddgg}t  |¡}t  ddgddgg¡t  ddgddgg¡g}tt|ƒ|ƒ tt|ƒ|ƒ d S )NrN   rV   rJ   rÈ   rË   rÌ   rÊ   )r7   r�   r	   r!   ©rd   ÚvrÛ   Údxr=   r=   r>   rj   Ë  s   
ÿzTestGradient.test_basicc              	   C   sÆ   t  t  d¡¡}g d¢}t  d¡ dd¡}tt  d¡dƒ tt  d¡t  d¡ƒ tt  d¡|ƒ t|dƒ t|t  d¡ƒ t|||ƒ t||dƒ t||dd� ttd	t|t j	|gd d
d�dƒ d S )NrW   )rÊ   rÈ   rÔ   rq  ç      &@é   rË   ç      ø?rL   rN   r€   z.*scalars or 1dr]   )
r7   r’  rb   r8   ru   r!   r�   r   ra   Ústack)rd   rð  Ú	dx_unevenÚf_2dr=   r=   r>   Ú	test_argsÓ  s   
ÿzTestGradient.test_argsc                 C   sÚ   t  d¡ dd¡}t  t  d¡¡}ttt||t  d¡ƒ ttt|dt  d¡ƒ ttt|t  d¡t  d¡ƒ ttt||ƒ ttt||dd� ttt||||ƒ ttt|dddƒ ttt|||dd� ttt|dddd� d S )Nrò  rW   rL   rN   r^   r€   )	r7   r8   ru   r’  rb   r   ra   r!   r:  )rd   rö  rÛ   r=   r=   r>   Útest_badargsì  s   zTestGradient.test_badargsc                 C   sJ   t jg d¢dd�}t jg d¢dd�}tt|ƒ|ƒ t|jt  d¡kƒ d S )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  )rn  rZ   r   é   é=   iŒ  iÛ  rÁ  ©r7   r�   r	   r!   r   rê   ©rd   rÛ   rð  r=   r=   r>   Útest_datetime64ü  s   ýþzTestGradient.test_datetime64c                 C   s�   t jjddgddggddgddggd�}t|ƒd }tt|ƒt|ƒƒ t|j|juƒ t j d¡}t jj	|d< t j|dd	� t
|jg d
¢ƒ d S )NrN   rV   rJ   FrÅ  r   rW   rL   ©Ú
edge_order)FFTFF)r7   r   r�   r!   r   rý   r   Ú_maskr8   Úmaskedr	   rÆ  )rd   rÛ   r°  Úx2r=   r=   r>   Útest_masked  s   ÿzTestGradient.test_maskedc                 C   s  t  ddd¡}|d |d  }d|d  d|d   d|  }d|d  d|  d }t  t j||dd	�| d ¡}tt  |d
k ¡dkƒ t j d¡ t  t j d¡¡}d|d  d|d   d|  }d|d  d|  d }t  t j||dd	�| d ¡}tt  |d
k ¡dkƒ d S )Nr   rN   r·   rL   rV   rJ   rs   rr   rþ  g¸…ëQ¸ž?T)	r7   ÚlinspaceÚabsr!   r   r³   ÚrandomÚseedÚsort)rd   rÛ   rð  rì   Ú
analyticalÚ	num_errorr=   r=   r>   Útest_second_order_accurate  s     z'TestGradient.test_second_order_accuratec                 C   sà  t  g d¢¡}t  |d¡| dd¡ }t  g d¢¡}t  d¡}t  g d¢d¡}t  g d¢d¡}t  g d	¢d¡}t  g d
¢d¡}d|fd|ffD ]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|fd|ffD ]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dd�}
t|||ddd�}t|
d |d ƒ t|
d |d ƒ t|
d |jƒ t|
d |ƒ t|||ddd�}
t|||ddd�}t|
d |d ƒ t|
d |d ƒ t|
d |jƒ t|
d |ƒ d S )N)r   rÈ   rË   rÓ   rÔ   rÔ   )rs   rN   r]   rN   )rÌ   ç      à?rÊ   rË   rÔ   r|  rä   )rÈ   ró  rÊ   rÊ   r  rÌ   )ç      @ró  rÊ   rÊ   r  ç      à¿)rÓ   rË   ç333333û?r  ç      Ð?rÌ   )rÔ   rË   r  r  r  g      Ð¿rL   rÊ   r^   )r�   rÿ  r   r_   )r7   r�   Útileru   r8   r!   r	   r
   rQ  r   rB   )rd   Ú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   
ÿÿ

ÿÿ
zTestGradient.test_spacingc                 C   s@  ddgddgg}t  |¡}t  ddgddgg¡t  ddgddgg¡g}tt|dd	�|d ƒ tt|dd	�|d ƒ tt|d
d	�|d ƒ tt|dd	�|d |d gƒ tt|d d	�|d |d gƒ tt|d d	�t|ƒƒ tt|dddd	�|d d |d d gƒ ttt|dddd	� tt jt|dd	� tt jt|dd	� d S )NrN   rV   rJ   rÈ   rË   rÌ   rÊ   r   r€   r]   r_   rL   rZ   )r7   r�   r	   r!   r
   r   r:  r„   rî  r=   r=   r>   Útest_specific_axesk  s"   
ÿÿzTestGradient.test_specific_axesc                 C   sJ   t jg d¢dd�}t jg d¢dd�}tt|ƒ|ƒ t|jt  d¡kƒ d S )N)rn  rZ   r·   r*  rú  iA  é,  rÁ  r  )rL   rt   rt   rò  éš   éw   iëÿÿÿrû  rü  r=   r=   r>   Útest_timedelta64…  s   þþzTestGradient.test_timedelta64c                 C   sD   t jt jt jfD ]}t jg d¢|d�}tt|ƒjt  |¡jƒ qd S )Nr™   r  )	r7   Úfloat16rè   ré   r�   r   r!   rê   r   )rd   ÚdtrÛ   r=   r=   r>   Útest_inexact_dtypes�  s   ýz TestGradient.test_inexact_dtypesc                 C   s–   t t d¡dd� t t d¡dd� ttt t d¡dd� ttt t d¡dd� ttt t d¡dd� ttt t d¡dd� ttt t d¡dd� d S )NrL   rN   rþ  rV   r   )r!   r7   r8   r   ra   r†   r=   r=   r>   Útest_values–  s   zTestGradient.test_valuesÚf_dtypec                 C   s2   t jg d¢|d�}t|ƒ}t|dgt|ƒ ƒ d S )N)rW   rJ   rV   rL   rN   r  r]   ©r7   r�   r!   r	   r  )rd   r'  r  Úgr=   r=   r>   Útest_f_decreasing_unsigned_int¢  s   z+TestGradient.test_f_decreasing_unsigned_intc                 C   sR   t  |¡j}t  ddg¡}t jd|g|d�}t||ƒ}t||d d gd ƒ d S )NrN   rV   r]   r  rL   )r7   Úiinfor¾  r�   r!   r	   )rd   r'  ÚmaxintrÛ   r  Údfdxr=   r=   r>   Útest_f_signed_int_big_jump©  s
   
z'TestGradient.test_f_signed_int_big_jumpÚx_dtypec                 C   sB   t jg d¢|d�}t  g d¢¡}t||ƒ}t|dgt|ƒ ƒ d S )Nr›   r  ©r   rL   rJ   rT   r(  )rd   r/  rÛ   r  r-  r=   r=   r>   Útest_x_decreasing_unsigned²  s   
z'TestGradient.test_x_decreasing_unsignedc                 C   sX   t  |¡j}t  |¡j}t jd|g|d�}t  |d dg¡}t||ƒ}t|ddgƒ d S )Nr]   r  rL   r   r  )r7   r+  Úminr¾  r�   r!   r	   )rd   r/  Úminintr,  rÛ   r  r-  r=   r=   r>   Útest_x_signed_int_big_jumpº  s   
z'TestGradient.test_x_signed_int_big_jumpc                 C   sF   t  ddgddgf¡}t  ¡ rt|ƒtu sJ ‚d S t|ƒtu s!J ‚d S )NrN   rL   rV   )r7   r!   Ú_using_numpy2_behaviorrý   Útupler¼  ©rd   ré  r=   r=   r>   Útest_return_typeÄ  s   zTestGradient.test_return_typeN)r{   r|   r}   rj   r÷  rø  rý  r  r  r  r  r"  r%  r&  r  r  r  r7   r;  r�  r�  Úuint64r*  r/  rŒ  rŽ  Úint64r.  r1  r4  r8  r=   r=   r=   r>   rí  É  s:    @ÿ
ÿ
ÿ
ÿ
rí  c                   @   r    )Ú	TestAnglec                 C   s¸   dt  d¡d dt  d¡ d  dddddd	g}t|ƒ}t  d
¡t  d¡dt jd t jt j d t  d
¡ t jt  d
¡ g}t|dd�}t  |¡d t j }t||dƒ t||dƒ d S )Nù      ð?      @rL   rÈ   r.  rN   r]   ù       €      ð¿ù      ð?      Ày      ð¿      @rË   rÊ   r   T)ÚdegrŸ  rÒ   )r7   Úsqrtr   ÚarctanÚpir�   r   )rd   rÛ   rì   ÚyoÚzÚzor=   r=   r>   rj   Î  s    ÿ ýzTestAngle.test_basicc                 C   sŒ   t j ddt  d¡d d g¡}t jj|d< t j t  d¡dt  d¡g¡}t jj|d< t|ƒ}tt|ƒt|ƒƒ t|j	|j	ƒ t||ƒ d S )Nr<  rN   rL   ù      ð?      ð?rË   r   rÊ   )
r7   r   r�   r@  r  rA  r   r   rý   rÆ  )rd   rÛ   r¿  rî   r=   r=   r>   rZ  Û  s    zTestAngle.test_subclassN)r{   r|   r}   rj   rZ  r=   r=   r=   r>   r;  Ì  ó    r;  c                	   @   s²   e Zd Ze g d¢¡Ze e¡Ze e	¡Z
e e¡Zdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zej de g d¢¡e g d¢¡e g d¢¡g¡dd„ ƒZdd„ Zdd„ ZdS )ÚTestTrimZeros)r   r   rN   r   rL   rV   rJ   r   c                    s   d}‡ fdd„|D ƒS )N)re   r‰   rž   r4  c                 3   s   � | ]}t ˆ |ƒV  qd S r6   )Úgetattr)r  Únamer†   r=   r>   Ú	<genexpr>ï  ó   € z'TestTrimZeros.values.<locals>.<genexpr>r=   )rd   Ú
attr_namesr=   r†   r>   r!  í  s   zTestTrimZeros.valuesc                 C   s6   t jdd… }|  ¡ D ]}t|ƒ}t||| ƒ qd S )NrL   r]   ©r7   Ús_r!  r1   r	   ©rd   ÚslcÚarrré  r=   r=   r>   rj   ñ  s
   þzTestTrimZeros.test_basicc                 C   s:   t jd d… }|  ¡ D ]}t|dd�}t||| ƒ qd S )Nr]   r‰   ©ÚtrimrN  rP  r=   r=   r>   Útest_leading_skip÷  ó
   þzTestTrimZeros.test_leading_skipc                 C   s:   t jdd … }|  ¡ D ]}t|dd�}t||| ƒ qd S )NrL   rº   rS  rN  rP  r=   r=   r>   Útest_trailing_skipý  rV  z TestTrimZeros.test_trailing_skipc                 C   sZ   |   ¡ D ]&}tj||jd�}t|dd�}t|ƒdksJ ‚t|dd�}t|ƒdks*J ‚qd S )Nr  ÚBrS  r   r  )r!  r7   Ú
zeros_likerê   r1   r  )rd   Ú_arrrR  r  r  r=   r=   r>   Útest_all_zero  s   ùzTestTrimZeros.test_all_zeroc                 C   s    t  d¡}t|ƒ}t||ƒ d S r8  )r7   r@   r1   r	   ©rd   rR  ré  r=   r=   r>   Útest_size_zero  s   
zTestTrimZeros.test_size_zerorR  )r   l            r   )r   l            r   )r   l            r   c                 C   s(   t jdd… }t|ƒ}t||| ƒ d S )NrN   rL   )r7   rO  r1   r	   )rd   rR  rQ  ré  r=   r=   r>   Útest_overflow  s   zTestTrimZeros.test_overflowc                 C   s$   t  g d¢¡}t|ƒ}t||ƒ d S )N)NrN   N)r7   r�   r1   r	   r\  r=   r=   r>   Útest_no_trim  s   zTestTrimZeros.test_no_trimc                 C   s    t | j ¡ ƒ}t|tƒsJ ‚d S r6   )r1   re   ÚtolistrX  r¼  r7  r=   r=   r>   Útest_list_to_list"  s   zTestTrimZeros.test_list_to_listN)r{   r|   r}   r7   r�   re   rç   rd  r‰   Úcomplexrž   rè  r4  r!  rj   rU  rW  r[  r]  r  r  r  r^  r_  ra  r=   r=   r=   r>   rH  æ  s*    



þþ
rH  c                   @   rH   )Ú
TestExtinsc                 C   s.   t  g d¢¡}t|dk|ƒ}t|g d¢ƒ d S )N)rN   rV   rL   rN   rL   rV   rV   rN   )rV   rL   rL   rV   rV   )r7   r�   r   r	   rˆ   r=   r=   r>   rj   )  s   zTestExtins.test_basicc                    sÖ   t ttg d¢ddgddgƒ t g d¢¡‰ tˆ g d¢g d¢ƒ tˆ g d	¢ƒ tˆ t d
¡g ƒ tˆ t dd¡ƒ tˆ g d¢ddgƒ tˆ g d¢ƒ tt	d‡ fdd„ƒ t ddg¡‰ tˆ ddgdƒ tˆ ddgƒ d S )Nr™   TFr   rN   )rN   rJ   rV   rL   rW   rr   rt   )r   rN   r   rN   r   rN   r   ©rL   rJ   rs   )rN   rL   rV   rJ   rW   rs   rt   rt   rr   )rN   r   rN   r   rN   r   rN   r  )rr   rL   r  rJ   rr   rs   r  z!Cannot insert from an empty arrayc                      s   t ˆ g d¢g ƒS )N)r   r   r   r   r   rN   r   )r+   r=   ©re   r=   r>   Ú<lambda>=  s    z'TestExtins.test_place.<locals>.<lambda>Ú12Ú34Ú9)
r   r:  r+   r7   r�   r	   r@   r8   r   ra   r†   r=   re  r>   Ú
test_place.  s   
ÿzTestExtins.test_placec                 C   sH   t dƒ}|dk}| ¡ }t||ƒ}t||dƒ t|||ƒ t||ƒ d S )Nr·   r  r   )r   r¸   r   r+   r	   )rd   re   rÆ  Úacrž   r=   r=   r>   Ú	test_bothD  s   
zTestExtins.test_bothN)r{   r|   r}   rj   rj  rl  r=   r=   r=   r>   rc  '  s    rc  rÊ   c                 C   s   |t  | ¡ S r6   ©ÚmathÚfloor©rÛ   rì   r=   r=   r>   Ú_foo1P  ó   rq  rÌ   c                 C   s   |t  | ¡ | S r6   rm  )rÛ   rì   rD  r=   r=   r>   Ú_foo2T  s   rs  c                   @   sd  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dCdD„ Z$dEdF„ Z%dGdH„ Z&dIdJ„ Z'dKdL„ Z(dMdN„ Z)dOdP„ Z*dQdR„ Z+dSdT„ Z,dUdV„ Z-dWS )XÚTestVectorizec                 C   s4   dd„ }t |ƒ}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   ó   | |kr| | S | | S r6   r=   ©re   r‰   r=   r=   r>   Úaddsubtract[  ó   z.TestVectorize.test_simple.<locals>.addsubtract©r   rV   rs   r  ©rN   rV   rW   rt   ©rN   rs   rN   rL   ©r4   r	   ©rd   rw  r  rR  r=   r=   r>   Útest_simpleZ  s   zTestVectorize.test_simplec                 C   s0   dd„ }t |ƒ}|g d¢dƒ}t|g d¢ƒ d S )Nc                 S   ru  r6   r=   rv  r=   r=   r>   rw  f  rx  z.TestVectorize.test_scalar.<locals>.addsubtractry  rW   )rW   rr   rN   rJ   r|  r}  r=   r=   r>   Útest_scalare  s   zTestVectorize.test_scalarc                 C   s0   t  ddd¡}tdd„ ƒ}||ƒ}t||ƒ d S )NrZ   rL   i'  c                 S   ó   | S r6   r=   r¹  r=   r=   r>   rf  r  ó    z*TestVectorize.test_large.<locals>.<lambda>)r7   r  r4   r	   )rd   rÛ   r  rì   r=   r=   r>   Ú
test_largep  s   zTestVectorize.test_largec                 C   sR   t tjƒ}t ddtj tjdtj dtj g¡}||ƒ}t |¡}t||ƒ d S )Nr   r  ró  rL   )r4   rn  Úcosr7   r�   rB  r   )rd   r  ÚargsÚr1Úr2r=   r=   r>   Ú
test_ufuncv  s
   
(
zTestVectorize.test_ufuncc                 C   sf   ddd„}t |ƒ}t g d¢¡}||ƒ}t g d¢¡}t||ƒ ||dƒ}t g d¢¡}t||ƒ d S )	NrN   c                 S   ó   | | S r6   r=   rv  r=   r=   r>   r]    ó   z(TestVectorize.test_keywords.<locals>.foor™   rå   rL   rU   r  ©r4   r7   r�   r	   ©rd   r]  r  r„  r…  r†  r=   r=   r>   Útest_keywords}  s   


zTestVectorize.test_keywordsc                 C   s:   t ttgd�}|t d¡dƒ}|t d¡ƒ}t||ƒ d S ©N©ÚotypesrË   rÊ   ©r4   rq  rd  r7   r8   r	   ©rd   r  r…  r†  r=   r=   r>   Ú test_keywords_with_otypes_order1‹  s   z.TestVectorize.test_keywords_with_otypes_order1c                 C   s:   t ttgd�}|t d¡ƒ}|t d¡dƒ}t||ƒ d S r�  r�  r‘  r=   r=   r>   Ú test_keywords_with_otypes_order2•  s   z.TestVectorize.test_keywords_with_otypes_order2c                 C   sT   t ttgd�}|t d¡ƒ}|t d¡dd�}|t d¡ƒ}t||ƒ t||ƒ d S )NrŽ  rË   rÊ   ©rì   r�  ©rd   r  r…  r†  Úr3r=   r=   r>   Ú test_keywords_with_otypes_order3   s   
z.TestVectorize.test_keywords_with_otypes_order3c                 C   sd   t ttgd�}|ddd�}|ddd�}|dƒ}t|tddd�ƒ t|tddd�ƒ t|tdƒƒ d S )NrŽ  çÍÌÌÌÌÌ$@r=  )rD  r]   r”  ©r4   rs  rd  r   r•  r=   r=   r>   Ú+test_keywords_with_otypes_several_kwd_args1¬  s   z9TestVectorize.test_keywords_with_otypes_several_kwd_args1c                 C   sR   t ttgd�}|dddd�}|dddƒ}t|tdddd�ƒ t|tdddƒƒ d S )	NrŽ  r=  r˜  r]   )rD  rÛ   rì   rN   rL   rV   r™  r‘  r=   r=   r>   Ú+test_keywords_with_otypes_several_kwd_args2¹  s
   z9TestVectorize.test_keywords_with_otypes_several_kwd_args2c                 C   s.   dd l }zt|jƒ W d S  ty   tƒ ‚w r8  )r  r4   Ú	randrangeÚ	ExceptionÚAssertionError)rd   r  r=   r=   r>   Útest_keywords_no_func_codeÄ  s   ÿz(TestVectorize.test_keywords_no_func_codec                 C   s€   ddd„}t |ƒ}t g d¢¡}||d�}t g d¢¡}t||ƒ |d|d�}t||ƒ ||dd	�}t g d
¢¡}t||ƒ d S )NrN   c                 S   rˆ  r6   r=   rv  r=   r=   r>   r]  Ñ  r‰  z5TestVectorize.test_keywords2_ticket_2100.<locals>.foor™   re  rå   )r‰   re   rL   ©r‰   rU   r  rŠ  r‹  r=   r=   r>   Útest_keywords2_ticket_2100Î  s   



z(TestVectorize.test_keywords2_ticket_2100c                 C   sr   dd„ }t j|ddgd�}ddg}t||ddgg d	¢d
�ƒ t||ddgg d	¢d�ƒ t||ddgg d	¢ƒƒ d S )Nc                 S   s0   t |ƒ}| d¡}|r||  | d¡ }|s|S r8  )r¼  Úpop)rÛ   ÚpÚ_pré  r=   r=   r>   Ú	mypolyvalá  s   
ÿz;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyvalr£  rN   )ÚexcludedrV   rs   r   r™   )rÛ   r£  )r£  )r7   r4   r	   )rd   r¥  ÚvpolyvalÚansr=   r=   r>   Útest_keywords3_ticket_2100ß  s   z(TestVectorize.test_keywords3_ticket_2100c                 C   s.   t dd„ ƒ}t|ddgddgd�ddgƒ d S )	Nc                  [   s   d}| D ]}|| | 9 }q|S ©NrÊ   r=   )Úkwré  Ú_kr=   r=   r>   r  ð  s   z3TestVectorize.test_keywords4_ticket_2100.<locals>.frN   rL   rV   rJ   rv  rr   r|  ©rd   r  r=   r=   r>   Útest_keywords4_ticket_2100î  s   
"z(TestVectorize.test_keywords4_ticket_2100c                 C   s,   t dd„ ƒ}t|ddgddgƒddgƒ d S )Nc                  W   ó
   t  | ¡S r6   )r7   r£  )rï  r=   r=   r>   r  û  s   
z3TestVectorize.test_keywords5_ticket_2100.<locals>.frN   rL   rV   rJ   rr   r|  r­  r=   r=   r>   Útest_keywords5_ticket_2100ù  s   
 z(TestVectorize.test_keywords5_ticket_2100c                 C   s    dd„ }t |ƒ}t|ƒ dƒ d S )Nc                   S   ó   dS ©NrN   r=   r=   r=   r=   r>   r]    ó   z5TestVectorize.test_coverage1_ticket_2100.<locals>.foorN   r|  ©rd   r]  r  r=   r=   r>   Útest_coverage1_ticket_2100  s   z(TestVectorize.test_coverage1_ticket_2100c                 C   s>   dd„ }t |ƒ}t|j|jƒ d}t ||d�}t|j|ƒ d S )Nc                 S   r€  )zOriginal documentationr=   r¹  r=   r=   r>   r]  	  ó   z3TestVectorize.test_assigning_docstring.<locals>.foozProvided documentation)Údoc)r4   r   Ú__doc__)rd   r]  r  r·  r=   r=   r>   Útest_assigning_docstring  s   z&TestVectorize.test_assigning_docstringc                 C   s`   G dd„ dƒ}t t|ƒ jƒt d¡ƒt d¡d ƒ t t|jƒ|ƒ t d¡ƒt d¡d ƒ d S )Nc                   @   s   e Zd ZdZdd„ ZdS )z9TestVectorize.test_UnboundMethod_ticket_1156.<locals>.FoorL   c                 S   s
   || j  S r6   r   rp   r=   r=   r>   r^    s   
z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.barN)r{   r|   r}   r‰   r^  r=   r=   r=   r>   ÚFoo  s    rº  r  rL   )r	   r4   r^  r7   r8   )rd   rº  r=   r=   r>   Útest_UnboundMethod_ticket_1156  s   ÿÿz,TestVectorize.test_UnboundMethod_ticket_1156c                 C   sl   t dd„ ƒ}|t d¡ƒ}|t dd¡ƒ}t dd„ ƒ}|t dd¡ƒ}|t d¡ƒ}t||ƒ t||ƒ d S )Nc                 S   r€  r6   r=   r¹  r=   r=   r>   rf  #  r�  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>rV   r¯  c                 S   r€  r6   r=   r¹  r=   r=   r>   rf  &  r�  )r4   r7   r8   r   )rd   Úf1Úres1aÚres1bÚf2Úres2bÚres2ar=   r=   r>   Ú test_execution_order_ticket_1487!  s   
z.TestVectorize.test_execution_order_ticket_1487c                 C   s$   t  dd„ ¡}d}t|||ƒƒ d S )Nc                 S   r€  r6   r=   r¹  r=   r=   r>   rf  .  r�  z7TestVectorize.test_string_ticket_1892.<locals>.<lambda>Úd0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r7   r4   r   )rd   r  rÝ  r=   r=   r>   Útest_string_ticket_1892,  s   z%TestVectorize.test_string_ticket_1892c                    sN   dg‰ t ‡ fdd„ƒ}d|_t d¡}t||ƒ|| ƒ tˆ d t|ƒƒ d S )Nr   c                    s   ˆ d  d7  < | d S )Nr   rN   rL   r=   r¹  ©Ú_callsr=   r>   r  6  s   z#TestVectorize.test_cache.<locals>.fTrW   )r4   Úcacher7   r8   r	   r   r  ©rd   r  rÛ   r=   rÅ  r>   Ú
test_cache2  s   
zTestVectorize.test_cachec                 C   s0   t  dd„ ¡}d|_t  d¡}t||ƒ|ƒ d S )Nc                 S   r€  r6   r=   r¹  r=   r=   r>   rf  A  r�  z+TestVectorize.test_otypes.<locals>.<lambda>r—   rW   )r7   r4   r�  r8   r	   rÈ  r=   r=   r>   Útest_otypes@  s   
zTestVectorize.test_otypesc                 C   sÈ  t t d¡dgdgfƒ t t d¡dgdgfƒ t t d¡ddgdgfƒ t t d¡dgdgfƒ t t d	¡dgddgfƒ t t d
¡g d¢dgfƒ t t d¡dgdgfƒ t t d¡dgdgfƒ t t d¡ddgdgfƒ t t d¡dgdgfƒ t t d¡dgddgfƒ t t d¡g d¢dgfƒ ttƒ� t d¡ W d   ƒ n1 sªw   Y  ttƒ� t d¡ W d   ƒ n1 sÃw   Y  ttƒ� t d¡ W d   ƒ d S 1 sÝw   Y  d S )Nz(x)->()r¹  r=   z	(x,y)->()rp  z(x),(y)->()r”  z(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r=   )re   r‰   rž   )r4  )r4  Úez(x )->()z( x , y )->(  )z(x),( y) ->()z(  x)-> (y )  z (x)->( y),( )z*(  ), ( a,  b,c )  ,(  d)   ->   (d  ,  e)z
(x)(y)->()z	(x),(y)->z
((x))->(x))r   ÚnfbÚ_parse_gufunc_signaturer   ra   r†   r=   r=   r>   Útest_parse_gufunc_signatureF  sV   

ÿ
ÿ

ÿ
ÿ
ÿ

ÿ
ÿ

ÿ
ÿÿþ
ÿ
ÿ
"ÿz)TestVectorize.test_parse_gufunc_signaturec                 C   s8   dd„ }t |dd�}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   ru  r6   r=   rv  r=   r=   r>   rw  i  rx  z8TestVectorize.test_signature_simple.<locals>.addsubtractz	(),()->()©Ú	signaturery  rz  r{  r|  r}  r=   r=   r>   Útest_signature_simpleh  s   z#TestVectorize.test_signature_simplec                 C   s:   dd„ }t |dd�}|ddgddggƒ}t|ddgƒ d S )	Nc                 S   s   |   ¡ S r6   ©rÍ   re  r=   r=   r>   rÍ   t  r‰  z4TestVectorize.test_signature_mean_last.<locals>.meanz(n)->()rÏ  rN   rV   rL   rJ   r|  )rd   rÍ   r  rR  r=   r=   r>   Útest_signature_mean_lasts  s   z&TestVectorize.test_signature_mean_lastc                 C   sB   dd„ }t |dd�}|ddgddggƒ}t|d	dgd	dggƒ d S )
Nc                 S   s   | |   ¡  S r6   rÒ  re  r=   r=   r>   Úcenter|  s   z3TestVectorize.test_signature_center.<locals>.centerú(n)->(n)rÏ  rN   rV   rL   rJ   r]   r|  )rd   rÔ  r  rR  r=   r=   r>   Útest_signature_center{  s   z#TestVectorize.test_signature_centerc                 C   s^   t dd„ dd�}|g d¢ƒ}tt|tƒot|ƒdkƒ t|d g d¢ƒ t|d g d¢ƒ d S )	Nc                 S   ó   | | fS r6   r=   r¹  r=   r=   r>   rf  „  ó    z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>ú	()->(),()rÏ  r™   rL   r   rN   )r4   r   rX  r6  r  r	   ©rd   r  rR  r=   r=   r>   Útest_signature_two_outputsƒ  s
   z(TestVectorize.test_signature_two_outputsc                 C   sê   t tjdd�}|ddgg d¢ƒ}t|g d¢g d¢gƒ |ddgggg d¢ƒ}t|g d¢g d¢gggƒ |ddgddggg d¢ƒ}t|g d¢g d¢gg d¢g d¢ggƒ |ddgg d¢g d¢gƒ}t|g d¢g d¢gg d¢g d¢ggƒ d S )	Nz(a),(b)->(a,b)rÏ  rN   rL   r™   rd  r   r©   )r4   r7   r:   r	   rÚ  r=   r=   r>   Útest_signature_outerŠ  s   ÿ
ÿz"TestVectorize.test_signature_outerc                 C   sX   t dd„ dd�}|g d¢ƒ}t|ddgƒ |g d¢g d¢gƒ}t|ddgdd	ggƒ d S )
Nc                 S   ó   | d d… S ©Nr]   r=   r¹  r=   r=   r>   rf  ›  ó    z<TestVectorize.test_signature_computed_size.<locals>.<lambda>z(n)->(m)rÏ  r™   rN   rL   rå   rV   r|  rÚ  r=   r=   r>   Útest_signature_computed_sizeš  s
   z*TestVectorize.test_signature_computed_sizec                 C   sN   ddd„}t |ddhd�}t|g d¢ƒg d¢ƒ t|g d¢d	d
�g d¢ƒ d S )NrN   c                 S   rˆ  r6   r=   rv  r=   r=   r>   r]  ¤  r‰  z2TestVectorize.test_signature_excluded.<locals>.fooú()->()r‰   )rÐ  r¦  r™   rå   r   r   r  r|  r´  r=   r=   r>   Útest_signature_excluded¢  s   
z%TestVectorize.test_signature_excludedc                 C   sD   t dd„ ddgd�}|g d¢ƒ}t|jt d¡ƒ t|g d¢ƒ d S )Nc                 S   r€  r6   r=   r¹  r=   r=   r>   rf  ¬  r�  z5TestVectorize.test_signature_otypes.<locals>.<lambda>rÕ  ré   ©rÐ  r�  r™   )r4   r   rê   r7   r	   rÚ  r=   r=   r>   Útest_signature_otypes«  s   z#TestVectorize.test_signature_otypesc                 C   sü   t tjdd�}ttdƒ� |ddgƒ W d   ƒ n1 sw   Y  ttdƒ� |ddƒ W d   ƒ n1 s7w   Y  ttdƒ� |ddgg d¢ƒ W d   ƒ n1 sUw   Y  t tjd	d�}ttdƒ� |ddƒ W d   ƒ d S 1 sww   Y  d S )
Nz(n),(n)->(n)rÏ  zwrong number of positionalrN   rL   zdoes not have enough dimensionsú$inconsistent size for core dimensionr™   rá  )r4   Úoperatorr9   r   r:  ra   r­  r=   r=   r>   Útest_signature_invalid_inputs±  s$   ÿÿþÿþ"ÿz+TestVectorize.test_signature_invalid_inputsc                 C   sÔ   t dd„ dd�}ttdƒ� |g d¢ƒ W d   ƒ n1 sw   Y  t dd„ dd�}ttd	ƒ� |d
ƒ W d   ƒ n1 s?w   Y  t dd„ dd�}ttd	ƒ� |d
dgƒ W d   ƒ d S 1 scw   Y  d S )Nc                 S   rÝ  rÞ  r=   r¹  r=   r=   r>   rf  Â  rß  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>rÕ  rÏ  rå  r™   c                 S   r€  r6   r=   r¹  r=   r=   r>   rf  Ç  r�  rÙ  zwrong number of outputsrN   c                 S   r×  r6   r=   r¹  r=   r=   r>   rf  Ë  rØ  rá  rL   )r4   r   ra   r­  r=   r=   r>   Útest_signature_invalid_outputsÀ  s   ÿþ
ÿ"ÿz,TestVectorize.test_signature_invalid_outputsc                 C   s^  t  dd„ ¡}t jddgtd�}ttdƒ� ||ƒ W d   ƒ n1 s$w   Y  d|_t||ƒ|ƒ t jdd„ d	d
�}ttdƒ� ||ƒ W d   ƒ n1 sPw   Y  t jdd„ d	dd�}t||ƒ|ƒ t jdd„ ddd�}t||ƒ|ƒ t jdd„ dd
�}t||jƒ|jƒ t jdd„ ddd�}ttdƒ� ||ƒ W d   ƒ d S 1 s¨w   Y  d S )Nc                 S   r€  r6   r=   r¹  r=   r=   r>   rf  Ñ  r�  z5TestVectorize.test_size_zero_output.<locals>.<lambda>r   rW   r  r�  r—   c                 S   r€  r6   r=   r¹  r=   r=   r>   rf  Ù  r�  rá  rÏ  c                 S   r€  r6   r=   r¹  r=   r=   r>   rf  Ý  r�  rã  c                 S   r€  r6   r=   r¹  r=   r=   r>   rf  à  r�  rÕ  c                 S   r€  r6   r=   r¹  r=   r=   r>   rf  ã  r�  c                 S   s   | gS r6   r=   r¹  r=   r=   r>   rf  æ  s    z()->(n)znew output dimensions)	r7   r4   r@   Úintr   ra   r�  r	   rQ  rÈ  r=   r=   r>   Útest_size_zero_outputÏ  s*   
ÿ
ÿ
"ÿz#TestVectorize.test_size_zero_outputc                 C   sÒ   G dd„ dt jƒ}t  g d¢g d¢g d¢g¡ |¡}t  g d¢g d¢g d¢g¡ |¡}t jt jd	d
�}|||ƒ}tt|ƒ|ƒ t|g d¢g d¢g d¢gƒ t  dd„ ¡}|||ƒ}tt|ƒ|ƒ t||| ƒ d S )Nc                   @   r÷   )z/TestVectorize.test_subclasses.<locals>.subclassNrø   r=   r=   r=   r>   rù   ë  rú   rù   )rÊ   rÌ   rÌ   rB  )rÌ   rÊ   rÌ   rÉ   )rÓ   rÔ   rä   )r|  rÑ   rq  z(m,m),(m)->(m)rÏ  )rÊ   rË   rÈ   )rÓ   rä   rÔ   )r|  rq  rÑ   c                 S   s   | | S r6   r=   rp  r=   r=   r>   rf  ù  rØ  z/TestVectorize.test_subclasses.<locals>.<lambda>)r7   rû   r�   rü   r4   Úmatmulr   rý   )rd   rù   r  rï  ÚmatvecrR  Úmultr=   r=   r>   rþ   ê  s    
þþ"

zTestVectorize.test_subclassesc                 C   s    t jdd„ ƒ}|jdksJ ‚d S )Nc                 S   rˆ  r6   r=   rv  r=   r=   r>   r¿     s   z#TestVectorize.test_name.<locals>.f2r¿  )r7   r4   r{   )rd   r¿  r=   r=   r>   Ú	test_nameþ  s   
zTestVectorize.test_namec                 C   s0   t dd„ ƒ}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   ru  r6   r=   rv  r=   r=   r>   rw    s   z1TestVectorize.test_decorator.<locals>.addsubtractry  rz  r{  r|  )rd   rw  rR  r=   r=   r>   Útest_decorator  s   
zTestVectorize.test_decoratorc                 C   s.   t dd„ ƒ}tjjdk r|jdksJ ‚d S d S )Nc                 S   r€  )Ú	Docstringr=   r¹  r=   r=   r>   r    s   z'TestVectorize.test_docstring.<locals>.frL   rð  )r4   Úsysr½   Úoptimizer¸  r­  r=   r=   r>   Útest_docstring  s   
ÿzTestVectorize.test_docstringc                 C   s0   dd„ }t |dƒ}t |¡}|dƒdksJ ‚d S )Nc                 S   rˆ  r6   r=   rp  r=   r=   r>   r]    r‰  z'TestVectorize.test_partial.<locals>.foorV   rN   rJ   )r   r7   r4   )rd   r]  r^  Úvbarr=   r=   r>   Útest_partial  s   

zTestVectorize.test_partialc                 C   sT   t ddgd�dd„ ƒ}|g d¢ƒ}t|jt d¡ƒ t|g d¢ƒ |jdks(J ‚d S )NrÕ  ré   rã  c                 S   r€  r6   r=   r¹  r=   r=   r>   r  #  r¶  z8TestVectorize.test_signature_otypes_decorator.<locals>.fr™   r  )r4   r   rê   r7   r	   r{   rÚ  r=   r=   r>   Útest_signature_otypes_decorator"  s   
z-TestVectorize.test_signature_otypes_decoratorc                 C   s:   t tƒ� tjdd�}W d   ƒ d S 1 sw   Y  d S )NrV   )Úpyfunc©r   r:  r7   r4   ©rd   ÚAr=   r=   r>   Útest_bad_input,  s   
"ÿzTestVectorize.test_bad_inputc                 C   s@   t tƒ� t d¡dd„ ƒ}W d   ƒ d S 1 sw   Y  d S )NÚstringc                   S   r±  )Nr^  r=   r=   r=   r=   r>   r]  2  r¶  z+TestVectorize.test_no_keywords.<locals>.foorø  )rd   r]  r=   r=   r>   Útest_no_keywords0  s   
"þzTestVectorize.test_no_keywordsc                 C   s0   t dd„ dgƒ}|dgƒ}t|jt d¡ƒ d S )Nc                 S   r€  r6   r=   r¹  r=   r=   r>   rf  :  r�  z?TestVectorize.test_positional_regression_9477.<locals>.<lambda>ré   rL   )r4   r   rê   r7   rÚ  r=   r=   r>   Útest_positional_regression_94776  s   
z-TestVectorize.test_positional_regression_9477N).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Ö  rÛ  rÜ  rà  râ  rä  rç  rè  rê  rþ   rî  rï  ró  rõ  rö  rû  rý  rþ  r=   r=   r=   r>   rt  X  sX    

"		
rt  c                   @   sL   e Zd ZG dd„ dƒZejje dd�ej ddej	fdg¡dd	„ ƒƒZ
d
S )Ú	TestLeaksc                   @   s$   e Zd ZdZdd„ Zedd„ ƒZdS )zTestLeaks.Arb  c                 G   r±  r8  r=   ©rd   r„  r=   r=   r>   ÚboundC  r³  zTestLeaks.A.boundc                  G   r±  r8  r=   )r„  r=   r=   r>   ÚunboundF  r¶  zTestLeaks.A.unboundN)r{   r|   r}   Úitersr  Ústaticmethodr  r=   r=   r=   r>   rú  @  s
    rú  úPython lacks refcounts©Úreasonz
name, incrr  )r  r   c           	      C   s¾   dd l }t| j|ƒ}| ¡  zKt |¡}t| jjƒD ]}|  ¡ }t 	t||ƒdd¡|_
| 
t d¡¡}qd }tt |¡|| ƒ tdƒD ]}| ¡  qDtt |¡|ƒ W | ¡  d S | ¡  w )Nr   rN   r·   rW   )ÚgcrI  rú  Údisablerñ  Úgetrefcountrc   r  r7   Ú
frompyfuncr  r8   r   ÚcollectÚenable)	rd   rJ  Úincrr  ÚA_funcÚrefcountr—   re   r°  r=   r=   r>   Útest_frompyfunc_leaksJ  s   

zTestLeaks.test_frompyfunc_leaksN)r{   r|   r}   rú  r  r  Úskipifr   r  r  r  r=   r=   r=   r>   rÿ  ?  s    
þrÿ  c                   @   sz   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zejjdd�dd„ ƒZdS )ÚTestDigitizec                 C   s2   t  dd¡}t  dd¡}tt||ƒt  d¡ƒ d S )NrØ  rW   rn  rÒ   ©r7   r8   r	   r   ©rd   rÛ   Úbinsr=   r=   r>   Útest_forwardj  s   zTestDigitize.test_forwardc                 C   s6   t  ddd¡}t  ddd¡}tt||ƒt  d¡ƒ d S )NrW   rØ  r]   rn  rÒ   r  r  r=   r=   r>   Útest_reverseo  s   zTestDigitize.test_reversec                 C   s:   t dƒ}t | ¡ | ¡ d¡}tt t||ƒdk¡ƒ d S )Nr·   r   ©r   r7   r  r2  r¾  r   r³   r   )rd   rÛ   Úbinr=   r=   r>   Útest_randomt  s   zTestDigitize.test_randomc                 C   sF   g d¢}g d¢}g d¢}t t||ƒ|ƒ g d¢}t t||dƒ|ƒ d S )N)rN   rW   rJ   r·   rr   rÒ   r   )rN   rW   r·   )rN   rL   rN   rV   rL   rV   r   )r   rN   rN   rL   rL   rV   r   T)r	   r   )rd   rÛ   r  Údefault_answerÚright_answerr=   r=   r>   Útest_right_basicy  s   zTestDigitize.test_right_basicc                 C   s4   t  dd¡}t  dd¡}tt||dƒt  d¡ƒ d S )NrØ  rW   rJ   TrÒ   r  r  r=   r=   r>   Útest_right_open�  s   zTestDigitize.test_right_openc                 C   s8   t  ddd¡}t  ddd¡}tt||dƒt  d¡ƒ d S )NrW   rØ  r]   rJ   TrÒ   r  r  r=   r=   r>   Útest_right_open_reverse†  s   z$TestDigitize.test_right_open_reversec                 C   s<   t dƒ}t | ¡ | ¡ d¡}tt t||dƒdk¡ƒ d S )Nr·   Tr  r  r=   r=   r>   Útest_right_open_random‹  s   z#TestDigitize.test_right_open_randomc                 C   sÔ   g d¢}g d¢}t t||dƒg d¢ƒ t t||dƒg d¢ƒ g d¢}t t||dƒg d¢ƒ t t||dƒg d	¢ƒ g d
¢}t t||dƒg d¢ƒ t t||dƒg d¢ƒ g d¢}ttt||ƒ g d¢}ttt||ƒ d S )N)r]   r   rN   rL   r´   F)r   rL   rV   rV   T)r   r   rL   rV   r«   )rV   rL   r   r   )rV   rV   rL   r   r²   )r   r   rJ   rJ   )r   r   r   rJ   r¢   )rN   rN   r   rN   )r	   r   r   ra   r  r=   r=   r>   Útest_monotonic�  s   zTestDigitize.test_monotonicc                 C   s:   g d¢}g d¢}t tt||ƒ ||}}t tt||ƒ d S )N)rN   rL   y      @      ð?r™   )r   r:  r   r  r=   r=   r>   Útest_casting_error   s
   
zTestDigitize.test_casting_errorc                 C   sh   G dd„ dt jƒ}t  d¡ |¡}t  dd¡ |¡}ttt||dƒ|ƒ ƒ ttt||dƒ|ƒ ƒ d S )Nc                   @   r÷   )z(TestDigitize.test_return_type.<locals>.ANrø   r=   r=   r=   r>   rú  ©  rú   rú  rW   rN   rV   FT)r7   rû   r8   rü   r   rX  r   )rd   rú  re   r‰   r=   r=   r>   r8  §  s
   zTestDigitize.test_return_typec                 C   s&   d}t t ||d |d g¡dƒ d S ©Nl          rN   ©r   r7   r   r[  r=   r=   r>   Útest_large_integers_increasing°  s   "z+TestDigitize.test_large_integers_increasingz8gh-11022: np.core.multiarray._monoticity loses precisionr  c                 C   s&   d}t t ||d |d g¡dƒ d S r$  r%  r[  r=   r=   r>   Útest_large_integers_decreasingµ  s   "z+TestDigitize.test_large_integers_decreasingN)r{   r|   r}   r  r  r  r  r  r   r!  r"  r#  r8  r&  r  r  Úxfailr'  r=   r=   r=   r>   r  h  s     	ÿr  c                   @   r    )Ú
TestUnwrapc                 C   sH   t tdddtj  gƒddgƒ tt tttdƒd ƒƒtjk ¡ƒ d S )NrN   rL   r·   r=  )r	   r2   r7   rB  r   r³   r   r   r†   r=   r=   r>   r~  ¿  s    (zTestUnwrap.test_simplec                 C   sÐ   t tddgdd�ddgƒ tt tttdƒd dd�ƒdk ¡ƒ t g d¢¡}t |d¡}t t|dd�|ƒ t g d	¢¡}t |d
¡}t|d
d�}t |g d¢ƒ t|d
dd�}t |g d	¢ƒ |j	|j	ksfJ ‚d S )NrN   i  éÿ   ©ÚperiodrL   r·   éè  )r   éK   é–   éá   r  )r   r.  r/  r0  r  i®  éú   )r   r.  r/  r0  r  rŸ  éŒ   )r,  Údiscont)
r	   r2   r   r7   r³   r   r   r�   Úmodrê   )rd   Ú
simple_seqÚwrap_seqÚ
uneven_seqÚwrap_unevenÚ
no_discontÚ
sm_discontr=   r=   r>   Útest_periodÅ  s   &zTestUnwrap.test_periodN)r{   r|   r}   r~  r;  r=   r=   r=   r>   r)  ½  ó    r)  rê   ÚOÚ
AllIntegerÚFloatÚM)r   rN   r·   c                   @   sz   e Zd Zdededdfdd„Zdededdfdd„Zdededdfd	d
„Zdededdfdd„Zdededdfdd„Z	dS )ÚTestFilterwindowsrê   r@  ÚreturnNc                 C   ó¨   t j||d�d }t|ƒ}|dkrt j}nt  |jt j¡}|j|ks$J ‚t|t|ƒƒ |dk r9t|t  g ¡ƒ d S |dkrGt|t  	d¡ƒ d S t
t j|dd�ddƒ d S )	Nr  r=   r=  rN   r   r€   ç      @rJ   )r7   r�   r#   ré   rë   rê   r   r    r	   rb   r
   ræ   ©rd   rê   r@  Úscalarrí   Ú	ref_dtyper=   r=   r>   Útest_hanningÞ  ó   zTestFilterwindows.test_hanningc                 C   rC  )	Nr  r=   r=  rN   r   r€   gÃõ(\�Â@rJ   )r7   r�   r"   ré   rë   rê   r   r    r	   rb   r
   ræ   rE  r=   r=   r>   Útest_hammingó  rI  zTestFilterwindows.test_hammingc                 C   rC  )	Nr  r=   r=  rN   r   r€   gž^)ËÇ@rJ   )r7   r�   r   ré   rë   rê   r   r    r	   rb   r
   ræ   rE  r=   r=   r>   Útest_bartlett  rI  zTestFilterwindows.test_bartlettc                 C   rC  )	Nr  r=   r=  rN   r   r€   g=
×£p=@rJ   )r7   r�   r   ré   rë   rê   r   r    r	   rb   r
   ræ   rE  r=   r=   r>   Útest_blackman  rI  zTestFilterwindows.test_blackmanc                 C   sª   t j||d�d }t|dƒ}|dkrt j}nt  |jt j¡}|j|ks%J ‚t|t|ƒƒ |dk r:t|t  g ¡ƒ d S |dkrHt|t  	d¡ƒ d S t
t j|dd�ddƒ d S )	Nr  r=   r   r=  rN   r€   r·   r%  )r7   r�   r'   ré   rë   rê   r   r    r	   rb   r
   ræ   rE  r=   r=   r>   Útest_kaiser2  s   
zTestFilterwindows.test_kaiser)
r{   r|   r}   Ústrré  rH  rJ  rK  rL  rM  r=   r=   r=   r>   rA  Ø  s    rA  c                   @   rH   )Ú	TestTrapzc                 C   sH   t  ddd¡}tt  d|d  ¡t  dt j ¡ dd�}t|ddƒ d S )	Néöÿÿÿr·   r¯  r  rL   )rð  rN   rt   )r7   r8   r0   rµ  r@  rB  r
   )rd   rÛ   rR  r=   r=   r>   r~  J  s   *zTestTrapz.test_simplec                 C   s&  t  ddd¡}t  ddd¡}t  ddd¡}t  |¡|d |d   }|d  d  < |d  d  < t  |¡|d |d   }|d  d  < |d  d  < t  |¡|d |d   }|d  d  < |d  d  < |d d …d d f |d d d …d f  |d d d d …f  }||d d …d d f  jdd�}||d d d …d f  jdd�}	||d d d d …f  jdd�}
t||d d …d d f dd	�}t||ƒ t||d d d …d f dd	�}t||	ƒ t||d d d d …f dd	�}t||
ƒ t||dd	�}t||ƒ t||dd	�}t||	ƒ t||dd	�}t||
ƒ d S )
Nr   rN   rV   rL   rr   r[   r]   r€   )rÛ   r�   )r7   r  Ú	ones_likeræ   r0   r
   )rd   rÛ   rì   rD  ÚwxÚwyÚwzÚqÚqxÚqyÚqzrR  r=   r=   r>   Ú	test_ndimP  s8   6




zTestTrapz.test_ndimc                 C   s‚   t  d¡}|| }|dk}t jj||d�}d}tt||ƒ|ƒ t jj||d�}tt||ƒ|ƒ t jj||d�}tt||ƒ|ƒ d S )NrW   rL   rÅ  g      *@)r7   r8   r   r�   r
   r0   )rd   rÛ   rì   rÆ  ÚymrR  Úxmr=   r=   r>   r  u  s   
zTestTrapz.test_maskedN)r{   r|   r}   r~  rY  r  r=   r=   r=   r>   rO  H  s    %rO  c                   @   r    )ÚTestSincc                 C   s6   t tdƒdkƒ tt ddd¡ƒ}t|t|ƒdƒ d S )Nr   rN   r]   r=  rt   )r   r/   r7   r  r   r    ©rd   rí   r=   r=   r>   r~  ˆ  s   zTestSinc.test_simplec                 C   sF   ddg}t t |¡ƒ}t t|ƒƒ}t t|ƒƒ}t||ƒ t||ƒ d S )Nr   r  )r/   r7   r�   r¼  r6  r	   )rd   rÛ   r¦   r§   r¨   r=   r=   r>   Útest_array_likeŽ  s   
zTestSinc.test_array_likeN)r{   r|   r}   r~  r^  r=   r=   r=   r>   r\  †  r<  r\  c                   @   rj  )Ú
TestUniquec                 C   s˜   t  g d¢¡}tt  t|ƒg d¢k¡ƒ ttt  g d¢¡ƒt  dg¡kƒ g d¢}tt  t|ƒg d¢k¡ƒ t  g d¢¡}tt  t|ƒg d¢k¡ƒ d S )	N)	rJ   rV   rL   rN   rN   rL   rV   rJ   r   )r   rN   rL   rV   rJ   )rN   rN   rN   rN   rN   rN   )ÚwidgetÚhamr]  r^  r]  ra  )r^  r]  ra  r`  )ù      @      @rF  ù      ð?      $@r·   rb  )rF  rc  rb  r·   )r7   r�   r   r³   r3   r[  r=   r=   r>   r~  ™  s   "zTestUnique.test_simpleN©r{   r|   r}   r~  r=   r=   r=   r>   r_  —  rw  r_  c                   @   r    )ÚTestCheckFinitec                 C   sP   g d¢}ddt jg}ddt jg}t j |¡ ttt jj|ƒ ttt jj|ƒ d S )Nr™   rN   rL   )r7   Úinfr2  ÚlibÚasarray_chkfiniter   ra   r�   r=   r=   r>   r~  ¥  s   zTestCheckFinite.test_simplec                 C   s0   g d¢}t jj|dt jd�}t|jt jkƒ d S )Nr™   rº   )r¼   rê   )r7   rg  rh  ré   r   rê   rp   r=   r=   r>   Útest_dtype_order­  s   z TestCheckFinite.test_dtype_orderN)r{   r|   r}   r~  ri  r=   r=   r=   r>   re  £  r°   re  c                	   @   sô   e Zd Ze g d¢g d¢g d¢g¡Ze g d¢g d¢g d¢g¡Ze g d¢g d¢g d	¢g¡Ze g d
¢g d¢g d¢g d¢g d¢g d¢g¡Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej d ejejejejg¡d!d"„ ƒZd#S )$ÚTestCorrCoef)gÿÁ°‘^³Ã?gŸ.{§<Ç?g�¥‹$,Â?)g¯ßá4Œæ?gpÖ)ßî?gÕJ¶ôGÜÑ?)gY»’‰Àí?g½�¬€«Ô?gáÞˆ0v©È?)gØ©‡¢‘º?gBÈF­Uá?g ¢G)tàß?)g3äTBâ„ê?gLÁ\ƒåè?gïÃAçÙ?)g>
“Îí?gqµFëE`å?g€5Ø¢?)rÊ   çÞ›•£¶î?çßÉár@©¿)rk  rÊ   çp¾è]‚4Ó?)rl  rm  rÊ   )rÊ   rk  rl  ç?Ä'LÓ?çÝë(÷Ð8å?çîê4V‹}à?)rk  rÊ   rm  çÕØw¨{¨¿ç,H¨×5ì?çjSŽ,úè?)rl  rm  rÊ   çªÀâÓóî¿çµ)h¤ïßæ?çå5#AÀ“ê?)rn  rq  rt  rÊ   çƒätÄçoà¿çBCÃæ,å¿)ro  rr  ru  rw  rÊ   ç@§ÿ02vï?)rp  rs  rv  rx  ry  rÊ   c                 C   s*   t t g d¢g d¢¡ddgddggƒ d S )Nrª   )rN   r   rN   rÊ   ç      ð¿)r
   r7   r   r†   r=   r=   r>   Útest_non_arrayÉ  s   ÿzTestCorrCoef.test_non_arrayc                 C   sd   t | jƒ}t|| jƒ tt t |¡dk¡ƒ t | j| jƒ}t|| j	ƒ tt t |¡dk¡ƒ d S rª  )
r   rú  r
   r  r   r7   r³   r  rX  r  )rd   Útgt1Útgt2r=   r=   r>   r~  Í  s   
zTestCorrCoef.test_simplec                 C   s²   t ƒ �L}t d¡ ttt| jdd� | t¡ tt| jdd�| j	ƒ tt| j| j
dd�| jƒ tt| jdd�| j	ƒ tt| j| j
dd�| jƒ W d   ƒ d S 1 sRw   Y  d S )NrE  r]   ©ÚddofrV   )r   rH  Úsimplefilterr   ÚDeprecationWarningr   rú  Úfilterr
   r  rX  r  ©rd   Úsupr=   r=   r>   Ú	test_ddofÖ  s   

"øzTestCorrCoef.test_ddofc                 C   s~   t ƒ �2}t d¡ ttt| j| jddƒ ttt| jdd� | t¡ t	t| jdd�| j
ƒ W d   ƒ d S 1 s8w   Y  d S )NrE  rN   r   )Úbias)r   rH  r€  r   r�  r   rú  rX  r‚  r
   r  rƒ  r=   r=   r>   Ú	test_biasâ  s   

"úzTestCorrCoef.test_biasc                 C   sZ   t  g d¢g d¢g¡}t|ƒ}t  ddgddgg¡}t||ƒ tt  t  |¡dk¡ƒ d S ©Nr™   ©r.  y               @r6  rÊ   r=  r.  )r7   r�   r   r   r   r³   r  )rd   rÛ   ré  r—  r=   r=   r>   Útest_complexì  s
   
zTestCorrCoef.test_complexc                 C   sH   t  g d¢g¡}t  g d¢g¡}tt  ||¡t  ddgddgg¡ƒ d S rˆ  )r7   r�   r   r   ©rd   rÛ   rì   r=   r=   r>   Útest_xyó  s   (zTestCorrCoef.test_xyc                 C   ó´   t jdd��J t  dt¡ ttt g ¡ƒtjƒ ttt g ¡ 	dd¡ƒt g ¡ 	dd¡ƒ ttt g ¡ 	dd¡ƒt tjtjgtjtjgg¡ƒ W d   ƒ d S 1 sSw   Y  d S ©NTrC  rE  r   rL   )
rH  rI  r€  ÚRuntimeWarningr	   r   r7   r�   r2  ru   r†   r=   r=   r>   Ú
test_emptyø  ó   ÿÿ"ûzTestCorrCoef.test_emptyc                 C   s|   ddgddgg}t jdd�� t|ƒ}W d   ƒ n1 sw   Y  t|t  ddgddgg¡ƒ tt  t  |¡dk¡ƒ d S )Ng0Žä.ÿ++g}Ã”%­I²TÚraise)r³   rÊ   rz  )r7   Úerrstater   r   r�   r   r³   r  )rd   rÛ   rž   r=   r=   r>   Útest_extreme	  s   
ÿzTestCorrCoef.test_extremeÚ	test_typec                 C   ó*   | j  |¡}t||d�}||jksJ ‚d S ©Nr  )rú  rç   r   rê   )rd   r•  Úcast_Aré  r=   r=   r>   Útest_corrcoef_dtype	  ó   z TestCorrCoef.test_corrcoef_dtypeN)r{   r|   r}   r7   r�   rú  rX  r  r  r{  r~  r…  r‡  rŠ  rŒ  r�  r”  r  r  r  ÚhalfÚsingleÚdoubleÚ
longdoubler™  r=   r=   r=   r>   rj  ´  sL    þÿþÿþÿûÿ	
	rj  c                   @   s\  e Zd Ze ddgddgddgg¡jZe ddgddgg¡Zejg d¢dd�Ze g d¢¡Z	e d	gdgdgdgdgd
gg¡jZ
e ddgddgg¡Zejdejd�Ze g d¢¡Ze ddgddgg¡Ze d¡Ze g d¢¡Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zej d'ej ej!ej"ej#g¡d(d)„ ƒZ$d*S )+ÚTestCovr   rL   rN   rÊ   rz  )rÌ   rÊ   rÈ   )Úndmin)rN   rJ   rN   rÌ   rÈ   çš™™™™™Ù?gš™™™™™Ù¿rV   r  )rÊ   rÓ   rÊ   gUUUUUUå?gUUUUUUå¿)g&S£’:Ù?gÒo_Îã?g#Ûù~j¼è?g”‡…ZÓ¼ï?gÎQÚ|é?c                 C   s   t t| jƒ| jƒ d S r6   )r   r   Úx1r  r†   r=   r=   r>   rj   	  s   zTestCov.test_basicc                 C   sV   t  g d¢g d¢g¡}t  ddgddgg¡}tt|ƒ|ƒ tt|t  d¡d�|ƒ d S )Nr™   r‰  rÊ   r=  r.  rV   ©Úaweights)r7   r�   r   r   rb   )rd   rÛ   ré  r=   r=   r>   rŠ  	  s   zTestCov.test_complexc                 C   sF   t  g d¢g¡}t  g d¢g¡}tt||ƒt  ddgddgg¡ƒ d S rˆ  )r7   r�   r   r   r‹  r=   r=   r>   rŒ  %	  s   &zTestCov.test_xyc                 C   r�  rŽ  )
rH  rI  r€  r�  r	   r   r7   r�   r2  ru   r†   r=   r=   r>   r�  *	  r‘  zTestCov.test_emptyc                 C   sp   t jdd��( t  dt¡ tt| jdd�t tj	tj	 gtj	 tj	gg¡ƒ W d   ƒ d S 1 s1w   Y  d S )NTrC  rE  rW   r~  )
rH  rI  r€  r�  r	   r   r¢  r7   r�   rf  r†   r=   r=   r>   Útest_wrong_ddof3	  s   ÿÿ"þzTestCov.test_wrong_ddofc                 C   sJ   t t| jƒt| jdd�ƒ t g d¢¡}t t| j|ƒt| j|dd�ƒ d S )NF)Úrowvar)g+‡ÙÎ÷³?g4€·@‚âÓ?g¾Á&SË?gÒo_Î¡?gŒJê4ë?)r   r   Úx3r7   r�   ©rd   rì   r=   r=   r>   Útest_1D_rowvar:	  s   "zTestCov.test_1D_rowvarc                 C   s$   t t| jdd�tj| jdd�ƒ d S )NrN   r~  )r   r   r§  r7   Úvarr†   r=   r=   r>   Útest_1D_variance?	  s   $zTestCov.test_1D_variancec                 C   sÖ   t t| j| jd�t| jƒƒ t t| j| jd�| jƒ t t| j| jd�| jƒ | jd }t	t
t| j|d� tjdtjd�}t	tt| j|d� tjdtjd�}t	tt| j|d� dtjdtjd� }t	tt| j|d� d S )N)Úfweightsr  ©rL   rV   r  rL   r]   rV   )r   r   r  ÚfrequenciesÚ
x2_repeatsr¢  r  Úunit_frequenciesr  r   r:  r7   rb   r9  ÚRuntimeErrorra   )rd   Únonintr  r=   r=   r>   Útest_fweightsB	  s"   ÿÿÿ
zTestCov.test_fweightsc                 C   s²   t t| j| jd�| jƒ t t| jd| j d�t| j| jd�ƒ t t| j| jd�| jƒ t d¡}t	t
t| j|d� t d¡}t	t
t| j|d� dt d¡ }t	tt| j|d� d S )Nr£  rË   r­  rL   rz  rV   )r   r   r¢  rÙ   r  Úunit_weightsr  r7   rb   r   r±  ra   r]  r=   r=   r>   Útest_aweightsR	  s   ÿ

zTestCov.test_aweightsc                 C   s¾   t t| j| j| jd�t| jƒƒ t t| j| j| jd�| jƒ t t| j| j| jd�| j	ƒ t t| j| j| j
d�| jƒ t t| j| jd| j
 d�t| j| j
d�ƒ t t| j| j| jd�| j	ƒ d S )N)r¬  r¤  rË   r£  )r   r   r  r®  r´  r¯  r¢  r  r°  r  rÙ   r  r†   r=   r=   r>   Útest_unit_fweights_and_aweights^	  s<   ÿþÿþÿþÿþÿþÿþz'TestCov.test_unit_fweights_and_aweightsr•  c                 C   r–  r—  )r¢  rç   r   rê   )rd   r•  Úcast_x1ré  r=   r=   r>   Útest_cov_dtyper	  rš  zTestCov.test_cov_dtypeN)%r{   r|   r}   r7   r�   rQ  r¢  r  r  r®  r¯  r  rb   r9  r°  rÙ   r  r´  r§  rj   rŠ  rŒ  r�  r¥  r©  r«  r³  rµ  r¶  r  r  r  r›  rœ  r�  rž  r¸  r=   r=   r=   r>   rŸ  	  s0    $
	rŸ  c                   @   rH   )ÚTest_I0c              
   C   sÞ   t tdƒt d¡ƒ t g d¢¡}t g d¢¡}t t|ƒ|ƒ t t| ƒ|ƒ t ddgddgd	d
gddgddgg¡}t t|ƒt ddgddgddgddgddgg¡ƒ t dg¡}t|jdƒ tt dg¡t dg¡ƒ d S )Nr  gÿÇ’#ñ?)gC„ê¬7æß?gùmãªMæ?g˜¡3aâ,Ì?gª$WV?Û�?ro  )gšÖ¿N^ñ?gEá¿ ò?gé–¡Ä1ð?gÔ%©m? ð?gDíénÿ¥@g>@÷åÌvê?gÏu¯Í¥üï?gVºX¤Ë³ì?g÷uaœ&Ù?gB-¬sJØ?g-^þ§ª?g§_¿³V×?g¨X±Ï.ç?gVØëaXÓÞ?gõj¨•à?gpÁÛÚò?g~-ØÛ@ô?g¦¼D/bó?gÝ¦‰ˆ¬Ÿð?g,êY1Ø”ð?gš[!¬Æð?g‘QÐL‰ð?gWè¤sU+ò?g÷ ±@ñð?g™fx»wñ?rÌ   r  rÊ   )r
   r$   r7   r�   r   rB   r	   )rd   rú  r¿  rX  Úi0_0r=   r=   r>   r~  {	  s4   þ
ü
üþzTest_I0.test_simplec                    sV   t  d¡‰ G ‡ fdd„dƒ}tt  |ƒ ¡|ƒsJ ‚t  ˆ ¡}t  |ƒ ¡}t||ƒ d S )NrJ   c                       s   e Zd Z” jZdd„ ZdS )z*Test_I0.test_non_array.<locals>.array_likec                 S   r€  r6   r=   )rd   rR  r=   r=   r>   Ú__array_wrap__�	  r³  z9Test_I0.test_non_array.<locals>.array_like.__array_wrap__N)r{   r|   r}   Ú__array_interface__r»  r=   re  r=   r>   Ú
array_likeš	  s    r½  )r7   r8   rX  r  r$   r	   )rd   r½  rµ  ré  r=   re  r>   r{  —	  s   

zTest_I0.test_non_arrayc                 C   sJ   t  ddg¡}tjtdd�� t|ƒ}W d   ƒ d S 1 sw   Y  d S )Nr   y      ð?       @z#i0 not supported for complex valuesrg  )r7   r�   r  rU  r:  r$   )rd   re   ré  r=   r=   r>   rŠ  §	  s   
"ÿzTest_I0.test_complexN)r{   r|   r}   r~  r{  rŠ  r=   r=   r=   r>   r¹  y	  s    r¹  c                   @   r    )Ú
TestKaiserc                 C   s|   t t tddƒ¡ƒ ttddƒt g ¡ƒ ttddƒt ddg¡ƒ ttddƒt g d¢¡ƒ ttddƒt g d	¢¡ƒ d S )
NrN   rÊ   r   rL   ç ˆöoFé?rW   )r¿  çÀvT¶=î?rÊ   rÀ  r¿  gg›Óù?)çø†„½¦â?ç÷�ñY…Jì?rÊ   rÂ  rÁ  )r   r7   Úisfiniter'   r
   r�   r†   r=   r=   r>   r~  ¯	  s   
ÿ
ÿ
ÿ
ÿzTestKaiser.test_simplec                 C   s   t ddƒ d S )NrV   rJ   )r'   r†   r=   r=   r>   Útest_int_beta¼	  rr  zTestKaiser.test_int_betaN)r{   r|   r}   r~  rÄ  r=   r=   r=   r>   r¾  ­	  rG  r¾  c                   @   rj  )Ú	TestMsortc              	   C   sv   t  g d¢g d¢g d¢g¡}tjtdd�� tt|ƒt  g d¢g d¢g d¢g¡ƒ W d   ƒ d S 1 s4w   Y  d S )	N)çî\é…Ü?çb¥ÝCQé?ç×”�s‘á?)çwøˆ‹”×?ç¥¹klã×?çø*dtaÀî?)çÐèÓ¯Áä?ç6Hœòïà?çÜ˜C÷Ù?zmsort is deprecatedrg  )rÉ  rÊ  rÎ  )rÆ  rÍ  rÈ  )rÌ  rÇ  rË  )r7   r�   r  Úwarnsr�  r
   r)   rù  r=   r=   r>   r~  Â	  s   
þ
þþ"ÿzTestMsort.test_simpleNrd  r=   r=   r=   r>   rÅ  À	  rw  rÅ  c                   @   sd   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestMeshgridc              	   C   sj   t g d¢g d¢ƒ\}}t|t g d¢g d¢g d¢g d¢g¡ƒ t|t g d¢g d¢g d¢g d¢g¡ƒ d S )Nr™   ©rJ   rW   rs   rt   rÖ   )rW   rW   rW   )rs   rs   rs   )rt   rt   rt   ©r(   r	   r7   r�   ©rd   ÚXÚYr=   r=   r>   r~  Ð	  s   ýýzTestMeshgrid.test_simplec                 C   s&   t g d¢ƒ\}t|t g d¢¡ƒ d S )Nr€  rÒ  )rd   rÔ  r=   r=   r>   Útest_single_inputÛ	  s   zTestMeshgrid.test_single_inputc                 C   s*   g }t g t|Ž ƒ t g t|ddiŽƒ d S )Nr¸   F)r	   r(   r   r=   r=   r>   Útest_no_inputß	  s   zTestMeshgrid.test_no_inputc                 C   sð   g d¢}g d¢}t ||dd�\}}t|t g d¢g d¢g d¢g¡ƒ t|t g d¢g d¢g d¢g¡ƒ dd	g}tt ||ƒd
 jdkƒ tt ||dd�d
 jdkƒ tt |||ƒd
 jdkƒ tt |||dd�d
 jdkƒ ttt ||dd� d S )Nr™   rÑ  Úij©Úindexingr²   )rL   rL   rL   rL   )rV   rV   rV   rV   rr   r  r   r+  ©rV   rJ   )rJ   rV   rL   )rV   rJ   rL   Únotvalid)r(   r	   r7   r�   r   rB   r   ra   )rd   rÛ   rì   rÔ  rÕ  rD  r=   r=   r>   Útest_indexingä	  s"   þþzTestMeshgrid.test_indexingc                 C   sT   t g d¢g d¢dd�\}}t|t g d¢g¡ƒ t|t dgdgdgdgg¡ƒ d S )	Nr™   rÑ  T©ÚsparserJ   rW   rs   rt   rÒ  rÓ  r=   r=   r>   Útest_sparseø	  s   $zTestMeshgrid.test_sparsec                 C   s   t ttg d¢g d¢dd� d S )Nr™   rÑ  rØ  )rÒ  )r   r:  r(   r†   r=   r=   r>   Útest_invalid_argumentsý	  s   
ÿz#TestMeshgrid.test_invalid_argumentsc                 C   sÀ   t jddt jd�}t jddt jd�}t  ||¡\}}t|j|jkƒ t|j|jkƒ t j||dd�\}}t|j|jkƒ t|j|jkƒ t j||dd�\}}t|j|jkƒ t|j|jkƒ d S )Nr   r·   r  rb  T)r¸   rÞ  )r7   r8   rè   ré   r(   r   rê   )rd   rÛ   rì   rÔ  rÕ  r=   r=   r>   r8  
  s   zTestMeshgrid.test_return_typec                 C   sr   t  ddg¡}t  ddg¡}t j||ddd�\}}d|dd d …f< t|dd d …f dƒ t|d	d d …f |ƒ d S )
Nr¬  r­  gffffff
@gš™™™™™@FT)rß  r¸   r   rN   )r7   r�   r(   r   )rd   rÔ  rÕ  rÛ   rì   r=   r=   r>   Útest_writeback
  s   zTestMeshgrid.test_writebackc                 C   sh   t jdd„ tddƒD ƒŽ \}}}}}d}t|j|ƒ t|j|ƒ t|j|ƒ t|j|ƒ t|j|ƒ d S )Nc                 s   s   � | ]}d g| V  qdS )r   Nr=   ©r  r—   r=   r=   r>   rK  '
  rL  z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>rN   rs   )rL   rN   rV   rJ   rW   )r7   r(   rc   r   rB   )rd   re   r‰   rž   r4  rË  Úexpected_shaper=   r=   r>   Útest_nd_shape&
  s   $zTestMeshgrid.test_nd_shapec                 C   sp   t  dgddgg d¢¡\}}}t|g d¢gg d¢ggƒ t|g d¢gg d¢ggƒ t|g d¢gg d¢ggƒ d S )Nr   rN   rL   rU   r©   rµ   rK   ©r7   r(   r   r�   r=   r=   r>   Útest_nd_values/
  s   zTestMeshgrid.test_nd_valuesc                 C   sn   t jdgddgg d¢dd�\}}}t|g d¢g d¢ggƒ t|g d¢g d	¢ggƒ t|g d¢g d¢ggƒ d S )
Nr   rN   rL   rU   rØ  rÙ  r©   rµ   rK   ræ  r�   r=   r=   r>   Útest_nd_indexing5
  s   "zTestMeshgrid.test_nd_indexingN)r{   r|   r}   r~  rÖ  r×  rÝ  rà  rá  r8  râ  rå  rç  rè  r=   r=   r=   r>   rÐ  Î	  s    
	rÐ  c                   @   r~   )ÚTestPiecewisec                 C   s4  t ddgddgdgƒ}t|ddgƒ t ddgddggdgƒ}t|ddgƒ t ddgt ddg¡dgƒ}t|ddgƒ t ddgt ddg¡dgƒ}t|ddgƒ t ddgt ddg¡gdgƒ}t|ddgƒ t ddgddggdd„ gƒ}t|ddgƒ ttdt ddgddggg ƒ ttdt ddgddggg d	¢ƒ d S )
Nr   TFrN   c                 S   r±  rÞ  r=   r¹  r=   r=   r>   rf  S
  r�  z+TestPiecewise.test_simple.<locals>.<lambda>r]   z1 or 2 functions are expectedr™   )r*   r	   r7   r�   r   ra   r[  r=   r=   r>   r~  >
  s$   ÿÿzTestPiecewise.test_simplec                 C   s2   t ddgddgddggddgƒ}t|ddgƒ d S )NrN   rL   TFrV   rJ   ©r*   r	   r[  r=   r=   r>   Útest_two_conditions[
  s    z!TestPiecewise.test_two_conditionsc                 C   s"   t dg d¢g d¢ƒ}t|dƒ d S )NrV   )TFF)rJ   rL   r   rJ   )r*   r   r[  r=   r=   r>   Ú$test_scalar_domains_three_conditions_
  s   z2TestPiecewise.test_scalar_domains_three_conditionsc                 C   sN   t ddgddgdgƒ}t|ddgƒ t ddgddgddgƒ}t|ddgƒ d S )NrN   rL   TFr   rV   rê  r[  r=   r=   r>   Útest_defaultc
  s   zTestPiecewise.test_defaultc                 C   sŒ   t  d¡}t||dkddgƒ}t|jdkƒ t|dkƒ d}t|ddgddgƒ}t|jdkƒ t|dkƒ t|g d¢g d	¢ƒ}t|dƒ d S )
NrV   rJ   r   rW   TFrN   r  r™   )r7   r�   r*   r   r•   r	   r‹  r=   r=   r>   rV  l
  s   
zTestPiecewise.test_0dc                 C   s¨   d}t ||dk|dkgddgƒ}t|dƒ d}t ||dk|dk|dk |dkgg d¢ƒ}t|dƒ ttdt ||dk|dkgdgƒ ttdt ||dk|dkgg d	¢ƒ d S )
NrV   rJ   r   rW   r™   rL   z2 or 3 functions are expectedrN   r²   )r*   r   r	   r   ra   r‹  r=   r=   r>   Útest_0d_comparison{
  s   
*
ÿÿz TestPiecewise.test_0d_comparisonc                 C   s8   t  d¡}t  |dk¡}t||gddgƒ}t|dƒ d S )NrV   rN   rL   )r7   r�   r*   r   )rd   rÛ   rž   rì   r=   r=   r>   Útest_0d_0d_conditionŠ
  s   
z"TestPiecewise.test_0d_0d_conditionc                 C   sR   t  g d¢g d¢g¡}t||dk |dkgg d¢ƒ}t|t  g d¢g d¢g¡ƒ d S )N)g      Àg      ø¿r  )r  ró  r  r   rL   rA  )rz  rz  rz  )rË   rË   rÊ   )r7   r�   r*   r	   r‹  r=   r=   r>   Útest_multidimensional_extrafunc�
  s   
ÿÿz-TestPiecewise.test_multidimensional_extrafuncc                 C   s^   G dd„ dt jƒ}t  d¡ |¡}t||dk |dkgg d¢ƒ}tt|ƒ|ƒ t|g d¢ƒ d S )Nc                   @   r÷   )z/TestPiecewise.test_subclasses.<locals>.subclassNrø   r=   r=   r=   r>   rù   ˜
  rú   rù   rÔ   rÈ   rJ   )rz  rÊ   rÌ   )rz  rz  rÌ   rÌ   rÊ   )r7   rû   r8   rü   r*   r   rý   )rd   rù   rÛ   rR  r=   r=   r>   rþ   —
  s
   zTestPiecewise.test_subclassesN)r{   r|   r}   r~  rë  rì  rí  rV  rî  rï  rð  rþ   r=   r=   r=   r>   ré  <
  s    	ré  c                   @   s–   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zejje dd�dd„ ƒZej dddggdg¡dd„ ƒZdS )ÚTestBincountc                 C   s$   t  t  d¡¡}t|t  d¡ƒ d S )NrJ   )r7   Úbincountr8   r	   rb   r¨  r=   r=   r>   r~  ¢
  s   zTestBincount.test_simplec                 C   s,   t  t  g d¢¡¡}t|t  g d¢¡ƒ d S )N)rN   rW   rL   rJ   rN   )r   rL   rN   r   rN   rN   )r7   rò  r�   r	   r¨  r=   r=   r>   Útest_simple2¦
  s   zTestBincount.test_simple2c                 C   s2   t  d¡}t  g d¢¡}t  ||¡}t||ƒ d S )NrJ   )çš™™™™™É?ç333333Ó?r  r¯  )r7   r8   r�   rò  r	   ©rd   rÛ   rí   rì   r=   r=   r>   Útest_simple_weightª
  s   
zTestBincount.test_simple_weightc                 C   s@   t  g d¢¡}t  g d¢¡}t  ||¡}t|t  g d¢¡ƒ d S )N©rN   rL   rJ   rW   rL   ©rô  rõ  r  r¯  rô  )r   rô  r  r   r  r¯  ©r7   r�   rò  r	   rö  r=   r=   r>   Útest_simple_weight2°
  s   z TestBincount.test_simple_weight2c                 C   sV   t  g d¢¡}t j|dd�}t|t  g d¢¡ƒ g }t j|dd�}t|t  g ¡ƒ d S )N)r   rN   r   rN   rN   rV   ©Ú	minlength)rL   rV   r   r   rú  r‹  r=   r=   r>   Útest_with_minlength¶
  s   z TestBincount.test_with_minlengthc                 C   sV   t  g d¢¡}t j|dd�}t|t  g d¢¡ƒ t j|dd�}t|t  g d¢¡ƒ d S )N)r   rN   rN   rL   rL   rV   rV   rL   rü  )rN   rL   rL   rL   r   rú  r‹  r=   r=   r>   Ú)test_with_minlength_smaller_than_maxvalue¾
  s
   z6TestBincount.test_with_minlength_smaller_than_maxvaluec                 C   sB   t  g d¢¡}t  g d¢¡}t  ||d¡}t|t  g d¢¡ƒ d S )Nrø  rù  rr   )r   rô  r  r   r  r¯  r   r   rú  rö  r=   r=   r>   Útest_with_minlength_and_weightsÅ
  ó   z,TestBincount.test_with_minlength_and_weightsc                 C   s&   t jg td�}t  |¡}t||ƒ d S r—  )r7   r�   ré  rò  r	   r‹  r=   r=   r>   r�  Ë
  s   
zTestBincount.test_emptyc                 C   s4   t jg td�}t j|dd�}t|t jdtd�ƒ d S )Nr  rW   rü  )r7   r�   ré  rò  r	   r@   r‹  r=   r=   r>   Útest_empty_with_minlengthÐ
  s   z&TestBincount.test_empty_with_minlengthc                    sl   t jg td�‰ ttd‡ fdd„ƒ ttd‡ fdd„ƒ t  d¡‰ ttd‡ fdd„ƒ ttd‡ fd	d„ƒ d S )
Nr  z"'str' object cannot be interpretedc                      ó   t jˆ dd�S ©NÚfoobarrü  ©r7   rò  r=   r¹  r=   r>   rf  Ù
  ó    z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>zmust not be negativec                      r  ©Nr]   rü  r  r=   r¹  r=   r>   rf  Ü
  r  rW   c                      r  r  r  r=   r¹  r=   r>   rf  á
  r  c                      r  r  r  r=   r¹  r=   r>   rf  ä
  r  )r7   r�   ré  r   r:  ra   r8   r†   r=   r¹  r>   Útest_with_incorrect_minlengthÕ
  s$   
þ
þ

þ
þz*TestBincount.test_with_incorrect_minlengthr  r  c                 C   sÆ   t  t tj¡¡}t  t tj¡¡}tdƒD ]	}t g d¢¡ qtt  t tj¡¡|ƒ tt  t tj¡¡|ƒ tdƒD ]}t g d¢g d¢¡ q<tt  t tj¡¡|ƒ tt  t tj¡¡|ƒ d S )Nr·   r™   rš   )	rñ  r
  r7   rê   Úintpr�  rc   rò  r   )rd   Úintp_refcountÚdouble_refcountÚjr=   r=   r>   Útest_dtype_reference_leaksæ
  s   z'TestBincount.test_dtype_reference_leaksÚvalsrL   c                 C   st   t  |¡}ttƒ� t  |¡ W d   ƒ n1 sw   Y  ttƒ� t  |¡ W d   ƒ d S 1 s3w   Y  d S r6   )r7   Úasarrayr   ra   rò  )rd   r  Úvals_arrr=   r=   r>   Útest_error_not_1dö
  s   

ÿ
"ÿzTestBincount.test_error_not_1dN)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ñ   
  s    
rñ  c                   @   s®   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	dd„ dd„ dd„ dd„ gg d¢d�dd„ ƒZ
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&S )'Ú
TestInterpc                 C   st   t ttdg g ƒ t ttddgddgƒ t ttdddgddgdd� t ttdg g dd� t ttddgddgdd� d S )Nr   rN   rL   r+  éh  )r   ra   r&   r†   r=   r=   r>   Útest_exceptions  s
   zTestInterp.test_exceptionsc                 C   sB   t  ddd¡}t  ddd¡}t  ddd¡}tt  |||¡|ƒ d S )Nr   rN   rW   rk   )r7   r  r
   r&   ©rd   rÛ   rì   Úx0r=   r=   r>   rj   	  r  zTestInterp.test_basicc           
      C   sª  t ddƒD ]Í}tj|tjd�}tj|tjd�}tjdd|d |gtjd�}|d d d… }t|||ƒ}t|||ƒ}tjg d¢td�}|d d d… }	t||ƒ t||	ƒ t|||dd�}t|||dd�}tjg d¢td�}|d d d… }	t||ƒ t||	ƒ t|||d	d
�}t|||d	d
�}tjg d¢td�}|d d d… }	t||ƒ t||	ƒ t|||dd	d�}t|||dd	d�}tjg d¢td�}|d d d… }	t||ƒ t||	ƒ qd S )NrN   r·   r  r]   r   r²   ©Úleft)r   rN   rN   rN   rL   ©Úright)rN   rN   rN   rL   )r  r  )r   rN   rN   rL   )	rc   r7   r8   r�  rb   r�   r&   rd  r   )
rd   ÚsizeÚxpÚypÚincptsÚdecptsÚincresÚdecresÚinctgtÚdectgtr=   r=   r>   Útest_right_left_behavior  s<   






àz#TestInterp.test_right_left_behaviorc                 C   s¦   t  ddd¡}t  ddd¡}d}tt  |||¡|ƒ d}tt  |||¡|ƒ t  d¡}tt  |||¡|ƒ t  d¡}tt  |||¡|ƒ t j}tt  |||¡|ƒ d S )Nr   rN   rW   rõ  )r7   r  r
   r&   rè   ré   r2  r  r=   r=   r>   Útest_scalar_interpolation_point5  s   

z*TestInterp.test_scalar_interpolation_pointc                 C   st   g d¢}g d¢}ddt jdg}tt  |||¡ddt jt jdgƒ ddt jdg}tt  |||¡ddt jt jdgƒ d S )N©rN   rL   r  rV   rJ   r€  rN   rL   rJ   )r7   rf  r
   r&   r2  )rd   rÛ   r  Úfpr=   r=   r>   Ú test_non_finite_behavior_exact_xC  s   "&z+TestInterp.test_non_finite_behavior_exact_xc                 C   r¯  r6   )r7   Úfloat_r¹  r=   r=   r>   rf  L  ó   
 zTestInterp.<lambda>c                 C   s
   t | dƒS r8  ©rG   r¹  r=   r=   r>   rf  M  r+  c                 C   s
   t d| ƒS r8  r,  r¹  r=   r=   r>   rf  N  r+  c                 C   s   t | t | d¡ƒS )NrT   )rG   r7   Úmultiplyr¹  r=   r=   r>   rf  O  s    )rD   zcomplex-realzcomplex-imagzcomplex-both)ÚparamsÚidsc                 C   s   |j S )z( scale function used by the below tests )Úparam)rd   Úrequestr=   r=   r>   ÚscK  s   zTestInterp.scc                 C   s¤   t t dtjdg|ddgƒ¡|tjƒƒ t t ddtjg|ddgƒ¡|tjƒƒ t t dddg|tjdgƒ¡|tjƒƒ t t dddg|dtjgƒ¡|tjƒƒ dS )z test that nans are propagated r  rN   r   r·   N)r   r7   r&   r2  ©rd   r2  r=   r=   r>   Útest_non_finite_any_nanZ  s   (((,z"TestInterp.test_non_finite_any_nanc                 C   sº   t t dtj tj
 g|ddgƒ¡|tjƒƒ t t dddg|tj tj
 gƒ¡|tjƒƒ t t dddg|tj
 tj gƒ¡|tjƒƒ t t dtj tj
 g|ddgƒ¡|dƒƒ dS )z2 Test that interp between opposite infs gives nan r  r   r·   rN   N©r   r7   r&   rf  r2  r3  r=   r=   r>   Útest_non_finite_infa  s   ...0zTestInterp.test_non_finite_infc                 C   st  t t dtj dg|tj dgƒ¡|tjƒƒ t t dtj dg|tj
 dgƒ¡|tjƒƒ t t dtj dg|dtj gƒ¡|tjƒƒ t t dtj dg|dtj
 gƒ¡|tjƒƒ t t ddtj
 g|tj dgƒ¡|tjƒƒ t t ddtj
 g|tj
 dgƒ¡|tjƒƒ t t ddtj
 g|dtj gƒ¡|tjƒƒ t t ddtj
 g|dtj
 gƒ¡|tjƒƒ dS )z@ Test that interp where both axes have a bound at inf gives nan r  rN   r·   r   Nr5  r3  r=   r=   r>   Útest_non_finite_half_inf_xfj  s   .......2z&TestInterp.test_non_finite_half_inf_xfc                 C   s¬   t t dtj tj g|ddgƒ¡|dƒƒ t t dtj dg|ddgƒ¡|dƒƒ t t ddtj
 g|ddgƒ¡|dƒƒ t t dtj
 tj
 g|ddgƒ¡|dƒƒ dS )z1 Test interp where the x axis has a bound at inf r  r   r·   rN   N©r   r7   r&   rf  r3  r=   r=   r>   Útest_non_finite_half_inf_xu  s   ,((0z%TestInterp.test_non_finite_half_inf_xc                 C   s  t t dddg|dtj gƒ¡|tj ƒƒ t t dddg|dtj
 gƒ¡|tj
 ƒƒ t t dddg|tj dgƒ¡|tj ƒƒ t t dddg|tj
 dgƒ¡|tj
 ƒƒ t t dddg|tj tj gƒ¡|tj ƒƒ t t dddg|tj
 tj
 gƒ¡|tj
 ƒƒ dS )z1 Test interp where the f axis has a bound at inf r  r   rN   r·   Nr8  r3  r=   r=   r>   Útest_non_finite_half_inf_f|  s   ,,,,04z%TestInterp.test_non_finite_half_inf_fc           	      C   s  t  ddd¡}t  ddd¡dt  ddd¡ d  }d}|d| d  }tt  |||¡|ƒ d}d}tt j||||d�|ƒ d	}d}tt j||||d
�|ƒ g d¢}g d¢}ddt jdg}ddt jd t jdg}tt  |||¡|ƒ g d¢}g d¢}g d¢}g d¢}tt j|||dd�|ƒ d S )Nr   rN   rW   r.  rõ  r]   ù       @      @r  rÈ   r  r'  r€  ù       @      ð?rJ   y              à?©iLÿÿÿiVÿÿÿiGÿÿÿé¹   rP  rn  r   im  ©é¾   iBÿÿÿi^  i¢þÿÿ)ù      @      ð?y      $@       @ù      @      @y      @      @)y      @      ø?rA  y     €!@      ü?y      @      ô?rB  y      
@      
@y      @      @y      @      @r  r+  )r7   r  r
   r&   rf  )	rd   rÛ   rì   r  Úy0r  r  r  r(  r=   r=   r>   Útest_complex_interp…  s*   $zTestInterp.test_complex_interpc                 C   sº   t  ddd¡}t  ddd¡}t  d¡}tt  |||¡|ƒ t  g d¢¡}t  g d¢¡}t  t  d¡||¡}t|dƒ tt|t jƒƒ t jt  d¡||dd	�}t|d
ƒ tt|t jƒƒ d S )Nr   rN   rW   rõ  r0  )rN   r]   rN   rD  rJ   r+  r  )	r7   r  r�   r
   r&   r   r   rX  ré   )rd   rÛ   rì   r  r  r(  rî   r=   r=   r>   Ú)test_zero_dimensional_interpolation_point¡  s   


z4TestInterp.test_zero_dimensional_interpolation_pointc                 C   s2   t  ddd¡}t  |¡}tt  t j||¡dƒ d S )Nr   r·   g-Cëâ6?rÌ   )r7   r8   Úsinr
   r&   rB  )rd   r  r(  r=   r=   r>   Útest_if_len_x_is_small²  s   
z!TestInterp.test_if_len_x_is_smallc                 C   s€   g d¢}g d¢}g d¢}g d¢}t tj|||dd�|ƒ tj|dd� d	d
¡}tj|dd� d	d
¡}t tj|||dd�|ƒ d S )Nr=  r?  )rW   r·   rV   rJ   )g      @rÔ   ç     €!@g      @rË   g      
@ç      @g      @r  r+  rº   r»   rL   r]   r  )r
   r7   r&   r�   ru   )rd   rÛ   r  r(  rì   r=   r=   r>   r;  ·  s   zTestInterp.test_periodN)r{   r|   r}   r  rj   r%  r&  r)  r  Úfixturer2  r4  r6  r7  r9  r:  rD  rE  rG  r;  r=   r=   r=   r>   r     s0    &üû
		r  c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
dejd ¡dd„ ƒZdd„ ejd D ƒejejfejejfejejfejejfe d¡ejfg Zej	 
ddge¡ej	 
ddgg d¢¡dd„ ƒƒZejd ejd  d Zej	 
de¡dd„ ƒZej	 
de¡dd„ ƒZej	 
de¡dd„ ƒZd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Z d0d1„ Z!d2d3„ Z"d4d5„ Z#d6d7„ Z$d8d9„ Z%d:d;„ Z&ej	 
d<d=d>d=gg¡ej	j
d?g d@¢dA�dBdC„ ƒƒZ'dDdE„ Z(dFdG„ Z)dHdI„ Z*dJdK„ Z+ej	 
ddLdMg¡ej	 
dNg dO¢¡dPdQ„ ƒƒZ,dRS )SÚTestPercentilec                 C   s~   t  d¡d }tt  |d¡dƒ tt  |d¡dƒ tt  |d¡dƒ t j|d	< tt  |d¡t jƒ tt j|dd
d�t jƒ d S )Nrr   r  r   rÌ   r=  rI  rk   rÐ   rN   Únearest©Úmethod)r7   r8   r   Ú
percentiler2  r[  r=   r=   r>   rj   Ä  s   
zTestPercentile.test_basicc                 C   sØ   dd„ t dƒD ƒ}t |tdƒ¡}t|tdƒƒ tt|ƒtƒ t |tdƒ¡}t|tddƒƒ tt|ƒtƒ t |tdƒ¡}t|tdd	ƒƒ tt|ƒtƒ t |tdƒg¡}t|t tdd	ƒg¡ƒ tt|ƒtjƒ d S )
Nc                 S   ó   g | ]}t |d ƒ‘qS ©rL   r   rã  r=   r=   r>   r  Î  r  z0TestPercentile.test_fraction.<locals>.<listcomp>rr   r   r=  rt   rL   rk   rJ   )rc   r7   rO  r   r   rý   r�   rû   )rd   rÛ   r£  r=   r=   r>   Útest_fractionÍ  s   zTestPercentile.test_fractionc                 C   sR   t  d¡}t  |dd d d¡ t  |dd d dd¡ t  d¡}t  |dd |dd¡ d S )NrW   FÚlinearr  )r7   rb   rO  )rd   r4  Úor=   r=   r>   Útest_apià  s
   

zTestPercentile.test_apic                 C   ój   t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ d S ©N)y      à?      @yÍÌÌÌÌÌ @      à?yš™™™™™ù?ffffff@ÚGr  r  ÚDrº   )r7   r�   r   r:  rO  ©rd   Úarr_cr=   r=   r>   rŠ  ç  s   zTestPercentile.test_complexc                 C   sF   t  g d¢g d¢g d¢g d¢g d¢g¡}tt j|ddd�g d¢ƒ d S )Nrµ   )rJ   rJ   rV   rk   r   r€   )r7   r�   r	   rO  r[  r=   r=   r>   Útest_2Dï  s   
üzTestPercentile.test_2Drê   r?  c                 C   sP   t jdt jdddg|d�}t j|ddd�}t j |t j¡ t j |j|j¡ d S )Nr{  ç     €A@ç      D@ç      I@r  rS  rM  )r7   r  ÚNANrO  Útestingr   rê   )rd   rê   rR  ré  r=   r=   r>   Útest_linear_nan_1D÷  s   ýz!TestPercentile.test_linear_nan_1Dc                 C   s   g | ]}|t jf‘qS r=   )r7   ré   )r  Úint_typer=   r=   r>   r    s    ÿzTestPercentile.<listcomp>r>  r=  Úinput_dtypeÚexpected_dtyperN  r¿  )	)Úinverted_cdfrb  )Úaveraged_inverted_cdfç     €;@)Úclosest_observationrb  )Úinterpolated_inverted_cdfrb  )Úhazenrh  )Úweibullé   )rS  r´  )Úmedian_unbiasedr‰  )Únormal_unbiasedg      ;@c                 C   sÈ   t  |¡}t  ¡ dkrt  |t j¡}t jg d¢|d�}t j|d|d�}t j || 	|¡d¡ |dv rT|dkrDt j 
t  |¡jt j¡ d S t j 
t  |¡jt  |¡¡ d S t j 
t  |¡jt  |¡¡ d S )	NÚlegacy)r{  g      4@r]  r^  r_  r  r^  rM  r‡  )rf  ri  r=  )r7   rê   Ú_get_promotion_stateÚpromote_typesré   r  rO  ra  r
   rý   r   )rd   rN  r¿  rd  re  rR  rî   r=   r=   r>   Útest_linear_interpolation
  s"   
ÿÿÿz(TestPercentile.test_linear_interpolationc                 C   sD   t tjtjd|d�ddd�dƒ t tjtjd|d�ddd�dƒ d S )	Nr·   r  rk   ÚlowerrM  rJ   ÚhigherrW   ©r   r7   rO  r8   ©rd   rê   r=   r=   r>   Útest_lower_higher1  ó   ÿÿÿÿz TestPercentile.test_lower_higherc                 C   sˆ   t tjtjd|d�ddd�dƒ t tjtjd|d�d d	dd�d
ƒ t tjtjd|d�ddd�dƒ t tjtjd|d�d	dd�d
ƒ d S )Nr·   r  é3   ÚmidpointrM  rD  r  rN   rk   rW   rÒ   ç      @rv  rw  r=   r=   r>   Útest_midpoint8  s(   ÿÿÿÿÿÿÿÿzTestPercentile.test_midpointc                 C   sD   t tjtjd|d�ddd�dƒ t tjtjd|d�ddd�dƒ d S )	Nr·   r  rz  rL  rM  rW   é1   rJ   rv  rw  r=   r=   r>   Útest_nearestC  ry  zTestPercentile.test_nearestc                 C   sL   t j d¡}t  |d¡}t j || ¡ ¡ t  |d¡}t j || ¡ ¡ d S )NrW   r=  r   )r7   r  r   rO  ra  r   r¾  r2  )rd   rR  rî   r=   r=   r>   Ú'test_linear_interpolation_extrapolationJ  s
   z6TestPercentile.test_linear_interpolation_extrapolationc                 C   s,   t  d¡d }tt  |g d¢¡g d¢ƒ d S )Nrr   r  )r   r=  rk   )r   rI  rÐ   )r7   r8   r   rO  r[  r=   r=   r>   Útest_sequenceS  s   zTestPercentile.test_sequencec                 C   sô  t  d¡ dd¡}tt  |d¡g d¢ƒ g d¢g d¢g d¢g}tt j|dd	d
�|ƒ g d¢g d¢g d¢g}tt j|ddd
�t  |¡jƒ t  d¡ dddd¡}tt  |d¡jdƒ tt  |d¡jdƒ tt j|dd	d
�jdƒ tt j|ddd
�jdƒ tt j|ddd
�jdƒ tt j|ddd
�jdƒ tt j|ddd
�jdƒ tt j|ddd�jdƒ tt j|ddd�jdƒ tt j|dd	dd�jdƒ tt j|dddd�jdƒ tt j|dddd�jdƒ tt j|dddd�jdƒ tt j|dddd�jdƒ d S )Nr*  rV   rJ   )rò  rk   r=  )g      @r|  rñ  )rL   rV   rJ   rW   rÑ  )rr   r  r·   rÒ   r   r€   )ç      è?ró  rV   )ç      @r|  rt   )rH  rÕ   rÒ   rN   r  rW   rs   ©rò  rk   rQ  )rò  rk   r.  ©rV   )rL   rJ   rW   rs   )rL   rV   rW   rs   rL   )rL   rV   rJ   rs   )rV   rV   rW   rs   ru  rM  ©r�   rN  )r7   r8   ru   r   rO  r�   rQ  rB   )rd   rÛ   Úr0r…  r=   r=   r>   r¶  W  sf   ÿ
ÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿzTestPercentile.test_axisc                 C   s�  t  d¡ dd¡}tt  |d¡dƒ tt  t  |d¡¡ƒ t  g d¢¡}tt j|ddd�|ƒ tt j|ddd�j|jƒ t  g d	¢¡}t	t j|dd
d�|ƒ tt j|dd
d�j|jƒ t  
d
¡}tt j|d|d�dƒ t|dƒ t  
d¡}tt j|dd|d�|ƒ t||ƒ t  
d¡}tt j|dd
|d�|ƒ t||ƒ t  d¡ dd¡}tt j|ddd�dƒ tt  t  |d¡¡ƒ t  g d¢¡}t j|dddd�}t||ƒ t|j|jƒ t  g d¢¡}t j|ddd
d�}t	||ƒ t|j|jƒ t j
d|jd�}t j|dd|d�}t|dƒ t|dƒ t j
d|jd�}t j|ddd|d�}t||ƒ t||ƒ t j
d|jd�}t j|ddd
|d�}t||ƒ t||ƒ d S )Nr*  rV   rJ   rk   r|  ©rÓ   rÔ   rä   r|  r   r€   ©ró  r|  rÕ   rN   ©r°  ©r�   r°  rt  rM  rÔ   )rN  r�   )rÊ   rÔ   rq  r=   r  ©rN  r°  rW   ©rN  r�   r°  )r7   r8   ru   r   rO  r   Úisscalarr�   rB   r
   Úemptyrê   )rd   rÛ   r‡  r…  r°  Úc0Úc1rž   r=   r=   r>   Útest_scalar_q{  sR   












zTestPercentile.test_scalar_qc                 C   s€   t ttjddgddd� t ttjdgdƒ t ttjdgdƒ t ttjdgttdƒƒdg ƒ t ttjdgttdƒƒd	g ƒ d S )
NrN   rL   é8   r  rM  ée   r]   rk   r®  )r   ra   r7   rO  r¼  rc   r†   r=   r=   r>   Útest_exception«  s   ÿ $zTestPercentile.test_exceptionc                 C   s   t t g d¢d¡dƒ d S )Nr™   r   rN   )r   r7   rO  r†   r=   r=   r>   Útest_percentile_list³  s   z#TestPercentile.test_percentile_listc                 C   sî  t  g d¢¡}t  d¡}d}t j|||d� tt  ||¡|ƒ t  g d¢g d¢g¡}t  d¡}t j||d|d� tt j||dd�|ƒ t  d	¡}t j||d
|d� tt j||d
d�|ƒ t  d¡ dd¡}t  g d¢g d¢g¡}t  d¡}tt j|dd|d�|ƒ t||ƒ t  g d¢g d¢g¡}t  d¡}tt j|dd
|d�|ƒ t||ƒ t  g d¢g d¢g¡}t jd|jd�}t j|ddd|d�}t||ƒ t||ƒ t  g d¢g d¢g¡}t jd|jd�}t j|ddd
|d�}t||ƒ t||ƒ d S )Nr™   r…  rŠ  rš   rÈ  r   r‹  r€   ©rV   rL   rN   r*  rV   rJ   )rÈ   rË   rÓ   rÔ   rˆ  )rL   rJ   r„  )r‚  rƒ  rH  r‰  r­  ©r   rN   rL   rV   rÑ  r  rt  r�  )r   rJ   rr   )rN   rW   r  )	r7   r�   r@   rO  r   r8   ru   r�  rê   )rd   rÛ   rì   r£  r‡  r°  r…  rž   r=   r=   r>   Útest_percentile_out¶  sB   

ÿ








z"TestPercentile.test_percentile_outc                 C   s–  t  d¡ dddd¡}tt j|ddd�jdƒ tt j|ddd�jd	ƒ tt j|ddd�jd
ƒ tt j|ddd�jdƒ tt j|ddd�jdƒ tt j|ddd�jd
ƒ tt j|ddd�jd	ƒ tt j|ddd�jdƒ tt j|dddd�jd
ƒ tt j|dddd�jd
ƒ tt  t j|ddgdd�¡jdƒ tt  t j|ddgdd�¡jdƒ tt  t j|ddgdd�¡jdƒ tt  t j|ddgdd�¡jdƒ d S )Nr‹  rÒ   rN   rL   rk   r   r€   )rN   rL   rN   )rÒ   rL   rN   )rÒ   rN   rN   rV   )rÒ   rN   rL   r]   rT   rZ   rN  r{  r†  r·   )rL   rN   rL   rN   )rL   rÒ   rL   rN   )rL   rÒ   rN   rN   )rL   rÒ   rN   rL   )r7   r8   ru   r	   rO  rB   r�   ©rd   r4  r=   r=   r>   Útest_percentile_empty_dimß  sB   ÿþÿþÿÿÿÿz(TestPercentile.test_percentile_empty_dimc                 C   sh   t  g d¢¡}t j|dgdd� t|t  g d¢¡ƒ t  g d¢¡}t  |dg¡ t|t  g d¢¡ƒ d S )N©rL   rV   rJ   rN   rk   F©Úoverwrite_input©r7   r�   rO  r   rp   r=   r=   r>   Útest_percentile_no_overwriteû  s   z+TestPercentile.test_percentile_no_overwritec                 C   s„   t jdddd�}t jt  d¡|dd� t|t jdddd�ƒ t jdddd� ¡ }t jt  d¡|dd� t|t jdddd� ¡ ƒ d S )NrÌ   ç      Y@rW   )Únumr{  rM  )r7   r  rO  r8   r	   r`  )rd   r£  r=   r=   r>   Útest_no_p_overwrite  s   z"TestPercentile.test_no_p_overwritec                 C   s^   t  g d¢¡}t j|dgdd�}t|t  dg¡ƒ t jg d¢dgdd�}t|t  dg¡ƒ d S )Nrœ  rk   Tr�  r  rŸ  rˆ   r=   r=   r>   Útest_percentile_overwrite  s
   z(TestPercentile.test_percentile_overwritec              
   C   sÔ  t jjdd�}t  |gd ¡}tt j|ddd�t  |d¡ƒ t  |dd¡}tt j|dd	d�t  |d¡ƒ | dd
¡ ¡ }tt j|ddd�t  |d¡ƒ | dd
¡ ¡ }tt j|ddgdd�t j|ddgd d�ƒ tt j|ddgdd�t j|ddgdd�ƒ t  	d¡ 
d¡}t j | ¡ ¡ tt j|ddd�d t  |d d …d d …d d …df  ¡ d¡ƒ tt j|ddgdd�d d …d
f t  |d d …d d …d
d d …f  ¡ ddg¡ƒ tt j|ddd�d t  |d d …d d …dd d …f  ¡ d¡ƒ tt j|ddd�d t  |dd d …d d …d d …f  ¡ d¡ƒ tt j|ddd�d t  |dd
d d …d d …f  ¡ d¡ƒ tt j|ddd�d t  |dd d …d d …d
f  ¡ d¡ƒ tt j|ddd�d t  |dd d …dd d …f  ¡ d¡ƒ d S )N©éG   é   ©r  r·   rƒ  r^   r€   r]   r   ro   rN   rm   rò  rá  rM   r?  éƒ  ©rV   rW   rt   rÒ   éZ   ©r   rN   rV   ©rV   rN   rN  rL   ©rV   rN   rL   r—  ©rL   rN   ©rN   rT   ©rN   rV   rQ   )r7   r  ÚnormalÚdstackr   rO  Úmoveaxisr–   r¸   r8   ru   ÚshuffleÚravelÚflatten©rd   rT  rÛ   r4  r=   r=   r>   Útest_extended_axis  sJ   ÿÿ&ÿ *ÿ&ÿ&ÿ"ÿ"ÿ"ÿz!TestPercentile.test_extended_axisc                 C   s¢   t  d¡}tt jt j|ddd� tt jt j|ddd� tt jt j|ddd� tt jt j|ddd� ttt j|ddd� ttt j|d	dd� ttt j|d
dd� d S )Nrª  rn  rò  )r�   rU  ©r   rn  rJ   ©r   rJ   rS   )r]   r]   )rV   r]   )r7   rb   r   r„   rO  ra   rš  r=   r=   r>   Útest_extended_axis_invalid4  s   
z)TestPercentile.test_extended_axis_invalidc                 C   sæ   t  d¡}tt j|dd dd�jdƒ tt j|dddd�jdƒ tt j|dddd�jd	ƒ tt j|dd
dd�jdƒ tt j|dddd�jdƒ tt j|dddd�jdƒ tt j|ddgddd�jdƒ tt j|ddgddd�jdƒ d S )Nrª  rt   Tr×   r²   r^   ©rN   rN   rt   rÒ   rƒ   ©rN   rW   rt   rN   r  ©rV   rN   rt   rÒ   r˜  )rØ   r¬  ©rN   rN   rt   rN   rN   )rL   rN   rN   rt   rN   )rL   rN   rW   rt   rN   )r7   rb   r   rO  rB   rš  r=   r=   r>   Útest_keepdims?  s:   
ÿÿÿÿÿÿÿÿÿÿzTestPercentile.test_keepdimsrU  rt   rN   r�   ©NrN   r  r^   )rZ   r]   ©ÚargnamesÚ	argvaluesc                    s�   t  d¡‰|d u rdˆj }nt|ˆjƒ‰ t‡ ‡fdd„tˆjƒD ƒƒ}t  |¡| }t  |¡}t jˆ||d|d�}||u s@J ‚t	|j|ƒ d S )Nrª  r  c                 3   ó&   � | ]}|ˆ v r
d nˆj | V  qdS ©rN   N©rB   rã  ©Ú	axis_normr4  r=   r>   rK  d  ó   € 
ÿz3TestPercentile.test_keepdims_out.<locals>.<genexpr>T©r�   rØ   r°  )
r7   rb   r•   r5   r6  rc   rB   r�  rO  r   )rd   rU  r�   Ú	shape_outr°  rÊ  r=   rÉ  r>   Útest_keepdims_outS  s   
ÿ
z TestPercentile.test_keepdims_outc                 C   s¾   t  d¡}t  d¡}tt j|dd|d�|ƒ tt j|ddd|d�|ƒ t  d¡}tt j|dd|d�|ƒ tt j|ddd|d�|ƒ t  d	¡}tt j|d
|d�|ƒ tt j|d
d|d�|ƒ d S )N©rJ   rÛ  r   rŠ  rL  rŒ  r…  rN   r=   rL   )r7   r@   rb   r   rO  ©rd   rT  r4  r=   r=   r>   Útest_outm  s   



zTestPercentile.test_outc              	   C   s  t jdd��r t  ddt¡ t d¡}t d¡}tj|d< ttj	|dd|d	�|ƒ ttj	|ddd
|d�|ƒ t d¡}ttj	|dd|d	�|ƒ ttj	|ddd
|d�|ƒ t d¡}ttj	|d|d	�|ƒ ttj	|dd
|d�|ƒ W d   ƒ d S 1 s{w   Y  d S )NTrC  rE  rF  rÏ  rÛ  r¯  r   rŠ  rL  rŒ  r…  rN   r=   )
rH  rI  rJ  r�  r7   r@   rb   r2  r   rO  rÐ  r=   r=   r>   Útest_out_nanz  s(   


ÿ
ÿ
ÿ"òzTestPercentile.test_out_nanc                 C   s:  t jdtd�}t j|d< tt  |d¡t jƒ tt j|ddd�t jƒ tt j|ddgdd�t  t jgd ¡ƒ t jdtd� ddd	¡}t j|d
< t j|d< tt  |d¡t jƒ tt  |d¡jdƒ t  t jdtd� ddd	¡dd¡}t j|d< t j|d< tt  |dd¡|ƒ t  t jdtd� ddd	¡ddgd¡}t j|d d …ddf< t j|d d …ddf< tt  |ddgd¡|ƒ t  t jdtd� ddd	¡dd¡}t j|d< t j|d< tt  |dd¡|ƒ t  t jdtd� ddd	¡ddgd¡}t j|d d …ddf< t j|d d …ddf< tt  |ddgd¡|ƒ t  t jdtd� ddd	¡dd¡}t j|d< t j|d< tt  |dd¡|ƒ t  t jdtd� ddd	¡ddgd¡}t j|d d …df< t j|d d …df< tt  |ddgd¡|ƒ t jt jdtd� ddd	¡ddgddd�}t j|d d …df< t j|d d …df< tt j|ddgddd�|ƒ d S )NrM  r  rL   rõ  r   r€   g333333ã?rV   rJ   r™   ©rN   rN   rL   r­  rn   rN   r±  rR   rL  rM  )	r7   r8   rd  r2  r   rO  r�   ru   r•   rˆ   r=   r=   r>   Útest_nan_behaviorŒ  sl   
ÿ

"

ÿ"

ÿÿ

ÿ
ÿÿÿz TestPercentile.test_nan_behaviorc                 C   sÞ   t jtdd�� t g d¢tj¡ W d   ƒ n1 sw   Y  t jtdd�� t g d¢tjg¡ W d   ƒ n1 s<w   Y  t ddd¡}tj|d< t jtdd�� t g d¢|¡ W d   ƒ d S 1 shw   Y  d S )NzPercentiles must be inrg  )rN   rL   rV   rÓ   rÊ   g     ÀX@r†  r   )r  rU  ra   r7   rO  r2  r  )rd   rU  r=   r=   r>   Ú
test_nan_qÉ  s   ÿÿ
"ÿzTestPercentile.test_nan_qzm8[D]zM8[s]Úpos©r   r§  r·   c                 C   s¼   t jdd|d�}d||< t  |d¡}|j|ksJ ‚t  |¡s J ‚t  |ddg¡}|j|ks/J ‚t  |¡ ¡ s8J ‚t jdd|d� dd	¡}d||d
f< t j|ddd�}tt  |¡g d¢ƒ d S ©Nr   rM  r  ÚNaTrƒ  rá  éH   r]   rV   rN   r€   r  )r7   r8   rO  rê   Úisnatr³   ru   r	   ©rd   rê   rÖ  re   ré  r=   r=   r>   Útest_nat_basicÔ  s   zTestPercentile.test_nat_basicN)-r{   r|   r}   rj   rR  rU  rŠ  r\  r  r  r  r7   Ú	typecodesrb  r#  rè   ré   rž  rê   ÚH_F_TYPE_CODESrs  Ú
TYPE_CODESrx  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>   rK  Â  sr    	

ÿ



üþÿ



	$0)	 þ
=rK  )rf  rg  ri  rj  rk  rl  rS  rn  ro  rL  rt  ru  r{  c                
   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dejd ¡dd„ ƒZe
j de¡dd„ ƒZejeejejddd�ejddddd�d�d�dd „ ƒZd!d"„ Ze
j de¡e
j d#g d$¢¡d%d&„ ƒƒZe
j de¡e
j d#g d$¢¡d'd(„ ƒƒZd)S )*ÚTestQuantilec                 C   s   ||k| S r6   r=   )rd   rÛ   rì   Úalphar=   r=   r>   r  ò  s   zTestQuantile.Vc                 C   s*   g d¢}t  |d¡}t jj|ddd� d S )N)rÌ   rô  r¡  gÍÌÌÌÌÌÜ?g
×£p=
Ç?rN   )Úmaxulp)r7   Úquantilera  Úassert_array_max_ulp)rd   rÛ   re   r=   r=   r>   Útest_max_ulpö  s   zTestQuantile.test_max_ulpc                 C   sH   t  d¡d }tt  |d¡dƒ tt  |d¡dƒ tt  |d¡dƒ d S )Nrr   r  r   rÌ   rN   rI  rÐ   )r7   r8   r   rä  r[  r=   r=   r>   rj   þ  s   zTestQuantile.test_basicc                 C   sl   t  dg¡}t  dd¡}t||d ƒ tt|ƒ|jƒ t  g d¢¡}t  ||¡}t||ƒ t|j|jƒ d S )NTFr   )FTT)r7   r�   rä  r   rý   rê   r	   )rd   re   Útf_quantÚ	quant_resr=   r=   r>   Útest_correct_quantile_value  s   
z(TestQuantile.test_correct_quantile_valuec                 C   s^  dd„ t dƒD ƒ}t |d¡}t|dƒ tt|ƒtƒ t |d¡}t|tddƒƒ tt|ƒtƒ t |d¡}t|d	ƒ tt|ƒtjƒ t |tddƒ¡}t|tdd
ƒƒ tt|ƒtƒ t |tddƒg¡}t|t tdd
ƒg¡ƒ tt|ƒtjƒ t |tddƒgg¡}t|t tdd
ƒgg¡ƒ tt|ƒtjƒ t 	d¡}tt |tddƒ¡tddƒƒ d S )Nc                 S   rP  rQ  r   rã  r=   r=   r>   r    r  z.TestQuantile.test_fraction.<locals>.<listcomp>rr   r   rN   rt   rL   r  rÐ   rJ   )
rc   r7   rä  r   rý   r   ré   r�   rû   r8   )rd   rÛ   rU  r=   r=   r>   rR    s*   


"zTestQuantile.test_fractionc                 C   rV  rW  )r7   r�   r   r:  rä  rZ  r=   r=   r>   rŠ  -  s   zTestQuantile.test_complexc                 C   sj   t  g d¢¡}| ¡ }t jt  d¡|dd� t||ƒ | ¡ }| ¡ }t jt  d¡|dd� t||ƒ d S )N)r   r‚  r  r  rÊ   r¡  r{  rM  )r7   r�   r¸   rä  r8   r	   r`  )rd   Úp0r£  r=   r=   r>   r£  6  s   
z TestQuantile.test_no_p_overwriterê   r>  c                 C   s2   t jt jddg|d�dgdd�}|j|ksJ ‚d S )NrN   rL   r  r  rL  rM  )r7   rä  r�   rê   )rd   rê   ré  r=   r=   r>   Útest_quantile_preserve_int_typeB  s   ÿz,TestQuantile.test_quantile_preserve_int_typerN  c                 C   sd   t  ddd¡}t jt  g d¢¡d ||d�}tt  |¡|ƒ t jg d¢||d�}tt  |¡|ƒ d S )Nr   rN   r”  )r   rN   rN   rL   rL   rV   rV   rJ   rW   rW   rN   rN   r  r  r  rr   rr   rt   r¯  rM  )rÌ   rÊ   rÈ   rË   )r7   r  rä  r�   r   r  )rd   rN  rê  rä  r=   r=   r>   Útest_quantile_monotonicH  s   ÿÿz$TestQuantile.test_quantile_monotonicrV   r-  )Ú	min_valueÚ	max_valueFçœu ˆ<ä7þçœu ˆ<ä7~)Úallow_infinityÚ	allow_nanrí  rî  )rê   rB   Úelements)rR  c                 C   s.   t  ddd¡}t  ||¡}tt  |¡|ƒ d S )Nr   rN   g{®Gáz„?)r7   r8   rä  r   r  )rd   rR  rê  rä  r=   r=   r>   Útest_quantile_monotonic_hypoV  s   z)TestQuantile.test_quantile_monotonic_hypoc                 C   sV   t  g d¢g d¢g¡}t j|d d< t  |d¡}t  |¡sJ ‚tt  |d¡t jƒ d S )N)ro  r|  rÓ   )rË   rÈ   rÊ   r   rN   r  )r7   r�   r2  rä  rŽ  r   )rd   re   rî   r=   r=   r>   Útest_quantile_scalar_nan`  s
   z%TestQuantile.test_quantile_scalar_nanrâ  )rô  r  gÍÌÌÌÌÌì?c              	   C   sÊ   t j d¡}d}| |¡}t j|||d�}|dv r.t  t  |  |||¡¡¡d| ks,J ‚d S t|| ƒ|| krItt  |  |||¡¡ddd� d S tt  |  |||¡¡dd	| t  	|d	| g¡ d� d S )
Néá  éf   rM  )ru  r¯  r   g›+¡†›„=)ÚatolrN   )
r7   r  Údefault_rngrä  r  rÍ   r  ré  r   ry  )rd   rN  râ  Úrngr;   rì   rÛ   r=   r=   r>   Ú%test_quantile_identification_equationg  s   

*"
ÿz2TestQuantile.test_quantile_identification_equationc                 C   sf  t j d¡}d}| |¡}t j|||d�}d}tt j|| ||d�|| ƒ tt j|| ||d�|| ƒ t j| d| |d� }|dkrx|| t|| ƒks^t  || ¡t|| ƒd krkt|t j||dd�ƒ d S t|t j||dd�ƒ d S |d	krÀ|| t|| ƒkr“t|t j||dd�ƒ d S t  || ¡t|| ƒd kr³t|t j||d|  dd�ƒ d S t|t j||dd�ƒ d S |d
krÕt|t j||d|  |d�ƒ d S |dk�r|| t|| ƒkrõt|t j||d|  |d�ƒ d S t|t j|||d�ƒ d S |dk�rt|t j||dd�ƒ d S |dk�r&t|t j||dd�ƒ d S t|t j|||d�ƒ d S )Nrö  r÷  rM  g      +@rN   rf  ru  rt  ri  rj  rL  )r7   r  rù  rä  r   ré  Úround)rd   rN  râ  rú  r;   rì   rU  rž   r=   r=   r>   Ú'test_quantile_add_and_multiply_constant…  s@   

ÿ"
"

z4TestQuantile.test_quantile_add_and_multiply_constantN)r{   r|   r}   r  ræ  rj   ré  rR  rŠ  r£  r  r  r  r7   rÞ  rë  Úquantile_methodsrì  Ú
hypothesisÚgivenr   ré   ÚstÚintegersÚfloatsrô  rõ  rû  rý  r=   r=   r=   r>   rá  ï  s8    
	

ÿþÿ
rá  c                
   @   sê   e Zd Zejejddddd�ejddddd�ejddddd�ejddddd�d�dd	„ ƒZejejddddd�ejddddd�ejddddd�d
�dd„ ƒZejejddddd�ejddddd�ejddddd�d
�dd„ ƒZ	dd„ Z
dS )ÚTestLerpFr   rN   )rò  rñ  rí  rî  rï  rð  )Út0Út1re   r‰   c                 C   sl   t  |||¡}t  |||¡}||ks||kr||ksJ ‚d S ||k ||k kr.||ks,J ‚d S ||ks4J ‚d S r6   ©rÌ  Ú_lerp)rd   r  r  re   r‰   Úl0Úl1r=   r=   r>   Ú+test_linear_interpolation_formula_monotonicÁ  s   	z4TestLerp.test_linear_interpolation_formula_monotonic)Útre   r‰   c                 C   s\   ||kr|t  |||¡  kr|ksJ ‚ J ‚d S |t  |||¡  kr)|ks,J ‚ J ‚d S r6   r  )rd   r  re   r‰   r=   r=   r>   Ú)test_linear_interpolation_formula_boundedÓ  s   **z2TestLerp.test_linear_interpolation_formula_boundedc                 C   s6   t  ||dd|  ¡}t  ||d| ¡}t||ƒ d S r²  )rÌ  r  r   )rd   r  re   r‰   r  r  r=   r=   r>   Ú+test_linear_interpolation_formula_symmetricß  s   z4TestLerp.test_linear_interpolation_formula_symmetricc                 C   s8   t  d¡}t  d¡}t  d¡}t |||¡dksJ ‚d S )NrL   rW   rô  gÍÌÌÌÌÌ@)r7   r�   rÌ  r  )rd   re   r‰   r  r=   r=   r>   Ú+test_linear_interpolation_formula_0d_inputsë  s   


z4TestLerp.test_linear_interpolation_formula_0d_inputsN)r{   r|   r}   rÿ  r   r  r  r  r  r  r  r=   r=   r=   r>   r  À  sL    ÿÿÿÿú

ÿÿÿü
ÿÿÿü
r  c                   @   sö   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
dg d¢dejdgejdf¡dd„ ƒZdd„ Zdd„ Zdd„ Zej	jedd�dd„ ƒZdd„ Zdd„ Zd d!„ Zd"d#„ Zej	j
d$g d%¢d&�d'd(„ ƒZej	 
d)d*g¡ej	 
d+g d,¢¡d-d.„ ƒƒZd/S )0Ú
TestMedianc                 C   s>  t  d¡}t  d¡}t  d¡ dd¡}tt  |¡dƒ tt  |¡dƒ tt  |¡dƒ tt j|dd�g d	¢ƒ tt j|dd�dd
gƒ tt j|d d�dƒ t  g d¢¡}t|d |d  d t  |¡ƒ t  g d¢¡}t|d t  |¡ƒ t  g d¢¡}t|d t  |¡ƒ tt  |¡jdƒ t j	|d< tt  |¡jdƒ d S )NrN   rL   rs   rV   r  r  r   r€   ©ró  r  rI  rJ   )çð™6-Â¦?çº¤0”¸§?çºÝË}rÂ?g©Á4¯?rÈ   )r  r  r  )r  r  r  r]   )
r7   r�   r8   ru   r   Úmedianr   r
   r•   r2  )rd   Úa0r_  r–  re   r=   r=   r>   rj   ô  s$   

 
zTestMedian.test_basicc                 C   sè   t  ddgddgddgddgg¡}|t jjdd	d
d�fD ]!}| ¡ }t j|d d� t|jƒD ]	}t j||d� q.t||ƒ qt	t j|dd�ddgƒ t	t j|j
dd�ddgƒ t	t  |¡dƒ t	t j|d d�dƒ t	t  |j
¡dƒ d S )NrL   rV   r   rN   rs   rt   rJ   rW   r=  rå   r¨  r€   rI  )r7   r�   r  Úrandintr¸   r  rc   r•   r	   r   rQ  )rd   Úa3re   ÚorigÚaxr=   r=   r>   Útest_axis_keyword
  s    
ýzTestMedian.test_axis_keywordc                 C   sÞ  t  ddgddgddgddgg¡}t  d¡}t  d¡}t  d¡ dd¡}tt j| ¡ d	d
�dƒ tt j| ¡ d	d
�dƒ tt j| ¡ d	d
�dƒ tt j| ¡ d	dd�g d¢ƒ tt j| ¡ d	dd�ddgƒ tt j| ¡ d	d d�dƒ tt j| ¡ d	dd�ddgƒ tt j|j ¡ d	dd�ddgƒ t jdt jd� d¡}t j	 
| ¡ ¡ tt j|d d�t j| ¡ d d	d�ƒ tt j|dd�t j| ¡ dd	d�ƒ tt j|dd�t j| ¡ dd	d�ƒ tt j|dd�t j| ¡ dd	d�ƒ d S )NrL   rV   r   rN   rs   rt   rJ   rW   Tr�  r  r  )rž  r�   r  rá  r  rU   r€   )r�   rž  )r7   r�   r8   ru   r   r  r¸   rQ  rè   r  rµ  r¶  )rd   r  r  r_  r–  Úa4r=   r=   r>   Útest_overwrite_keyword  sP   
ý

ÿÿÿÿÿÿÿÿÿz!TestMedian.test_overwrite_keywordc                 C   sF   g d¢}t t |¡dƒ |g}t t |¡dƒ ttj|dd�|ƒ d S )Nr™   rL   r   r€   )r
   r7   r  r   )rd   rÛ   r  r=   r=   r>   r^  =  s
   zTestMedian.test_array_likec                 C   s2   G dd„ dt jƒ}|g d¢ƒ}tt  |¡dƒ d S )Nc                   @   s    e Zd Zddd„Zddd„ZdS )z,TestMedian.test_subclass.<locals>.MySubClassNc                 S   s   t  |¡ | ¡}||_|S r6   )r7   r  rü   Úinfo)ÚclsÚinput_arrayr  Úobjr=   r=   r>   Ú__new__H  s   z4TestMedian.test_subclass.<locals>.MySubClass.__new__c                 S   r±  )Néùÿÿÿr=   )rd   r�   rê   r°  r=   r=   r>   rÍ   M  r³  z1TestMedian.test_subclass.<locals>.MySubClass.meanr6   )NNN)r{   r|   r}   r"  rÍ   r=   r=   r=   r>   Ú
MySubClassF  s    
r$  r™   r#  )r7   rû   r   r  )rd   r$  re   r=   r=   r>   rZ  D  s   
zTestMedian.test_subclassrR  rÉ   rÊ   rË   rÌ   c                 C   s:   G dd„ dt jƒ}t  t  |¡ |¡¡}t||ƒsJ ‚dS )z6Check that we return subclasses, even if a NaN scalar.c                   @   r÷   )z-TestMedian.test_subclass2.<locals>.MySubclassNrø   r=   r=   r=   r>   Ú
MySubclassW  rú   r%  N)r7   rû   r  r�   rü   rX  )rd   rR  r%  r  r=   r=   r>   Útest_subclass2S  s   zTestMedian.test_subclass2c                 C   sl   t  d¡}t  d¡}tt j|d|d�|ƒ t  d¡}tt j|d|d�|ƒ t  d¡}tt j||d�|ƒ d S )NrÏ  rÛ  r   rŠ  r…  rN   r=   )r7   r@   rb   r   r  rÐ  r=   r=   r>   rÑ  ]  s   



zTestMedian.test_outc                 C   s²   t jdd��I t  ddt¡ t d¡}t d¡}tj|d< ttj	|d|d	�|ƒ t d
¡}ttj	|d|d	�|ƒ t d¡}ttj	||d	�|ƒ W d   ƒ d S 1 sRw   Y  d S )NTrC  rE  rF  rÏ  rÛ  r¯  r   rŠ  r…  rN   r=   )
rH  rI  rJ  r�  r7   r@   rb   r2  r   r  rÐ  r=   r=   r>   rÒ  f  s   




"÷zTestMedian.test_out_nanc                 C   sf  t jdtd�}t j|d< tt  |¡t jƒ tt j|dd�t jƒ t jdtd� ddd¡}t j|d< t j|d	< tt  |¡t jƒ tt  |¡jdƒ t  t jdtd� ddd¡d¡}t j|d
< t j|d< tt  |d¡|ƒ t  t jdtd� ddd¡d¡}t j|d< t j|d< tt  |d¡|ƒ t  t jdtd� ddd¡d¡}t j|d< t j|d< tt  |d¡|ƒ d S )NrM  r  rL   r   r€   rV   rJ   r™   rÓ  r­  rn   rN   r±  rR   )r7   r8   rd  r2  r   r  ru   r•   rˆ   r=   r=   r>   rÔ  r  s*   


 

 

 

zTestMedian.test_nan_behaviorzfp errors don't work correctlyr  c                 C   s˜  t jg td�}tjdd��(}t ddt¡ tt  |¡t j	ƒ t
|d jtu ƒ tt|ƒdƒ W d   ƒ n1 s8w   Y  t jg tdd	�}tjdd��!}t ddt¡ tt  |¡t j	ƒ t
|d jtu ƒ W d   ƒ n1 sow   Y  t jg tdd	�}tt j|dd
�|ƒ tt j|dd
�|ƒ t jt j	tdd	�}tjdd��#}t ddt¡ tt j|dd
�|ƒ t
|d jtu ƒ W d   ƒ d S 1 sÅw   Y  d S )Nr  TrC  rE  rF  r   rL   rV   )rê   r   r€   rN   )r7   r�   rd  rH  rI  rJ  r�  r   r  r2  r   rL  r  )rd   re   rí   r‰   r=   r=   r>   r�  ’  s,   üý"ýzTestMedian.test_emptyc                 C   sL   t  d¡}ttt  | t¡¡ƒtƒ t j|d< ttt  | t¡¡ƒtƒ d S )Nr|  rL   )	r7   r8   r   rý   r  rç   rè  rd  r2  )rd   rT  r=   r=   r>   Útest_object°  s   

zTestMedian.test_objectc              
   C   s’  t jjdd�}t  |gd ¡}tt j|dd�t  |¡ƒ t  |dd¡}tt j|dd�t  |¡ƒ | dd	¡ ¡ }tt j|d
d�t  |¡ƒ tt j|dd�t j|d d�ƒ tt j|dd�t j|dd�ƒ tt j|dd�t j|dd�ƒ t  	d¡ 
d¡}t j | ¡ ¡ tt j|dd�d t  |d d …d d …d d …df  ¡ ¡ƒ tt j|dd�d	 t  |d d …d d …d	d d …f  ¡ ¡ƒ tt j|dd�d t  |d d …d d …dd d …f  ¡ ¡ƒ tt j|dd�d t  |dd d …d d …d d …f  ¡ ¡ƒ tt j|dd�d t  |dd	d d …d d …f  ¡ ¡ƒ tt j|dd�d t  |dd d …d d …d	f  ¡ ¡ƒ tt j|dd�d t  |dd d …dd d …f  ¡ ¡ƒ d S )Nr¥  r¨  r·   r^   r€   r]   r   ro   rN   rm   rM   r?  )r]   r©  rª  r¬  r­  rL   r®  r—  r¯  r°  r±  rQ   )r7   r  r²  r³  r   r  r´  r–   r¸   r8   ru   rµ  r¶  r·  r¸  r=   r=   r>   r¹  ¶  sB   $ÿ$ÿ$ÿ$ÿ ÿ ÿ ÿzTestMedian.test_extended_axisc                 C   sp   t  d¡}tt jt j|dd� tt jt j|dd� tt jt j|dd� tt jt j|dd� ttt j|dd� d S )Nrª  rn  r€   rº  rJ   r»  rS   )r7   rb   r   r„   r  ra   rš  r=   r=   r>   r¼  Ô  s   
z%TestMedian.test_extended_axis_invalidc                 C   sž   t  d¡}tt j|d dd�jdƒ tt j|ddd�jdƒ tt j|ddd�jdƒ tt j|d	dd�jd
ƒ tt j|ddd�jdƒ tt j|ddd�jdƒ d S )Nrª  Tr×   r²   r^   r½  rƒ   r¾  r  r¿  r˜  r¬  rÀ  )r7   rb   r   r  rB   rš  r=   r=   r>   rÁ  Ü  s&   
ÿÿÿÿÿÿzTestMedian.test_keepdimsr�   rÂ  rÃ  c                    s€   t  d¡‰|d u rdˆj }nt|ˆjƒ‰ t‡ ‡fdd„tˆjƒD ƒƒ}t  |¡}t jˆ|d|d�}||u s8J ‚t|j	|ƒ d S )Nrª  r  c                 3   rÆ  rÇ  rÈ  rã  rÉ  r=   r>   rK  û  rË  z/TestMedian.test_keepdims_out.<locals>.<genexpr>TrÌ  )
r7   rb   r•   r5   r6  rc   r�  r  r   rB   )rd   r�   rÍ  r°  rÊ  r=   rÉ  r>   rÎ  ë  s   
ÿ
zTestMedian.test_keepdims_outrê   zm8[s]rÖ  r×  c                 C   s¸   t jdd|d�}d||< t  |¡}|j|ksJ ‚t  |¡sJ ‚t  |ddg¡}|j|ks.J ‚t  |¡ ¡ s7J ‚t jdd|d� dd	¡}d||d
f< t j|dd�}tt  |¡g d¢ƒ d S rØ  )	r7   r8   r  rê   rÛ  rO  r³   ru   r	   rÜ  r=   r=   r>   Útest_nat_behavior  s   
zTestMedian.test_nat_behaviorN)r{   r|   r}   rj   r  r  r^  rZ  r  r  r  r7   r2  r&  rÑ  rÒ  rÔ  r  r   r�  r'  r¹  r¼  rÁ  rÎ  r(  r=   r=   r=   r>   r  ò  s6    !ÿ
	 
þ

r  c                   @   r    )ÚTestAdd_newdoc_ufuncc                 C   s"   t ttddƒ t tttjdƒ d S )NrL   Úblah)r   r:  r   ra   r7   r9   r†   r=   r=   r>   Útest_ufunc_arg  s   z#TestAdd_newdoc_ufunc.test_ufunc_argc                 C   s   t tttjdƒ d S )NrV   )r   r:  r   r7   r9   r†   r=   r=   r>   Útest_string_arg  s   z$TestAdd_newdoc_ufunc.test_string_argN)r{   r|   r}   r+  r,  r=   r=   r=   r>   r)    s    r)  c                   @   s\   e Zd Zejjejjdkdd�ejj	e
dd�dd„ ƒƒZejjejjdkdd�dd„ ƒZd	S )
ÚTestAdd_newdocrL   úPython running -OOr  úPyPy does not modify tp_docc                 C   sV   d}t tjjjjd t|ƒ… |ƒ tttjjj	jƒdkƒ tttj
jjjƒdkƒ d S )Nz"Current flat index into the array.r  )r   r7   ÚcoreÚflatiterÚindexr¸  r  r   ÚufuncÚidentityrg  Úindex_tricksÚmgrid)rd   r—  r=   r=   r>   Útest_add_doc"  s   zTestAdd_newdoc.test_add_docc                 C   s2   t jjjj}t  ddd¡ |t jjjjksJ ‚d S )Nz
numpy.corer1  )r2  zbad docstring)r7   r0  r1  r2  r¸  Ú
add_newdoc)rd   Úprev_docr=   r=   r>   Útest_errors_are_ignored+  s   z&TestAdd_newdoc.test_errors_are_ignoredN)r{   r|   r}   r  r  r  rñ  r½   rò  r(  r   r7  r:  r=   r=   r=   r>   r-     s    r-  c                   @   s\   e Zd Zejjejjdkdd�ejje	dd�dd„ ƒƒZ
ejjejjdkdd�dd„ ƒZd	S )
ÚTestAddDocstringrL   r.  r  r/  c                 C   s0   t  t jjt jjj¡ dd„ }t  ||j¡ d S )Nc                   S   r±  ©Ú	docstringNr=   r=   r=   r=   r>   Úfunc=  r¶  z6TestAddDocstring.test_add_same_docstring.<locals>.func)r7   Úadd_docstringrû   Úflatr¸  ©rd   r>  r=   r=   r>   Útest_add_same_docstring7  s   z(TestAddDocstring.test_add_same_docstringc                 C   sz   t tƒ� t tjjd¡ W d   ƒ n1 sw   Y  dd„ }t tƒ� t |d¡ W d   ƒ d S 1 s6w   Y  d S )Nzdifferent docstringc                   S   r±  r<  r=   r=   r=   r=   r>   r>  I  r¶  z=TestAddDocstring.test_different_docstring_fails.<locals>.func)r   r±  r7   r?  rû   r@  rA  r=   r=   r>   Útest_different_docstring_failsC  s   
ÿ
"ÿz/TestAddDocstring.test_different_docstring_failsN)r{   r|   r}   r  r  r  rñ  r½   rò  r   rB  rC  r=   r=   r=   r>   r;  4  s    
r;  c                   @   s.   e Zd Zej dg d¢¡dd„ ƒZdd„ ZdS )ÚTestSortComplexztype_in, type_out))ÚlrY  )Úhrº   )ÚHrº   )r‰   rº   )rX  rº   )r)  rX  c                 C   sH   t jg d¢|d�}t  |¡}t  |¡ |¡}t||ƒ t|j|jƒ d S )N)rW   rV   rs   rL   rN   r  )r7   r�   Úsort_complexr  rç   r   rê   )rd   Útype_inÚtype_outre   rî   r¿  r=   r=   r>   Útest_sort_realS  s
   


zTestSortComplex.test_sort_realc                 C   sJ   t jg d¢dd�}t jg d¢dd�}t  |¡}t||ƒ t|j|jƒ d S )N)r;  ù      ð?       Àr>  r<  rY  r  )r>  rL  r<  r;  )r7   r�   rH  r   rê   )rd   re   r¿  rî   r=   r=   r>   Útest_sort_complexc  s
   

z!TestSortComplex.test_sort_complexN)r{   r|   r}   r  r  r  rK  rM  r=   r=   r=   r>   rD  Q  s    
rD  )rÊ   )rÊ   rÌ   )€ræ  rH  rñ  r	  Ú	fractionsr   rn  r  rÿ  Úhypothesis.extra.numpyr   Úhypothesis.strategiesÚ
strategiesr  Ú	functoolsr   Únumpyr7   r   Únumpy.testingr   r   r	   r
   r   r   r   r   r   r   r   r   r   Únumpy.lib.function_baserg  Úfunction_baserÌ  Únumpy.randomr   Ú	numpy.libr   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/   r0   r1   r2   r3   r4   Únumpy.core.numericr5   r?   rG   rI   r   r¡   r±   r¶   rÇ   r  r@  rk  rx  rz  r~  r˜  r¥  rª  rÎ  rí  r;  rH  rc  rq  rs  rt  rÿ  r  r)  r  r  rÞ  rA  rO  r\  r_  re  rj  rŸ  r¹  r¾  rÅ  rÐ  ré  rñ  r  rK  rþ  rá  r  r  r)  r-  r;  rD  r=   r=   r=   r>   Ú<module>   s°    <ˆDg# >o u  A
)
   j)Uÿl>[j4nd` C    * R2  &
