a
    ç´«j1† ã                   @   s6  d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ d dlAmB  mCZD d dlEmFZF d d	lGmHZH d
d„ ZIdd„ ZJG dd„ dƒZKG dd„ dƒZLG dd„ dƒZMG dd„ dƒZNejO Pdg d¢¡dd„ ƒZQG dd„ dƒZRG dd„ dƒZSG dd„ dƒZTG d d!„ d!ƒZUG d"d#„ d#ƒZVG d$d%„ d%ƒZWG d&d'„ d'ƒZXG d(d)„ d)ƒZYG d*d+„ d+ƒZZG d,d-„ d-ƒZ[G d.d/„ d/ƒZ\G d0d1„ d1ƒZ]G d2d3„ d3ƒZ^G d4d5„ d5ƒZ_G d6d7„ d7ƒZ`G d8d9„ d9ƒZadsd;d<„Zbdtd>d?„ZcG d@dA„ dAƒZdG dBdC„ dCƒZeG dDdE„ dEƒZfG dFdG„ dGƒZgejO PddHejhdI  ejhdJ  ¡ejO PdKg dL¢¡G dMdN„ dNƒƒƒZiG dOdP„ dPƒZjG dQdR„ dRƒZkG dSdT„ dTƒZlG dUdV„ dVƒZmG dWdX„ dXƒZnG dYdZ„ dZƒZoG d[d\„ d\ƒZpG d]d^„ d^ƒZqG d_d`„ d`ƒZrG dadb„ dbƒZsG dcdd„ ddƒZtG dedf„ dfƒZuG dgdh„ dhƒZvg di¢ZwdjgZxG dkdl„ dlƒZyG dmdn„ dnƒZzG dodp„ dpƒZ{G dqdr„ drƒZ|dS )ué    N©ÚFraction)Úarrays)Úpartial)ÚmaÚangleÚaverageÚbartlettÚblackmanÚcorrcoefÚcovÚdeleteÚdiffÚdigitizeÚextractÚflipudÚgradientÚhammingÚhanningÚi0ÚinsertÚinterpÚkaiserÚmeshgridÚ	piecewiseÚplaceÚrot90ÚselectÚsetxor1dÚsincÚ	trapezoidÚ
trim_zerosÚunwrapÚuniqueÚ	vectorize)Ú	AxisError)Úassert_Úassert_equalÚassert_array_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_raisesÚassert_allcloseÚIS_PYPYÚassert_warnsÚassert_raises_regexÚsuppress_warningsÚHAS_REFCOUNTÚIS_WASM)Úrand)Únormalize_axis_tuplec                 C   s   t  | ¡}t j ||¡}|S ©N)ÚnpÚarangeÚaddÚouter)ÚnÚdata© r<   úa/var/www/html/laksyashrimp/venv/lib/python3.9/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
    )r6   ÚzerosÚ	broadcastÚshapeÚ
complex128ÚrealÚimag)rC   rD   Úretr<   r<   r=   Ú_make_complex%   s    rF   c                   @   s$   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�|ƒ qÒt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é   ©é   rJ   rJ   ©r   é   rJ   ©Úaxes©rJ   rJ   ©r   rJ   ©rL   rL   )éþÿÿÿrL   ©é   rH   é   rJ   rU   rL   r   rT   ©rU   rH   rT   ©rJ   rL   r   éýÿÿÿé   )ÚkrR   éÿÿÿÿ©r   rL   ©rL   r   ©rZ   rN   )r+   Ú
ValueErrorr   r6   ÚonesÚranger'   )ÚselfÚaÚb1Úb2Zb3Zb4rZ   r<   r<   r=   Ú
test_basic1   s@    ÿþÿþÿzTestRot90.test_basicc                 C   sR   t  d¡}tt|ƒjdƒ tt|dd�t|dd�ƒ tt|dd�t|dd�ƒ d S )N)é2   é(   rT   )rh   rg   rT   rP   rM   ©r   r[   ©rL   rJ   ©rR   r[   )r6   r`   r'   r   rA   ©rb   rc   r<   r<   r=   Ú	test_axesQ   s    
zTestRot90.test_axesc                 C   sü   t  d¡ d¡}ddgddggddgd	d
ggg}ddgddggd
dgd	dggg}d	dgddggd
dgddggg}d	d
gddggddgddggg}tt|dd�|ƒ tt|dd�|ƒ tt|dd�|ƒ tdd
ƒD ]&}tt||dd�t||d dd�ƒ qÐd S )Né   rI   rJ   rT   é   é   r   rL   rH   rU   r\   rM   r]   rj   )rJ   r   r^   )r6   r7   Úreshaper'   r   ra   )rb   rc   Z
a_rot90_01Z
a_rot90_12Z
a_rot90_20Z
a_rot90_10rZ   r<   r<   r=   Útest_rotation_axesW   sH    ÿÿþÿÿþÿÿþÿÿþÿzTestRot90.test_rotation_axesN)Ú__name__Ú
__module__Ú__qualname__rf   rm   rr   r<   r<   r<   r=   rG   0   s    rG   c                   @   sT   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   sd   t ttjt d¡dd� t ttjt d¡dd� t ttjt d¡dd� t ttjt d¡dd� d S )NrH   rL   ©Úaxis©rH   rH   rJ   rX   ©r   rT   )r+   r%   r6   Úflipr`   ©rb   r<   r<   r=   rm   v   s    zTestFlip.test_axesc                 C   sf   t dƒ}|d d …d d d…f }tt |d¡|ƒ g d¢g d¢g}g d¢g d¢g}tt |d¡|ƒ d S )NrH   r[   rL   rK   rS   rW   rV   ©r>   r'   r6   r{   ©rb   rc   Úbr<   r<   r=   Útest_basic_lr|   s    ÿÿ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 )NrH   r[   r   rK   rS   r}   r~   r<   r<   r=   Útest_basic_ud†   s    ÿÿ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   rL   rJ   rT   rH   rU   ro   rp   ©r6   Úarrayr'   r{   r~   r<   r<   r=   Útest_3d_swap_axis0�   s    
ÿÿþ
ÿÿþ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�   s    
ÿÿþ
ÿÿþ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ª   s    
ÿÿþ
ÿÿþ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   rJ   rT   rH   rU   r   )	r6   r7   rq   ra   Úndimr'   r{   r   Úswapaxes)rb   rc   Ú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©rL   rJ   rT   ©rH   rU   ro   )ro   rU   rH   ©rT   rJ   rL   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   rL   rJ   rT   rH   rU   ro   rp   r<   rw   rP   rj   rƒ   ©rb   rc   r   Úcr<   r<   r=   Útest_multiple_axesÄ   s0    
ÿÿþ
ÿÿþ
ÿÿþzTestFlip.test_multiple_axesN)rs   rt   ru   rm   r€   r�   r…   r†   r‡   rŒ   r�   r“   r<   r<   r<   r=   rv   t   s   

rv   c                   @   s   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   rL   r   ©r   r   r   r   )rL   r   rL   r   )r&   r6   Úany©rb   Úy1Úy2Úy3r<   r<   r=   rf   Ý   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   rL   r   ©rL   rL   r   r   rw   rL   ©r   rL   rL   )r&   r6   r—   r(   ©rb   r™   r<   r<   r=   Útest_ndå   s    zTestAny.test_ndN©rs   rt   ru   rf   r¡   r<   r<   r<   r=   r”   Û   s   r”   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestAllc                 C   s`   g d¢}g d¢}g d¢}t t |¡ ƒ t t |¡ƒ t t |¡ ƒ t t t |¡ ¡ƒ d S )N)r   rL   rL   r   r–   ©rL   rL   rL   rL   )r&   r6   Úallr„   r˜   r<   r<   r=   rf   î   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   rL   rŸ   ©rL   rL   rL   r   rw   rL   )r&   r6   r¥   r(   r    r<   r<   r=   r¡   ÷   s    zTestAll.test_ndNr¢   r<   r<   r<   r=   r£   ì   s   	r£   Údtype)Úi8ZU10Úobjectzdatetime64[ms]c                 C   s>   t jd| d�}t  |¡jt jks$J ‚t  |¡jt jks:J ‚d S )NrT   ©r¨   )r6   r`   r—   r¨   Úboolr¥   )r¨   Úarrr<   r<   r=   Útest_any_and_all_result_dtypeþ   s    r®   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestCopyc                 C   sR   t  ddgddgg¡}t  |¡}t||ƒ d|d< t|d dƒ t|d dƒ d S )NrL   rJ   rT   rH   é
   )r   r   )r6   r„   Úcopyr(   r'   )rb   rc   Úa_copyr<   r<   r=   rf     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 )NrL   rJ   rT   rH   ÚF©Úorder)r6   r„   r&   ÚflagsÚc_contiguousÚf_contiguousr±   )rb   rc   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 )NrU   F)ZsubokT)r   r`   r&   ZisMaskedArrayr6   r±   )rb   Zmxr<   r<   r=   Ú
test_subok   s    
zTestCopy.test_subokN)rs   rt   ru   rf   r¹   rº   r<   r<   r<   r=   r¯     s   r¯   c                   @   s®   e Zd Zdd„ Zej dg d¢ddgg d¢dgd	gfg d
¢g d¢gdg d¢gddgg d¢gg d¢gfg¡dd„ ƒZdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zd 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\   rJ   r]   rL   rU   )r6   r„   r&   r   r`   r)   Úmeanr3   )rb   r™   rš   r›   Zy4Zy5r<   r<   r=   rf   *  s    

zTestAverage.test_basicz<x, axis, expected_avg, weights, expected_wavg, expected_wsumr�   Nr¼   )rT   rH   rL   ç      ü?ç       @)rL   rJ   rU   )rL   ro   é   r   )r¾   ç      @rÃ   rL   rT   )r¾   ç      @ç      #@©rH   rH   rH   c           
      C   s¶   t j||dd�}|jt  |¡ks$J ‚t||ƒ t j|||dd�}|jt  |¡ksTJ ‚t||ƒ t j|||ddd�\}}	|jt  |¡ksŠJ ‚t||ƒ |	jt  |¡ks¨J ‚t|	|ƒ d S )NT©rx   Úkeepdims)rx   ÚweightsrÊ   )rx   rË   ÚreturnedrÊ   )r6   r   rA   r(   )
rb   Úxrx   Zexpected_avgrË   Zexpected_wavgZexpected_wsumÚavgZwavgZwsumr<   r<   r=   Útest_basic_keepdims<  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||ƒ tjtdd�� t||d� W d   ƒ n1 sð0    Y  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Ë   rJ   r¾   r�   rŽ   rL   r   ©rË   rx   )r¿   rÅ   rÆ   r¦   r¿   ç      @z:Axis must be specified when shapes of a and weights differ©Úmatch)r   r   rJ   rÆ   rU   ©rJ   rT   rH   rT   F)rË   rx   rÊ   )r¼   r¿   rÅ   Tr¼   rÅ   )r6   r7   r   Úsumr)   r„   ÚpytestÚraisesÚ	TypeErrorr(   r'   r3   ÚastypeÚfloat32Úfloat64r&   r¨   Úresult_typerq   )rb   ÚyÚwÚactualÚdesiredr™   Úw0Úw1Úw2r›   Zw3rÍ   r<   r<   r=   Útest_weightsS  sD    

$


þ* 
zTestAverage.test_weightsc                 C   s¤  t  d¡ ddd¡}t  g d¢¡ ddd¡}|d d …d d …df }t|d|d�}t  g d¢¡}t||ƒ |d	d d …d d …f }t|d
|d�}t  ddg¡}t||ƒ |d d …dd d …f }t|d|d�}t  ddg¡}t||ƒ tjtdd�� t|d|d� W d   ƒ n1 �s0    Y  tjtdd�� t|d|d� W d   ƒ n1 �sR0    Y  t|d|d�}t|d|j	d�}t||ƒ t|d|d�}t
|jdkƒ d S )Né   rJ   rT   )rÀ   rÀ   r¾   ç      à?rç   rÀ   rÀ   rç   rç   r¾   rÀ   rÀ   r   r\   )rx   rË   ©ç      @rÃ   ç      "@rL   rj   g      @g     € @rP   ç      @g      @zHShape of weights must be consistent with shape of a along specified axisrÓ   rK   r]   )r6   r7   rq   r„   r   r)   r×   rØ   r_   ÚTr&   r‰   )rb   rÞ   rß   Zsubw0rà   rá   Zsubw1Zsubw2r<   r<   r=   Ú$test_weight_and_input_dims_differentƒ  s>    ÿ


þ.þ.
z0TestAverage.test_weight_and_input_dims_differentc                 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¼   rL   r¿   rJ   )rË   rx   rÌ   )r¿   r¿   r¿   r¦   r¾   )r6   r„   r   r'   r(   )rb   rÞ   rÎ   Zsclrâ   rã   rä   r<   r<   r=   Útest_returned­  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                   @   s   e Zd ZdS )z-TestAverage.test_subclasses.<locals>.subclassN©rs   rt   ru   r<   r<   r<   r=   ÚsubclassÈ  s   rð   rL   rJ   rT   rH   rÐ   )r6   Úndarrayr„   Úviewr'   Útyper   )rb   rð   rc   rß   r<   r<   r=   Útest_subclassesÇ  s
    zTestAverage.test_subclassesc                 C   sl   g d¢}|D ]Z\}}}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ö   rL   rJ   rT   rH   r«   rÐ   )r6   r„   r'   r   r¨   )rb   ZtypsÚatÚwtÚrtrc   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 ©rL   rü   )rÿ   Ú_r<   r<   r=   r   Ú  r  r   rÐ   )r6   r„   ra   rÖ   r)   rÁ   r   )rb   rc   rß   r<   r<   r=   Útest_object_dtypeØ  s    zTestAverage.test_object_dtypec                 C   s4   t  tddƒtddƒg¡}tt  |¡tddƒƒ d S )NrL   rU   rT   rJ   )r6   r„   r   r'   r   rl   r<   r<   r=   Ú test_average_class_without_dtypeÞ  s    z,TestAverage.test_average_class_without_dtype)rs   rt   ru   rf   r×   ÚmarkÚparametrizerÏ   rå   rí   rî   rô   rû   r  r  r<   r<   r<   r=   r»   (  s"   ÿÿþ
0*	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Ž   ©rp   rn   é	   )FFF©FTF©FFTr   c                    s<   g }t t|ƒƒD ]&‰ |‡ fdd„t||ƒD ƒp2|g7 }q|S )Nc                    s    g | ]\}}|ˆ  r|ˆ  ‘qS r<   r<   )rÿ   ÚVÚC©Úmr<   r=   r   î  r  z&TestSelect._select.<locals>.<listcomp>)ra   ÚlenÚzip)rb   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  rT   )ÚchoicesÚ
conditionsr(   r   r  r'   r  ©rb   r  r  r<   r<   r=   rf   ñ  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  rL   ræ   rH   rT   ©rH   rT   r   r  r  )	r6   r„   r7   rq   r(   r   r`   r'   rA   ©rb   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Ú   r6   Úint8)rÿ   Úchoicer<   r<   r=   r     r  z0TestSelect.test_return_dtype.<locals>.<listcomp>rL   rJ   rT   rU   rp   r   )r'   r   r  r  r¨   r6   rB   r   r„   ÚnanÚisnan)rb   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Ú   r6   Úint_r+   rÙ   r   Ú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   rL   )r6   r„   r   r  r<   r<   r=   Útest_many_arguments  s    zTestSelect.test_many_argumentsN)r   )rs   rt   ru   r6   r„   r  r  r  rf   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��R}t ddt	¡ t t|t dgd ¡d
ƒg d¢ƒ t
|d jt	u ƒ W d   ƒ n1 �sh0    Y  d S )Nr�   r   rL   )rL   rL   rJ   rT   rT   )rL   rJ   rT   rL   r§   )rL   rL   rJ   rT   rJ   rT   )rL   r[   rT   r
  )rL   r
  rJ   r
  rT   r
  r[   )r
  rL   r
  rJ   r
  rT   ©r[   rL   rT   r	  )rL   rn   rJ   rp   rT   r
  r«   ©rÀ   rÀ   r¾   T©ÚrecordÚalwaysÚ rH   )rL   r
  r
  r
  r
  rJ   rT   )r'   r   Úslicer6   r„   rÜ   ÚwarningsÚcatch_warningsÚfilterwarningsÚFutureWarningr&   Úcategory)rb   rc   r   rß   r<   r<   r=   rf   #  s"    ÿzTestInsert.test_basicc              
   C   sz  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
