o
    V=ºi•N ã                   @   s.  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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 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,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD dd	„ ZEd
d„ ZFG dd„ dƒZGG dd„ dƒZHG dd„ dƒZIG dd„ dƒZJG dd„ 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 d0d1„ d1ƒZYG d2d3„ d3ƒZZdtd5d6„Z[dud8d9„Z\G d:d;„ d;ƒZ]G d<d=„ d=ƒZ^G d>d?„ d?ƒZ_G d@dA„ dAƒZ`eja bdBdCejcdD  ejcdE  ¡eja bdFg dG¢¡G dHdI„ dIƒƒƒZdG dJdK„ dKƒZeG dLdM„ dMƒZfG dNdO„ dOƒZgG dPdQ„ dQƒZhG dRdS„ dSƒZiG dTdU„ dUƒZjG dVdW„ dWƒZkG dXdY„ dYƒZlG dZd[„ d[ƒZmG d\d]„ d]ƒZnG d^d_„ d_ƒZoG d`da„ daƒZpG dbdc„ dcƒZqG ddde„ deƒZrG dfdg„ dgƒZsG dhdi„ diƒZtG djdk„ dkƒZuG dldm„ dmƒZvG dndo„ doƒZwG dpdq„ dqƒZxG drds„ dsƒZydS )vé    N©ÚFraction)Úarrays)Úma)Úassert_Úassert_equalÚassert_array_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_raisesÚassert_allcloseÚIS_PYPYÚassert_warnsÚassert_raises_regexÚsuppress_warningsÚHAS_REFCOUNT)Úrand) Úadd_newdoc_ufuncÚangleÚaverageÚbartlettÚblackmanÚcorrcoefÚcovÚdeleteÚdiffÚdigitizeÚextractÚflipudÚgradientÚhammingÚhanningÚi0ÚinsertÚinterpÚkaiserÚmeshgridÚmsortÚ	piecewiseÚplaceÚrot90ÚselectÚsetxor1dÚsincÚtrapzÚ
trim_zerosÚunwrapÚuniqueÚ	vectorizec                 C   s   t  | ¡}t j ||¡}|S ©N)ÚnpÚarangeÚaddÚouter)ÚnÚdata© r:   úhC:\Users\psant\Downloads\PAF backend\school\venv\Lib\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
    N)r4   ÚzerosÚ	broadcastÚshapeÚcomplex_ÚrealÚimag)rA   rB   Úretr:   r:   r;   Ú_make_complex$   s   rD   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é   ©é   rI   rI   ©r   é   rI   ©Úaxes©rI   rI   ©r   rI   ©rK   rK   )éþÿÿÿrK   ©é   rG   é   rI   rT   rK   r   rS   ©rT   rG   rS   ©rI   rK   r   éýÿÿÿé   )ÚkrQ   éÿÿÿÿ©r   rK   ©rK   r   ©rY   rM   )r   Ú
ValueErrorr*   r4   ÚonesÚranger   )ÚselfÚaÚb1Úb2Zb3Zb4rY   r:   r:   r;   Ú
test_basic0   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   é(   rS   )rg   rf   rS   rO   rL   ©r   rZ   ©rK   rI   ©rQ   rZ   )r4   r_   r   r*   r?   ©ra   rb   r:   r:   r;   Ú	test_axesP   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é   rH   rI   rS   é   é   r   rK   rG   rT   r[   rL   r\   ri   )rI   r   r]   )r4   r5   Úreshaper   r*   r`   )ra   rb   Z
a_rot90_01Z
a_rot90_12Z
a_rot90_20Z
a_rot90_10rY   r:   r:   r;   Útest_rotation_axesV   sJ   ÿÿþÿÿþÿÿþÿÿþÿÿzTestRot90.test_rotation_axesN)Ú__name__Ú
__module__Ú__qualname__re   rl   rq   r:   r:   r:   r;   rF   /   s     rF   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 )NrG   rK   ©Úaxis©rG   rG   rI   rW   ©r   rS   )r   r4   Ú	AxisErrorÚflipr_   ©ra   r:   r:   r;   rl   u   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 )NrG   rZ   rK   rJ   rR   rV   rU   ©r<   r   r4   r|   ©ra   rb   Ú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 )NrG   rZ   r   rJ   rR   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   rK   rI   rS   rG   rT   rn   ro   ©r4   Ú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   rI   rS   rG   rT   r   )	r4   r5   rp   r`   Úndimr   r|   r   Úswapaxes)ra   rb   Ú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©rK   rI   rS   ©rG   rT   rn   )rn   rT   rG   ©rS   rI   rK   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   rK   rI   rS   rG   rT   rn   ro   r:   rw   rO   ri   r…   ©ra   rb   r€   Úcr:   r:   r;   Útest_multiple_axesÃ   s0   
ÿÿþ
ÿÿþ
ÿÿþzTestFlip.test_multiple_axesN)rr   rs   rt   rl   r�   rƒ   r‡   r‰   rŠ   r�   r“   r–   r:   r:   r:   r;   rv   s   s    

rv   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   rK   r   ©r   r   r   r   )rK   r   rK   r   )r   r4   Úany©ra   Úy1Úy2Úy3r:   r:   r;   re   Ü   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   rK   r   ©rK   rK   r   r   rw   rK   ©r   rK   rK   )r   r4   r›   r   Zsometrue©ra   r�   r:   r:   r;   Útest_ndä   s   zTestAny.test_ndN©rr   rs   rt   re   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   rK   rK   r   rš   ©rK   rK   rK   rK   )r   r4   Úallr†   rœ   r:   r:   r;   re   í   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   rK   r£   ©rK   rK   rK   r   rw   rK   )r   r4   rª   r   Zalltruer¤   r:   r:   r;   r¥   ö   s   zTestAll.test_ndNr¦   r:   r:   r:   r;   r¨   ë   s    	r¨   c                   @   rE   )ÚTestCopyc                 C   sR   t  ddgddgg¡}t  |¡}t||ƒ d|d< t|d dƒ t|d dƒ d S )NrK   rI   rS   rG   é
   )r   r   )r4   r†   Úcopyr   r   )ra   rb   Úa_copyr:   r:   r;   re   ÿ   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 )NrK   rI   rS   rG   ÚF©Úorder)r4   r†   r   ÚflagsÚc_contiguousÚf_contiguousr¯   )ra   rb   Za_fortr°   Z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 )NrT   F)ZsubokT)r   r_   r   ZisMaskedArrayr4   r¯   )ra   Zmxr:   r:   r;   Ú
test_subok  s   
zTestCopy.test_subokN)rr   rs   rt   re   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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   rw   ç       @©ç      ð?rº   ç      @)ç        r¾   r¾   r¾   ry   r[   rI   r\   rK   rT   )r4   r†   r   r   r_   r	   Úmeanr   )ra   r�   rž   rŸ   Zy4Zy5r:   r:   r;   re   "  s   

zTestAverage.test_basicz<x, axis, expected_avg, weights, expected_wavg, expected_wsumr�   Nrº   )rS   rG   rK   ç      ü?ç       @)rK   rI   rT   )rK   rn   é   r   )r¼   ç      @rÁ   rK   rS   )r¼   ç      @ç      #@©rG   rG   rG   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©rx   Úkeepdims)rx   ÚweightsrÈ   )rx   rÉ   ÚreturnedrÈ   )r4   r   r?   r   )
ra   Úxrx   Zexpected_avgrÉ   Zexpected_wavgZexpected_wsumÚavgZwavgZwsumr:   r:   r;   Útest_basic_keepdims4  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É   rI   r¼   r�   r‘   rK   r   )rÉ   rx   )r½   rÃ   rÄ   r«   r½   ç      @)r   r   rI   rÄ   rT   ©rI   rS   rG   rS   F)rÉ   rx   rÈ   )rº   r½   rÃ   Trº   rÃ   )r4   r5   r   Úsumr	   r†   r   r   r   ÚastypeÚfloat32Úfloat64r   ÚdtypeÚresult_typerp   )ra   ÚyÚwÚactualZdesiredr�   Úw0Úw1Úw2rŸ   Zw3rË   r:   r:   r;   Útest_weightsK  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º   rK   r½   rI   )rÉ   rx   rÊ   )r½   r½   r½   r«   r¼   )r4   r†   r   r   r   )ra   r×   rÌ   ZsclrÚ   rÛ   rÜ   r:   r:   r;   Útest_returnedw  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©rr   rs   rt   r:   r:   r:   r;   Úsubclass’  ó    rá   rK   rI   rS   rG   rÎ   )r4   Úndarrayr†   Úviewr   Útyper   )ra   rá   rb   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è   rK   rI   rS   rG   ©rÕ   rÎ   )r4   r†   r   r   rÕ   )ra   ZtypsÚatÚwtÚrtrb   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 ©rK   rï   )rò   Ú_r:   r:   r;   ró   ¤  rô   r   rÎ   )r4   r†   r`   rÑ   r	   r¿   r   )ra   rb   rØ   r:   r:   r;   Útest_object_dtype¢  s   zTestAverage.test_object_dtype)rr   rs   rt   re   ÚpytestÚmarkÚparametrizerÍ   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‘   ©ro   rm   é	   )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>)r`   ÚlenÚzip)ra   Z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  rS   )ÚchoicesÚ
conditionsr   r+   r	  r   r  ©ra   r  r  r:   r:   r;   re   ¶  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þ   rK   é   rG   rS   ©rG   rS   r   r  rõ   )	r4   r†   r5   rp   r   r+   r_   r   r?   ©ra   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Ò   r4   Úint8)rò   Úchoicer:   r:   r;   ró   Ë  ó    z0TestSelect.test_return_dtype.<locals>.<listcomp>rK   rI   rS   rT   ro   r   )r   r+   r  r  rÕ   r4   r@   r  r†   ÚnanÚisnan)ra   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   r^   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Ò   r4   Ú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   rK   )r4   r†   r+   r  r:   r:   r;   Útest_many_argumentsß  s   zTestSelect.test_many_argumentsN©r   )rr   rs   rt   r4   r†   r  r  r	  re   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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   rK   )rK   rK   rI   rS   rS   )rK   rI   rS   rK   r¬   )rK   rK   rI   rS   rI   rS   )rK   rZ   rS   rý   )rK   rý   rI   rý   rS   rý   rZ   )rý   rK   rý   rI   rý   rS   ©rZ   rK   rS   rü   )rK   rm   rI   ro   rS   rý   rê   ©r¾   r¾   r¼   T©ÚrecordÚalwaysÚ rG   )rK   rý   rý   rý   rý   rI   rS   )r   r#   Úslicer4   r†   rÔ   ÚwarningsÚcatch_warningsÚfilterwarningsÚFutureWarningr   Úcategory)ra   rb   r€   rØ   r:   r:   r;   re   è  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¬   rH   r   rK   r©   rw   rI   )rK   rK   rI   rK   rS   rG   r�   é   rÐ   rZ   rQ   éüÿÿÿ)r   r#   r4   r†   r5   Úrepeatrp   ZconcatenateÚTr   r{   )ra   rb   Ú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 )NrK   rI   r   rw   Únonsense)r4   r†   rø   Úraisesr{   r#   r  rk   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;   ÚSubClass.  râ   r;  r®   r   rK   rI   rQ   rZ   )	r4   rã   r5   rä   r   Ú
isinstancer#   r,  r†   ©ra   r;  rb   r:   r:   r;   Útest_subclass-  s    " zTestInsert.test_subclassc                 C   s<   t  g d¢¡}t  g d¢|g d¢¡ t|t  g d¢¡ƒ d S )Nr¬   rJ   rR   )r4   r†   r#   r   ©ra   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))rK   rb   )rI   r€   )rS   r•   )ÚfoorŽ   )ÚbarÚa1rê   )rG   r  r   rI   rS   )r4   r†   r#   r   rÕ   )ra   rb   Úvalr€   r:   r:   r;   Útest_structured_array?  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 )NrJ   r¼   rº   r®   é   rê   )rø   r9  Ú
IndexErrorr4   r#   r†   Úfloatr}   r:   r:   r;   Útest_index_floatsI  s   "ÿ"ÿzTestInsert.test_index_floatsÚidxrG   r3  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©ÚmatchrJ   rS   rG   )rø   r9  rG  r4   r#   )ra   rJ  r:   r:   r;   Útest_index_out_of_boundsO  s   "ÿz#TestInsert.test_index_out_of_boundsN)rr   rs   rt   re   r7  r:  r>  r@  rE  rI  rø   rù   rú   rM  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©rS   rG   rT   r®   rW   éûÿÿÿrÏ   ç      $@©rS   rÏ   ç      "@©rG   rS  rÄ   ©rm   r½   rº   r   rw   )rÁ   rS  rU  rK   )rU  rS  rÁ   )r   r4   Zamaxr   r:   r:   r;   re   W  ó   þzTestAmax.test_basicN©rr   rs   rt   re   r:   r:   r:   r;   rO  U  ó    rO  c                   @   rN  )ÚTestAminc                 C   rP  )NrQ  g      ÀrT  rV  rW  r   rw   )r½   r½   rº   rK   )r½   rÃ   rº   )r   r4   Zaminr   r:   r:   r;   re   c  rX  zTestAmin.test_basicNrY  r:   r:   r:   r;   r[  a  rZ  r[  c                   @   rN  )Ú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 )NrQ  r   rw   ç      .@rT  rV  rW  )rÄ   ç      @r^  rZ   )rÏ   rÏ   rÏ   TrÇ   r[   rÁ   )r4   r†   r   Zptpr   r:   r:   r;   re   o  s   
þzTestPtp.test_basicNrY  r:   r:   r:   r;   r\  m  rZ  r\  c                   @   rN  )Ú
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©rK   rI   r®   rÂ   rn   rT   rG   ©rK   rI   rS   rG   ©rT   rn   ro   rý   ©r®   rS   rG   rT   )rK   rS   rX   r2  é   é#   é'   r   rw   )rn   rm   r®   rX   )é   rÂ   é   é   )rK   rS   rn   r®   )rT   rÂ   ri  é   )r®   rX   é   é   rK   )r4   r  r   Úint16Úuint16Úint32Úuint32rÓ   rÔ   Ú	complex64Ú
complex128r†   r   Úcumsum)ra   ÚbaÚba2Úctyperb   Úa2Útgtr:   r:   r;   re   ~  s&   þÿÿñzTestCumsum.test_basicNrY  r:   r:   r:   r;   r_  |  rZ  r_  c                   @   rN  )Ú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`  ra  rb  rc  ©Ú1r€   rK   r   rw   é g  ©rf   é$   éT   é´   rZ   )r2  éb  éX  )r4   rm  rn  ro  rp  rÓ   rÔ   rq  rr  r†   r   ÚArithmeticErrorÚprodr   r   ©ra   rt  ru  rv  rb   rw  r:   r:   r;   re   •  s$   ÿÿÿõzTestProd.test_basicNrY  r:   r:   r:   r;   ry  “  rZ  ry  c                   @   rN  )Ú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`  ra  rb  rc  rz  rK   rZ   rw   )rK   rI   rF  éÜ   i(  iÈ  r|  r   )rT   r  é   r~  r}  )rK   rI   rn   r2  )rT   rd  éÒ   r�  )r®   rd  r‹   r‚  )r4   rm  rn  ro  rp  rÓ   rÔ   rq  rr  r†   r   rƒ  Zcumprodr   r…  r:   r:   r;   re   ©  sB   ÿ
ÿÿ
þþÿ
þþÿðzTestCumprod.test_basicNrY  r:   r:   r:   r;   r†  §  rZ  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)rK   rG   rn   ro   r  )rS   rI   rK   rT   )rZ   rZ   rG   r   rT   rI   ©r8   rS   )çš™™™™™ñ?çš™™™™™@r½   gš™™™™™É¿çš™™™™™¹¿)rŒ  gš™™™™™é?gš™™™™™	Àçš™™™™™¹?)TTFFrþ   T)r4   r†   r   r   r	   )ra   rË   ÚoutÚout2Úout3r:   r:   r;   re   Ä  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®   rF  rd  rK   rI   )r®   é   rd  rZ   )r®   rF  é   rw   r   )rý   rF  rd  rQ   rS   r3  gæÇqÇñ?)
r4   r=   r_   r   r   r   r{   r†   rÔ   r^   )ra   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 )NrF  r®   rd  rK   rZ   rI   r‹  r   rw   )r8   rx   )r   r   r   )ra   rË   Zout1r‘  r’  Z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 )
NrS   rZ   r‹  c                    s   g | ]}t ˆ |d �‘qS )r‹  )r   )rò   r8   ©rË   r:   r;   ró   õ  r  z#TestDiff.test_n.<locals>.<listcomp>rK   rT   r   ©Ústart)Úlistr`   r   r^   r   r   Ú	enumerater  rå   r4   rã   r   r   rÕ   r  r  Úmax)ra   r  Úexpectedr8   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ê   rK   útimedelta64[D]r   rS   r˜  r‹  )
r4   r5   Z
datetime64r†   Úextendr›  r   r   r   rÕ   )ra   rË   r�  r8   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 )NrK   rI   rS   rG   rT   rn   ro   rm   rý   r®   FT©Úmaskr‹  )r   r†   r   r   r9   r£  r   rå   )ra   rË   r�  r’  r:   r:   r;   r>  
  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 )NrT   rK   r   )ÚprependrZ   rn   rG   rI   )rx   r¤  ©rS   rS   rS   )r¤  rx   )r4   r5   r   r   r_   rs  rp   r   r^   r=   r{   ©ra   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 )NrT   r   )Úappend)rK   rK   rK   rK   r3  rI   rG   rK   )rx   r©  rZ   rW   rQ   r¥  rS   )r©  rx   )	r4   r5   r   r   rp   r   r^   r=   r{   r¦  r:   r:   r;   Útest_append1  s,   








zTestDiff.test_appendN)rr   rs   rt   re   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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 )NrT   rI   rK   )r4   r5   rb   r4  rp   Únd_ar}   r:   r:   r;   Úsetup_methodP  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 )NrK   rw   zDelete failed for obj: %r)Úerr_msgr   )r   rb   r¬  r   r,   )ra   ÚindicesÚa_delÚnd_a_delÚmsgÚxorr:   r:   r;   Ú_check_inverse_of_slicingT  s   ÿ$"z$TestDelete._check_inverse_of_slicingc                 C   sH   g d¢}g d¢}|D ]}|D ]}|D ]}t |||ƒ}|  |¡ qqq
d S )N)éúÿÿÿrQ   r   rK   rI   rG   rT   )rW   rZ   rK   rS   )r,  r´  )ra   ZlimsZstepsr™  ÚstopÚstepÚsr:   r:   r;   Útest_slices]  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   rK   rI   r"  iœÿÿÿ)r   rZ   rI   rI   )TFFTFTFrG   )	r´  r4   r†   rø   r9  rG  r   rb   r^   r}   r:   r:   r;   Ú
test_fancyf  s$   ÿÿÿÿ"ÿzTestDelete.test_fancyc                 C   s   |   d¡ |   d¡ d S )Nr   r3  )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 )NrK   r   rw   r8  )r4   r†   rø   r9  r{   r   r  rk   r:   r:   r;   r:    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;   r;  ‡  râ   r;  r   rK   rI   rQ   )r4   rã   rb   rä   r   r<  r   r,  r=  r:   r:   r;   r>  †  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®   rI   rT   r±   r²   é<   rK   rw   )	r4   r5   rp   r   r,  r   r´   rµ   r¶   )ra   rY   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 )NrJ   r¼   rº   rê   )rø   r9  rG  r4   r   r†   rH  r}   r:   r:   r;   rI  š  s   ÿ"ÿzTestDelete.test_index_floatsÚindexerrK   c                 C   sX   t | jdƒ}t | j|ƒ}t||ƒ t | jddd�}t | jt dg¡dd�}t||ƒ d S )NrK   rw   )r   rb   r   r¬  r4   r†   )ra   r¾  Z	a_del_intr°  Z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 )NrK   F)rS   rK   rê   TrZ   rw   r   rI   zm8[ns])
r   r4   r_   r†   r   Úboolrø   r9  rG  Úobject)ra   ÚresrË   Z
false_maskZ	true_maskr:   r:   r;   Útest_single_item_array_non_intª  s   