t|d|d d …dd d …f d	d� t	t
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§   rI   r   rL   r¤   rw   rJ   )rL   rL   rJ   rL   rT   rH   r�   é   rÕ   r[   rR   éüÿÿÿ)r'   r   r6   r„   r7   Úrepeatrq   Zconcatenaterì   r+   r%   )rb   rc   Úrr   r’   r<   r<   r=   Útest_multidim7  sN    
ÿ,ÿþ$"22" ÿ" ÿ&&" ÿ" ÿzTestInsert.test_multidimc                 C   s‚   t  d¡}t t¡�  t|g ddd� W d   ƒ n1 s:0    Y  t t¡�  t|g ddd� W d   ƒ n1 st0    Y  d S )NrL   rJ   r   rw   Únonsense)r6   r„   r×   rØ   r%   r   rÙ   rl   r<   r<   r=   Útest_0da  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                   @   s   e Zd ZdS )z*TestInsert.test_subclass.<locals>.SubClassNrï   r<   r<   r<   r=   ÚSubClassi  s   rB  r°   r   rL   rJ   rR   r[   )	r6   rñ   r7   rò   r&   Ú
isinstancer   r5  r„   ©rb   rB  rc   r<   r<   r=   Útest_subclassh  s     " zTestInsert.test_subclassc                 C   s<   t  g d¢¡}t  g d¢|g d¢¡ t|t  g d¢¡ƒ d S )Nr§   rK   rS   )r6   r„   r   r'   ©rb   rÍ   r<   r<   r=   Útest_index_array_copiedu  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))rL   rc   )rJ   r   )rT   r’   )Úfoor‹   )ÚbarZS1r«   )rH   r$  r   rJ   rT   )r6   r„   r   r(   r¨   )rb   rc   Úvalr   r<   r<   r=   Útest_structured_arrayz  s    
ÿ
z TestInsert.test_structured_arrayc                 C   s”   t  t¡�0 t g d¢t ddg¡ddg¡ W d   ƒ n1 s@0    Y  t  t¡�, t g d¢tjg td�g ¡ W d   ƒ n1 s†0    Y  d S )NrK   r¾   r¼   r°   é   r«   )r×   rØ   Ú
IndexErrorr6   r   r„   Úfloatr|   r<   r<   r=   Útest_index_floats„  s    >zTestInsert.test_index_floatsÚidxrH   r<  c                 C   sJ   t jtdd��( t g d¢|gddg¡ W d   ƒ n1 s<0    Y  d S )Nzout of boundsrÓ   rK   rT   rH   )r×   rØ   rM  r6   r   )rb   rP  r<   r<   r=   Útest_index_out_of_boundsŠ  s    z#TestInsert.test_index_out_of_boundsN)rs   rt   ru   rf   r?  rA  rE  rG  rK  rO  r×   r  r  rQ  r<   r<   r<   r=   r.  !  s   *
r.  c                   @   s   e Zd Zdd„ ZdS )ÚTestAmaxc                 C   sb   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©rT   rH   rU   r°   rX   éûÿÿÿrÒ   ç      $@©rT   rÒ   rê   ©rH   rU  rÆ   ©rn   r¿   r¼   r   rw   )rÃ   rU  rê   rL   )rê   rU  rÃ   )r'   r6   Zamaxr~   r<   r<   r=   rf   ’  s    þzTestAmax.test_basicN©rs   rt   ru   rf   r<   r<   r<   r=   rR  �  s   rR  c                   @   s   e Zd Zdd„ ZdS )ÚTestAminc                 C   sb   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 )NrS  g      ÀrV  rW  rX  r   rw   )r¿   r¿   r¼   rL   )r¿   rÅ   r¼   )r'   r6   Úaminr~   r<   r<   r=   rf   ž  s    þzTestAmin.test_basicNrY  r<   r<   r<   r=   rZ  œ  s   rZ  c                   @   s   e Zd Zdd„ ZdS )ÚTestPtpc                 C   s¨   t  g d¢¡}tt j|dd�dƒ t  g d¢g d¢g d¢g¡}tt j|dd�g d¢ƒ tt j|d	d�g d
¢ƒ tt j|ddd�g d¢gƒ tt j|ddd�dggƒ d S )NrS  r   rw   ç      .@rV  rW  rX  )rÆ   ré   ré   r[   )rÒ   rÒ   rÒ   TrÉ   r\   rÃ   )r6   r„   r'   Zptpr~   r<   r<   r=   rf   ª  s    
þzTestPtp.test_basicNrY  r<   r<   r<   r=   r\  ¨  s   r\  c                   @   s   e Zd Zdd„ ZdS )Ú
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 ]¤}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�|ƒ qJd S )N©rL   rJ   r°   rÄ   ro   rU   rH   ©rL   rJ   rT   rH   ©rU   ro   rp   r
  ©r°   rT   rH   rU   )rL   rT   rY   r;  é   é#   é'   r   rw   )ro   rn   r°   rY   )é   rÄ   é   é   )rL   rT   ro   r°   )rU   rÄ   rh  é   )r°   rY   é   é   rL   )r6   r   r*  Úint16Úuint16Úint32Úuint32rÛ   rÜ   Ú	complex64rB   r„   r(   Úcumsum)rb   ÚbaÚba2Úctyperc   Úa2Útgtr<   r<   r=   rf   ¹  s$    þÿÿzTestCumsum.test_basicNrY  r<   r<   r<   r=   r^  ·  s   r^  c                   @   s   e Zd Zdd„ ZdS )Ú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 ]’}t  	||¡}t  	||¡}|dv r†t
tt j|ƒ t
tt j|dƒ qBt|jdd�d	ƒ t|jdd�t  	g d
¢|¡ƒ t|jdd�t  	g d¢|¡ƒ qBd S )Nr_  r`  ra  rb  ©Ú1r   rL   r   rw   é g  ©rg   é$   éT   é´   r[   )r;  éb  éX  )r6   rl  rm  rn  ro  rÛ   rÜ   rp  rB   r„   r+   ÚArithmeticErrorÚprodr'   r(   ©rb   rr  rs  rt  rc   ru  r<   r<   r=   rf   Ð  s"    ÿÿÿzTestProd.test_basicNrY  r<   r<   r<   r=   rw  Î  s   rw  c                   @   s   e Zd Zdd„ ZdS )Ú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 ]Î}t  	||¡}t  	||¡}|dv r”t
tt j|ƒ t
tt j|dƒ t
tt j|ƒ qBt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|¡ƒ qBd S )Nr_  r`  ra  rb  rx  rL   r[   rw   )rL   rJ   rL  éÜ   i(  iÈ  rz  r   )rU   ræ   é   r|  r{  )rL   rJ   ro   r;  )rU   rc  éÒ   r  )r°   rc  rˆ   r€  )r6   rl  rm  rn  ro  rÛ   rÜ   rp  rB   r„   r+   r�  Zcumprodr(   rƒ  r<   r<   r=   rf   ä  s@    ÿ
ÿÿ
þþÿ
þþÿzTestCumprod.test_basicNrY  r<   r<   r<   r=   r„  â  s   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)rL   rH   ro   rp   ræ   )rT   rJ   rL   rU   )r[   r[   rH   r   rU   rJ   ©r:   rT   )çš™™™™™ñ?çš™™™™™@r¿   gš™™™™™É¿çš™™™™™¹¿)rŠ  çš™™™™™é?gš™™™™™	Àçš™™™™™¹?)TTFFr  T)r6   r„   r(   r   r)   )rb   rÍ   ÚoutÚout2Úout3r<   r<   r=   rf   ÿ  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t|dd� ttt|dd� t  dt j¡}tt	t|ƒ d S )N)r°   rL  rc  rL   rJ   )r°   é   rc  r[   )r°   rL  é   rw   r   )r
  rL  rc  rR   rT   r<  gæÇqÇñ?)
r6   r?   r`   r(   r   r+   r%   r„   rÜ   r_   )rb   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 )NrL  r°   rc  rL   r[   rJ   r‰  r   rw   )r:   rx   )r3   r(   r   )rb   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 ]R\}\}}tt|ƒt	j
u ƒ t||ƒ t|jt	jƒ tt|ƒtdtˆ ƒ| ƒƒ qld S )
NrT   r[   r‰  c                    s   g | ]}t ˆ |d �‘qS )r‰  )r   )rÿ   r:   ©rÍ   r<   r=   r   0  r  z#TestDiff.test_n.<locals>.<listcomp>rL   rU   r   ©Ústart)Úlistra   r+   r_   r   r&   Ú	enumerater  ró   r6   rñ   r(   r'   r¨   r)  r  Úmax)rb   r  Úexpectedr:   r�  r<   r–  r=   Útest_n-  s    
zTestDiff.test_nc                 C   sŒ   t jddt jd�}t jddgdd�t jdgdd�g}| t jg dd�gd ¡ t|dd�D ],\}}t||d	�}t||ƒ t|j	|j	ƒ qZd S )
Nz
1066-10-13z
1066-10-16r«   rL   útimedelta64[D]r   rT   r—  r‰  )
r6   r7   Z
datetime64r„   Úextendrš  r   r(   r'   r¨   )rb   rÍ   rœ  r:   r”  r�  r<   r<   r=   Ú
test_times9  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 )NrL   rJ   rT   rH   rU   ro   rp   rn   r
  r°   FT©Úmaskr‰  )r   r„   r   r(   r;   r¢  r&   ró   )rb   rÍ   r�  r‘  r<   r<   r=   rE  E  s    $ÿÿ ÿzTestDiff.test_subclassc                 C   sL  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
t|ddd� d S )NrU   rL   r   )Úprependr[   ro   rH   rJ   )rx   r£  ©rT   rT   rT   )r£  rx   )r6   r7   r(   r   r`   rq  rq   r+   r_   r?   r%   ©rb   rÍ   Úresultrœ  r<   r<   r=   Útest_prependT  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t|ddd� d S )NrU   r   )Úappend)rL   rL   rL   rL   r<  rJ   rH   rL   )rx   r¨  r[   rX   rR   r¤  rT   )r¨  rx   )	r6   r7   r   r(   rq   r+   r_   r?   r%   r¥  r<   r<   r=   Útest_appendl  s,    








zTestDiff.test_appendN)rs   rt   ru   rf   r•  r¡   r�  r   rE  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 )NrU   rJ   rL   )r6   r7   rc   r=  rq   Únd_ar|   r<   r<   r=   Úsetup_method‹  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 )NrL   rw   zDelete failed for obj: %r)Úerr_msgr   )r   rc   r«  r(   r   )rb   ÚindicesÚa_delÚnd_a_delÚmsgÚxorr<   r<   r=   Ú_check_inverse_of_slicing�  s    ÿ$z$TestDelete._check_inverse_of_slicingc                 C   sH   g d¢}g d¢}|D ].}|D ]$}|D ]}t |||ƒ}|  |¡ q$qqd S )N)éúÿÿÿrR   r   rL   rJ   rH   rU   )rX   r[   rL   rT   )r5  r³  )rb   ZlimsZstepsr˜  ÚstopÚstepÚsr<   r<   r=   Útest_slices˜  s    zTestDelete.test_slicesc                 C   sX  |   t ddgddgg¡¡ t t¡� t| jdgƒ W d   ƒ n1 sJ0    Y  t t¡� t| jdgƒ W d   ƒ n1 s‚0    Y  |   g d¢¡ |   g d¢¡ t t¡� t| jdƒ W d   ƒ n1 sÔ0    Y  t t¡� t| jd	ƒ W d   ƒ n1 �s0    Y  t t¡�" t| jd	gd
 ƒ W d   ƒ n1 �sJ0    Y  d S )Nr   rL   rJ   r,  iœÿÿÿ)r   r[   rJ   rJ   )TFFTFTFrH   )	r³  r6   r„   r×   rØ   rM  r   rc   r_   r|   r<   r<   r=   Ú