ÿ"þz)TestDelete.test_single_item_array_non_intN)rr   rs   rt   r­  r´  r¹  rº  r»  r:  r>  r½  rI  rø   rù   rú   r4   r†   r¿  rÃ  r:   r:   r:   r;   r«  N  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!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 )NrK   rS   rG   rº   r½   r¾   r¼   )r4   r†   r   r   ©ra   ÚvrË   Údxr:   r:   r;   re   Å  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 )NrT   )r¼   rº   rÄ   rU  ç      &@é   r½   ç      ø?rI   rK   rw   z.*scalars or 1drZ   )
r4   rs  r_   r5   rp   r   r†   r   r^   Ústack)ra   rÇ  Z	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É  rT   rI   rK   r[   rw   )	r4   r5   rp   rs  r_   r   r^   r   r  )ra   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ê   )rR  rW   r   é   é=   iŒ  iÛ  rŸ  ©r4   r†   r   r   r   rÕ   ©ra   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 )NrK   rS   rG   Fr¢  r   rT   rI   ©Ú
edge_order)FFTFF)r4   r   r†   r   r   rå   r   Z_maskr5   Úmaskedr   r£  )ra   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   rK   r®   rI   rS   rG   rn   rm   rÔ  g¸…ëQ¸ž?T)	r4   ÚlinspaceÚabsr   r   rª   ÚrandomÚseedÚsort)ra   rË   rÇ  r×   Z
analyticalZ	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Ä   )rn   rK   rZ   rK   )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      Ð¿rI   r¼   r[   )rx   rÕ  r   r\   )r4   r†   Ztilerp   r5   r   r   r	   r5  r   r?   )ra   ÚfZx_unevenZx_evenZfdx_even_ord1Zfdx_even_ord2Zfdx_uneven_ord1Zfdx_uneven_ord2rÕ  Z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 )NrK   rS   rG   rº   r½   r¾   r¼   r   rw   rZ   r\   rI   rW   )r4   r†   r   r   r	   r   r  r{   rÅ  r:   r:   r;   Útest_specific_axese  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)rR  rW   r®   r  rÐ  iA  é,  rŸ  rê   )rI   ro   ro   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ê   )	r4   Úfloat16rÓ   rÔ   r†   r   r   rÕ   r   )ra   Ú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 )NrI   rK   rÔ  rS   r   )r   r4   r5   r   r^   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)rT   rG   rS   rI   rK   rê   rZ   ©r4   r†   r   r   r  )ra   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 )NrK   rS   rZ   rê   rI   )r4   Úiinforœ  r†   r   r   )ra   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   rI   rG   rQ   ró  )ra   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 )NrZ   rê   rI   r   rß  )r4   rö  Úminrœ  r†   r   r   )ra   rú  Zminintr÷  rË   rä  rø  r:   r:   r;   Útest_x_signed_int_big_jump´  s   
z'TestGradient.test_x_signed_int_big_jumpN)rr   rs   rt   re   rÍ  rÎ  rÓ  rØ  rÞ  rè  ré  rí  rð  rñ  rø   rù   rú   r4   r   rn  rp  Zuint64rõ  r  rm  ro  Zint64rù  rü  rþ  r:   r:   r:   r;   rÄ  Ã  s8    @ÿ
ÿ
ÿ
ÿ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ù      ð?      @rI   rº   r  rK   rZ   ù       €      ð¿ù      ð?      Ày      ð¿      @r½   r¼   r   T)Údegr€  rÂ   )r4   Úsqrtr   ÚarctanÚpir†   r
   )ra   rË   r×   ZyoÚzZzor:   r:   r;   re   Á  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   rK   rI   ù      ð?      ð?r½   r   r¼   )
r4   r   r†   r  rÖ  r  r   r   rå   r£  )ra   rË   r�  rÙ   r:   r:   r;   r>  Î  s    zTestAngle.test_subclassN)rr   rs   rt   re   r>  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   rK   r   rI   rS   rG   r   c                    s   d}‡ fdd„|D ƒS )N)rb   r€   r•   r  c                 3   s   � | ]}t ˆ |ƒV  qd S r3   )Úgetattr)rò   Únamer}   r:   r;   Ú	<genexpr>â  ó   € z'TestTrimZeros.values.<locals>.<genexpr>r:   )ra   Z
attr_namesr:   r}   r;   r  à  s   zTestTrimZeros.valuesc                 C   s6   t jdd… }|  ¡ D ]}t|ƒ}t||| ƒ qd S )NrI   rZ   ©r4   Ús_r  r/   r   ©ra   ÚslcÚarrrÂ  r:   r:   r;   re   ä  s
   þzTestTrimZeros.test_basicc                 C   s:   t jd d… }|  ¡ D ]}t|dd�}t||| ƒ qd S )NrZ   r€   ©Ztrimr  r  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 )NrI   r±   r  r  r  r:   r:   r;   Útest_trailing_skipð  r  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ê   ÚBr  r   rä  )r  r4   Z
zeros_likerÕ   r/   r  )ra   Z_arrr  rå  ræ  r:   r:   r;   Útest_all_zeroö  s   ùzTestTrimZeros.test_all_zeroc                 C   s    t  d¡}t|ƒ}t||ƒ d S r  )r4   r=   r/   r   ©ra   r  rÂ  r:   r:   r;   Útest_size_zero   s   
zTestTrimZeros.test_size_zeror  )r   l            r   )r   l            r   )r   l            r   c                 C   s(   t jdd… }t|ƒ}t||| ƒ d S )NrK   rI   )r4   r  r/   r   )ra   r  r  rÂ  r:   r:   r;   Útest_overflow  s   zTestTrimZeros.test_overflowc                 C   s$   t  g d¢¡}t|ƒ}t||ƒ d S )N)NrK   N)r4   r†   r/   r   r  r:   r:   r;   Útest_no_trim  s   zTestTrimZeros.test_no_trimc                 C   s    t | j ¡ ƒ}t|tƒsJ ‚d S r3   )r/   rb   Útolistr<  rš  )ra   rÂ  r:   r:   r;   Útest_list_to_list  s   zTestTrimZeros.test_list_to_listN)rr   rs   rt   r4   r†   rb   rÒ   rH  r€   Úcomplexr•   rÁ  r  r  re   r  r  r  r  rø   rù   rú   r  r  r  r:   r:   r:   r;   r
  Ù  s*    



þþ
r
  c                   @   rE   )Ú
TestExtinsc                 C   s.   t  g d¢¡}t|dk|ƒ}t|g d¢ƒ d S )N)rK   rS   rI   rK   rI   rS   rS   rK   )rS   rI   rI   rS   rS   )r4   r†   r   r   r   r:   r:   r;   re     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   rK   )rK   rG   rS   rI   rT   rm   ro   )r   rK   r   rK   r   rK   r   ©rI   rG   rn   )rK   rI   rS   rG   rT   rn   ro   ro   rm   )rK   r   rK   r   rK   r   rK   rý   )rm   rI   rý   rG   rm   rn   rý   z!Cannot insert from an empty arrayc                      s   t ˆ g d¢g ƒS )N)r   r   r   r   r   rK   r   )r)   r:   ©rb   r:   r;   Ú<lambda>0  s    z'TestExtins.test_place.<locals>.<lambda>Z12Z34Ú9)
r   r  r)   r4   r†   r   r=   r5   r   r^   r}   r:   r#  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   )ra   rb   r£  Úacr•   r:   r:   r;   Ú	test_both7  s   
zTestExtins.test_bothN)rr   rs   rt   re   r&  r(  r:   r:   r:   r;   r!    s    r!  r¼   c                 C   s   |t  | ¡ S r3   ©ÚmathÚfloor©rË   r×   r:   r:   r;   Ú_foo1C  ó   r-  r¾   c                 C   s   |t  | ¡ | S r3   r)  )rË   r×   r  r:   r:   r;   Ú_foo2G  s   r/  c                   @   s$  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Z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%dGS )HÚTestVectorizec                 C   s4   dd„ }t |ƒ}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   ó   | |kr| | S | | S r3   r:   ©rb   r€   r:   r:   r;   ÚaddsubtractN  ó   z.TestVectorize.test_simple.<locals>.addsubtract©r   rS   rn   rý   ©rK   rS   rT   ro   ©rK   rn   rK   rI   ©r2   r   ©ra   r3  rä  r6  r:   r:   r;   Útest_simpleM  s   zTestVectorize.test_simplec                 C   s0   dd„ }t |ƒ}|g d¢dƒ}t|g d¢ƒ d S )Nc                 S   r1  r3   r:   r2  r:   r:   r;   r3  Y  r4  z.TestVectorize.test_scalar.<locals>.addsubtractr5  rT   )rT   rm   rK   rG   r8  r9  r:   r:   r;   Útest_scalarX  s   zTestVectorize.test_scalarc                 C   s0   t  ddd¡}tdd„ ƒ}||ƒ}t||ƒ d S )NrW   rI   i'  c                 S   ó   | S r3   r:   r—  r:   r:   r;   r$  e  ó    z*TestVectorize.test_large.<locals>.<lambda>)r4   rÙ  r2   r   )ra   rË   rä  r×   r:   r:   r;   Ú
test_largec  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Ê  rI   )r2   r*  Úcosr4   r†   r  r
   )ra   rä  ÚargsÚr1Úr2r:   r:   r;   Ú
test_ufunci  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 )	NrK   c                 S   ó   | | S r3   r:   r2  r:   r:   r;   rA  r  ó   z(TestVectorize.test_keywords.<locals>.foor�   rÐ   rI   rR   rõ   ©r2   r4   r†   r   ©ra   rA  rä  r@  rA  rB  r:   r:   r;   Útest_keywordsp  s   


zTestVectorize.test_keywordsc                 C   s:   t ttgd�}|t d¡dƒ}|t d¡ƒ}t||ƒ d S ©N©Úotypesr½   r¼   ©r2   r-  rH  r4   r5   r   ©ra   rä  rA  rB  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 rI  rL  rM  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 )NrJ  r½   r¼   ©r×   rL  ©ra   rä  rA  rB  Z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 )NrJ  çÍÌÌÌÌÌ$@r"  )r  rZ   rP  ©r2   r/  rH  r   rQ  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 )	NrJ  r"  rS  rZ   )r  rË   r×   rK   rI   rS   rT  rM  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 r  )rÛ  r2   Ú	randrangeÚ	ExceptionÚAssertionError)ra   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 )NrK   c                 S   rD  r3   r:   r2  r:   r:   r;   rA  Ä  rE  z5TestVectorize.test_keywords2_ticket_2100.<locals>.foor�   r#  rÐ   )r€   rb   rI   ©r€   rR   rõ   rF  rG  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 r  )rš  Úpop)rË   ÚpÚ_prÂ  r:   r:   r;   Ú	mypolyvalÔ  s   
ÿz;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyvalr^  rK   )ÚexcludedrS   rn   r   r�   )rË   r^  )r^  )r4   r2   r   )ra   r`  ZvpolyvalZ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Â  Z_kr:   r:   r;   rä  ã  s   z3TestVectorize.test_keywords4_ticket_2100.<locals>.frK   rI   rS   rG   r2  rm   r8  ©ra   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 r3   )r4   r„  )rÆ  r:   r:   r;   rä  î  s   
z3TestVectorize.test_keywords5_ticket_2100.<locals>.frK   rI   rS   rG   rm   r8  re  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 ©NrK   r:   r:   r:   r:   r;   rA  õ  ó   z5TestVectorize.test_coverage1_ticket_2100.<locals>.foorK   r8  ©ra   rA  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 documentationNr:   r—  r:   r:   r;   rA  ü  ó   z3TestVectorize.test_assigning_docstring.<locals>.foozProvided documentation)Údoc)r2   r   Ú__doc__)ra   rA  rä  ro  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>.FoorI   c                 S   s
   || j  S r3   r[  rk   r:   r:   r;   rB    s   
z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.barN)rr   rs   rt   r€   rB  r:   r:   r:   r;   ÚFoo	  s    rr  rý   rI   )r   r2   rB  r4   r5   )ra   rr  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<  r3   r:   r—  r:   r:   r;   r$    r=  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>rS   r�  c                 S   r<  r3   r:   r—  r:   r:   r;   r$    r=  )r2   r4   r5   r   )ra   Úf1Zres1aZres1bÚf2Zres2bZ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<  r3   r:   r—  r:   r:   r;   r$  !  r=  z7TestVectorize.test_string_ticket_1892.<locals>.<lambda>Zd0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r4   r2   r   )ra   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   rK   rI   r:   r—  ©Z_callsr:   r;   rä  )  s   z#TestVectorize.test_cache.<locals>.fTrT   )r2   Úcacher4   r5   r   r   r  ©ra   rä  rË   r:   rx  r;   Ú
test_cache%  s   
zTestVectorize.test_cachec                 C   s0   t  dd„ ¡}d|_t  d¡}t||ƒ|ƒ d S )Nc                 S   r<  r3   r:   r—  r:   r:   r;   r$  4  r=  z+TestVectorize.test_otypes.<locals>.<lambda>rŽ   rT   )r4   r2   rK  r5   r   rz  r:   r:   r;   Útest_otypes3  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)->()r,  z(x),(y)->()rP  z(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r:   )rb   r€   r•   )r  )r  Ú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   ÚnfbZ_parse_gufunc_signaturer   r^   r}   r:   r:   r;   Útest_parse_gufunc_signature9  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   r1  r3   r:   r2  r:   r:   r;   r3  \  r4  z8TestVectorize.test_signature_simple.<locals>.addsubtractz	(),()->()©Ú	signaturer5  r6  r7  r8  r9  r:   r:   r;   Útest_signature_simple[  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 r3   ©r¿   r#  r:   r:   r;   r¿   g  rE  z4TestVectorize.test_signature_mean_last.<locals>.meanz(n)->()r€  rK   rS   rI   rG   r8  )ra   r¿   rä  r6  r:   r:   r;   Útest_signature_mean_lastf  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 r3   rƒ  r#  r:   r:   r;   Úcentero  s   z3TestVectorize.test_signature_center.<locals>.centerú(n)->(n)r€  rK   rS   rI   rG   rZ   r8  )ra   r…  rä  r6  r:   r:   r;   Útest_signature_centern  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 r3   r:   r—  r:   r:   r;   r$  w  ó    z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>ú	()->(),()r€  r�   rI   r   rK   )r2   r   r<  Útupler  r   ©ra   rä  r6  r:   r:   r;   Útest_signature_two_outputsv  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€  rK   rI   r�   r"  r   r    )r2   r4   r7   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 ©NrZ   r:   r—  r:   r:   r;   r$  Ž  ó    z<TestVectorize.test_signature_computed_size.<locals>.<lambda>z(n)->(m)r€  r�   rK   rI   rÐ   rS   r8  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 )NrK   c                 S   rD  r3   r:   r2  r:   r:   r;   rA  —  rE  z2TestVectorize.test_signature_excluded.<locals>.fooú()->()r€   )r�  ra  r�   rÐ   r   r[  rõ   r8  rl  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<  r3   r:   r—  r:   r:   r;   r$  Ÿ  r=  z5TestVectorize.test_signature_otypes.<locals>.<lambda>r†  rÔ   ©r�  rK  r�   )r2   r   rÕ   r4   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 positionalrK   rI   zdoes not have enough dimensionsú$inconsistent size for core dimensionr�   r“  )r2   Úoperatorr6   r   r  r^   re  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;   r$  µ  r‘  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>r†  r€  r—  r�   c                 S   r<  r3   r:   r—  r:   r:   r;   r$  º  r=  rŠ  zwrong number of outputsrK   c                 S   rˆ  r3   r:   r—  r:   r:   r;   r$  ¾  r‰  r“  rI   )r2   r   r^   re  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<  r3   r:   r—  r:   r:   r;   r$  Ä  r=  z5TestVectorize.test_size_zero_output.<locals>.<lambda>r   rT   rê   rK  rŽ   c                 S   r<  r3   r:   r—  r:   r:   r;   r$  Ì  r=  r“  r€  c                 S   r<  r3   r:   r—  r:   r:   r;   r$  Ð  r=  r•  c                 S   r<  r3   r:   r—  r:   r:   r;   r$  Ó  r=  r†  c                 S   r<  r3   r:   r—  r:   r:   r;   r$  Ö  r=  c                 S   s   | gS r3   r:   r—  r:   r:   r;   r$  Ù  s    z()->(n)znew output dimensions)	r4   r2   r=   Úintr   r^   rK  r   r5  rz  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¾   r'  )r¾   r¼   r¾   r»   )rÃ   rÄ   rÏ   )r^  rÁ   rU  z(m,m),(m)->(m)r€  )r¼   r½   rº   )rÃ   rÏ   rÄ   )r^  rU  rÁ   c                 S   s   | | S r3   r:   r,  r:   r:   r;   r$  ì  r‰  z/TestVectorize.test_subclasses.<locals>.<lambda>)r4   rã   r†   rä   r2   Úmatmulr   rå   )ra   rá   r  rÆ  Zmatvecr6  Zmultr:   r:   r;   ræ   Ý  s    
þþ"

zTestVectorize.test_subclassesN)&rr   rs   rt   r:  r;  r>  rC  rH  rN  rO  rR  rU  rV  rZ  r\  rb  rf  rh  rm  rq  rs  rv  rw  r{  r|  r  r‚  r„  r‡  r�  rŽ  r’  r”  r–  r™  rš  rœ  ræ   r:   r:   r:   r;   r0  K  sH    

"	r0  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.ArF  c                 G   ri  r  r:   ©ra   r@  r:   r:   r;   Úboundö  rk  zTestLeaks.A.boundc                  G   ri  r  r:   )r@  r:   r:   r;   Úunboundù  rn  zTestLeaks.A.unboundN)rr   rs   rt   Úitersr   Ústaticmethodr¡  r:   r:   r:   r;   ÚAó  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   rK   r®   rT   )Úgcr  r¤  ÚdisableÚsysÚgetrefcountr`   r¢  r4   Z
frompyfuncrä  r5   r   ZcollectÚenable)	ra   r  Úincrr¨  ZA_funcÚrefcountrŽ   rb   r�  r:   r:   r;   Útest_frompyfunc_leaksý  s   

zTestLeaks.test_frompyfunc_leaksN)rr   rs   rt   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µ  rT   rR  rÂ   ©r4   r5   r   r   ©ra   rË   Úbinsr:   r:   r;   Útest_forward  s   zTestDigitize.test_forwardc                 C   s6   t  ddd¡}t  ddd¡}tt||ƒt  d¡ƒ d S )NrT   rµ  rZ   rR  rÂ   r²  r³  r:   r:   r;   Útest_reverse"  s   zTestDigitize.test_reversec                 C   s:   t dƒ}t | ¡ | ¡ d¡}tt t||ƒdk¡ƒ d S )Nr®   r   ©r   r4   rÙ  rý  rœ  r   rª   r   )ra   rË   Úbinr:   r:   r;   Útest_random'  s   zTestDigitize.test_randomc                 C   sF   g d¢}g d¢}g d¢}t t||ƒ|ƒ g d¢}t t||dƒ|ƒ d S )N)rK   rT   rG   r®   rm   rÂ   r   )rK   rT   r®   )rK   rI   rK   rS   rI   rS   r   )r   rK   rK   rI   rI   rS   r   T)r   r   )ra   rË   r´  Zdefault_answerZright_answerr:   r:   r;   Útest_right_basic,  s   zTestDigitize.test_right_basicc                 C   s4   t  dd¡}t  dd¡}tt||dƒt  d¡ƒ d S )Nrµ  rT   rG   TrÂ   r²  r³  r:   r:   r;   Útest_right_open4  s   zTestDigitize.test_right_openc                 C   s8   t  ddd¡}t  ddd¡}tt||dƒt  d¡ƒ d S )NrT   rµ  rZ   rG   TrÂ   r²  r³  r:   r:   r;   Útest_right_open_reverse9  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)rZ   r   rK   rI   r«   F)r   rI   rS   rS   T)r   r   rI   rS   r¢   )rS   rI   r   r   )rS   rS   rI   r   r©   )r   r   rG   rG   )r   r   r   rG   r™   )rK   rK   r   rK   )r   r   r   r^   r³  r:   r:   r;   Útest_monotonicC  s   zTestDigitize.test_monotonicc                 C   s:   g d¢}g d¢}t tt||ƒ ||}}t tt||ƒ d S )N)rK   rI   y      @      ð?r�   )r   r  r   r³  r:   r:   r;   Útest_casting_errorS  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¤  rT   rK   rS   FT)r4   rã   r5   rä   r   r<  r   )ra   r¤  rb   r€   r:   r:   r;   Útest_return_typeZ  s
   zTestDigitize.test_return_typec                 C   s&   d}t t ||d |d g¡dƒ d S ©Nl          rK   ©r   r4   r   r?  r:   r:   r;   Útest_large_integers_increasingc  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_decreasingh  s   "z+TestDigitize.test_large_integers_decreasingN)rr   rs   rt   rµ  r¶  r¹  rº  r»  r¼  r½  r¾  r¿  rÀ  rÃ  rø   rù   ÚxfailrÄ  r:   r:   r:   r;   r±    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 )NrK   rI   r®   r"  )r   r0   r4   r  r   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 )NrK   i  éÿ   ©ÚperiodrI   r®   éè  )r   éK   é–   éá   rê  )r   rË  rÌ  rÍ  rê  i®  éú   )r   rË  rÌ  rÍ  rê  r€  éŒ   )rÉ  Zdiscont)