test_fancy¡  s    ,,*,zTestDelete.test_fancyc                 C   s   |   d¡ |   d¡ d S )Nr   r<  )r³  r|   r<   r<   r=   Útest_single¶  s    
zTestDelete.test_singlec                 C   s~   t  d¡}t t¡� t|g dd� W d   ƒ n1 s80    Y  t t¡� t|g dd� W d   ƒ n1 sp0    Y  d S )NrL   r   rw   r@  )r6   r„   r×   rØ   r%   r   rÙ   rl   r<   r<   r=   rA  º  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                   @   s   e Zd ZdS )z*TestDelete.test_subclass.<locals>.SubClassNrï   r<   r<   r<   r=   rB  Â  s   rB  r   rL   rJ   rR   )r6   rñ   rc   rò   r&   rC  r   r5  rD  r<   r<   r=   rE  Á  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°   rJ   rU   r³   r´   é<   rL   rw   )	r6   r7   rq   r   r5  r'   r¶   r·   r¸   )rb   rZ   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:0    Y  t  t¡�* t g d¢tjg td�¡ W d   ƒ n1 s~0    Y  d S )NrK   r¾   r¼   r«   )r×   rØ   rM  r6   r   r„   rN  r|   r<   r<   r=   rO  Õ  s    8zTestDelete.test_index_floatsÚindexerrL   c                 C   sX   t | jdƒ}t | j|ƒ}t||ƒ t | jddd�}t | jt dg¡dd�}t||ƒ d S )NrL   rw   )r   rc   r'   r«  r6   r„   )rb   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 sÎ0    Y  t t¡�, t t d	¡tjdgd
d�ƒ W d   ƒ n1 �s0    Y  d S )NrL   F)rT   rL   r«   Tr[   rw   r   rJ   zm8[ns])
r   r6   r`   r„   r(   r¬   r×   rØ   rM  rª   )rb   ÚresrÍ   Z
false_maskZ	true_maskr<   r<   r=   Útest_single_item_array_non_intå  s    

:z)TestDelete.test_single_item_array_non_intN)rs   rt   ru   r¬  r³  r¸  r¹  rº  rA  rE  r¼  rO  r×   r  r  r6   r„   r¾  rÀ  r<   r<   r<   r=   rª  ‰  s   		


	rª  c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zej dejejejejg¡dd„ ƒZej dejejejejg¡dd„ ƒZej dejejejejg¡dd„ ƒZej dejejejejg¡dd „ ƒZd!d"„ Zd#S )$ÚTestGradientc                 C   sf   ddgddgg}t  |¡}t  ddgddgg¡t  ddgddgg¡g}tt|ƒ|ƒ tt|ƒ|ƒ d S )NrL   rT   rH   r¼   r¿   rÀ   r¾   )r6   r„   r(   r   ©rb   ÚvrÍ   Údxr<   r<   r=   rf      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 )NrU   )r¾   r¼   rÆ   rê   ç      &@é   r¿   ç      ø?rJ   rL   rw   z.*scalars or 1dr[   )
r6   rq  r`   r7   rq   r   r„   r/   r_   Ústack)rb   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Æ  rU   rJ   rL   r\   rw   )	r6   r7   rq   rq  r`   r+   r_   r   rÙ   )rb   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«   )rT  rX   r   é   é=   iŒ  iÛ  rž  ©r6   r„   r(   r   r&   r¨   ©rb   rÍ   rÄ  r<   r<   r=   Útest_datetime641  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 )NrL   rT   rH   Fr¡  r   rU   rJ   ©Ú
edge_order)FFTFF)r6   r   r„   r   r'   ró   r&   Z_maskr7   Úmaskedr(   r¢  )rb   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   rL   r°   rJ   rT   rH   ro   rn   rÑ  g¸…ëQ¸ž?T)	r6   ÚlinspaceÚabsr   r&   r¥   ÚrandomÚseedÚsort)rb   rÍ   rÄ  rÞ   Z
analyticalZ	num_errorr<   r<   r=   Útest_second_order_accurateL  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 ]ä\}}	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||	ƒ qŽd|fd|ffD ]Œ\}}	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Æ   )ro   rL   r[   rL   )rÀ   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      Ð¿rJ   r¾   r\   )rx   rÒ  r   r]   )r6   r„   Ztilerq   r7   r   r(   r)   rì   r&   rA   )rb   Ú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t|dd	� ttt|dd	� d S )NrL   rT   rH   r¼   r¿   rÀ   r¾   r   rw   r[   r]   rJ   rX   )r6   r„   r(   r   r)   r+   rÙ   r%   rÂ  r<   r<   r=   Útest_specific_axes   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)rT  rX   r°   ræ   rÍ  iA  é,  rž  r«   )rJ   rp   rp   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«   )	r6   Úfloat16rÛ   rÜ   r„   r'   r   r¨   r   )rb   Ú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 )NrJ   rL   rÑ  rT   r   )r   r6   r7   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)rU   rH   rT   rJ   rL   r«   r[   ©r6   r„   r   r(   r  )rb   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 )NrL   rT   r[   r«   rJ   )r6   Úiinfor›  r„   r   r(   )rb   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   rJ   rH   rR   rï  )rb   rö  rÍ   rà  rô  r<   r<   r=   Útest_x_decreasing_unsignedç  s    
z'TestGradient.test_x_decreasing_unsignedc                 C   sX   t  |¡j}t  |¡j}t jd|g|d�}t  |d dg¡}t||ƒ}t|ddgƒ d S )Nr[   r«   rJ   r   rç   )r6   rò  Úminr›  r„   r   r(   )rb   rö  Zminintró  rÍ   rà  rô  r<   r<   r=   Útest_x_signed_int_big_jumpï  s    
z'TestGradient.test_x_signed_int_big_jumpc                 C   s*   t  ddgddgf¡}t|ƒtu s&J ‚d S )NrL   rJ   rT   )r6   r   ró   Útuple©rb   r¿  r<   r<   r=   Útest_return_typeù  s    zTestGradient.test_return_typeN)rs   rt   ru   rf   rÊ  rË  rÐ  rÕ  rÛ  rä  rå  ré  rì  rí  r×   r  r  r6   r*  rm  ro  Zuint64rñ  r   rl  rn  Zint64rõ  rø  rú  rý  r<   r<   r<   r=   rÁ  þ  s8   @ÿ
ÿ
ÿ
ÿ
rÁ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	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ù      ð?      @rJ   r¼   r  rL   r[   ù       €      ð¿ù      ð?      Ày      ð¿      @r¿   r¾   r   T)Údegr~  rÄ   )r6   Úsqrtr   ÚarctanÚpir„   r*   )rb   rÍ   rÞ   ZyoÚzZzor<   r<   r=   rf      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ÿ  rL   rJ   ù      ð?      ð?r¿   r   r¾   )
r6   r   r„   r  rÓ  r  r   r'   ró   r¢  )rb   rÍ   rœ  rà   r<   r<   r=   rE    s     zTestAngle.test_subclassN)rs   rt   ru   rf   rE  r<   r<   r<   r=   rþ  þ  s   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   rL   r   rJ   rT   rH   r   c                    s   d}‡ fdd„|D ƒS )N)rc   r   r’   r$  c                 3   s   | ]}t ˆ |ƒV  qd S r5   )Úgetattr)rÿ   Únamer|   r<   r=   Ú	<genexpr>!  r  z'TestTrimZeros.values.<locals>.<genexpr>r<   )rb   Z
attr_namesr<   r|   r=   r    s    zTestTrimZeros.valuesc                 C   s6   t jdd… }|  ¡ D ]}t|ƒ}t||| ƒ qd S )NrJ   r[   ©r6   Ús_r  r!   r(   ©rb   Úslcr­   r¿  r<   r<   r=   rf   #  s    zTestTrimZeros.test_basicc                 C   s:   t jd d… }|  ¡ D ]}t|dd�}t||| ƒ qd S )Nr[   r   ©Ztrimr  r  r<   r<   r=   Útest_leading_skip)  s    zTestTrimZeros.test_leading_skipc                 C   s:   t jdd … }|  ¡ D ]}t|dd�}t||| ƒ qd S )NrJ   r³   r  r  r  r<   r<   r=   Útest_trailing_skip/  s    z TestTrimZeros.test_trailing_skipc                 C   sZ   |   ¡ D ]L}tj||jd�}t|dd�}t|ƒdks8J ‚t|dd�}t|ƒdksJ ‚qd S )Nr«   ÚBr  r   rà  )r  r6   Z
zeros_liker¨   r!   r  )rb   Z_arrr­   rá  râ  r<   r<   r=   Útest_all_zero5  s    zTestTrimZeros.test_all_zeroc                 C   s    t  d¡}t|ƒ}t||ƒ d S r(  )r6   r?   r!   r(   ©rb   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 )NrL   rJ   )r6   r  r!   r(   )rb   r­   r  r¿  r<   r<   r=   Útest_overflowD  s    zTestTrimZeros.test_overflowc                 C   s$   t  g d¢¡}t|ƒ}t||ƒ d S )N)NrL   N)r6   r„   r!   r(   r  r<   r<   r=   Útest_no_trimO  s    zTestTrimZeros.test_no_trimc                 C   s    t | j ¡ ƒ}t|tƒsJ ‚d S r5   )r!   rc   ÚtolistrC  r™  rü  r<   r<   r=   Útest_list_to_listT  s    zTestTrimZeros.test_list_to_listN)rs   rt   ru   r6   r„   rc   rÚ   rN  r   Úcomplexr’   rª   r$  r  rf   r  r  r  r  r×   r  r  r  r  r  r<   r<   r<   r=   r    s(   



þþ
r  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú
TestExtinsc                 C   s.   t  g d¢¡}t|dk|ƒ}t|g d¢ƒ d S )N)rL   rT   rJ   rL   rJ   rT   rT   rL   )rT   rJ   rJ   rT   rT   )r6   r„   r   r(   r~   r<   r<   r=   rf   [  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   rL   )rL   rH   rT   rJ   rU   rn   rp   )r   rL   r   rL   r   rL   r   ©rJ   rH   ro   )rL   rJ   rT   rH   rU   ro   rp   rp   rn   )rL   r   rL   r   rL   r   rL   r
  )rn   rJ   r
  rH   rn   ro   r
  z!Cannot insert from an empty arrayc                      s   t ˆ g d¢g ƒS )N)r   r   r   r   r   rL   r   )r   r<   ©rc   r<   r=   Ú<lambda>o  r  z'TestExtins.test_place.<locals>.<lambda>Z12Z34Ú9)
r+   rÙ   r   r6   r„   r(   r?   r7   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   )r3   r±   r   r   r(   )rb   rc   r¢  Úacr’   r<   r<   r=   Ú	test_bothv  s    
zTestExtins.test_bothN)rs   rt   ru   rf   r!  r#  r<   r<   r<   r=   r  Y  s   r  r¾   c                 C   s   |t  | ¡ S r5   ©ÚmathÚfloor©rÍ   rÞ   r<   r<   r=   Ú_foo1‚  s    r(  rÀ   c                 C   s   |t  | ¡ | S r5   r$  )rÍ   rÞ   r  r<   r<   r=   Ú_foo2†  s    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d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dCdD„ Z$dEdF„ Z%dGdH„ Z&dIdJ„ Z'dKdL„ Z(dMdN„ Z)dOdP„ Z*dQdR„ Z+dSdT„ Z,dUdV„ Z-dWdX„ Z.dYS )ZÚTestVectorizec                 C   s4   dd„ }t |ƒ}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   s   | |kr| | S | | S d S r5   r<   ©rc   r   r<   r<   r=   Úaddsubtract�  s    z.TestVectorize.test_simple.<locals>.addsubtract©r   rT   ro   r
  ©rL   rT   rU   rp   ©rL   ro   rL   rJ   ©r$   r(   ©rb   r,  rà  r>  r<   r<   r=   Útest_simpleŒ  s    zTestVectorize.test_simplec                 C   s0   dd„ }t |ƒ}|g d¢dƒ}t|g d¢ƒ d S )Nc                 S   s   | |kr| | S | | S d S r5   r<   r+  r<   r<   r=   r,  ˜  s    z.TestVectorize.test_scalar.<locals>.addsubtractr-  rU   )rU   rn   rL   rH   r0  r1  r<   r<   r=   Útest_scalar—  s    zTestVectorize.test_scalarc                 C   s0   t  ddd¡}tdd„ ƒ}||ƒ}t||ƒ d S )NrX   rJ   i'  c                 S   s   | S r5   r<   r–  r<   r<   r=   r  ¤  r  z*TestVectorize.test_large.<locals>.<lambda>)r6   rÖ  r$   r(   )rb   rÍ   rà  rÞ   r<   r<   r=   Ú
test_large¢  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Ç  rJ   )r$   r%  Úcosr6   r„   r  r*   )rb   rà  ÚargsÚr1Úr2r<   r<   r=   Ú
test_ufunc¨  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 )	NrL   c                 S   s   | | S r5   r<   r+  r<   r<   r=   rH  ±  s    z(TestVectorize.test_keywords.<locals>.foor�   rÕ   rJ   rS   )rL   ©r$   r6   r„   r(   ©rb   rH  rà  r6  r7  r8  r<   r<   r=   Útest_keywords¯  s    


zTestVectorize.test_keywordsc                 C   s:   t ttgd�}|t d¡dƒ}|t d¡ƒ}t||ƒ d S ©N©Úotypesr¿   r¾   ©r$   r(  rN  r6   r7   r(   ©rb   rà  r7  r8  r<   r<   r=   Ú test_keywords_with_otypes_order1½  s    z.TestVectorize.test_keywords_with_otypes_order1c                 C   s:   t ttgd�}|t d¡ƒ}|t d¡dƒ}t||ƒ d S r=  r@  rA  r<   r<   r=   Ú test_keywords_with_otypes_order2Ç  s    z.TestVectorize.test_keywords_with_otypes_order2c                 C   sT   t ttgd�}|t d¡ƒ}|t d¡dd�}|t d¡ƒ}t||ƒ t||ƒ d S )Nr>  r¿   r¾   ©rÞ   r@  ©rb   rà  r7  r8  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 )Nr>  çÍÌÌÌÌÌ$@r,  )r  r[   rD  ©r$   r)  rN  r'   rE  r<   r<   r=   Ú+test_keywords_with_otypes_several_kwd_args1Þ  s    z9TestVectorize.test_keywords_with_otypes_several_kwd_args1c                 C   sR   t ttgd�}|dddd�}|dddƒ}t|tdddd�ƒ t|tdddƒƒ d S )	Nr>  r,  rG  r[   )r  rÍ   rÞ   rL   rJ   rT   rH  rA  r<   r<   r=   Ú+test_keywords_with_otypes_several_kwd_args2ë  s
    z9TestVectorize.test_keywords_with_otypes_several_kwd_args2c                 C   s4   dd l }zt|jƒ W n ty.   tƒ ‚Y n0 d S r(  )rØ  r$   Ú	randrangeÚ	ExceptionÚAssertionError)rb   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 )NrL   c                 S   s   | | S r5   r<   r+  r<   r<   r=   rH    s    z5TestVectorize.test_keywords2_ticket_2100.<locals>.foor�   r  rÕ   )r   rc   rJ   ©r   rS   )rL   r:  r;  r<   r<   r=   Útest_keywords2_ticket_2100   s    



z(TestVectorize.test_keywords2_ticket_2100c                 C   sr   dd„ }t j|ddgd�}ddg}t||ddgg d	¢d
�ƒ t||ddgg d	¢d�ƒ t||ddgg d	¢ƒƒ d S )Nc                 S   s.   t |ƒ}| d¡}|r*||  | d¡ }q|S r(  )r™  Úpop)rÍ   ÚpÚ_pr¿  r<   r<   r=   Ú	mypolyval  s
    
z;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyvalrR  rL   )ÚexcludedrT   ro   r   r�   )rÍ   rR  )rR  )r6   r$   r(   )rb   rT  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>.frL   rJ   rT   rH   r+  rn   r0  ©rb   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   s
   t  | ¡S r5   )r6   r‚  )rÃ  r<   r<   r=   rà  -  s    z3TestVectorize.test_keywords5_ticket_2100.<locals>.frL   rJ   rT   rH   rn   r0  rY  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   s   dS ©NrL   r<   r<   r<   r<   r=   rH  4  s    z5TestVectorize.test_coverage1_ticket_2100.<locals>.foorL   r0  ©rb   rH  rà  r<   r<   r=   Útest_coverage1_ticket_21003  s    z(TestVectorize.test_coverage1_ticket_2100c                 C   s>   dd„ }t |ƒ}t|j|jƒ d}t ||d�}t|j|ƒ d S )Nc                 S   s   | S )zOriginal documentationr<   r–  r<   r<   r=   rH  ;  s    z3TestVectorize.test_assigning_docstring.<locals>.foozProvided documentation)Údoc)r$   r'   Ú__doc__)rb   rH  rà  r_  r<   r<   r=   Útest_assigning_docstring:  s    z&TestVectorize.test_assigning_docstringc                 C   s`   G dd„ dƒ}t t|ƒ jƒt d¡ƒt d¡d ƒ t t|jƒ|ƒ t d¡ƒt d¡d ƒ d S )Nc                   @   s   e Zd ZdZdd„ ZdS )z9TestVectorize.test_UnboundMethod_ticket_1156.<locals>.FoorJ   c                 S   s
   || j  S r5   rO  rl   r<   r<   r=   rI  K  s    z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.barN)rs   rt   ru   r   rI  r<   r<   r<   r=   ÚFooH  s   rb  r
  rJ   )r(   r$   rI  r6   r7   )rb   rb  r<   r<   r=   Útest_UnboundMethod_ticket_1156F  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   s   | S r5   r<   r–  r<   r<   r=   r  U  r  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>rT   rŽ  c                 S   s   | S r5   r<   r–  r<   r<   r=   r  X  r  )r$   r6   r7   r'   )rb   Úf1Zres1aZres1bÚf2Zres2bZres2ar<   r<   r=   Ú test_execution_order_ticket_1487S  s    