r   r0   r   r4   rª   r   r   r†   ÚmodrÕ   )ra   Z
simple_seqZwrap_seqZ
uneven_seqZwrap_unevenZ
no_discontZ
sm_discontr:   r:   r;   Útest_periodx  s   &zTestUnwrap.test_periodN)rr   rs   rt   r:  rÑ  r:   r:   r:   r;   rÆ  p  ó    rÆ  rÕ   ÚOÚ
AllIntegerZFloatÚM)r   rK   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Ó  rK   r   rw   ç      @rG   )r4   r†   r!   rÔ   rÖ   rÕ   r   r   r   r_   r	   rÑ   ©ra   rÕ   rÕ  ZscalarrØ   Z	ref_dtyper:   r:   r;   Útest_hanning‘  ó   zTestFilterwindows.test_hanningc                 C   rØ  )	Nrê   r:   rÓ  rK   r   rw   gÃõ(\�Â@rG   )r4   r†   r    rÔ   rÖ   rÕ   r   r   r   r_   r	   rÑ   rÚ  r:   r:   r;   Útest_hamming¦  rÜ  zTestFilterwindows.test_hammingc                 C   rØ  )	Nrê   r:   rÓ  rK   r   rw   gž^)ËÇ@rG   )r4   r†   r   rÔ   rÖ   rÕ   r   r   r   r_   r	   rÑ   rÚ  r:   r:   r;   Útest_bartlett»  rÜ  zTestFilterwindows.test_bartlettc                 C   rØ  )	Nrê   r:   rÓ  rK   r   rw   g=
×£p=@rG   )r4   r†   r   rÔ   rÖ   rÕ   r   r   r   r_   r	   rÑ   rÚ  r:   r:   r;   Útest_blackmanÐ  rÜ  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Ó  rK   rw   r®   r
  )r4   r†   r%   rÔ   rÖ   rÕ   r   r   r   r_   r	   rÑ   rÚ  r:   r:   r;   Útest_kaiserå  s   
zTestFilterwindows.test_kaiser)
rr   rs   rt   Ústrr›  rÛ  rÝ  rÞ  rß  rà  r:   r:   r:   r;   rÖ  ‹  s    rÖ  c                   @   rE   )Ú	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á  rI   )rÇ  rK   ro   )r4   r5   r.   r•  r  r  r	   )ra   rË   r6  r:   r:   r;   r:  ý  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   rK   rS   rI   rm   rX   rZ   rw   )rË   rx   )r4   rÙ  Z	ones_likerÑ   r.   r	   )ra   rË   r×   r  ZwxZwyZwzÚqZqxZqyZqzr6  r:   r:   r;   Ú	test_ndim  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 )NrT   rI   r¢  g      *@)r4   r5   r   r†   r	   r.   )ra   rË   r×   r£  Zymr6  Zxmr:   r:   r;   rØ  (  s   
zTestTrapz.test_maskedN)rr   rs   rt   r:  rå  rØ  r:   r:   r:   r;   râ  û  s    %râ  c                   @   r—   )ÚTestSincc                 C   s6   t tdƒdkƒ tt ddd¡ƒ}t|t|ƒdƒ d S )Nr   rK   rZ   r"  ro   )r   r-   r4   rÙ  r
   r   ©ra   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-   r4   r†   rš  r‹  r   )ra   rË   r�   rž   rŸ   r:   r:   r;   Útest_array_likeA  s   
zTestSinc.test_array_likeN)rr   rs   rt   r:  rè  r:   r:   r:   r;   ræ  9  rÒ  ræ  c                   @   rN  )Ú
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)	rG   rS   rI   rK   rK   rI   rS   rG   r   )r   rK   rI   rS   rG   )rK   rK   rK   rK   rK   rK   )ÚwidgetÚhamrA  rB  rA  rë  )rB  rA  rë  rê  )ù      @      @r  ù      ð?      $@r®   rì  )r  rí  rì  r®   )r4   r†   r   rª   r1   r?  r:   r:   r;   r:  L  s   "zTestUnique.test_simpleN©rr   rs   rt   r:  r:   r:   r:   r;   ré  J  rZ  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�   rK   rI   )r4   Úinfr  ÚlibÚasarray_chkfiniter   r^   r”   r:   r:   r;   r:  X  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Õ   )r4   rñ  rò  rÔ   r   rÕ   rk   r:   r:   r;   Útest_dtype_order`  s   z TestCheckFinite.test_dtype_orderN)rr   rs   rt   r:  ró  r:   r:   r:   r;   rï  V  r§   rï  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@©¿)rõ  r¼   çp¾è]‚4Ó?)rö  r÷  r¼   )r¼   rõ  rö  ç?Ä'LÓ?çÝë(÷Ð8å?çîê4V‹}à?)rõ  r¼   r÷  çÕØw¨{¨¿ç,H¨×5ì?çjSŽ,úè?)rö  r÷  r¼   çªÀâÓóî¿çµ)h¤ïßæ?çå5#AÀ“ê?)rø  rû  rþ  r¼   çƒätÄçoà¿çBCÃæ,å¿)rù  rü  rÿ  r  r¼   ç@§ÿ02vï?)rú  rý  r   r  r  r¼   c                 C   s*   t t g d¢g d¢¡ddgddggƒ d S )Nr¡   )rK   r   rK   r¼   ç      ð¿)r	   r4   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 rc  )
r   r¤  r	   rå  r   r4   rª   rÚ  r  ræ  )ra   Ztgt1Z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 )Nr*  rZ   ©ZddofrS   )r   r-  Úsimplefilterr   ÚDeprecationWarningr   r¤  Úfilterr	   rå  r  ræ  ©ra   Ú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 )Nr*  rK   r   )Zbias)r   r-  r  r   r  r   r¤  r  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               @r  r¼   r  r  )r4   r†   r   r   r   rª   rÚ  )ra   rË   rÂ  rx  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  )r4   r†   r   r   ©ra   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 ©NTr(  r*  r   rI   )
r-  r.  r  ÚRuntimeWarningr   r   r4   r†   r  rp   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¼   r  )r4   Zerrstater   r
   r†   r   rª   rÚ  )ra   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Õ   )ra   r  Zcast_ArÂ  r:   r:   r;   Útest_corrcoef_dtype»  ó   z TestCorrCoef.test_corrcoef_dtypeN)rr   rs   rt   r4   r†   r¤  r  rå  ræ  r  r:  r  r  r  r  r  r  rø   rù   rú   ÚhalfÚsingleÚdoubleÚ
longdoubler  r:   r:   r:   r;   rô  g  sL    þÿþÿþÿûÿ	
	rô  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   rI   rK   r¼   r  )r¾   r¼   rº   )Úndmin)rK   rG   rK   r¾   rº   çš™™™™™Ù?gš™™™™™Ù¿rS   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 r3   )r   r   Úx1rå  r}   r:   r:   r;   re   Ï  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  rS   ©Úaweights)r4   r†   r   r   r_   )ra   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  )r4   r†   r   r   r  r:   r:   r;   r  Ø  s   &zTestCov.test_xyc                 C   r  r  )
r-  r.  r  r  r   r   r4   r†   r  rp   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 )NTr(  r*  rT   r  )
r-  r.  r  r  r   r   r&  r4   r†   rð  r}   r:   r:   r;   Útest_wrong_ddofæ  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)Zrowvar)g+‡ÙÎ÷³?g4€·@‚âÓ?g¾Á&SË?gÒo_Î¡?gŒJê4ë?)r   r   Úx3r4   r†   ©ra   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 )NrK   r  )r   r   r*  r4   Ú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ß  ©rI   rS   rê   rI   rZ   rS   )r   r   r×  ÚfrequenciesÚ
x2_repeatsr&  ræ  Úunit_frequenciesrå  r   r  r4   r_   r  ÚRuntimeErrorr^   )ra   Znoninträ  r:   r:   r;   Útest_fweightsõ  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½   r0  rI   r  rS   )r   r   r&  rÉ   rç  Úunit_weightsrå  r4   r_   r   r4  r^   rç  r:   r:   r;   Útest_aweights	  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×  r1  r6  r2  r&  ræ  r3  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Õ   )ra   r  Zcast_x1rÂ  r:   r:   r;   Útest_cov_dtype%	  r  zTestCov.test_cov_dtypeN)%rr   rs   rt   r4   r†   r5  r&  rå  r×  r1  r2  ræ  r_   r  r3  rÉ   rç  r6  r*  re   r  r  r  r)  r,  r.  r5  r7  r8  rø   rù   rú   r  r   r!  r"  r9  r:   r:   r:   r;   r#  Â  s0    $
	r#  c                   @   rE   )Ú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?Û�?rS  )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"   r4   r†   r   r?   r   )ra   r¤  r�  r  Z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 )NrG   c                       s   e Zd Z” jZdd„ ZdS )z*Test_I0.test_non_array.<locals>.array_likec                 S   r<  r3   r:   )ra   r  r:   r:   r;   Ú__array_wrap__P	  rk  z9Test_I0.test_non_array.<locals>.array_like.__array_wrap__N)rr   rs   rt   Z__array_interface__r;  r:   r#  r:   r;   Ú