z.TestVectorize.test_execution_order_ticket_1487c                 C   s$   t  dd„ ¡}d}t|||ƒƒ d S )Nc                 S   s   | S r5   r<   r–  r<   r<   r=   r  `  r  z7TestVectorize.test_string_ticket_1892.<locals>.<lambda>Zd0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r6   r$   r'   )rb   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   rL   rJ   r<   r–  ©Z_callsr<   r=   rà  h  s    z#TestVectorize.test_cache.<locals>.fTrU   )r$   Úcacher6   r7   r(   r'   r  ©rb   rà  rÍ   r<   rh  r=   Ú
test_cached  s    
zTestVectorize.test_cachec                 C   s0   t  dd„ ¡}d|_t  d¡}t||ƒ|ƒ d S )Nc                 S   s   | S r5   r<   r–  r<   r<   r=   r  s  r  z+TestVectorize.test_otypes.<locals>.<lambda>r‹   rU   )r6   r$   r?  r7   r(   rj  r<   r<   r=   Útest_otypesr  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 �sV0    Y  ttƒ� t d¡ W d   ƒ n1 �sŠ0    Y  ttƒ� t d¡ W d   ƒ n1 �s¾0    Y  d S )Nz(x)->()r–  r<   z	(x,y)->()r'  z(x),(y)->()rD  z(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r<   )rc   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_signaturex  sP    

ÿ
ÿ

ÿ
ÿ
ÿ

ÿ
ÿ

ÿ
ÿÿþ
*
*
z)TestVectorize.test_parse_gufunc_signaturec                 C   s8   dd„ }t |dd�}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   s   | |kr| | S | | S d S r5   r<   r+  r<   r<   r=   r,  ›  s    z8TestVectorize.test_signature_simple.<locals>.addsubtractz	(),()->()©Ú	signaturer-  r.  r/  r0  r1  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 r5   ©rÁ   r  r<   r<   r=   rÁ   ¦  s    z4TestVectorize.test_signature_mean_last.<locals>.meanz(n)->()rp  rL   rT   rJ   rH   r0  )rb   rÁ   rà  r>  r<   r<   r=   Útest_signature_mean_last¥  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 r5   rs  r  r<   r<   r=   Úcenter®  s    z3TestVectorize.test_signature_center.<locals>.centerú(n)->(n)rp  rL   rT   rJ   rH   r[   r0  )rb   ru  rà  r>  r<   r<   r=   Útest_signature_center­  s    z#TestVectorize.test_signature_centerc                 C   s^   t dd„ dd�}|g d¢ƒ}tt|tƒo2t|ƒdkƒ t|d g d¢ƒ t|d g d¢ƒ d S )	Nc                 S   s   | | fS r5   r<   r–  r<   r<   r=   r  ¶  r  z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>ú	()->(),()rp  r�   rJ   r   rL   )r$   r&   rC  rû  r  r(   ©rb   rà  r>  r<   r<   r=   Útest_signature_two_outputsµ  s
    z(TestVectorize.test_signature_two_outputsc                 C   sê   t tjdd�}|ddgg d¢ƒ}t|g d¢g d¢gƒ |ddgggg d¢ƒ}t|g d¢g d¢gggƒ |ddgddggg d¢ƒ}t|g d¢g d¢gg d¢g d¢ggƒ |ddgg d¢g d¢gƒ}t|g d¢g d¢gg d¢g d¢ggƒ d S )	Nz(a),(b)->(a,b)rp  rL   rJ   r�   r  r   rœ   )r$   r6   r9   r(   ry  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   s   | d d… S ©Nr[   r<   r–  r<   r<   r=   r  Í  r  z<TestVectorize.test_signature_computed_size.<locals>.<lambda>z(n)->(m)rp  r�   rL   rJ   rÕ   rT   r0  ry  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 )NrL   c                 S   s   | | S r5   r<   r+  r<   r<   r=   rH  Ö  s    z2TestVectorize.test_signature_excluded.<locals>.fooú()->()r   )rq  rU  r�   rÕ   r   rO  )rL   r0  r]  r<   r<   r=   Útest_signature_excludedÔ  s    
z%TestVectorize.test_signature_excludedc                 C   sD   t dd„ ddgd�}|g d¢ƒ}t|jt d¡ƒ t|g d¢ƒ d S )Nc                 S   s   | S r5   r<   r–  r<   r<   r=   r  Þ  r  z5TestVectorize.test_signature_otypes.<locals>.<lambda>rv  rÜ   ©rq  r?  r�   )r$   r'   r¨   r6   r(   ry  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:0    Y  ttdƒ� |ddƒ W d   ƒ n1 sn0    Y  ttdƒ�" |ddgg d¢ƒ W d   ƒ n1 sª0    Y  t tjd	d�}ttdƒ� |ddƒ W d   ƒ n1 sì0    Y  d S )
Nz(n),(n)->(n)rp  zwrong number of positionalrL   rJ   zdoes not have enough dimensionsú$inconsistent size for core dimensionr�   r~  )r$   Úoperatorr8   r/   rÙ   r_   rY  r<   r<   r=   Útest_signature_invalid_inputsã  s    *ÿ(ÿ0z+TestVectorize.test_signature_invalid_inputsc                 C   sÒ   t dd„ dd�}ttdƒ� |g d¢ƒ W d   ƒ n1 s<0    Y  t dd„ dd�}ttd	ƒ� |d
ƒ W d   ƒ n1 s~0    Y  t dd„ dd�}ttd	ƒ� |d
dgƒ W d   ƒ n1 sÄ0    Y  d S )Nc                 S   s   | d d… S r|  r<   r–  r<   r<   r=   r  ô  r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>rv  rp  r‚  r�   c                 S   s   | S r5   r<   r–  r<   r<   r=   r  ù  r  rx  zwrong number of outputsrL   c                 S   s   | | fS r5   r<   r–  r<   r<   r=   r  ý  r  r~  rJ   )r$   r/   r_   rY  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 sH0    Y  d|_t||ƒ|ƒ t jdd„ d	d
�}ttdƒ� ||ƒ W d   ƒ n1 s 0    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   ƒ n1 �sP0    Y  d S )Nc                 S   s   | S r5   r<   r–  r<   r<   r=   r    r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>r   rU   r«   r?  r‹   c                 S   s   | S r5   r<   r–  r<   r<   r=   r    r  r~  rp  c                 S   s   | S r5   r<   r–  r<   r<   r=   r    r  r€  c                 S   s   | S r5   r<   r–  r<   r<   r=   r    r  rv  c                 S   s   | S r5   r<   r–  r<   r<   r=   r    r  c                 S   s   | gS r5   r<   r–  r<   r<   r=   r    r  z()->(n)znew output dimensions)	r6   r$   r?   Úintr/   r_   r?  r(   rì   rj  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                   @   s   e Zd ZdS )z/TestVectorize.test_subclasses.<locals>.subclassNrï   r<   r<   r<   r=   rð     s   rð   )r¾   rÀ   rÀ   r0  )rÀ   r¾   rÀ   r½   )rÅ   rÆ   rÒ   rè   z(m,m),(m)->(m)rp  )r¾   r¿   r¼   )rÅ   rÒ   rÆ   )ré   rê   rÃ   c                 S   s   | | S r5   r<   r'  r<   r<   r=   r  +  r  z/TestVectorize.test_subclasses.<locals>.<lambda>)r6   rñ   r„   rò   r$   Úmatmulr'   ró   )rb   rð   r  rÃ  Zmatvecr>  Zmultr<   r<   r=   rô     s     
þþ"

zTestVectorize.test_subclassesc                 C   s    t jdd„ ƒ}|jdksJ ‚d S )Nc                 S   s   | | S r5   r<   r+  r<   r<   r=   re  2  s    z#TestVectorize.test_name.<locals>.f2re  )r6   r$   rs   )rb   re  r<   r<   r=   Ú	test_name0  s    
zTestVectorize.test_namec                 C   s0   t dd„ ƒ}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   s   | |kr| | S | | S d S r5   r<   r+  r<   r<   r=   r,  9  s    z1TestVectorize.test_decorator.<locals>.addsubtractr-  r.  r/  r0  )rb   r,  r>  r<   r<   r=   Útest_decorator8  s    
zTestVectorize.test_decoratorc                 C   s*   t dd„ ƒ}tjjdk r&|jdks&J ‚d S )Nc                 S   s   | S )Ú	Docstringr<   r–  r<   r<   r=   rà  D  s    z'TestVectorize.test_docstring.<locals>.frJ   r‹  )r$   Úsysr¶   Úoptimizer`  rY  r<   r<   r=   Útest_docstringC  s    
zTestVectorize.test_docstringc                 C   s0   dd„ }t |dƒ}t |¡}|dƒdks,J ‚d S )Nc                 S   s   | | S r5   r<   r'  r<   r<   r=   rH  M  s    z'TestVectorize.test_partial.<locals>.foorT   rL   rH   )r   r6   r$   )rb   rH  rI  Zvbarr<   r<   r=   Útest_partialL  s    

zTestVectorize.test_partialc                 C   sT   t ddgd�dd„ ƒ}|g d¢ƒ}t|jt d¡ƒ t|g d¢ƒ |jdksPJ ‚d S )Nrv  rÜ   r€  c                 S   s   | S r5   r<   r–  r<   r<   r=   rà  U  s    z8TestVectorize.test_signature_otypes_decorator.<locals>.fr�   rà  )r$   r'   r¨   r6   r(   rs   ry  r<   r<   r=   Útest_signature_otypes_decoratorT  s    
z-TestVectorize.test_signature_otypes_decoratorc                 C   s8   t tƒ� tjdd�}W d   ƒ n1 s*0    Y  d S )NrT   )Zpyfunc©r+   rÙ   r6   r$   )rb   ÚAr<   r<   r=   Útest_bad_input^  s    
zTestVectorize.test_bad_inputc                 C   s>   t tƒ�" t d¡dd„ ƒ}W d   ƒ n1 s00    Y  d S )NÚstringc                   S   s   dS )NrI  r<   r<   r<   r<   r=   rH  d  s    z+TestVectorize.test_no_keywords.<locals>.foor‘  )rb   rH  r<   r<   r=   Útest_no_keywordsb  s    
zTestVectorize.test_no_keywordsc                 C   s0   t dd„ dgƒ}|dgƒ}t|jt d¡ƒ d S )Nc                 S   s   | S r5   r<   r–  r<   r<   r=   r  l  r  z?TestVectorize.test_positional_regression_9477.<locals>.<lambda>rÜ   rJ   )r$   r'   r¨   r6   ry  r<   r<   r=   Útest_positional_regression_9477h  s    
z-TestVectorize.test_positional_regression_9477c                 C   s:   d}t jg d¢dd�}tt jdd„ d|gd�|ƒ|ƒ d S )Nzdatetime64[ns])z
2024-01-01z
2024-01-02z
2024-01-03r«   c                 S   s   | S r5   r<   r–  r<   r<   r=   r  t  r  z8TestVectorize.test_datetime_conversion.<locals>.<lambda>z(i)->(j)r€  )r6   r„   r(   r$   )rb   Zotyper­   r<   r<   r=   Útest_datetime_conversionp  s    
ÿÿÿÿz&TestVectorize.test_datetime_conversionN)/rs   rt   ru   r2  r3  r4  r9  r<  rB  rC  rF  rI  rJ  rN  rP  rV  rZ  r[  r^  ra  rc  rf  rg  rk  rl  ro  rr  rt  rw  rz  r{  r}  r  r�  r„  r…  r‡  rô   r‰  rŠ  rŽ  r�  r�  r“  r•  r–  r—  r<   r<   r<   r=   r*  Š  sX   

"		
r*  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.ArL  c                 G   s   dS r(  r<   ©rb   r6  r<   r<   r=   Úbound|  s    zTestLeaks.A.boundc                  G   s   dS r(  r<   )r6  r<   r<   r=   Úunbound  s    zTestLeaks.A.unboundN)rs   rt   ru   Úitersrš  Ústaticmethodr›  r<   r<   r<   r=   r’  y  s   r’  úPython lacks refcounts©Úreasonz
name, incrrš  )r›  r   c           	      C   sÀ   dd l }t| j|ƒ}| ¡  z”t |¡}t| jjƒD ]2}|  ¡ }t 	t||ƒdd¡|_
| 
t d¡¡}q4d }tt |¡|| ƒ tdƒD ]}| ¡  qˆtt |¡|ƒ W | ¡  n
| ¡  0 d S )Nr   rL   r°   rU   )Úgcr	  r’  ÚdisablerŒ  Úgetrefcountra   rœ  r6   Z
frompyfuncrà  r7   r'   ZcollectÚenable)	rb   r
  Úincrr¡  ZA_funcÚrefcountr‹   rc   r�  r<   r<   r=   Útest_frompyfunc_leaksƒ  s    

zTestLeaks.test_frompyfunc_leaksN)rs   rt   ru   r’  r×   r  Úskipifr1   r  rœ  r§  r<   r<   r<   r=   r˜  x  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´  rU   rT  rÄ   ©r6   r7   r(   r   ©rb   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 )NrU   r´  r[   rT  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   ©r3   r6   rÖ  rù  r›  r&   r¥   r   )rb   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)rL   rU   rH   r°   rn   rÄ   r   )rL   rU   r°   )rL   rJ   rL   rT   rJ   rT   r   )r   rL   rL   rJ   rJ   rT   r   T)r(   r   )rb   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´  rU   rH   TrÄ   rª  r«  r<   r<   r=   Útest_right_openº  s    zTestDigitize.test_right_openc                 C   s8   t  ddd¡}t  ddd¡}tt||dƒt  d¡ƒ d S )NrU   r´  r[   rH   TrÄ   rª  r«  r<   r<   r=   Útest_right_open_reverse¿  s    z$TestDigitize.test_right_open_reversec                 C   s<   t dƒ}t | ¡ | ¡ d¡}tt t||dƒdk¡ƒ d S )Nr°   Tr¯  r«  r<   r<   r=   Útest_right_open_randomÄ  s    z#TestDigitize.test_right_open_randomc                 C   sÔ   g d¢}g d¢}t t||dƒg d¢ƒ t t||dƒg d¢ƒ g d¢}t t||dƒg d¢ƒ t t||dƒg d	¢ƒ g d
¢}t t||dƒg d¢ƒ t t||dƒg d¢ƒ g d¢}ttt||ƒ g d¢}ttt||ƒ d S )N)r[   r   rL   rJ   r¦   F)r   rJ   rT   rT   T)r   r   rJ   rT   rž   )rT   rJ   r   r   )rT   rT   rJ   r   r¤   )r   r   rH   rH   )r   r   r   rH   r•   )rL   rL   r   rL   )r(   r   r+   r_   r«  r<   r<   r=   Útest_monotonicÉ  s    zTestDigitize.test_monotonicc                 C   s:   g d¢}g d¢}t tt||ƒ || }}t tt||ƒ d S )N)rL   rJ   y      @      ð?r�   )r+   rÙ   r   r«  r<   r<   r=   Útest_casting_errorÙ  s
    
zTestDigitize.test_casting_errorc                 C   sh   G dd„ dt jƒ}t  d¡ |¡}t  dd¡ |¡}ttt||dƒ|ƒ ƒ ttt||dƒ|ƒ ƒ d S )Nc                   @   s   e Zd ZdS )z(TestDigitize.test_return_type.<locals>.ANrï   r<   r<   r<   r=   r’  â  s   r’  rU   rL   rT   FT)r6   rñ   r7   rò   r&   rC  r   )rb   r’  rc   r   r<   r<   r=   rý  à  s
    zTestDigitize.test_return_typec                 C   s&   d}t t ||d |d g¡dƒ d S ©Nl          rL   ©r'   r6   r   rF  r<   r<   r=   Útest_large_integers_increasingé  s    z+TestDigitize.test_large_integers_increasingz9gh-11022: np._core.multiarray._monoticity loses precisionrŸ  c                 C   s&   d}t t ||d |d g¡dƒ d S r¸  r¹  rF  r<   r<   r=   Útest_large_integers_decreasingî  s    z+TestDigitize.test_large_integers_decreasingN)rs   rt   ru   r­  r®  r±  r²  r³  r´  rµ  r¶  r·  rý  rº  r×   r  Zxfailr»  r<   r<   r<   r=   r©  ¡  s   	ÿr©  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
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 )NrL   rJ   r°   r,  )r(   r"   r6   r  r&   r¥   r   r3   r|   r<   r<   r=   r2  ø  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sÌJ ‚d S )NrL   i  éÿ   ©ÚperiodrJ   r°   éè  )r   éK   é–   éá   ræ  )r   rÁ  rÂ  rÃ  ræ  i®  éú   )r   rÁ  rÂ  rÃ  ræ  r~  éŒ   )r¿  Zdiscont)
r(   r"   r&   r6   r¥   r   r3   r„   Úmodr¨   )rb   Z
simple_seqZwrap_seqZ
uneven_seqZwrap_unevenZ
no_discontZ
sm_discontr<   r<   r=   Útest_periodþ  s    &zTestUnwrap.test_periodN)rs   rt   ru   r2  rÇ  r<   r<   r<   r=   r¼  ö  s   r¼  ÚOÚ
AllIntegerÚFloatÚM)r   rL   r°   c                   @   sf   e Zd Zeeddœdd„Zeeddœdd„Zeeddœdd„Zeeddœd	d
„Zeeddœdd„Z	dS )ÚTestFilterwindowsN)r¨   rË  Úreturnc                 C   s¤   t j||d�d }t|ƒ}|dkr*t j}nt  |jt j¡}|j|ksHJ ‚t|t|ƒƒ |dk rpt|t  g ¡ƒ n0|dkrŠt|t  	d¡ƒ nt
t j|dd�ddƒ d S )	Nr«   r<   rÈ  rL   r   rw   ç      @rH   )r6   r„   r   rÜ   rÝ   r¨   r'   r   r(   r`   r)   rÖ   ©rb   r¨   rË  Zscalarrß   Z	ref_dtyper<   r<   r=   Útest_hanning  s    zTestFilterwindows.test_hanningc                 C   s¤   t j||d�d }t|ƒ}|dkr*t j}nt  |jt j¡}|j|ksHJ ‚t|t|ƒƒ |dk rpt|t  g ¡ƒ n0|dkrŠt|t  	d¡ƒ nt
t j|dd�ddƒ d S )	Nr«   r<   rÈ  rL   r   rw   gÃõ(\�Â@rH   )r6   r„   r   rÜ   rÝ   r¨   r'   r   r(   r`   r)   rÖ   rÏ  r<   r<   r=   Útest_hamming,  s    zTestFilterwindows.test_hammingc                 C   s¤   t j||d�d }t|ƒ}|dkr*t j}nt  |jt j¡}|j|ksHJ ‚t|t|ƒƒ |dk rpt|t  g ¡ƒ n0|dkrŠt|t  	d¡ƒ nt
t j|dd�ddƒ d S )	Nr«   r<   rÈ  rL   r   rw   gž^)ËÇ@rH   )r6   r„   r	   rÜ   rÝ   r¨   r'   r   r(   r`   r)   rÖ   rÏ  r<   r<   r=   Útest_bartlettA  s    zTestFilterwindows.test_bartlettc                 C   s¤   t j||d�d }t|ƒ}|dkr*t j}nt  |jt j¡}|j|ksHJ ‚t|t|ƒƒ |dk rpt|t  g ¡ƒ n0|dkrŠt|t  	d¡ƒ nt
t j|dd�ddƒ d S )	Nr«   r<   rÈ  rL   r   rw   g=
×£p=@rH   )r6   r„   r
   rÜ   rÝ   r¨   r'   r   r(   r`   r)   rÖ   rÏ  r<   r<   r=   Útest_blackmanV  s    zTestFilterwindows.test_blackmanc                 C   s¦   t j||d�d }t|dƒ}|dkr,t j}nt  |jt j¡}|j|ksJJ ‚t|t|ƒƒ |dk rrt|t  g ¡ƒ n0|dkrŒt|t  	d¡ƒ nt
t j|dd�ddƒ d S )	Nr«   r<   r   rÈ  rL   rw   r°   r  )r6   r„   r   rÜ   rÝ   r¨   r'   r   r(   r`   r)   rÖ   rÏ  r<   r<   r=   Útest_kaiserk  s    
zTestFilterwindows.test_kaiser)
rs   rt   ru   Ústrr†  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S )ÚTestTrapezoidc                 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Ý  rJ   )rÄ  rL   rp   )r6   r7   r    r”  r  r  r)   )rb   rÍ   r>  r<   r<   r=   r2  ƒ  s    *zTestTrapezoid.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   rL   rT   rJ   rn   rY   r[   rw   )rÍ   rx   )r6   rÖ  Ú	ones_likerÖ   r    r)   )rb   rÍ   rÞ   r  ZwxZwyZwzÚqZqxZqyZqzr>  r<   r<   r=   Ú	test_ndim‰  s8    6




zTestTrapezoid.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 )NrU   rJ   r¡  g      *@)r6   r7   r   r„   r)   r    )rb   rÍ   rÞ   r¢  Zymr>  Zxmr<   r<   r=   rÕ  ®  s    
zTestTrapezoid.test_maskedN)rs   rt   ru   r2  rÚ  rÕ  r<   r<   r<   r=   rÖ  �  s   %rÖ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestSincc                 C   s6   t tdƒdkƒ tt ddd¡ƒ}t|t|ƒdƒ d S )Nr   rL   r[   r,  rp   )r&   r   r6   rÖ  r*   r   ©rb   rß   r<   r<   r=   r2  Á  s    zTestSinc.test_simplec                 C   sF   ddg}t t |¡ƒ}t t|ƒƒ}t t|ƒƒ}t||ƒ t||ƒ d S )Nr   rç   )r   r6   r„   r™  rû  r(   )rb   rÍ   r™   rš   r›   r<   r<   r=   Útest_array_likeÇ  s    
zTestSinc.test_array_likeN)rs   rt   ru   r2  rÝ  r<   r<   r<   r=   rÛ  ¿  s   rÛ  c                   @   s   e Zd Zdd„ ZdS )Ú
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)	rH   rT   rJ   rL   rL   rJ   rT   rH   r   )r   rL   rJ   rT   rH   )rL   rL   rL   rL   rL   rL   )ÚwidgetÚhamrH  rI  rH  rà  )rI  rH  rà  rß  )ù      @      @r  ù      ð?      $@r°   rá  )r  râ  rá  r°   )r6   r„   r&   r¥   r#   rF  r<   r<   r=   r2  Ò  s    "zTestUnique.test_simpleN)rs   rt   ru   r2  r<   r<   r<   r=   rÞ  Ð  s   rÞ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestCheckFinitec                 C   sJ   g d¢}ddt jg}ddt jg}t  |¡ ttt j|ƒ ttt j|ƒ d S )Nr�   rL   rJ   )r6   Úinfr"  Úasarray_chkfiniter+   r_   r‘   r<   r<   r=   r2  Þ  s    
zTestCheckFinite.test_simplec                 C   s.   g d¢}t j|dt jd�}t|jt jkƒ d S )Nr�   r³   )rµ   r¨   )r6   rå  rÜ   r&   r¨   rl   r<   r<   r=   Útest_dtype_orderæ  s    z TestCheckFinite.test_dtype_orderN)rs   rt   ru   r2  ræ  r<   r<   r<   r=   rã  Ü  s   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�   )rL   r   rL   r¾   ç      ð¿)r)   r6   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 rW  )
r   r’  r)   rá  r&   r6   r¥   r×  r  râ  )rb   Ztgt1Ztgt2r<   r<   r=   r2  	  s    
zTestCorrCoef.test_simplec                 C   s°   t ƒ �–}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   ƒ n1 s¢0    Y  d S )Nr3  r[   ©ZddofrT   )r0   r6  Úsimplefilterr.   ÚDeprecationWarningr   r’  Úfilterr)   rá  r  râ  ©rb   Úsupr<   r<   r=   Ú	test_ddof	  s    

zTestCorrCoef.test_ddofc                 C   s|   t ƒ �b}t d¡ ttt| j| jddƒ ttt| jdd� | t¡ t	t| jdd�| j
ƒ W d   ƒ n1 sn0    Y  d S )Nr3  rL   r   )Zbias)r0   r6  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  )r6   r„   r   r,   r&   r¥   r×  )rb   rÍ   r¿  rv  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  )r6   r„   r,   r   ©rb   rÍ   rÞ   r<   r<   r=   Útest_xy,	  s    zTestCorrCoef.test_xyc                 C   s²   t jdd��’ 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   ƒ n1 s¤0    Y  d S ©NTr1  r3  r   rJ   )
r6  r7  rú  ÚRuntimeWarningr(   r   r6   r„   r"  rq   r|   r<   r<   r=   Ú
test_empty1	  s    ÿÿzTestCorrCoef.test_emptyc                 C   s|   ddgddgg}t jdd�� t|ƒ}W d   ƒ n1 s:0    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÷  )r6   Zerrstater   r*   r„   r&   r¥   r×  )rb   rÍ   r’   r<   r<   r=   Útest_extreme:	  s
    &zTestCorrCoef.test_extremeÚ	test_typec                 C   s*   | j  |¡}t||d�}||jks&J ‚d S ©Nr«   )r’  rÚ   r   r¨   )rb   r  Zcast_Ar¿  r<   r<   r=   Útest_corrcoef_dtypeA	  s    z TestCorrCoef.test_corrcoef_dtypeN)rs   rt   ru   r6   r„   r’  r  rá  râ  rø  r2  rÿ  r   r  r  r  r
  r×   r  r  ÚhalfÚsingleÚdoubleÚ
longdoubler  r<   r<   r<   r=   rç  í  sJ   þÿþÿþÿûÿ	
	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   rJ   rL   r¾   r÷  )rÀ   r¾   r¼   )Úndmin)rL   rH   rL   rÀ   r¼   çš™™™™™Ù?gš™™™™™Ù¿rT   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 r5   )r,   r   Úx1rá  r|   r<   r<   r=   rf   U	  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  rT   ©Úaweights)r6   r„   r,   r   r`   )rb   rÍ   r¿  r<   r<   r=   r  X	  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  )r6   r„   r,   r   r  r<   r<   r=   r  ^	  s    zTestCov.test_xyc                 C   s²   t jdd��’ 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   ƒ n1 s¤0    Y  d S r  )
r6  r7  rú  r  r(   r   r6   r„   r"  rq   r|   r<   r<   r=   r  c	  s    ÿÿzTestCov.test_emptyc                 C   sn   t jdd��N t  dt¡ tt| jdd�t tj	tj	 gtj	 tj	gg¡ƒ W d   ƒ n1 s`0    Y  d S )NTr1  r3  rU   rù  )
r6  r7  rú  r  r(   r   r  r6   r„   rä  r|   r<   r<   r=   Útest_wrong_ddofl	  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   Úx3r6   r„   ©rb   rÞ   r<   r<   r=   Útest_1D_rowvars	  s    zTestCov.test_1D_rowvarc                 C   s$   t t| jdd�tj| jdd�ƒ d S )NrL   rù  )r,   r   r  r6   Úvarr|   r<   r<   r=   Útest_1D_variancex	  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ç   ©rJ   rT   r«   rJ   r[   rT   )r,   r   rÔ  ÚfrequenciesÚ
x2_repeatsr  râ  Úunit_frequenciesrá  r+   rÙ   r6   r`   r)  ÚRuntimeErrorr_   )rb   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¿   r  rJ   r÷  rT   )r,   r   r  rË   rã  Úunit_weightsrá  r6   r`   r+   r#  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Ô  r   r%  r!  r  râ  r"  rá  rË   rã  r|   r<   r<   r=   Útest_unit_fweights_and_aweights—	  s<    ÿþÿþÿþÿþÿþÿþz'TestCov.test_unit_fweights_and_aweightsr  c                 C   s*   | j  |¡}t||d�}||jks&J ‚d S r  )r  rÚ   r   r¨   )rb   r  Zcast_x1r¿  r<   r<   r=   Útest_cov_dtype«	  s    zTestCov.test_cov_dtypeN)%rs   rt   ru   r6   r„   rì   r  rá  rÔ  r   r!  râ  r`   r)  r"  rË   rã  r%  r  rf   r  r  r  r  r  r  r$  r&  r'  r×   r  r  r  r  r  r  r(  r<   r<   r<   r=   r  H	  s.   $
	r  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú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?Û�?rU  )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   r6   r„   r'   rA   r(   )rb   r’  rœ  r  Zi0_0r<   r<   r=   r2  ´	  s4    þ
ü
üþzTest_I0.test_simplec                    sV   t  d¡‰ G ‡ fdd„dƒ}tt  |ƒ ¡|ƒs2J ‚t  ˆ ¡}t  |ƒ ¡}t||ƒ d S )NrH   c                       s   e Zd Z” jZdd„ ZdS )z*Test_I0.test_non_array.<locals>.array_likec                 S   s   | S r5   r<   )rb   r­   ÚcontextZreturn_scalarr<   r<   r=   Ú__array_wrap__Ö	  s    z9Test_I0.test_non_array.<locals>.array_like.__array_wrap__N)rs   rt   ru   Z__array_interface__r+  r<   r  r<   r=   Ú
array_likeÓ	  s   r,  )r6   r7   rC  r×  r   r(   )rb   r,  r”  r¿  r<   r  r=   rø  Ð	  s    

zTest_I0.test_non_arrayc                 C   sH   t  ddg¡}tjtdd�� t|ƒ}W d   ƒ n1 s:0    Y  d S )Nr   y      ð?       @z#i0 not supported for complex valuesrÓ   )r6   r„   r×   rØ   rÙ   r   )rb   rc   r¿  r<   r<   r=   r  à	  s    zTest_I0.test_complexN)rs   rt   ru   r2  rø  r  r<   r<   r<   r=   r)  ²	  s   r)  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
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 )
NrL   r¾   r   rJ   ç ˆöoFé?rU   )r.  çÀvT¶=î?r¾   r/  r.  gg›Óù?)çø†„½¦â?ç÷�ñY…Jì?r¾   r1  r0  )r&   r6   Úisfiniter   r)   r„   r|   r<   r<   r=   r2  è	  s    
ÿ
ÿ
ÿ
ÿzTestKaiser.test_simplec                 C   s   t ddƒ d S )NrT   rH   )r   r|   r<   r<   r=   Útest_int_betaõ	  s    zTestKaiser.test_int_betaN)rs   rt   ru   r2  r3  r<   r<   r<   r=   r-  æ	  s   r-  c                   @   sd   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestMeshgridc              	   C   sj   t g d¢g d¢ƒ\}}t|t g d¢g d¢g d¢g d¢g¡ƒ t|t g d¢g d¢g d¢g d¢g¡ƒ d S )Nr�   ©rH   rU   ro   rp   rÈ   )rU   rU   rU   )ro   ro   ro   )rp   rp   rp   ©r   r(   r6   r„   ©rb   ÚXÚYr<   r<   r=   r2  û	  s    ýýzTestMeshgrid.test_simplec                 C   s&   t g d¢ƒ\}t|t g d¢¡ƒ d S )Nr`  r6  )rb   r8  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�   r5  Úij©Zindexingr¤   )rJ   rJ   rJ   rJ   )rT   rT   rT   rT   rn   r
  r   r  ©rT   rH   )rH   rT   rJ   )rT   rH   rJ   Znotvalid)r   r(   r6   r„   r&   rA   r+   r_   )rb   rÍ   rÞ   r8  r9  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�   r5  T©ÚsparserH   rU   ro   rp   r6  r7  r<   r<   r=   Útest_sparse#
  s    zTestMeshgrid.test_sparsec                 C   s   t ttg d¢g d¢dd� d S )Nr�   r5  r<  )r®  )r+   rÙ   r   r|   r<   r<   r=   Útest_invalid_arguments(
  s    ÿz#TestMeshgrid.test_invalid_argumentsc                 C   sÀ   t jddt jd�}t jddt jd�}t  ||¡\}}t|j|jkƒ t|j|jkƒ t j||dd�\}}t|j|jkƒ t|j|jkƒ t j||dd�\}}t|j|jkƒ t|j|jkƒ d S )Nr   r°   r«   rL  T)r±   r@  )r6   r7   rÛ   rÜ   r   r&   r¨   )rb   rÍ   rÞ   r8  r9  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)rA  r±   r   rL   )r6   r„   r   r'   )rb   r8  r9  rÍ   rÞ   r<   r<   r=   Útest_writebackG
  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
  r  z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>rL   ro   )rJ   rL   rT   rH   rU   )r6   r   ra   r'   rA   )rb   rc   r   r’   r$  rm  Zexpected_shaper<   r<   r=   Útest_nd_shapeQ
  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   rL   rJ   rS   rœ   r§   rI   ©r6   r   r'   r‘   r<   r<   r=   Útest_nd_valuesZ
  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   rL   rJ   rS   r<  r=  rœ   r§   rI   rG  r‘   r<   r<   r=   Útest_nd_indexing`
  s    "zTestMeshgrid.test_nd_indexingN)rs   rt   ru   r2  r:  r;  r?  rB  rC  rý  rD  rF  rH  rI  r<   r<   r<   r=   r4  ù	  s   
	r4  c                   @   sT   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 )Ú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   TFrL   c                 S   s   dS r|  r<   r–  r<   r<   r=   r  ~
  r  z+TestPiecewise.test_simple.<locals>.<lambda>r[   z1 or 2 functions are expectedr�   )r   r(   r6   r„   r/   r_   rF  r<   r<   r=   r2  i
  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 )NrL   rJ   TFrT   rH   ©r   r(   rF  r<   r<   r=   Útest_two_conditions†
  s     z!TestPiecewise.test_two_conditionsc                 C   s"   t dg d¢g d¢ƒ}t|dƒ d S )NrT   )TFF)rH   rJ   r   rH   )r   r'   rF  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 )NrL   rJ   TFr   rT   rK  rF  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 )
NrT   rH   r   rU   TFrL   r  r�   )r6   r„   r   r&   r‰   r(   r  r<   r<   r=   rA  —
  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 )