array_likeM	  s    r<  )r4   r5   r<  rÚ  r"   r   )ra   r<  r•  rÂ  r:   r#  r;   r  J	  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 valuesrK  )r4   r†   rø   r9  r  r"   )ra   rb   rÂ  r:   r:   r;   r  Z	  s   
"ÿzTest_I0.test_complexN)rr   rs   rt   r:  r  r  r:   r:   r:   r;   r:  ,	  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 )
NrK   r¼   r   rI   ç ˆöoFé?rT   )r>  çÀvT¶=î?r¼   r?  r>  gg›Óù?)çø†„½¦â?ç÷�ñY…Jì?r¼   rA  r@  )r   r4   Úisfiniter%   r	   r†   r}   r:   r:   r;   r:  b	  s   
ÿ
ÿ
ÿ
ÿzTestKaiser.test_simplec                 C   s   t ddƒ d S )NrS   rG   )r%   r}   r:   r:   r;   Útest_int_betao	  r.  zTestKaiser.test_int_betaN)rr   rs   rt   r:  rC  r:   r:   r:   r;   r=  `	  r	  r=  c                   @   rN  )Ú	TestMsortc                 C   sF   t  g d¢g d¢g d¢g¡}tt|ƒt  g d¢g d¢g d¢g¡ƒ d S )N)çî\é…Ü?çb¥ÝCQé?ç×”�s‘á?)çwøˆ‹”×?ç¥¹klã×?çø*dtaÀî?)çÐèÓ¯Áä?ç6Hœòïà?çÜ˜C÷Ù?)rH  rI  rM  )rE  rL  rG  )rK  rF  rJ  )r4   r†   r	   r'   )ra   r¤  r:   r:   r;   r:  u	  s   
þ
þþzTestMsort.test_simpleNrî  r:   r:   r:   r;   rD  s	  rZ  rD  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�   ©rG   rT   rn   ro   rÆ   )rT   rT   rT   )rn   rn   rn   )ro   ro   ro   ©r&   r   r4   r†   ©ra   ÚXÚYr:   r:   r;   r:  ‚	  s   ýýzTestMeshgrid.test_simplec                 C   s&   t g d¢ƒ\}t|t g d¢¡ƒ d S )Nra  rP  )ra   rR  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�   rO  Úij©Zindexingr©   )rI   rI   rI   rI   )rS   rS   rS   rS   rm   rý   r   r  ©rS   rG   )rG   rS   rI   )rS   rG   rI   Znotvalid)r&   r   r4   r†   r   r?   r   r^   )ra   rË   r×   rR  rS  r  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�   rO  T©ÚsparserG   rT   rn   ro   rP  rQ  r:   r:   r;   Útest_sparseª	  s   $zTestMeshgrid.test_sparsec                 C   s   t ttg d¢g d¢dd� d S )Nr�   rO  rV  )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ê   rF  T)r¯   rZ  )r4   r5   rÓ   rÔ   r&   r   rÕ   )ra   rË   r×   rR  rS  r:   r:   r;   rÀ  ¶	  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   rK   )r4   r†   r&   r   )ra   rR  rS  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;   r  Ù	  r  z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>rK   rn   )rI   rK   rS   rG   rT   )r4   r&   r`   r   r?   )ra   rb   r€   r•   r  r}  Z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   rK   rI   rR   r    r¬   rH   ©r4   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   rK   rI   rR   rV  rW  r    r¬   rH   ra  r”   r:   r:   r;   Útest_nd_indexingç	  s   "zTestMeshgrid.test_nd_indexingN)rr   rs   rt   r:  rT  rU  rY  r\  r]  rÀ  r^  r`  rb  rc  r:   r:   r:   r;   rN  €	  s    
	rN  c                   @   ru   )Ú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   TFrK   c                 S   ri  r�  r:   r—  r:   r:   r;   r$  
  r=  z+TestPiecewise.test_simple.<locals>.<lambda>rZ   z1 or 2 functions are expectedr�   )r(   r   r4   r†   r   r^   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 )NrK   rI   TFrS   rG   ©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 )NrS   )TFF)rG   rI   r   rG   )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 )NrK   rI   TFr   rS   re  r?  r:   r:   r;   Útest_default
  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 )
NrS   rG   r   rT   TFrK   rÿ   r�   )r4   r†   r(   r   rŒ   r   r  r:   r:   r;   r:  
  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 )
NrS   rG   r   rT   r�   rI   z2 or 3 functions are expectedrK   r©   )r(   r   r   r   r^   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 )NrS   rK   rI   )r4   r†   r(   r   )ra   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   rI   r&  )r  r  r  )r½   r½   r¼   )r4   r†   r(   r   r  r:   r:   r;   Útest_multidimensional_extrafuncB
  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á   J
  râ   rá   rÄ   rº   rG   )r  r¼   r¾   )r  r  r¾   r¾   r¼   )r4   rã   r5   rä   r(   r   rå   )ra   rá   rË   r6  r:   r:   r;   ræ   I
  s
   zTestPiecewise.test_subclassesN)rr   rs   rt   r:  rf  rg  rh  r:  ri  rj  rk  ræ   r:   r:   r:   r;   rd  î	  s    	rd  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 )NrG   )r4   Úbincountr5   r   r_   r+  r:   r:   r;   r:  T
  s   zTestBincount.test_simplec                 C   s,   t  t  g d¢¡¡}t|t  g d¢¡ƒ d S )N)rK   rT   rI   rG   rK   )r   rI   rK   r   rK   rK   )r4   rm  r†   r   r+  r:   r:   r;   Útest_simple2X
  s   zTestBincount.test_simple2c                 C   s2   t  d¡}t  g d¢¡}t  ||¡}t||ƒ d S )NrG   )çš™™™™™É?ç333333Ó?rß  r�  )r4   r5   r†   rm  r   ©ra   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©rK   rI   rG   rT   rI   ©ro  rp  rß  r�  ro  )r   ro  rß  r   rß  r�  ©r4   r†   rm  r   rq  r:   r:   r;   Útest_simple_weight2b
  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   rK   r   rK   rK   rS   ©Z	minlength)rI   rS   r   r   ru  r  r:   r:   r;   Útest_with_minlengthh
  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   rK   rK   rI   rI   rS   rS   rI   rw  )rK   rI   rI   rI   r   ru  r  r:   r:   r;   Ú)test_with_minlength_smaller_than_maxvaluep
  s
   z6TestBincount.test_with_minlength_smaller_than_maxvaluec                 C   sB   t  g d¢¡}t  g d¢¡}t  ||d¡}t|t  g d¢¡ƒ d S )Nrs  rt  rm   )r   ro  rß  r   rß  r�  r   r   ru  rq  r:   r:   r;   Útest_with_minlength_and_weightsw
  ó   z,TestBincount.test_with_minlength_and_weightsc                 C   s&   t jg td�}t  |¡}t||ƒ d S r  )r4   r†   r›  rm  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ê   rT   rw  )r4   r†   r›  rm  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Úfoobarrw  ©r4   rm  r:   r—  r:   r;   r$  ‹
  ó    z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>zmust not be negativec                      r}  ©NrZ   rw  r€  r:   r—  r:   r;   r$  Ž
  r�  rT   c                      r}  r~  r€  r:   r—  r:   r;   r$  “
  r�  c                      r}  r‚  r€  r:   r—  r:   r;   r$  –
  r�  )r4   r†   r›  r   r  r^   r5   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«  r4   rÕ   Zintpr!  r`   rm  r   )ra   Zintp_refcountZdouble_refcountÚjr:   r:   r;   Útest_dtype_reference_leaks˜
  s   z'TestBincount.test_dtype_reference_leaksÚvalsrI   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 r3   )r4   Úasarrayr   r^   rm  )ra   r†  Zvals_arrr:   r:   r;   Útest_error_not_1d¨
  s   

ÿ
"ÿzTestBincount.test_error_not_1dN)rr   rs   rt   r:  rn  rr  rv  rx  ry  rz  r  r|  rƒ  rø   rù   r°  r   r…  rú   rˆ  r:   r:   r:   r;   rl  R
  s    
rl  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   rK   rI   rÈ  éh  )r   r^   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   rK   rT   rf   )r4   rÙ  r	   r$   ©ra   rË   r×   Úx0r:   r:   r;   re   »
  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 )NrK   r®   rê   rZ   r   r©   ©Úleft)r   rK   rK   rK   rI   ©Úright)rK   rK   rK   rI   )r�  r‘  )r   rK   rK   rI   )	r`   r4   r5   r!  r_   r†   r$   rH  r   )
ra   ÚsizeÚxpZypZincptsZdecptsZincresZdecresZinctgtZ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   rK   rT   rp  )r4   rÙ  r	   r$   rÓ   rÔ   r  rŒ  r:   r:   r;   Útest_scalar_interpolation_pointç
  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©rK   rI   rà  rS   rG   ra  rK   rI   rG   )r4   rð  r	   r$   r  )ra   rË   r“  Úfpr:   r:   r;   Ú test_non_finite_behavior_exact_xõ
  s   "&z+TestInterp.test_non_finite_behavior_exact_xc                 C   rg  r3   )r4   Zfloat_r—  r:   r:   r;   r$  þ
  ó   
 zTestInterp.<lambda>c                 C   s
   t | dƒS r  ©rD   r—  r:   r:   r;   r$  ÿ
  r™  c                 C   s
   t d| ƒS r  rš  r—  r:   r:   r;   r$     r™  c                 C   s   t | t | d¡ƒS )NrQ   )rD   r4   Úmultiplyr—  r:   r:   r;   r$    s    )rA   zcomplex-realzcomplex-imagzcomplex-both)ÚparamsÚidsc                 C   s   |j S )z( scale function used by the below tests N)Úparam)ra   Úrequestr:   r:   r;   Úscý
  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ß  rK   r   r®   N)r   r4   r$   r  ©ra   r   r:   r:   r;   Útest_non_finite_any_nan  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®   rK   N©r   r4   r$   rð  r  r¡  r:   r:   r;   Útest_non_finite_inf  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ß  rK   r®   r   Nr£  r¡  r:   r:   r;   Útest_non_finite_half_inf_xf  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®   rK   N©r   r4   r$   rð  r¡  r:   r:   r;   Útest_non_finite_half_inf_x'  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   rK   r®   Nr¦  r¡  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   rK   rT   r  rp  rZ   ù       @      @rŽ  rº   r�  r–  ra  ù       @      ð?rG   y              à?©iLÿÿÿiVÿÿÿiGÿÿÿé¹   rã  rR  r   im  ©é¾   iBÿÿÿi^  i¢þÿÿ)ù      @      ð?y      $@       @ù      @      @y      @      @)y      @      ø?r¯  y     €!@      ü?y      @      ô?r°  y      
@      
@y      @      @y      @      @rŠ  rÈ  )r4   rÙ  r	   r$   rð  )	ra   rË   r×   r�  Zy0r�  r‘  r“  r—  r:   r:   r;   Útest_complex_interp7  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   rK   rT   rp  rû  )rK   rZ   rK   rÙ  rG   rÈ  rß  )	r4   rÙ  r†   r	   r$   r   r   r<  rÔ   )ra   rË   r×   r�  r“  r—  rÙ   r:   r:   r;   Ú)test_zero_dimensional_interpolation_pointS  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¾   )r4   r5   Úsinr	   r$   r  )ra   r“  r—  r:   r:   r;   Útest_if_len_x_is_smalld  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­  )rT   r®   rS   rG   )g      @rÄ   ç     €!@g      @r½   g      
@ç      @g      @rŠ  rÈ  r±   r²   rI   rZ   r  )r	   r4   r$   r†   rp   )ra   rË   r“  r—  r×   r:   r:   r;   rÑ  i  s   zTestInterp.test_periodN)rr   rs   rt   r‹  re   r”  r•  r˜  rø   Zfixturer   r¢  r¤  r¥  r§  r¨  r±  r²  r´  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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
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"d.d/„ Z#d0d1„ Z$d2d3„ Z%d4d5„ Z&d6d7„ Z'd8d9„ Z(d:d;„ Z)d<d=„ Z*d>d?„ Z+d@dA„ Z,dBS )CÚ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 )Nrm   rß  r   r¾   r"  r¶  rf   rÀ   rK   Únearest©Úmethod)r4   r5   r   Ú
percentiler  r?  r:   r:   r;   re   v  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 ©rI   r   r_  r:   r:   r;   ró   €  rô   z0TestPercentile.test_fraction.<locals>.<listcomp>rm   r   r"  ro   rI   rf   rG   )r`   r4   r»  r   r   rå   r†   rã   )ra   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 )NrT   FÚlinearrõ   )r4   r_   r»  )ra   r  Úor:   r:   r;   Útest_api’  s
   