NrT   rH   r   rU   r�   rJ   z2 or 3 functions are expectedrL   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 )NrT   rL   rJ   )r6   r„   r   r'   )rb   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   rJ   r/  )r÷  r÷  r÷  )r¿   r¿   r¾   )r6   r„   r   r(   r  r<   r<   r=   Útest_multidimensional_extrafunc»
  s    
ÿÿz-TestPiecewise.test_multidimensional_extrafuncc                 C   s^   G dd„ dt jƒ}t  d¡ |¡}t||dk |dkgg d¢ƒ}tt|ƒ|ƒ t|g d¢ƒ d S )Nc                   @   s   e Zd ZdS )z/TestPiecewise.test_subclasses.<locals>.subclassNrï   r<   r<   r<   r=   rð   Ã
  s   rð   rÆ   r¼   rH   )r÷  r¾   rÀ   )r÷  r÷  rÀ   rÀ   r¾   )r6   rñ   r7   rò   r   r'   ró   )rb   rð   rÍ   r>  r<   r<   r=   rô   Â
  s
    zTestPiecewise.test_subclassesN)rs   rt   ru   r2  rL  rM  rN  rA  rO  rP  rQ  rô   r<   r<   r<   r=   rJ  g
  s   	rJ  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 )NrH   )r6   Úbincountr7   r(   r`   r  r<   r<   r=   r2  Í
  s    zTestBincount.test_simplec                 C   s,   t  t  g d¢¡¡}t|t  g d¢¡ƒ d S )N)rL   rU   rJ   rH   rL   )r   rJ   rL   r   rL   rL   )r6   rS  r„   r(   r  r<   r<   r=   Útest_simple2Ñ
  s    zTestBincount.test_simple2c                 C   s2   t  d¡}t  g d¢¡}t  ||¡}t||ƒ d S )NrH   )çš™™™™™É?ç333333Ó?rç   rŽ  )r6   r7   r„   rS  r(   ©rb   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©rL   rJ   rH   rU   rJ   ©rU  rV  rç   rŽ  rU  )r   rU  rç   r   rç   rŽ  ©r6   r„   rS  r(   rW  r<   r<   r=   Útest_simple_weight2Û
  s    z TestBincount.test_simple_weight2c                 C   sV   t  g d¢¡}t j|dd�}t|t  g d¢¡ƒ g }t j|dd�}t|t  g ¡ƒ d S )N)r   rL   r   rL   rL   rT   ©Z	minlength)rJ   rT   r   r   r[  r  r<   r<   r=   Útest_with_minlengthá
  s    z TestBincount.test_with_minlengthc                 C   sV   t  g d¢¡}t j|dd�}t|t  g d¢¡ƒ t j|dd�}t|t  g d¢¡ƒ d S )N)r   rL   rL   rJ   rJ   rT   rT   rJ   r]  )rL   rJ   rJ   rJ   r   r[  r  r<   r<   r=   Ú)test_with_minlength_smaller_than_maxvalueé
  s
    z6TestBincount.test_with_minlength_smaller_than_maxvaluec                 C   sB   t  g d¢¡}t  g d¢¡}t  ||d¡}t|t  g d¢¡ƒ d S )NrY  rZ  rn   )r   rU  rç   r   rç   rŽ  r   r   r[  rW  r<   r<   r=   Útest_with_minlength_and_weightsð
  s    z,TestBincount.test_with_minlength_and_weightsc                 C   s&   t jg td�}t  |¡}t||ƒ d S r  )r6   r„   r†  rS  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«   rU   r]  )r6   r„   r†  rS  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                      s   t jˆ dd�S ©NÚfoobarr]  ©r6   rS  r<   r–  r<   r=   r    r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>zmust not be negativec                      s   t jˆ dd�S ©Nr[   r]  rd  r<   r–  r<   r=   r    r  rU   c                      s   t jˆ dd�S rb  rd  r<   r–  r<   r=   r    r  c                      s   t jˆ dd�S re  rd  r<   r–  r<   r=   r    r  )r6   r„   r†  r/   rÙ   r_   r7   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¢¡ qxtt  t tj¡¡|ƒ tt  t tj¡¡|ƒ d S )Nr°   r�   rŽ   )	rŒ  r£  r6   r¨   Zintpr  ra   rS  r'   )rb   Zintp_refcountZdouble_refcountÚjr<   r<   r=   Útest_dtype_reference_leaks  s    z'TestBincount.test_dtype_reference_leaksÚvalsrJ   c                 C   sr   t  |¡}ttƒ� t  |¡ W d   ƒ n1 s20    Y  ttƒ� t  |¡ W d   ƒ n1 sd0    Y  d S r5   )r6   Úasarrayr+   r_   rS  )rb   ri  Zvals_arrr<   r<   r=   Útest_error_not_1d!  s
    

(
zTestBincount.test_error_not_1dN)rs   rt   ru   r2  rT  rX  r\  r^  r_  r`  r  ra  rf  r×   r  r¨  r1   rh  r  rk  r<   r<   r<   r=   rR  Ë
  s   
rR  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   rL   rJ   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   rL   rU   rg   )r6   rÖ  r)   r   ©rb   rÍ   rÞ   Úx0r<   r<   r=   rf   4  s    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 )NrL   r°   r«   r[   r   r¤   ©Úleft)r   rL   rL   rL   rJ   ©Úright)rL   rL   rL   rJ   )rr  rt  )r   rL   rL   rJ   )	ra   r6   r7   r  r`   r„   r   rN  r'   )
rb   Ú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   rL   rU   rV  )r6   rÖ  r)   r   rÛ   rÜ   r"  ro  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©rL   rJ   rÜ  rT   rH   r`  rL   rJ   rH   )r6   rä  r)   r   r"  )rb   rÍ   rv  Úfpr<   r<   r=   Ú test_non_finite_behavior_exact_xn  s    "z+TestInterp.test_non_finite_behavior_exact_xc                 C   s
   t  | ¡S r5   ©r6   rÜ   r–  r<   r<   r=   r  w  r  zTestInterp.<lambda>c                 C   s
   t | dƒS r(  ©rF   r–  r<   r<   r=   r  x  r  c                 C   s
   t d| ƒS r(  r}  r–  r<   r<   r=   r  y  r  c                 C   s   t | t | d¡ƒS )NrR   )rF   r6   Úmultiplyr–  r<   r<   r=   r  z  r  )rC   zcomplex-realzcomplex-imagzcomplex-both)ÚparamsÚidsc                 C   s   |j S )z( scale function used by the below tests )Úparam)rb   Úrequestr<   r<   r=   Úscv  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ç   rL   r   r°   N)r'   r6   r   r"  ©rb   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°   rL   N©r'   r6   r   rä  r"  r„  r<   r<   r=   Útest_non_finite_infŒ  s    ...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ç   rL   r°   r   Nr†  r„  r<   r<   r=   Útest_non_finite_half_inf_xf•  s    .......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°   rL   N©r'   r6   r   rä  r„  r<   r<   r=   Útest_non_finite_half_inf_x   s    ,((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   rL   r°   Nr‰  r„  r<   r<   r=   Útest_non_finite_half_inf_f§  s    ,,,,0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   rL   rU   r  rV  r[   ù       @      @rq  r¼   rs  ry  r`  ù       @      ð?rH   y              à?©iLÿÿÿiVÿÿÿiGÿÿÿé¹   r×  rT  r   im  ©é¾   iBÿÿÿi^  i¢þÿÿ)ù      @      ð?y      $@       @ù      @      @y      @      @)y      @      ø?r’  y     €!@      ü?y      @      ô?r“  y      
@      
@y      @      @y      @      @rm  r¾  )r6   rÖ  r)   r   rä  )	rb   rÍ   rÞ   rp  Zy0rr  rt  rv  rz  r<   r<   r=   Útest_complex_interp°  s*    $zTestInterp.test_complex_interpc                 C   sº   t  ddd¡}t  ddd¡}t  d¡}tt  |||¡|ƒ t  g d¢¡}t  g d¢¡}t  t  d¡||¡}t|dƒ tt|t jƒƒ t jt  d¡||dd	�}t|d
ƒ tt|t jƒƒ d S )Nr   rL   rU   rV  r÷  )rL   r[   rL   rÎ  rH   r¾  rç   )	r6   rÖ  r„   r)   r   r'   r&   rC  rÜ   )rb   rÍ   rÞ   rp  rv  rz  rà   r<   r<   r=   Ú)test_zero_dimensional_interpolation_pointÌ  s    


z4TestInterp.test_zero_dimensional_interpolation_pointc                 C   s2   t  ddd¡}t  |¡}tt  t j||¡dƒ d S )Nr   r°   g-Cëâ6?rÀ   )r6   r7   Úsinr)   r   r  )rb   rv  rz  r<   r<   r=   Útest_if_len_x_is_smallÝ  s    
z!TestInterp.test_if_len_x_is_smallc                 C   s€   g d¢}g d¢}g d¢}g d¢}t tj|||dd�|ƒ tj|dd� d	d
¡}tj|dd� d	d
¡}t tj|||dd�|ƒ d S )NrŽ  r�  )rU   r°   rT   rH   )g      @rÆ   ç     €!@g      @r¿   g      
@ç      @g      @rm  r¾  r³   r´   rJ   r[   r  )r)   r6   r   r„   rq   )rb   rÍ   rv  rz  rÞ   r<   r<   r=   rÇ  â  s    zTestInterp.test_periodN)rs   rt   ru   rn  rf   rw  rx  r{  r×   Zfixturerƒ  r…  r‡  rˆ  rŠ  r‹  r”  r•  r—  rÇ  r<   r<   r<   r=   rl  +  s.   &üû
		rl  c                   @   sp  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
dejd ¡dd„ ƒZdd„ ejd D ƒejejfejejfejejfejejfe d¡ejfg Zej	 
ddgejdfejdfg¡ej	 
ddge¡ej	 
g d¢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 ej	 
d/ejd0fe!ejd1d2�d3fg¡d4d5„ ƒZ"d6d7„ Z#d8d9„ Z$d:d;„ Z%d<d=„ Z&d>d?„ Z'd@dA„ Z(dBdC„ Z)ej	 
dDdEdFdEgg¡ej	j
dGg dH¢dI�dJdK„ ƒƒZ*dLdM„ Z+ej	 
dNg dO¢¡dPdQ„ ƒZ,dRdS„ Z-dTdU„ Z.ej	 
ddVdWg¡ej	 
dXg dY¢¡dZd[„ ƒƒZ/d\S )]ÚTestPercentilec                 C   s¶   t  d¡d }tt  |d¡dƒ tt  |d¡dƒ tt  |d¡dƒ t j|d	< tt  |d¡t jƒ tt j|dd
d�t jƒ tt j|ddd�t jƒ tt j|ddt  |¡d�t jƒ d S )Nrn   rç   r   rÀ   r,  r™  rg   rÂ   rL   Únearest©ÚmethodÚinverted_cdf©r�  rË   )r6   r7   r'   Ú
percentiler"  rØ  rF  r<   r<   r=   rf   ï  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   s   g | ]}t |d ƒ‘qS ©rJ   r   rE  r<   r<   r=   r   ÿ  r  z0TestPercentile.test_fraction.<locals>.<listcomp>rn   r   r,  rp   rJ   rg   rH   )ra   r6   r   r   r'   ró   r„   rñ   )rb   rÍ   rR  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 )NrU   FÚlinearr  )r6   r`   r   )rb   r$  Úor<   r<   r=   Útest_api  s
    

zTestPercentile.test_apic                 C   sj   t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ d S ©N)y      à?      @yÍÌÌÌÌÌ @      à?yš™™™™™ù?ffffff@ÚGr«   rç   ÚDr³   )r6   r„   r+   rÙ   r   ©rb   Zarr_cr<   r<   r=   r    s    zTestPercentile.test_complexc                 C   sF   t  g d¢g d¢g d¢g d¢g d¢g¡}tt j|ddd�g d¢ƒ d S )Nr§   )rH   rH   rT   rg   r   rw   )r6   r„   r(   r   rF  r<   r<   r=   Útest_2D   s    
üzTestPercentile.test_2Dr¨   rÊ  c                 C   sP   t jdt jdddg|d�}t j|ddd�}t j |t j¡ t j |j|j¡ d S )Nr]  ç     €A@ç      D@ç      I@r«   r£  rœ  )r6   rj  r"  r   Útestingr'   r¨   )rb   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<   r|  )rÿ   Zint_typer<   r<   r=   r   3  s   ÿzTestPercentile.<listcomp>rÉ  rÈ  ÚfunctionÚquantiler  r¬  Úinput_dtypeÚexpected_dtype)r�  Úweightedrœ  )
)rž  FrL  )rž  TrL  )Úaveraged_inverted_cdfFç     €;@)Úclosest_observationFrL  )Úinterpolated_inverted_cdfFrL  )ÚhazenFr¶  )ÚweibullFé   )r£  Fr“  )Úmedian_unbiasedFri  )Únormal_unbiasedFg      ;@c                 C   sþ   t  |¡}t  ¡ dkr$t  |t j¡}t jg d¢|d�}|rDt  |¡nd }	|t ju rn|t ju rd|dƒ}t j	j
}
nt j	j}
|||||	d�}|
|| |¡ƒ |dv rÞ|dkrÀt j	 t  |¡jt j¡ qút j	 t  |¡jt  |¡¡ nt j	 t  |¡jt  |¡¡ d S )NÚlegacy)r]  g      4@r«  r¬  r­  r«   z0.4rŸ  )rž  r·  rÈ  )r6   r¨   Z_get_promotion_stateZpromote_typesrÜ   rj  rØ  r  r±  r®  r)   Zassert_array_almost_equal_nulpró   r'   )rb   r°  r±  r�  r´  rœ  r²  r³  r­   rË   Ztest_functionrà   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«   rg   Úlowerrœ  rH   ÚhigherrU   ©r'   r6   r   r7   ©rb   r¨   r<   r<   r=   Útest_lower_highers  s    ÿÿÿÿ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
  rL   rg   rU   rÄ   ç      @rÂ  rÃ  r<   r<   r=   Útest_midpointz  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œ  rU   é1   rH   rÂ  rÃ  r<   r<   r=   Útest_nearest…  s    ÿÿÿÿzTestPercentile.test_nearestc                 C   sL   t j d¡}t  |d¡}t j || ¡ ¡ t  |d¡}t j || ¡ ¡ d S )NrU   r,  r   )r6   rØ  r3   r   r®  r'   r›  rù  )rb   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 )Nrn   rç   )r   r,  rg   )r   r™  rÂ   )r6   r7   r'   r   rF  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æ   rT   rH   )rÆ  rg   r,  )g      @rÇ  rÅ  )rJ   rT   rH   rU   r5  )rn   r
  r°   rÄ   r   rw   )ç      è?rÇ  rT   )rë   rÇ  rp   )r˜  rÇ   rÄ   rL   rm  rU   ro   ©rÆ  rg   r¡  )rÆ  rg   rÁ  ©rT   )rJ   rH   rU   ro   )rJ   rT   rU   ro   rJ   )rJ   rT   rH   ro   )rT   rT   rU   ro   rÁ  rœ  ©rx   r�  )r6   r7   rq   r'   r   r„   rì   rA   )rb   rÍ   Úr0r7  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æ   rT   rH   rg   rÇ  ©rÅ   rÆ   rÒ   ré   r   rw   ©rÇ  rÇ  rÇ   rL   ©r�  ©rx   r�  rÀ  rœ  rÆ   )r�  rx   )r¾   rÆ   rê   r<   r«   ©r�  r�  rU   ©r�  rx   r�  )r6   r7   rq   r'   r   r&   Úisscalarr„   rA   r)   Úemptyr¨   )rb   rÍ   rÑ  r7  r�  Zc0Úc1r’   r<   r<   r=   Útest_scalar_q½  sR    












zTestPercentile.test_scalar_qc                 C   s€   t ttjddgddd� t ttjdgdƒ t ttjdgdƒ t ttjdgttdƒƒdg ƒ t ttjdgttdƒƒd	g ƒ d S )
NrL   rJ   é8   rc  rœ  ée   r[   rg   rŒ  )r+   r_   r6   r   r™  ra   r|   r<   r<   r=   Útest_exceptioní  s    ÿ zTestPercentile.test_exceptionc                 C   s   t t g d¢d¡dƒ d S )Nr�   r   rL   )r'   r6   r   r|   r<   r<   r=   Útest_percentile_listõ  s    z#TestPercentile.test_percentile_listzpercentile, with_weightsFrž  rœ  Tc                 C   sz  |rt nt}t g d¢¡}tjd|d�}d}|r:t |¡nd }|||||d�}||u sZJ ‚t||||d�|ƒ t g d¢g d¢g¡}tjd|d�}|r t |¡nd }|||d||d	�}||u sÂJ ‚t||||dd
�|ƒ tjd|d�}|||d||d	� t||||dd
�|ƒ t d¡ dd¡}|�r>t g d¢g d¢g¡}	nt g d¢g d¢g¡}	tj	d|d�}
|�rrt |¡nd }t||dd|
|d	�|	ƒ t|
|	ƒ t g d¢g d¢g¡}t 	d¡}
ttj
|dd|
d�|ƒ t|
|ƒ t g d¢g d¢g¡}	tj	d|jd�}
tj
|ddd|
d�}t||	ƒ t|
|	ƒ t g d¢g d¢g¡}tj	d|jd�}
tj
|ddd|
d�}t||ƒ t|
|ƒ d S )Nr�   rÏ  r«   )r�  rË   rÐ   rŽ   r¤  r   )rx   r�  rË   rÑ   ©rT   rJ   rL   ræ   rT   rH   ©r   rL   rJ   rT   r5  )r¼   r¿   rÅ   rÆ   rÒ  )rJ   rH   rÎ  )rÍ  rë   r˜  rÓ  r  rÕ  rÀ  r×  )r   rH   rn   )rL   rU   r
  )r†  rN  r6   r„   r?   rØ  r'   r7   rq   rÙ  r   r¨   )rb   r   Zwith_weightsZ	out_dtyperÍ   rÞ   rR  rË   r>  rÑ  r�  r7  r’   r<   r<   r=   Útest_percentile_outø  sV    
ÿÿ





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 )Nrk  rÄ   rL   rJ   rg   r   rw   )rL   rJ   rL   )rÄ   rJ   rL   )rÄ   rL   rL   rT   )rÄ   rL   rJ   r[   rR   rX   r<  rÆ  rÐ  r°   )rJ   rL   rJ   rL   )rJ   rÄ   rJ   rL   )rJ   rÄ   rL   rL   )rJ   rÄ   rL   rJ   )r6   r7   rq   r(   r   rA   r„   ©rb   r$  r<   r<   r=   Útest_percentile_empty_dim2  s>    ÿþÿþÿÿÿÿ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©rJ   rT   rH   rL   rg   F©Úoverwrite_input©r6   r„   r   r'   rl   r<   r<   r=   Útest_percentile_no_overwriteN  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@rU   )ÚnumrÆ  rœ  )r6   rÖ  r   r7   r(   r  )rb   rR  r<   r<   r=   Útest_no_p_overwriteW  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å  rg   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   é   ©ru  r°   rc  r\   rw   r[   r   rk   rL   ri   rÆ  r»  rK   ©r   éƒ  ©rT   rU   rp   rÄ   éZ   ©r   rL   rT   ©rT   rL   r<  rJ   ©rT   rL   rJ   rà  ©rJ   rL   ©rL   rR   ©rL   rT   rO   )r6   rØ  ÚnormalÚdstackr'   r   ÚmoveaxisrŠ   r±   r7   rq   ÚshuffleÚravelÚflatten©rb   r¤  rÍ   r$  r<   r<   r=   Útest_extended_axisg  sJ    ÿÿ&ÿ *ÿ&ÿ&ÿ"ÿ"ÿ"ÿz!TestPercentile.test_extended_axisc                 C   sš   t  d¡}tt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� ttt j|ddd� ttt j|d	dd� ttt j|d
dd� d S )Nrô  rT  rÆ  )rx   rÙ  ©r   rT  rH   ©r   rH   rQ   )r[   r[   )rT   r[   )r6   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ô  rp   TrÉ   r¤   r\   ©rL   rL   rp   rÄ   rz   ©rL   rU   rp   rL   r  ©rT   rL   rp   rÄ   rá  )rÊ   rö  ©rL   rL   rp   rL   rL   )rJ   rL   rL   rp   rL   )rJ   rL   rU   rp   rL   )r6   r`   r'   r   rA   rã  r<   r<   r=   Útest_keepdims’  s:    
ÿÿÿÿÿÿÿÿÿÿzTestPercentile.test_keepdimsrÙ  rp   rL   rx   ©NrL   r  r\   )rX   r[   ©ÚargnamesZ	argvaluesc                    s�   t  d¡‰|d u rdˆj }n*t|ˆjƒ‰ t‡ ‡fdd„tˆjƒD ƒƒ}t  |¡| }t  |¡}t jˆ||d|d�}||u s€J ‚t	|j|ƒ d S )Nrô  r  c                 3   s$   | ]}|ˆ v rd nˆj | V  qdS ©rL   N©rA   rE  ©Z	axis_normr$  r<   r=   r  ·  s   z3TestPercentile.test_keepdims_out.<locals>.<genexpr>T©rx   rÊ   r�  )
r6   r`   r‰   r4   rû  ra   rA   rÙ  r   r'   )rb   rÙ  rx   Ú	shape_outr�  r¦  r<   r  r=   Útest_keepdims_out¦  s    
ÿ
z TestPercentile.test_keepdims_outc                 C   s¾   t  d¡}t  d¡}tt j|dd|d�|ƒ tt j|ddd|d�|ƒ t  d¡}tt j|dd|d�|ƒ tt j|ddd|d�|ƒ t  d	¡}tt j|d
|d�|ƒ tt j|d
d|d�|ƒ d S )N©rH   r>  r   rÔ  r›  rÖ  rÏ  rL   r<   rJ   )r6   r?   r`   r'   r   ©rb   r¤  r$  r<   r<   r=   Útest_outÀ  s    



zTestPercentile.test_outzmethod, weighted))r£  F)r›  F)rž  F)rž  Tc                 C   sì   |rt  d¡|dœ}nd|i}tjdd��® t ddt¡ t  d¡}t  d¡}t j|d	< tt j	|d
d
fd|i|¤Ž|ƒ t  d¡}tt j	|ddfd|i|¤Ž|ƒ t  d¡}tt j	|dfd|i|¤Ž|ƒ W d   ƒ n1 sÞ0    Y  d S )Nr>  ©rË   r�  r�  Tr1  r3  r4  r  rù  r   r�  rÏ  rL   r<   )
r6   r`   r6  r7  r8  r  r?   r"  r'   r   )rb   r�  r´  Úkwargsr¤  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 )Nr;  r«   rJ   rV  r   rw   ç333333ã?rT   rH   r�   ©rL   rL   rJ   r  rj   rL   rû  rP   r›  rœ  )	r6   r7   rN  r"  r'   r   r„   rq   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 s60    Y  t jtdd��$ t g d¢tjg¡ W d   ƒ n1 sx0    Y  t ddd¡}tj|d< t jtdd��  t g d¢|¡ W d   ƒ n1 sÎ0    Y  d S )NzPercentiles must be inrÓ   )rL   rJ   rT   rÅ   r¾   g     ÀX@rf  r   )r×   rØ   r_   r6   r   r"  rÖ  )rb   rÙ  r<   r<   r=   Ú
test_nan_q"  s    02
zTestPercentile.test_nan_qzm8[D]zM8[s]Úpos©r   rð  r°   c                 C   s¼   t jdd|d�}d||< t  |d¡}|j|ks2J ‚t  |¡s@J ‚t  |ddg¡}|j|ks^J ‚t  |¡ ¡ spJ ‚t jdd|d� dd	¡}d||d
f< t j|ddd�}tt  |¡g d¢ƒ d S ©Nr   r;  r«   ZNaTrc  r»  éH   r[   rT   rL   rw   r  )r6   r7   r   r¨   Úisnatr¥   rq   r(   ©rb   r¨   r  rc   r¿  r<   r<   r=   Útest_nat_basic-  s    zTestPercentile.test_nat_basicN)0rs   rt   ru   rf   r¢  r¥  r  rª  r×   r  r  r6   Ú	typecodesr¯  rê  rÛ   rÜ   r  r¨   ZH_F_TYPE_CODESr±  r   r¿  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<   r<   r=   rš  í  sˆ   

ÿ



üþÿÿÿ&



	$0þþ
3	 þ

=rš  )rž  rµ  r·  r¸  r¹  rº  r£  r¼  r½  r›  rÀ  rÁ  rÆ  rž  c                
   @   sä  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dejd ¡dd„ ƒZe
j de¡dd„ ƒZe
j de¡dd„ ƒZejeejejddd�ejddddd�d�d �d!d"„ ƒZd#d$„ Ze
j d%dd&g¡e
j de¡e
j d'g d(¢¡d)d*„ ƒƒƒZe
j d%dd&g¡e
j de¡e
j d'g d(¢¡d+d,„ ƒƒƒZe
j de¡e
j d'g d(¢¡d-d.„ ƒƒZe
j de¡e
j d'g d/¢¡d0d1„ ƒƒZ e
j de¡d2d3„ ƒZ!d4d5„ Z"e
j de#e$eƒe$eƒ ƒ¡d6d7„ ƒZ%d8d9„ Z&d:d;„ Z'd<S )=ÚTestQuantilec                 C   s   ||k| S r5   r<   )rb   rÍ   rÞ   Úalphar<   r<   r=   r  N  s    zTestQuantile.Vc                 C   s*   g d¢}t  |d¡}t jj|ddd� d S )N)rÀ   rU  r  gÍÌÌÌÌÌÜ?g
×£p=
Ç?rL   )Zmaxulp)r6   r±  r®  Zassert_array_max_ulp)rb   rÍ   rc   r<   r<   r=   Útest_max_ulpR  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 )Nrn   rç   r   rÀ   rL   r™  rÂ   )r6   r7   r'   r±  rF  r<   r<   r=   rf   Z  s    zTestQuantile.test_basicc                 C   sl   t  dg¡}t  dd¡}t||d ƒ tt|ƒ|jƒ t  g d¢¡}t  ||¡}t||ƒ t|j|jƒ d S )NTFr   )FTT)r6   r„   r±  r'   ró   r¨   r(   )rb   rc   Ztf_quantZ	quant_resr<   r<   r=   Útest_correct_quantile_value`  s    
z(TestQuantile.test_correct_quantile_valuec                 C   s^  dd„ t dƒD ƒ}t |d¡}t|dƒ tt|ƒtƒ t |d¡}t|tddƒƒ tt|ƒtƒ t |d¡}t|d	ƒ tt|ƒtjƒ t |tddƒ¡}t|tdd
ƒƒ tt|ƒtƒ t |tddƒg¡}t|t tdd
ƒg¡ƒ tt|ƒtjƒ t |tddƒgg¡}t|t tdd
ƒgg¡ƒ tt|ƒtjƒ t 	d¡}tt |tddƒ¡tddƒƒ d S )Nc                 S   s   g | ]}t |d ƒ‘qS r¡  r   rE  r<   r<   r=   r   l  r  z.TestQuantile.test_fraction.<locals>.<listcomp>rn   r   rL   rp   rJ   rç   rÂ   rH   )
ra   r6   r±  r'   ró   r   rÜ   r„   rñ   r7   )rb   rÍ   rÙ  r<   r<   r=   r¢  j  s*    


zTestQuantile.test_fractionc                 C   sj   t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ d S r¦  )r6   r„   r+   rÙ   r±  r©  r<   r<   r=   r  ‰  s    zTestQuantile.test_complexc                 C   sj   t  g d¢¡}| ¡ }t jt  d¡|dd� t||ƒ | ¡ }| ¡ }t jt  d¡|dd� t||ƒ d S )N)r   rÍ  rß  rç   r¾   rê  rÆ  rœ  )r6   r„   r±   r±  r7   r(   r  )rb   Úp0rR  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 )NrL   rJ   r«   rç   r›  rœ  )r6   r±  r„   r¨   )rb   r¨   r¿  r<   r<   r=   Útest_quantile_preserve_int_typež  s    ÿz,TestQuantile.test_quantile_preserve_int_typer�  c                 C   s4   g d¢}t j|ddg|d�}t|t  ddg¡ƒ d S )N)r°   rÄ   ræ   r   rL   )rÙ  r�  r°   ræ   )r6   r±  r'   r„   )rb   r�  r­   r±  r<   r<   r=   Útest_q_zero_one¤  s    zTestQuantile.test_q_zero_onec                 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   rL   rÝ  )r   rL   rL   rJ   rJ   rT   rT   rH   rU   rU   rL   rL   r
  r
  r
  rn   rn   rp   rŽ  rœ  )rÀ   r¾   r¼   r¿   )r6   rÖ  r±  r„   r'   rÚ  )rb   r�  r+  r±  r<   r<   r=   Útest_quantile_monotonic«  s    ÿÿz$TestQuantile.test_quantile_monotonicrT   rÀ  )Ú	min_valueÚ	max_valueFçœu ˆ<ä7þçœu ˆ<ä7~)Úallow_infinityÚ	allow_nanr/  r0  )r¨   rA   Úelements)r­   c                 C   s.   t  ddd¡}t  ||¡}tt  |¡|ƒ d S )Nr   rL   g{®Gáz„?)r6   r7   r±  r'   rÚ  )rb   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)rU  ré   rÅ   )r¿   r¼   r¾   r   rL   rç   )r6   r„   r"  r±  rØ  r'   )rb   rc   rà   r<   r<   r=   Útest_quantile_scalar_nanÃ  s
    z%TestQuantile.test_quantile_scalar_nanrË   Tr(  )rU  rç   çÍÌÌÌÌÌì?c           	   	   C   s  |r|t vrt d¡ tj d¡}d}| |¡}|rD|jdd|d�nd }tj||||d�}|dv rŠt t 	|  
|||¡¡¡d	| ksþJ ‚ntt|| ƒ|| krÆ|sÆttj|  
|||¡|d
�ddd� n8ttj|  
|||¡|d
�dd| t |d| g¡ d� d S )Nú Weights not supported by method.éá  éf   r   r°   ©ÚlowÚhighru  rŸ  )rÁ  rŽ  rÐ   g›+¡†›„=)ZatolrL   )Úmethods_supporting_weightsr×   Úskipr6   rØ  Údefault_rngÚintegersr±  r×  rÁ   r  r†  r,   r   r[  )	rb   rË   r�  r(  Úrngr:   rÞ   rß   rÍ   r<   r<   r=   Ú%test_quantile_identification_equationÊ  s     

(ÿÿz2TestQuantile.test_quantile_identification_equationc           
      C   sž  |r|t vrt d¡ tj d¡}d}| |¡}|rD|jdd|d�nd }tj||||d�}d}	ttj|	| |||d�|	| ƒ ttj|	| |||d�|	| ƒ |r¦d S tj| d	| |d
� }|dk�r.|| t	|| ƒksüt 
|| ¡t	|| ƒd	 k�rt|tj||dd
�ƒ nt|tj||dd
�ƒ �nl|dk�r¾|| t	|| ƒk�rft|tj||dd
�ƒ nVt 
|| ¡t	|| ƒd	 k�r¦t|tj||d	|  dd
�ƒ nt|tj||dd
�ƒ nÜ|dk�rèt|tj||d	|  |d
�ƒ n²|dk�r@|| t	|| ƒk�r(t|tj||d	|  |d
�ƒ nt|tj|||d
�ƒ nZ|dk�rbt|tj||dd
�ƒ n8|dk�r„t|tj||dd
�ƒ nt|tj|||d
�ƒ d S )Nr9  r:  r;  r   r°   r<  rŸ  g      +@rL   rœ  rž  rÁ  rÀ  r·  r¸  r›  )r?  r×   r@  r6   rØ  rA  rB  r±  r,   r†  Úround)
rb   rË   r�  r(  rC  r:   rÞ   rß   rÙ  r’   r<   r<   r=   Ú'test_quantile_add_and_multiply_constantï  sV    

ÿÿ
ÿþ
 ÿ
 
 

z4TestQuantile.test_quantile_add_and_multiply_constantc           	      C   s~   t j d¡}d}| |¡}t j|||d�}t  |¡}t j||||d�}t||ƒ dt  |¡ }t j||||d�}t||ƒ d S )Nr:  r;  rœ  rŸ  g     @ @)r6   rØ  rA  r±  rØ  r,   )	rb   r�  r(  rC  r:   rÞ   rÙ  rß   Úqwr<   r<   r=   Útest_quantile_constant_weights2  s    


z+TestQuantile.test_quantile_constant_weights)r   rU  rç   r8  rL   c           	      C   sf   t j d¡}d}| |¡}|jdd|t jd�}t j||||d�}t jt  ||¡||d�}t||ƒ d S )Nr:  r;  r   r°   )r=  r>  ru  r¨   rŸ  rœ  )r6   rØ  rA  rB  rn  r±  r=  r,   )	rb   r�  r(  rC  r:   rÞ   rß   rG  rÙ  r<   r<   r=   Ú"test_quantile_with_integer_weightsF  s    
z/TestQuantile.test_quantile_with_integer_weightsc           
   
   C   sê  t j d¡}| d¡}t  | d¡¡}d}t j||||dd�}t jdd�}td	ƒD ]:}td
ƒD ],}	t j||d d …|	f |||d�|||	f< q^qRt||ƒ g d¢}t j||||dd�}t jdd�}td	ƒD ]@}td
ƒD ]2}	t j||d d …|	f |||d�|d d …||	f< qÔqÈt||ƒ ddgddgddgg}t j||||dd�}| d¡}t||ƒ t  | d¡¡}d}t j||||dd�}t jdd�}td	ƒD ]L}td
ƒD ]<}	t j||d d …|	f ||||d d …|	f d�|||	f< �qš�qŽt||ƒ d S )Nr:  )rJ   r°   rT   r°   rç   rL   )rË   r�  rx   r  r  rJ   rT   rŸ  )r   rU  r  r  r�  rL   )ro   rJ   rT   r   rU  r  r  r�  )rT   rJ   rJ   rT   )	r6   rØ  rA  r×  r±  r?   ra   r,   rq   )
rb   r�  rC  rÞ   rß   r(  rÙ  Zq_resr‹   rg  r<   r<   r=   Ú#test_quantile_with_weights_and_axisW  sF    
ÿ
ÿ


$ÿz0TestQuantile.test_quantile_with_weights_and_axisc                 C   sT   ddg}ddg}t jtdd��" tj|d|dd� W d   ƒ n1 sF0    Y  d S )	NrL   rJ   rÝ  zWeights must be non-negativerÓ   rç   rž  r  ©r×   rØ   r_   r6   r±  )rb   rÞ   rß   r<   r<   r=   Ú-test_quantile_weights_raises_negative_weights…  s    z:TestQuantile.test_quantile_weights_raises_negative_weightsc                 C   sX   ddg}ddg}d}t jt|d��" tj|d||d� W d   ƒ n1 sJ0    Y  d S )NrL   rJ   rç   z+Only method 'inverted_cdf' supports weightsrÓ   r  rK  )rb   r�  rÞ   rß   r±  r<   r<   r=   Ú0test_quantile_weights_raises_unsupported_methods‹  s
    z=TestQuantile.test_quantile_weights_raises_unsupported_methodsc                 C   sn   t ddƒt ddƒg}tj|dgdd�}t|t t ddƒ¡ƒ tj|t ddƒgdd�}t|t t ddƒ¡ƒ d S )Nr   rL   r°   rº  rœ  rJ   rL  )r   r6   r±  r'   r„   )rb   r­   r±  r<   r<   r=   Útest_weibull_fraction–  s
    z"TestQuantile.test_weibull_fractionc                 C   sü   d}d}g d¢}t dtj|dd… ||d�ƒ t dtj|dd… ||d�ƒ t dtj|dd	… ||d�ƒ t dtj|dd
… ||d�ƒ t dtj|dd… ||d�ƒ t dtj|dd… ||d�ƒ t dtj|dd… ||d�ƒ t d	tj|||d�ƒ d S )Nr·  rç   )
rL   rJ   rT   rH   rU   ro   rp   rn   r
  r°   rJ   r   rT   rœ  rH   rU   ro   rp   rn   r
  )r'   r6   r±  )rb   r  rÙ  r­   r<   r<   r=   Útest_closest_observation�  s    z%TestQuantile.test_closest_observationN)(rs   rt   ru   r  r)  rf   r*  r¢  r  rì  r×   r  r  r6   r&  r,  Úquantile_methodsr-  r.  Ú
hypothesisÚgivenr   rÜ   ÚstrB  Úfloatsr6  r7  rD  rF  r?  rH  rI  rJ  rL  ÚsortedÚsetrM  rN  rO  r<   r<   r<   r=   r'  K  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   rL   )r4  r3  r/  r0  r1  r2  )Út0Út1rc   r   c                 C   sh   t  |||¡}t  |||¡}||ks,||kr:||ksdJ ‚n*||k ||k krX||ksdJ ‚n||ksdJ ‚d S r5   ©rn  Ú_lerp)rb   rX  rY  rc   r   Zl0Úl1r<   r<   r=   Ú+test_linear_interpolation_formula_monotonic­  s    	z4TestLerp.test_linear_interpolation_formula_monotonic)Útrc   r   c                 C   sV   ||kr.|t  |||¡  kr&|ksRn J ‚n$|t  |||¡  krL|ksRn J ‚d S r5   rZ  )rb   r^  rc   r   r<   r<   r=   Ú)test_linear_interpolation_formula_bounded¿  s    &z2TestLerp.test_linear_interpolation_formula_boundedc                 C   s6   t  ||dd|  ¡}t  ||d| ¡}t||ƒ d S r\  )rn  r[  r,   )rb   r^  rc   r   rr  rt  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s4J ‚d S )NrJ   rU   rU  gÍÌÌÌÌÌ@)r6   r„   rn  r[  )rb   rc   r   r^  r<   r<   r=   Ú+test_linear_interpolation_formula_0d_inputs×  s    


z4TestLerp.test_linear_interpolation_formula_0d_inputsN)rs   rt   ru   rQ  rR  rS  rT  r]  r_  r`  ra  r<   r<   r<   r=   rW  ¬  sJ   ÿÿÿÿú