zTestPercentile.test_apic                 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¬   )rG   rG   rS   rf   r   rw   )r4   r†   r   r»  r?  r:   r:   r;   Útest_2D™  s   
üzTestPercentile.test_2DrÕ   ZAllFloatc                 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ê   r¿  r¹  )r4   r‡  ZNANr»  Útestingr   rÕ   )ra   rÕ   r  rÂ  r:   r:   r;   Útest_linear_nan_1D¡  s   ýz!TestPercentile.test_linear_nan_1Dc                 C   s   g | ]}|t jf‘qS r:   )r4   rÔ   )rò   Zint_typer:   r:   r;   ró   ¬  s    ÿzTestPercentile.<listcomp>rÔ  rÓ  Úinput_dtypeÚexpected_dtyperº  r�  )	)Úinverted_cdfrF  )Úaveraged_inverted_cdfç     €;@)Úclosest_observationrF  )Úinterpolated_inverted_cdfrF  )ÚhazenrÌ  )Úweibullé   )r¿  r”  )Úmedian_unbiasedrj  )Únormal_unbiasedg      ;@c                 C   sž   t jg d¢|d�}t j|d|d�}t j ||d¡ |dv r?|dkr/t j t  |¡jt j¡ d S t j t  |¡jt  |¡¡ d S t j t  |¡jt  |¡¡ d S )N)r]  g      4@rÃ  rÄ  rÅ  rê   rÄ  r¹  rh  )rÊ  rÍ  rÓ  )r4   r‡  r»  rÆ  r	   r   rÕ   rÔ   )ra   rº  r�  rÈ  rÉ  r  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ê   rf   Úlowerr¹  rG   ÚhigherrT   ©r   r4   r»  r5   ©ra   rÕ   r:   r:   r;   Útest_lower_higherÙ  ó   ÿÿÿÿ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   Úmidpointr¹  rÙ  rý   rK   rf   rT   rÂ   ç      @r×  rØ  r:   r:   r;   Útest_midpointà  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ê   rÛ  r¸  r¹  rT   é1   rG   r×  rØ  r:   r:   r;   Útest_nearestë  rÚ  zTestPercentile.test_nearestc                 C   sL   t j d¡}t  |d¡}t j || ¡ ¡ t  |d¡}t j || ¡ ¡ d S )NrT   r"  r   )r4   rÛ  r   r»  rÆ  r   rœ  rý  )ra   r  rÙ   r:   r:   r;   Ú'test_linear_interpolation_extrapolationò  s
   z6TestPercentile.test_linear_interpolation_extrapolationc                 C   s,   t  d¡d }tt  |g d¢¡g d¢ƒ d S )Nrm   rß  )r   r"  rf   )r   r¶  rÀ   )r4   r5   r   r»  r?  r:   r:   r;   Útest_sequenceû  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  rS   rG   )rÉ  rf   r"  )g      @rÝ  rÈ  )rI   rS   rG   rT   rO  )rm   rý   r®   rÂ   r   rw   )ç      è?rÊ  rS   )ç      @rÝ  ro   )rµ  rÅ   rÂ   rK   rŠ  rT   rn   ©rÉ  rf   r½  )rÉ  rf   rË  ©rS   )rI   rG   rT   rn   )rI   rS   rT   rn   rI   )rI   rS   rG   rn   )rS   rS   rT   rn   rÖ  r¹  ©rx   rº  )r4   r5   rp   r   r»  r†   r5  r?   )ra   rË   Úr0rA  r:   r:   r;   r–  ÿ  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  rS   rG   rf   rÝ  ©rÃ   rÄ   rÏ   r^  r   rw   ©rÊ  rÝ  rÅ   rK   ©r�  ©rx   r�  rÕ  r¹  rÄ   )rº  rx   )r¼   rÄ   rU  r:   rê   ©rº  r�  rT   ©rº  rx   r�  )r4   r5   rp   r   r»  r   Úisscalarr†   r?   r	   ÚemptyrÕ   )ra   rË   rè  rA  r�  Zc0Z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 )
NrK   rI   é8   r  r¹  ée   rZ   rf   rŽ  )r   r^   r4   r»  rš  r`   r}   r:   r:   r;   Útest_exceptionS  s   ÿ $zTestPercentile.test_exceptionc                 C   s   t t g d¢d¡dƒ d S )Nr�   r   rK   )r   r4   r»  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ì  rw   ©rS   rI   rK   r  rS   rG   )rº   r½   rÃ   rÄ   ré  )rI   rG   rå  )rã  rä  rµ  rê  r0  ©r   rK   rI   rS   rO  rê   rÕ  rî  )r   rG   rm   )rK   rT   rý   )	r4   r†   r=   r»  r   r5   rp   rð  rÕ   )ra   rË   r×   r^  rè  r�  rA  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 )Nrl  rÂ   rK   rI   rf   r   rw   )rK   rI   rK   )rÂ   rI   rK   )rÂ   rK   rK   rS   )rÂ   rK   rI   rZ   rQ   rW   r3  rÜ  rç  r®   )rI   rK   rI   rK   )rI   rÂ   rI   rK   )rI   rÂ   rK   rK   )rI   rÂ   rK   rI   )r4   r5   rp   r   r»  r?   r†   ©ra   r  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©rI   rS   rG   rK   rf   F©Úoverwrite_input©r4   r†   r»  r   rk   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@rT   )ÚnumrÜ  r¹  )r4   rÙ  r»  r5   r   r  )ra   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û  rf   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®   rd  r[   rw   rZ   r   rj   rK   rh   rÉ  r¼  rJ   r$  éƒ  ©rS   rT   ro   rÂ   éZ   ©r   rK   rS   ©rS   rK   r3  rI   ©rS   rK   rI   rö  ©rI   rK   ©rK   rQ   ©rK   rS   rN   )r4   rÛ  ÚnormalÚdstackr   r»  Úmoveaxisr�   r¯   r5   rp   ÚshuffleÚravelÚflatten©ra   rÀ  rË   r  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	  rR  rÉ  )rx   rä  ©r   rR  rG   ©r   rG   rP   )rZ   rZ   )rS   rZ   )r4   r_   r   r{   r»  r^   rù  r:   r:   r;   Útest_extended_axis_invalidÜ  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	  ro   TrÇ   r©   r[   ©rK   rK   ro   rÂ   rz   ©rK   rT   ro   rK   rõ   ©rS   rK   ro   rÂ   r÷  )rÈ   r  ©rK   rK   ro   rK   rK   )rI   rK   rK   ro   rK   )rI   rK   rT   ro   rK   )r4   r_   r   r»  r?   rù  r:   r:   r;   Útest_keepdimsç  s:   
ÿÿÿÿÿÿÿÿÿÿzTestPercentile.test_keepdimsc                 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©rG   rX  r   rë  r¸  rí  ræ  rK   r:   rI   )r4   r=   r_   r   r»  ©ra   rÀ  r  r:   r:   r;   Útest_outû  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 )NTr(  r*  r+  r!  rX  r  r   rë  r¸  rí  ræ  rK   r:   )
r-  r.  r/  r  r4   r=   r_   r  r   r»  r"  r:   r:   r;   Útest_out_nan  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 )Nr2  rê   rI   rp  r   rw   g333333ã?rS   rG   r�   ©rK   rK   rI   r0  ri   rK   r  rO   r¸  r¹  )	r4   r5   rH  r  r   r»  r†   rp   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 inrK  )rK   rI   rS   rÃ   r¼   g     ÀX@rg  r   )rø   r9  r^   r4   r»  r  rÙ  )ra   rä  r:   r:   r;   Ú
test_nan_qW  s   ÿÿ
"ÿzTestPercentile.test_nan_qN)-rr   rs   rt   re   r¾  rÁ  rÂ  rø   rù   rú   r4   Ú	typecodesrÇ  rî  rÔ   rÓ   r"  rq  rr  ZclongdoublerÕ   ZH_F_TYPE_CODESrÔ  Z
TYPE_CODESrÙ  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·  t  sd    	

ÿ






ùþÿ



	$0)	 =r·  c                
   @   s¸   e Zd Zdd„ Zdd„ Zejjdd�dd„ ƒZd	d
„ Z	dd„ Z
ej dejd ¡dd„ ƒZej dg d¢¡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d"S )#ÚTestQuantilec                 C   s*   g d¢}t  |d¡}t jj|ddd� d S )N)r¾   ro  r%  gÍÌÌÌÌÌÜ?g
×£p=
Ç?rK   )Zmaxulp)r4   ÚquantilerÆ  Zassert_array_max_ulp)ra   rË   rb   r:   r:   r;   Útest_max_ulpf  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 )Nrm   rß  r   r¾   rK   r¶  rÀ   )r4   r5   r   r*  r?  r:   r:   r;   re   n  s   zTestQuantile.test_basiczSee gh-19154r¦  c                 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)r4   r†   r*  r   rå   rÕ   r   )ra   rb   Ztf_quantZ	quant_resr:   r:   r;   Útest_correct_quantile_valuet  s   
z(TestQuantile.test_correct_quantile_valuec                 C   s8  dd„ t dƒD ƒ}t |d¡}t|dƒ tt|ƒtƒ t |d¡}t|tddƒƒ tt|ƒtƒ 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   r¼  r½  r   r_  r:   r:   r;   ró   �  rô   z.TestQuantile.test_fraction.<locals>.<listcomp>rm   r   rK   ro   rI   rG   )	r`   r4   r*  r   rå   r   r†   rã   r5   )ra   rË   rä  r:   r:   r;   r¾    s$   