ÿÿÿü
ÿÿÿü
rW  c                   @   sö   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
dg d¢dejdgejdf¡dd„ ƒZdd„ Zdd„ Zdd„ Zej	jedd�dd„ ƒZdd„ Zdd„ Zd d!„ Zd"d#„ Zej	j
d$g d%¢d&�d'd(„ ƒZej	 
d)d*g¡ej	 
d+g d,¢¡d-d.„ ƒƒZd/S )0Ú
TestMedianc                 C   s>  t  d¡}t  d¡}t  d¡ dd¡}tt  |¡dƒ tt  |¡dƒ tt  |¡dƒ tt j|dd�g d	¢ƒ tt j|dd�dd
gƒ tt j|d d�dƒ t  g d¢¡}t|d |d  d t  |¡ƒ t  g d¢¡}t|d t  |¡ƒ t  g d¢¡}t|d t  |¡ƒ tt  |¡jdƒ t j	|d< tt  |¡jdƒ d S )NrL   rJ   ro   rT   rç   rÜ  r   rw   ©rÇ  rÜ  r™  rH   )çð™6-Â¦?çº¤0”¸§?çºÝË}rÂ?g©Á4¯?r¼   )re  rd  rf  )rd  rf  re  r[   )
r6   r„   r7   rq   r'   Úmedianr,   r)   r‰   r"  )rb   Úa0Úa1ru  rc   r<   r<   r=   rf   à  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 ]B}| ¡ }t j|d d� t|jƒD ]}t j||d� q\t||ƒ q8t	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 )NrJ   rT   r   rL   ro   rp   rH   rU   r,  rÕ   rñ  rw   r™  )r6   r„   rØ  Úrandintr±   rg  ra   r‰   r(   r,   rì   )rb   Úa3rc   Ú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 )NrJ   rT   r   rL   ro   rp   rH   rU   Træ  rç   rÜ  )rç  rx   rc  r»  r«   rS   rw   )rx   rç  )r6   r„   r7   rq   r,   rg  r±   rì   rÛ   rØ  rÿ  r   )rb   rk  rh  ri  ru  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�   rJ   r   rw   )r)   r6   rg  r,   )rb   rÍ   rÔ  r<   r<   r=   rÝ  )  s
    zTestMedian.test_array_likec                 C   s2   G dd„ dt jƒ}|g d¢ƒ}tt  |¡dƒ d S )Nc                   @   s    e Zd Zddd„Zddd„ZdS )z,TestMedian.test_subclass.<locals>.MySubClassNc                 S   s   t  |¡ | ¡}||_|S r5   )r6   rj  rò   Úinfo)ÚclsZinput_arrayrp  Úobjr<   r<   r=   Ú__new__4  s    z4TestMedian.test_subclass.<locals>.MySubClass.__new__c                 S   s   dS )Néùÿÿÿr<   )rb   rx   r¨   r�  r<   r<   r=   rÁ   9  s    z1TestMedian.test_subclass.<locals>.MySubClass.mean)N)NNN)rs   rt   ru   rs  rÁ   r<   r<   r<   r=   Ú
MySubClass2  s   
ru  r�   rt  )r6   rñ   r'   rg  )rb   ru  rc   r<   r<   r=   rE  0  s    
zTestMedian.test_subclassr­   r½   r¾   r¿   rÀ   c                 C   s:   G dd„ dt jƒ}t  t  |¡ |¡¡}t||ƒs6J ‚dS )z6Check that we return subclasses, even if a NaN scalar.c                   @   s   e Zd ZdS )z-TestMedian.test_subclass2.<locals>.MySubclassNrï   r<   r<   r<   r=   Ú
MySubclassC  s   rv  N)r6   rñ   rg  r„   rò   rC  )rb   r­   rv  r  r<   r<   r=   Útest_subclass2?  s    zTestMedian.test_subclass2c                 C   sl   t  d¡}t  d¡}tt j|d|d�|ƒ t  d¡}tt j|d|d�|ƒ t  d¡}tt j||d�|ƒ d S )Nr  r>  r   rÔ  rÏ  rL   r<   )r6   r?   r`   r'   rg  r  r<   r<   r=   r  I  s    



zTestMedian.test_outc                 C   s°   t jdd��� 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   ƒ n1 s¢0    Y  d S )NTr1  r3  r4  r  r>  rù  r   rÔ  rÏ  rL   r<   )
r6  r7  r8  r  r6   r?   r`   r"  r'   rg  r  r<   r<   r=   r  R  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 )Nr;  r«   rJ   r   rw   rT   rH   r�   r  r  rj   rL   rû  rP   )r6   r7   rN  r"  r'   rg  rq   r‰   r~   r<   r<   r=   r  ^  s*    


 

 

 

zTestMedian.test_nan_behaviorzfp errors don't work correctlyrŸ  c                 C   s˜  t jg td�}tjdd��P}t ddt¡ tt  |¡t j	ƒ t
|d jtu ƒ tt|ƒdƒ W d   ƒ n1 sp0    Y  t jg tdd	�}tjdd��B}t ddt¡ tt  |¡t j	ƒ t
|d jtu ƒ W d   ƒ n1 sÞ0    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��D}t ddt¡ tt j|dd
�|ƒ t
|d jtu ƒ W d   ƒ n1 �sŠ0    Y  d S )Nr«   Tr1  r3  r4  r   rJ   rT   )r¨   r  rw   rL   )r6   r„   rN  r6  r7  r8  r  r'   rg  r"  r&   r:  r  )rb   rc   rß   r   r<   r<   r=   r  ~  s&    ,0zTestMedian.test_emptyc                 C   sL   t  d¡}ttt  | t¡¡ƒtƒ t j|d< ttt  | t¡¡ƒtƒ d S )Nré   rJ   )	r6   r7   r&   ró   rg  rÚ   rª   rN  r"  )rb   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   r[   r   rk   rL   ri   rK   rò  )r[   ró  rô  rö  r÷  rJ   rø  rà  rù  rú  rû  rO   )r6   rØ  rü  rý  r'   rg  rþ  rŠ   r±   r7   rq   rÿ  r   r  r  r<   r<   r=   r  ¢  sB    $ÿ$ÿ$ÿ$ÿ ÿ ÿ ÿzTestMedian.test_extended_axisc                 C   sh   t  d¡}ttt j|dd� ttt j|dd� ttt j|dd� ttt j|dd� ttt j|dd� d S )Nrô  rT  rw   r  rH   r  rQ   )r6   r`   r+   r%   rg  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
  )r6   r`   r'   rg  rA   rã  r<   r<   r=   r  È  s&    
ÿÿÿÿÿÿzTestMedian.test_keepdimsrx   r  r  c                    s€   t  d¡‰|d u rdˆj }n*t|ˆjƒ‰ t‡ ‡fdd„tˆjƒD ƒƒ}t  |¡}t jˆ|d|d�}||u spJ ‚t|j	|ƒ d S )Nrô  r  c                 3   s$   | ]}|ˆ v rd nˆj | V  qdS r  r  rE  r  r<   r=   r  ç  s   z/TestMedian.test_keepdims_out.<locals>.<genexpr>Tr  )
r6   r`   r‰   r4   rû  ra   rÙ  rg  r'   rA   )rb   rx   r  r�  r¦  r<   r  r=   r  ×  s    
ÿ
zTestMedian.test_keepdims_outr¨   zm8[s]r  r   c                 C   s¸   t jdd|d�}d||< t  |¡}|j|ks0J ‚t  |¡s>J ‚t  |ddg¡}|j|ks\J ‚t  |¡ ¡ snJ ‚t jdd|d� dd	¡}d||d
f< t j|dd�}tt  |¡g d¢ƒ d S r!  )	r6   r7   rg  r¨   r#  r   r¥   rq   r(   r$  r<   r<   r=   Útest_nat_behaviorî  s    
zTestMedian.test_nat_behaviorN)rs   rt   ru   rf   rn  ro  rÝ  rE  r×   r  r  r6   r"  rw  r  r  r  r¨  r2   r  rx  r  r  r  r  ry  r<   r<   r<   r=   rb  Þ  s4   !ÿ
	 
þ

rb  c                   @   s.   e Zd Zej dg d¢¡dd„ ƒZdd„ ZdS )ÚTestSortComplexztype_in, type_out))Úlr¨  )Úhr³   )ÚHr³   )r   r³   )r  r³   )rð  r§  c                 C   sH   t jg d¢|d�}t  |¡}t  |¡ |¡}t||ƒ t|j|jƒ d S )N)rU   rT   ro   rJ   rL   r«   )r6   r„   Úsort_complexrÚ  rÚ   r'   r¨   )rb   Ztype_inZtype_outrc   rà   rœ  r<   r<   r=   Útest_sort_real  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�  r¨  r«   )r  r€  r�  rŒ  )r6   r„   r~  r'   r¨   )rb   rc   rœ  rà   r<   r<   r=   Útest_sort_complex  s
    

z!TestSortComplex.test_sort_complexN)rs   rt   ru   r×   r  r  r  r�  r<   r<   r<   r=   rz    s   
rz  )r¾   )r¾   rÀ   )}rƒ  r6  rŒ  rý   Ú	fractionsr   r%  r×   rQ  Zhypothesis.extra.numpyr   Zhypothesis.strategiesÚ
strategiesrS  Ú	functoolsr   Únumpyr6   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   Znumpy.exceptionsr%   Znumpy.testingr&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   Znumpy.lib._function_base_implÚlibZ_function_base_implrn  Znumpy.randomr3   Znumpy._core.numericr4   r>   rF   rG   rv   r”   r£   r  r  r®   r¯   r»   r  r.  rR  rZ  r\  r^  rw  r„  rˆ  rª  rÁ  rþ  r  r  r(  r)  r*  r˜  r©  r¼  r&  rÌ  rÖ  rÛ  rÞ  rã  rç  r  r)  r-  r4  rJ  rR  rl  rš  rP  r?  r'  rW  rb  rz  r<   r<   r<   r=   Ú<module>   s®   „<Dg
# <>o u  A)

   q)Uÿl>[j4nd` C    X  c2  &