"zTestQuantile.test_fractionc                 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Ü  r¹  )r4   r†   r¯   r*  r5   r   r  )ra   Úp0r^  r:   r:   r;   r  š  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 )NrK   rI   rê   rß  r¸  r¹  )r4   r*  r†   rÕ   )ra   rÕ   rÂ  r:   r:   r;   Útest_quantile_preserve_int_type¦  s   ÿz,TestQuantile.test_quantile_preserve_int_typerº  )rÊ  rË  rÍ  rÎ  rÏ  rÐ  r¿  rÒ  rÓ  r¸  rÕ  rÖ  rÜ  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   rK   ró  )r   rK   rK   rI   rI   rS   rS   rG   rT   rT   rK   rK   rý   rý   rý   rm   rm   ro   r�  r¹  )r¾   r¼   rº   r½   )r4   rÙ  r*  r†   r   rÝ  )ra   rº  r-  r*  r:   r:   r;   Útest_quantile_monotonic¬  s   	ÿÿz$TestQuantile.test_quantile_monotonicrS   rÊ  )Ú	min_valueÚ	max_valueFçœu ˆ<ä7þçœu ˆ<ä7~)Úallow_infinityÚ	allow_nanr0  r1  )rÕ   r?   Úelements)r  c                 C   s.   t  ddd¡}t  ||¡}tt  |¡|ƒ d S )Nr   rK   g{®Gáz„?)r4   r5   r*  r   rÝ  )ra   r  r-  r*  r:   r:   r;   Útest_quantile_monotonic_hypo¾  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)rS  r^  rÃ   )r½   rº   r¼   r   rK   rß  )r4   r†   r  r*  rï  r   )ra   rb   rÙ   r:   r:   r;   Útest_quantile_scalar_nanÈ  s
   z%TestQuantile.test_quantile_scalar_nanN)rr   rs   rt   r+  re   rø   rù   rÅ  r,  r¾  r  rú   r4   r(  r.  r/  Ú
hypothesisÚgivenr   rÔ   ÚstZintegersÚfloatsr7  r8  r:   r:   r:   r;   r)  c  s.    


ÿ
ÿþÿ
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   rK   )r5  r4  r0  r1  r2  r3  )Út0Út1rb   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 r3   ©r~  Ú_lerp)ra   r>  r?  rb   r€   Zl0Úl1r:   r:   r;   Ú+test_linear_interpolation_formula_monotonicÑ  s   	z4TestLerp.test_linear_interpolation_formula_monotonic)Útrb   r€   c                 C   s\   ||kr|t  |||¡  kr|ksJ ‚ J ‚d S |t  |||¡  kr)|ks,J ‚ J ‚d S r3   r@  )ra   rD  rb   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 rj  )r~  rA  r   )ra   rD  rb   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 )NrI   rT   ro  gÍÌÌÌÌÌ@)r4   r†   r~  rA  )ra   rb   r€   rD  r:   r:   r;   Ú+test_linear_interpolation_formula_0d_inputsû  s   


z4TestLerp.test_linear_interpolation_formula_0d_inputsN)rr   rs   rt   r9  r:  r;  r<  rC  rE  rF  rG  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dd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"S )#Ú
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 )NrK   rI   rn   rS   rß  rà  r   rw   ©rÊ  rà  r¶  rG   )çð™6-Â¦?çº¤0”¸§?çºÝË}rÂ?g©Á4¯?rº   )rK  rJ  rL  )rJ  rL  rK  rZ   )
r4   r†   r5   rp   r   Úmedianr   r	   rŒ   r  )ra   Úa0rC  rw  rb   r:   r:   r;   re     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 )NrI   rS   r   rK   rn   ro   rG   rT   r"  rÐ   r  rw   r¶  )r4   r†   rÛ  Úrandintr¯   rM  r`   rŒ   r   r   r5  )ra   Úa3rb   Ú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 )NrI   rS   r   rK   rn   ro   rG   rT   Trü  rß  rà  )rý  rx   rI  r¼  rê   rR   rw   )rx   rý  )r4   r†   r5   rp   r   rM  r¯   r5  rÓ   rÛ  r  r  )ra   rP  rN  rC  rw  Z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�   rI   r   rw   )r	   r4   rM  r   )ra   rË   r×  r:   r:   r;   rè  M  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 r3   )r4   r‡  rä   Úinfo)ÚclsZinput_arrayrU  Úobjr:   r:   r;   Ú__new__X  s   z4TestMedian.test_subclass.<locals>.MySubClass.__new__c                 S   ri  )Néùÿÿÿr:   )ra   rx   rÕ   r�  r:   r:   r;   r¿   ]  rk  z1TestMedian.test_subclass.<locals>.MySubClass.meanr3   )NNN)rr   rs   rt   rX  r¿   r:   r:   r:   r;   Ú
MySubClassV  s    
rZ  r�   rY  )r4   rã   r   rM  )ra   rZ  rb   r:   r:   r;   r>  T  s   
zTestMedian.test_subclassr  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;   Ú
MySubclassg  râ   r[  N)r4   rã   rM  r†   rä   r<  )ra   r  r[  r  r:   r:   r;   Útest_subclass2c  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!  rX  r   rë  ræ  rK   r:   )r4   r=   r_   r   rM  r"  r:   r:   r;   r#  m  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 )NTr(  r*  r+  r!  rX  r  r   rë  ræ  rK   r:   )
r-  r.  r/  r  r4   r=   r_   r  r   rM  r"  r:   r:   r;   r$  v  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 )Nr2  rê   rI   r   rw   rS   rG   r�   r%  r0  ri   rK   r  rO   )r4   r5   rH  r  r   rM  rp   rŒ   r   r:   r:   r;   r&  ‚  s*   


 

 

 

zTestMedian.test_nan_behaviorc                 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ê   Tr(  r*  r+  r   rI   rS   )rÕ   r$  rw   rK   )r4   r†   rH  r-  r.  r/  r  r   rM  r  r   r1  r  )ra   rb   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^  rI   )	r4   r5   r   rå   rM  rÒ   rÁ  rH  r  )ra   rÀ  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[   rw   rZ   r   rj   rK   rh   rJ   r$  )rZ   r  r	  r  r  rI   r  rö  r  r  r  rN   )r4   rÛ  r  r  r   rM  r  r�   r¯   r5   rp   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	  rR  rw   r  rG   r  rP   )r4   r_   r   r{   rM  r^   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  rz   r  rõ   r  r÷  r  r  )r4   r_   r   rM  r?   rù  r:   r:   r;   r   ë  s&   
ÿÿÿÿÿÿzTestMedian.test_keepdimsN)rr   rs   rt   re   rS  rT  rè  r>  rø   rù   rú   r4   r  r\  r#  r$  r&  r  r]  r  r  r   r:   r:   r:   r;   rH    s$    !ÿ
	 rH  c                   @   r—   )ÚTestAdd_newdoc_ufuncc                 C   s"   t ttddƒ t tttjdƒ d S )NrI   Zblah)r   r  r   r^   r4   r6   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 )NrS   )r   r  r   r4   r6   r}   r:   r:   r;   Útest_string_arg  s   z$TestAdd_newdoc_ufunc.test_string_argN)rr   rs   rt   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_newdocrI   ú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   r4   ÚcoreÚflatiterÚindexrp  r  r   ZufuncÚidentityrñ  Zindex_tricksZmgrid)ra   rx  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.corere  )rf  zbad docstring)r4   rd  re  rf  rp  Z
add_newdoc)ra   Zprev_docr:   r:   r;   Útest_errors_are_ignored  s   z&TestAdd_newdoc.test_errors_are_ignoredN)rr   rs   rt   rø   rù   r°  rª  r´   ÚoptimizerÅ  r   rh  ri  r:   r:   r:   r;   ra    s    ra  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 )
ÚTestAddDocstringrI   rb  r¦  rc  c                 C   s0   t  t jjt jjj¡ dd„ }t  ||j¡ d S )Nc                   S   ri  ©Ú	docstringNr:   r:   r:   r:   r;   Úfunc"  rn  z6TestAddDocstring.test_add_same_docstring.<locals>.func)r4   Úadd_docstringrã   Úflatrp  ©ra   rn  r:   r:   r;   Útest_add_same_docstring  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   ri  rl  r:   r:   r:   r:   r;   rn  .  rn  z=TestAddDocstring.test_different_docstring_fails.<locals>.func)r   r4  r4   ro  rã   rp  rq  r:   r:   r;   Útest_different_docstring_fails(  s   
ÿ
"ÿz/TestAddDocstring.test_different_docstring_failsN)rr   rs   rt   rø   rù   r°  rª  r´   rj  r   rr  rs  r:   r:   r:   r;   rk    s    
rk  c                   @   s.   e Zd Zej dg d¢¡dd„ ƒZdd„ ZdS )ÚTestSortComplexztype_in, type_out))ÚlÚD)Úhr±   )ÚHr±   )r€   r±   )r  r±   )rô  ÚGc                 C   sH   t jg d¢|d�}t  |¡}t  |¡ |¡}t||ƒ t|j|jƒ d S )N)rT   rS   rn   rI   rK   rê   )r4   r†   Úsort_complexrÝ  rÒ   r   rÕ   )ra   Ztype_inZtype_outrb   rÙ   r�  r:   r:   r;   Útest_sort_real8  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ª  rv  rê   )r  r|  rª  r©  )r4   r†   rz  r   rÕ   )ra   rb   r�  rÙ   r:   r:   r;   Útest_sort_complexH  s
   

z!TestSortComplex.test_sort_complexN)rr   rs   rt   rø   rù   rú   r{  r}  r:   r:   r:   r;   rt  6  s    
rt  )r¼   )r¼   r¾   )zr˜  r-  rª  rð   Z	fractionsr   r*  rø   r9  Zhypothesis.extra.numpyr   Zhypothesis.strategiesÚ
strategiesr;  Znumpyr4   r   Znumpy.testingr   r   r   r	   r
   r   r   r   r   r   r   r   Znumpy.lib.function_baserñ  Zfunction_baser~  Znumpy.randomr   Z	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-   r.   r/   r0   r1   r2   r<   rD   rF   rv   r˜   r¨   r­   r¹   rû   r%  rO  r[  r\  r_  ry  r†  rŠ  r«  rÄ  rÿ  r
  r!  r-  r/  r0  rž  r±  rÆ  rù   rú   r(  rÖ  râ  ræ  ré  rï  rô  r#  r:  r=  rD  rN  rd  rl  r‰  r·  r)  r=  rH  r^  ra  rk  rt  r:   r:   r:   r;   Ú<module>   s¢    8ˆDg# 	>o u }A
)
   *)Uÿl>[j4nd` C   rm2 z
