o
    z¨Êh»‹ ã                   @   s>  d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlmZ d dl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[d.d/„ Z\G d0d1„ d1ƒZ]G d2d3„ d3ƒZ^G d4d5„ d5ƒZ_G d6d7„ d7ƒZ`G d8d9„ d9ƒZaG d:d;„ d;ƒZbdud=d>„Zcdvd@dA„ZdG dBdC„ dCƒZeG dDdE„ dEƒZfG dFdG„ dGƒZgG dHdI„ dIƒZhejO PddJejidK  ejidL  ¡ejO PdMg dN¢¡G 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 didj„ djƒZwg dk¢ZxdlgZyG dmdn„ dnƒZzG dodp„ dpƒZ{G dqdr„ drƒZ|G dsdt„ dtƒZ}dS )wé    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Úassert_warnsÚassert_raises_regexÚsuppress_warningsÚHAS_REFCOUNTÚIS_WASMÚNOGIL_BUILD)Úrand)Únormalize_axis_tuplec                 C   s   t  | ¡}t j ||¡}|S ©N)ÚnpÚarangeÚaddÚouter)ÚnÚdata© r<   úT/var/www/html/env/lib/python3.10/site-packages/numpy/lib/tests/test_function_base.pyÚget_mat    s   
r>   c                 C   s(   t  t  | |¡jt j¡}| |_||_|S )za
    Like real + 1j * imag, but behaves as expected when imag contains non-finite
    values
    )r6   ÚzerosÚ	broadcastÚshapeÚ
complex128ÚrealÚimag)rC   rD   Úretr<   r<   r=   Ú_make_complex&   s   rF   c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	TestRot90c                 C   s’  t ttt d¡ƒ t ttt d¡dd� t ttt d¡dd� t ttt d¡dd� t ttt d¡dd� g d¢g d	¢g}d
dgddgddgg}g d¢g d¢g}ddgddgdd
gg}g d¢g d	¢g}tdddƒD ]}tt||d�|ƒ qitdddƒD ]}tt||d�|ƒ q{tdddƒD ]}tt||d�|ƒ q�tdddƒD ]}tt||d�|ƒ qŸttt|dd�dd�|ƒ tt|ddd�t|ddd�ƒ d S )Né   ©é   rK   rK   ©r   é   rK   ©Úaxes©rK   rK   ©r   rK   ©rM   rM   )éþÿÿÿrM   ©é   rI   é   rK   rV   rM   r   rU   ©rV   rI   rU   ©rK   rM   r   éýÿÿÿé   )ÚkrS   éÿÿÿÿ©r   rM   ©rM   r   ©r[   rO   )r+   Ú
ValueErrorr   r6   ÚonesÚranger'   )ÚselfÚaÚb1Úb2Úb3Úb4r[   r<   r<   r=   Ú
test_basic2   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   é(   rU   )rk   rj   rU   rQ   rN   ©r   r\   ©rM   rK   ©rS   r\   )r6   ra   r'   r   rA   ©rc   rd   r<   r<   r=   Ú	test_axesR   s   
zTestRot90.test_axesc                 C   sü   t  d¡ d¡}ddgddggddgd	d
ggg}ddgddggd
dgd	dggg}d	dgddggd
dgddggg}d	d
gddggddgddggg}tt|dd�|ƒ tt|dd�|ƒ tt|dd�|ƒ tdd
ƒD ]}tt||dd�t||d dd�ƒ qhd S )Né   rJ   rK   rU   é   é   r   rM   rI   rV   r]   rN   r^   rm   )rK   r   r_   )r6   r7   Úreshaper'   r   rb   )rc   rd   Ú
a_rot90_01Ú
a_rot90_12Ú
a_rot90_20Ú
a_rot90_10r[   r<   r<   r=   Útest_rotation_axesX   sJ   ÿÿþÿÿþÿÿþÿÿþÿÿzTestRot90.test_rotation_axesN)Ú__name__Ú
__module__Ú__qualname__ri   rp   ry   r<   r<   r<   r=   rH   1   s     rH   c                   @   óT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestFlipc                 C   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 )NrI   rM   ©Úaxis©rI   rI   rK   rY   ©r   rU   )r+   r%   r6   Úflipra   ©rc   r<   r<   r=   rp   w   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 )NrI   r\   rM   rL   rT   rX   rW   ©r>   r'   r6   rƒ   ©rc   rd   Úbr<   r<   r=   Útest_basic_lr}   ó   ÿÿzTestFlip.test_basic_lrc                 C   sf   t dƒ}|d d d…d d …f }tt |d¡|ƒ g d¢g d¢g}g d¢g d¢g}tt |d¡|ƒ d S )NrI   r\   r   rL   rT   r…   r†   r<   r<   r=   Útest_basic_ud‡   r‰   zTestFlip.test_basic_udc                 C   sb   t  ddgddggddgddggg¡}t  ddgddggddgddggg¡}tt  |d¡|ƒ d S ©	Nr   rM   rK   rU   rI   rV   rr   rs   ©r6   Úarrayr'   rƒ   r†   r<   r<   r=   Útest_3d_swap_axis0‘   ó   
ÿÿþ
ÿÿþzTestFlip.test_3d_swap_axis0c                 C   sb   t  ddgddggddgddggg¡}t  ddgddggddgddggg¡}tt  |d¡|ƒ d S r‹   rŒ   r†   r<   r<   r=   Útest_3d_swap_axis1ž   r�   zTestFlip.test_3d_swap_axis1c                 C   sb   t  ddgddggddgddggg¡}t  ddgddggddgddggg¡}tt  |d¡|ƒ d S r‹   rŒ   r†   r<   r<   r=   Útest_3d_swap_axis2«   r�   zTestFlip.test_3d_swap_axis2c              	   C   sR   t  d¡ dddd¡}t|jƒD ]}tt  ||¡t  | d|¡¡ |d¡ƒ qd S )Néx   rK   rU   rI   rV   r   )	r6   r7   rt   rb   Úndimr'   rƒ   r   Úswapaxes)rc   rd   Ú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©rM   rK   rU   ©rI   rV   rr   )rr   rV   rI   ©rU   rK   rM   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   rM   rK   rU   rI   rV   rr   rs   r<   r   rQ   rm   rŒ   ©rc   rd   r‡   Úcr<   r<   r=   Útest_multiple_axesÅ   s0   
ÿÿþ
ÿÿþ
ÿÿþzTestFlip.test_multiple_axesN)rz   r{   r|   rp   rˆ   rŠ   rŽ   r�   r‘   r–   rš   r�   r<   r<   r<   r=   r~   u   s    

r~   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚTestAnyc                 C   sH   g d¢}g d¢}g d¢}t t |¡ƒ t t |¡ƒ t t |¡ ƒ d S )N©r   r   rM   r   ©r   r   r   r   )rM   r   rM   r   )r&   r6   Úany©rc   Úy1Úy2Úy3r<   r<   r=   ri   Þ   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   rM   r   ©rM   rM   r   r   r   rM   ©r   rM   rM   )r&   r6   r¢   r(   ©rc   r¤   r<   r<   r=   Útest_ndæ   s   zTestAny.test_ndN©rz   r{   r|   ri   r¬   r<   r<   r<   r=   rŸ   Ü   ó    rŸ   c                   @   rž   )ÚTestAllc                 C   s`   g d¢}g d¢}g d¢}t t |¡ ƒ t t |¡ƒ t t |¡ ƒ t t t |¡ ¡ƒ d S )N)r   rM   rM   r   r¡   ©rM   rM   rM   rM   )r&   r6   Úallr�   r£   r<   r<   r=   ri   ï   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   rM   rª   ©rM   rM   rM   r   r   rM   )r&   r6   r±   r(   r«   r<   r<   r=   r¬   ø   s   zTestAll.test_ndNr­   r<   r<   r<   r=   r¯   í   s    	r¯   Údtype)Úi8Ú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 )NrU   ©r´   )r6   ra   r¢   r´   Úboolr±   )r´   Úarrr<   r<   r=   Útest_any_and_all_result_dtypeÿ   s   r»   c                   @   rG   )ÚTestCopyc                 C   sR   t  ddgddgg¡}t  |¡}t||ƒ d|d< t|d dƒ t|d dƒ d S )NrM   rK   rU   rI   é
   )r   r   )r6   r�   Úcopyr(   r'   )rc   rd   Úa_copyr<   r<   r=   ri     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 )NrM   rK   rU   rI   ÚF©Úorder)r6   r�   r&   ÚflagsÚc_contiguousÚf_contiguousr¾   )rc   rd   Úa_fortr¿   Úa_fort_copyr<   r<   r=   Ú
test_order  s   

zTestCopy.test_orderc                 C   sV   t  d¡}tt  tj|dd�¡ ƒ tt  tj|dd�¡ƒ tt  t |¡¡ ƒ d S )NrV   F)ÚsubokT)r   ra   r&   ÚisMaskedArrayr6   r¾   )rc   Úmxr<   r<   r=   Ú
test_subok!  s   
zTestCopy.test_subokN)rz   r{   r|   ri   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   r   ç       @©ç      ð?rÎ   ç      @)ç        rÒ   rÒ   rÒ   r�   r]   rK   r^   rM   rV   )r6   r�   r&   r   ra   r)   Úmeanr3   )rc   r¤   r¥   r¦   Úy4Úy5r<   r<   r=   ri   +  s   

zTestAverage.test_basicz<x, axis, expected_avg, weights, expected_wavg, expected_wsumr—   NrÎ   )rU   rI   rM   ç      ü?ç       @)rM   rK   rV   )rM   rr   é   r   )rÐ   ç      @r×   rM   rU   )rÐ   ç      @ç      #@©rI   rI   rI   c           
      C   s¶   t j||dd�}|jt  |¡ksJ ‚t||ƒ t j|||dd�}|jt  |¡ks*J ‚t||ƒ t j|||ddd�\}}	|jt  |¡ksEJ ‚t||ƒ |	jt  |¡ksTJ ‚t|	|ƒ d S )NT©r€   Úkeepdims)r€   ÚweightsrÞ   )r€   rß   ÚreturnedrÞ   )r6   r   rA   r(   )
rc   Úxr€   Úexpected_avgrß   Úexpected_wavgÚexpected_wsumÚavgÚwavgÚ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 sxw   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ß   rK   rÐ   r—   r˜   rM   r   ©rß   r€   )rÑ   rÙ   rÚ   r²   rÑ   ç      @z:Axis must be specified when shapes of a and weights differ©Úmatch)r   r   rK   rÚ   rV   ©rK   rU   rI   rU   F)rß   r€   rÞ   )rÎ   rÑ   rÙ   TrÎ   rÙ   )r6   r7   r   Úsumr)   r�   ÚpytestÚraisesÚ	TypeErrorr(   r'   r3   ÚastypeÚfloat32Úfloat64r&   r´   Úresult_typert   )rc   ÚyÚwÚactualÚdesiredr¤   Úw0Úw1Úw2r¦   Úw3rá   r<   r<   r=   Útest_weightsT  sF   

$


þü 
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‰w   Y  tjtdd�� t|d|d� W d   ƒ n1 s§w   Y  t|d|d�}t|d|j	d�}t||ƒ t|d|d�}t
|jdkƒ d S )Né   rK   rU   )rÒ   rÒ   rÐ   ç      à?r  rÒ   rÒ   r  r  rÐ   rÒ   rÒ   r   r]   )r€   rß   ©ç      @r×   ç      "@rM   rm   g      @g     € @rQ   ç      @g      @zHShape of weights must be consistent with shape of a along specified axisrì   rL   r^   )r6   r7   rt   r�   r   r)   rð   rñ   r`   ÚTr&   r“   )rc   r÷   rø   Úsubw0rù   rú   Úsubw1Úsubw2r<   r<   r=   Ú$test_weight_and_input_dims_different„  sB   
ÿ


þüþü
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Î   rM   rÑ   rK   )rß   r€   rà   )rÑ   rÑ   rÑ   r²   rÐ   )r6   r�   r   r'   r(   )rc   r÷   rå   Ú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                   @   ó   e Zd ZdS )z-TestAverage.test_subclasses.<locals>.subclassN©rz   r{   r|   r<   r<   r<   r=   ÚsubclassÉ  ó    r  rM   rK   rU   rI   ré   )r6   Úndarrayr�   Úviewr'   Útyper   )rc   r  rd   rø   r<   r<   r=   Útest_subclassesÈ  s
   zTestAverage.test_subclassesc                 C   sl   g d¢}|D ]-\}}}t jddgddgg|d�}t jddgddgg|d�}tt j||d�jt  |¡ƒ qd S )N))Úi4r  Úf8)r  Úf4r  )r  r  r  )r  r  r  )r  r  r  rM   rK   rU   rI   r¸   ré   )r6   r�   r'   r   r´   )rc   ÚtypsÚatÚwtÚrtrd   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 ©rM   r  )r   Ú_r<   r<   r=   r!  Û  r"  r   ré   )r6   r�   rb   rï   r)   rÓ   r   )rc   rd   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 )NrM   rV   rU   rK   )r6   r�   r   r'   r   ro   r<   r<   r=   Ú test_average_class_without_dtypeß  s   z,TestAverage.test_average_class_without_dtype)rz   r{   r|   ri   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˜   ©rs   rq   é	   )FFF©FTF©FFTr   c                    s<   g }t t|ƒƒD ]‰ |‡ fdd„t||ƒD ƒp|g7 }q|S )Nc                    s    g | ]\}}|ˆ  r|ˆ  ‘qS r<   r<   )r   ÚVÚC©Úmr<   r=   r!  ï  s     z&TestSelect._select.<locals>.<listcomp>)rb   ÚlenÚzip)rc   ÚcondÚvaluesÚdefaultÚoutputr<   r0  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é   ©r6  rU   )ÚchoicesÚ
conditionsr(   r   r8  r'   r2  ©rc   r;  r<  r<   r<   r=   ri   ò  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,  rM   r   rI   rU   ©rI   rU   r   r:  r#  )	r6   r�   r7   rt   r(   r   ra   r'   rA   ©rc   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!    ó    z0TestSelect.test_return_dtype.<locals>.<listcomp>rM   rK   rU   rV   rs   r   )r'   r   r<  r;  r´   r6   rB   rB  r�   ÚnanÚisnan)rc   r;  Údr1  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   rM   )r6   r�   r   r?  r<   r<   r=   Útest_many_arguments  s   zTestSelect.test_many_argumentsN©r   )rz   r{   r|   r6   r�   r;  r<  r8  ri   r@  rH  rJ  rN  rP  r<   r<   r<   r=   r)  ä  s     þþ
		r)  c                   @   s^   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dddg¡dd„ ƒZdS )Ú
TestInsertc                 C   sv  g d¢}t t|ddƒg d¢ƒ t t|ddƒg d¢ƒ t t|g d¢g d¢ƒg d¢ƒ t t|dg d¢ƒg d¢ƒ t t|g d	¢d
ƒg d¢ƒ t t|tdd dƒd
ƒg d¢ƒ t t|g d¢g d¢ƒg d¢ƒ tjddgtjd�}t t|d|d ƒg d¢ƒ t t|g g ƒ|ƒ tjdd��*}t ddt	¡ t t|t dgd ¡d
ƒg d¢ƒ t
|d jt	u ƒ W d   ƒ d S 1 s´w   Y  d S )Nr—   r   rM   )rM   rM   rK   rU   rU   )rM   rK   rU   rM   r³   )rM   rM   rK   rU   rK   rU   )rM   r\   rU   r+  )rM   r+  rK   r+  rU   r+  r\   )r+  rM   r+  rK   r+  rU   ©r\   rM   rU   r*  )rM   rq   rK   rs   rU   r+  r¸   ©rÒ   rÒ   rÐ   T©ÚrecordÚalwaysÚ rI   )rM   r+  r+  r+  r+  rK   rU   )r'   r   Úslicer6   r�   rõ   ÚwarningsÚcatch_warningsÚfilterwarningsÚFutureWarningr&   Úcategory)rc   rd   r‡   rø   r<   r<   r=   ri   $  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³   rJ   r   rM   r°   r   rK   )rM   rM   rK   rM   rU   rI   r—   é   rî   r\   rS   éüÿÿÿ)r'   r   r6   r�   r7   Úrepeatrt   Úconcatenater  r+   r%   )rc   rd   Úrr‡   rœ   r<   r<   r=   Útest_multidim8  sN   
ÿ,ÿþ$"22" ÿ" ÿ&&" ÿ" ÿzTestInsert.test_multidimc                 C   s„   t  d¡}t t¡� t|g ddd� W d   ƒ n1 sw   Y  t t¡� t|g ddd� W d   ƒ d S 1 s;w   Y  d S )NrM   rK   r   r   Únonsense)r6   r�   rð   rñ   r%   r   rò   ro   r<   r<   r=   Útest_0db  s   
ÿ"ÿzTestInsert.test_0dc              	   C   sä   G dd„ dt jƒ}t  d¡ |¡}ttt  |ddg¡|ƒƒ ttt  |g g ¡|ƒƒ ttt  |ddgddg¡|ƒƒ ttt  |tddƒddg¡|ƒƒ ttt  |tdddƒg ¡|ƒƒ t  d¡ |¡}ttt  |ddg¡|ƒƒ d S )	Nc                   @   r  )z*TestInsert.test_subclass.<locals>.SubClassNr  r<   r<   r<   r=   ÚSubClassj  r  rg  r½   r   rM   rK   rS   r\   )	r6   r  r7   r  r&   Ú
isinstancer   rY  r�   ©rc   rg  rd   r<   r<   r=   Útest_subclassi  s    " zTestInsert.test_subclassc                 C   s<   t  g d¢¡}t  g d¢|g d¢¡ t|t  g d¢¡ƒ d S )Nr³   rL   rT   )r6   r�   r   r'   ©rc   rá   r<   r<   r=   Útest_index_array_copiedv  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))rM   rd   )rK   r‡   )rU   rœ   )Úfoor•   )ÚbarÚS1r¸   )rI   rG  r   rK   rU   )r6   r�   r   r(   r´   )rc   rd   Úvalr‡   r<   r<   r=   Útest_structured_array{  s   
ÿ
"z TestInsert.test_structured_arrayc                 C   s–   t  t¡� t g d¢t ddg¡ddg¡ W d   ƒ n1 s w   Y  t  t¡� t g d¢tjg td�g ¡ W d   ƒ d S 1 sDw   Y  d S )NrL   rÐ   rÎ   r½   é   r¸   )rð   rñ   Ú
IndexErrorr6   r   r�   Úfloatr„   r<   r<   r=   Útest_index_floats…  s   "ÿ"ÿzTestInsert.test_index_floatsÚidxrI   r`  c                 C   sL   t jtdd�� t g d¢|gddg¡ W d   ƒ d S 1 sw   Y  d S )Nzout of boundsrì   rL   rU   rI   )rð   rñ   rs  r6   r   )rc   rv  r<   r<   r=   Útest_index_out_of_bounds‹  s   "ÿz#TestInsert.test_index_out_of_boundsN)rz   r{   r|   ri   rd  rf  rj  rl  rq  ru  rð   r'  r(  rw  r<   r<   r<   r=   rR  "  s    *
rR  c                   @   ó   e Zd Zdd„ ZdS )ÚTestAmaxc                 C   ób   g d¢}t t |¡dƒ g d¢g d¢g d¢g}t tj|dd�g d¢ƒ t tj|d	d�g d
¢ƒ d S )N©rU   rI   rV   r½   rY   éûÿÿÿrë   ç      $@©rU   rë   r  ©rI   r}  rÚ   ©rq   rÑ   rÎ   r   r   )r×   r}  r  rM   )r  r}  r×   )r'   r6   Úamaxr†   r<   r<   r=   ri   “  ó   þzTestAmax.test_basicN©rz   r{   r|   ri   r<   r<   r<   r=   ry  ‘  ó    ry  c                   @   rx  )ÚTestAminc                 C   rz  )Nr{  g      Àr~  r  r€  r   r   )rÑ   rÑ   rÎ   rM   )rÑ   rÙ   rÎ   )r'   r6   Úaminr†   r<   r<   r=   ri   Ÿ  r‚  zTestAmin.test_basicNrƒ  r<   r<   r<   r=   r…  �  r„  r…  c                   @   rx  )Ú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 )Nr{  r   r   ç      .@r~  r  r€  )rÚ   r  r  r\   )rë   rë   rë   TrÝ   r]   r×   )r6   r�   r'   Úptpr†   r<   r<   r=   ri   «  s   
þzTestPtp.test_basicNrƒ  r<   r<   r<   r=   r‡  ©  r„  r‡  c                   @   ó*   e Zd Zej dejejg¡dd„ ƒZ	dS )Ú
TestCumsumÚcumsumc              
   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 ]O}t  ||¡}t  ||¡}t  g d¢|¡}t||dd�|ƒ t  g d¢g d¢g d	¢g|¡}t||dd�|ƒ t  g d
¢g d¢g d¢g|¡}t||dd�|ƒ q%d S )N©rM   rK   r½   rØ   rr   rV   rI   ©rM   rK   rU   rI   ©rV   rr   rs   r+  ©r½   rU   rI   rV   )rM   rU   rZ   r_  é   é#   é'   r   r   )rr   rq   r½   rZ   )é   rØ   é   é   )rM   rU   rr   r½   )rV   rØ   r–  é   )r½   rZ   é   é   rM   )r6   rB  rM  Úint16Úuint16Úint32Úuint32rô   rõ   Ú	complex64rB   r�   r(   )rc   rŒ  ÚbaÚba2Úctyperd   Úa2Útgtr<   r<   r=   ri   º  s&   þÿÿñzTestCumsum.test_basicN)
rz   r{   r|   rð   r'  r(  r6   rŒ  Úcumulative_sumri   r<   r<   r<   r=   r‹  ¸  ó    r‹  c                   @   rx  )ÚTestProdc                 C   sÚ   g d¢}g d¢g d¢g d¢g}t jt jt jt jt jt jt jt jfD ]I}t  	||¡}t  	||¡}|dv rCt
tt j|ƒ t
tt j|dƒ q!t|jdd�d	ƒ t|jdd�t  	g d
¢|¡ƒ t|jdd�t  	g d¢|¡ƒ q!d S )Nr�  rŽ  r�  r�  ©Ú1r‡   rM   r   r   é g  ©rj   é$   éT   é´   r\   )r_  éb  éX  )r6   rš  r›  rœ  r�  rô   rõ   rž  rB   r�   r+   ÚArithmeticErrorÚprodr'   r(   )rc   rŸ  r   r¡  rd   r¢  r<   r<   r=   ri   Ò  s$   ÿÿÿõzTestProd.test_basicNrƒ  r<   r<   r<   r=   r¦  Ð  r„  r¦  c                   @   rŠ  )ÚTestCumprodÚcumprodc              	   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 ]a}t  	||¡}t  	||¡}|dv rGt
t||ƒ t
t||dƒ t
t||ƒ q!t||dd�t  	g d	¢|¡ƒ t||d
d�t  	g d¢g d¢g d¢g|¡ƒ t||dd�t  	g d¢g d¢g d¢g|¡ƒ q!d S )Nr�  rŽ  r�  r�  r§  rM   r\   r   )rM   rK   rr  éÜ   i(  iÈ  r©  r   )rV   r   é   r«  rª  )rM   rK   rr   r_  )rV   r‘  éÒ   r®  )r½   r‘  r’   r¯  )r6   rš  r›  rœ  r�  rô   rõ   rž  rB   r�   r+   r°  r(   )rc   r³  rŸ  r   r¡  rd   r¢  r<   r<   r=   ri   æ  sB   ÿ
ÿÿ
þþÿ
þþÿðzTestCumprod.test_basicN)
rz   r{   r|   rð   r'  r(  r6   r³  Úcumulative_prodri   r<   r<   r<   r=   r²  ä  r¥  r²  c                  C   s$  t  d¡ d¡} t  ddgddgddggddgddgdd	ggg¡}tt j| dd
d�|ƒ t  g d¢g d¢gg d¢g d¢gg¡}tt j| dd
d�|ƒ t jdt jd�}t jddgddgddggt jd�}t  dd¡ d¡} t j| d|d
d� t||ƒ t  g d¢¡}tt jt  ddg¡d
d�|ƒ d S )Nrq   rJ   r   rM   rK   rI   rV   r½   r   T)r€   Úinclude_initial)rM   r   r   )rM   rK   rr   )rM   rI   rr  )rM   rr   é*   ©rU   rK   r¸   rr   rP   )r€   Úoutr¸  )rM   rK   rI   )r¸  )	r6   r7   rt   r�   r(   r¤  r·  r?   rõ   )rº   Úexpectedr»  r<   r<   r=   Útest_cumulative_include_initial   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)rM   rI   rr   rs   r   )rU   rK   rM   rV   )r\   r\   rI   r   rV   rK   ©r:   rU   )çš™™™™™ñ?çš™™™™™@rÑ   gš™™™™™É¿çš™™™™™¹¿)rÀ  çš™™™™™é?gš™™™™™	Àçš™™™™™¹?)TTFFr,  T)r6   r�   r(   r   r)   )rc   rá   r»  Úout2Úout3r<   r<   r=   ri     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½   rr  r‘  rM   rK   )r½   é   r‘  r\   )r½   rr  é   r   r   )r+  rr  r‘  rS   rU   r`  gæÇqÇñ?)
r6   r?   ra   r(   r   r+   r%   r�   rõ   r`   )rc   rá   Úexpr<   r<   r=   Ú	test_axis2  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 )Nrr  r½   r‘  rM   r\   rK   r¿  r   r   )r:   r€   )r3   r(   r   )rc   rá   Úout1rÅ  rÆ  Úout4r<   r<   r=   r¬   B  s   4444zTestDiff.test_ndc                    sÄ   t tdƒƒ‰ tttˆ dd� ‡ fdd„tddƒD ƒ}ddgdgg g g}ttˆ dd�ˆ u ƒ tt||ƒdd	�D ])\}\}}tt|ƒt	j
u ƒ t||ƒ t|jt	jƒ tt|ƒtdtˆ ƒ| ƒƒ q6d S )
NrU   r\   r¿  c                    s   g | ]}t ˆ |d �‘qS )r¿  )r   )r   r:   ©rá   r<   r=   r!  P  rD  z#TestDiff.test_n.<locals>.<listcomp>rM   rV   r   ©Ústart)Úlistrb   r+   r`   r   r&   Ú	enumerater3  r  r6   r  r(   r'   r´   rL  r2  Úmax)rc   r7  r¼  r:   r»  r<   rÍ  r=   Útest_nM  s   
üzTestDiff.test_nc                 C   sŒ   t jddt jd�}t jddgdd�t jdgdd�g}| t jg dd�gd ¡ t|dd�D ]\}}t||d	�}t||ƒ t|j	|j	ƒ q-d S )
Nz
1066-10-13z
1066-10-16r¸   rM   útimedelta64[D]r   rU   rÎ  r¿  )
r6   r7   Ú
datetime64r�   ÚextendrÑ  r   r(   r'   r´   )rc   rá   r¼  r:   rÉ  r»  r<   r<   r=   Ú
test_timesY  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 )NrM   rK   rU   rI   rV   rr   rs   rq   r+  r½   FT©Úmaskr¿  )r   r�   r   r(   r;   rÙ  r&   r  )rc   rá   r»  rÆ  r<   r<   r=   rj  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 )NrV   rM   r   )Úprependr\   rr   rI   rK   )r€   rÚ  ©rU   rU   rU   )rÚ  r€   )r6   r7   r(   r   ra   rŒ  rt   r+   r`   r?   r%   ©rc   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 )NrV   r   )Úappend)rM   rM   rM   rM   r`  rK   rI   rM   )r€   rß  r\   rY   rS   rÛ  rU   )rß  r€   )	r6   r7   r   r(   rt   r+   r`   r?   r%   rÜ  r<   r<   r=   Útest_appendŒ  s,   








zTestDiff.test_appendN)rz   r{   r|   ri   rÊ  r¬   rÓ  r×  rj  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 )NrV   rK   rM   )r6   r7   rd   ra  rt   Ú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 )NrM   r   zDelete failed for obj: %r)Úerr_msgr   )r   rd   râ  r(   r   )rc   Ú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)éúÿÿÿrS   r   rM   rK   rI   rV   )rY   r\   rM   rU   )rY  rê  )rc   ÚlimsÚstepsrÏ  ÚstopÚstepÚsr<   r<   r=   Útest_slices¸  s   þÿÿzTestDelete.test_slicesc                 C   sV  |   t ddgddgg¡¡ t t¡� t| jdgƒ W d   ƒ n1 s%w   Y  t t¡� t| jdgƒ W d   ƒ n1 sAw   Y  |   g d¢¡ |   g d¢¡ t t¡� t| jdƒ W d   ƒ n1 sjw   Y  t t¡� t| jd	ƒ W d   ƒ n1 s…w   Y  t t¡� t| jd	gd
 ƒ W d   ƒ d S 1 s¤w   Y  d S )Nr   rM   rK   rO  iœÿÿÿ)r   r\   rK   rK   )TFFTFTFrI   )	rê  r6   r�   rð   rñ   rs  r   rd   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 sw   Y  t t¡� t|g dd� W d   ƒ d S 1 s9w   Y  d S )NrM   r   r   re  )r6   r�   rð   rñ   r%   r   rò   ro   r<   r<   r=   rf  Ú  s   
ÿ"ÿzTestDelete.test_0dc                 C   s–   G dd„ dt jƒ}| j |¡}ttt|dƒ|ƒƒ ttt|g ƒ|ƒƒ ttt|ddgƒ|ƒƒ ttt|tddƒƒ|ƒƒ ttt|tddƒƒ|ƒƒ d S )Nc                   @   r  )z*TestDelete.test_subclass.<locals>.SubClassNr  r<   r<   r<   r=   rg  â  r  rg  r   rM   rK   rS   )r6   r  rd   r  r&   rh  r   rY  ri  r<   r<   r=   rj  á  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½   rK   rV   rÀ   rÁ   é<   rM   r   )	r6   r7   rt   r   rY  r'   rÃ   rÄ   rÅ   )rc   r[   r1  r<   r<   r=   Útest_array_order_preserveë  s   z$TestDelete.test_array_order_preservec                 C   sŽ   t  t¡� t g d¢t ddg¡¡ W d   ƒ n1 sw   Y  t  t¡� t g d¢tjg td�¡ W d   ƒ d S 1 s@w   Y  d S )NrL   rÐ   rÎ   r¸   )rð   rñ   rs  r6   r   r�   rt  r„   r<   r<   r=   ru  õ  s   ÿ"ÿzTestDelete.test_index_floatsÚindexerrM   c                 C   sX   t | jdƒ}t | j|ƒ}t||ƒ t | jddd�}t | jt dg¡dd�}t||ƒ d S )NrM   r   )r   rd   r'   râ  r6   r�   )rc   rö  Ú	a_del_intræ  Únd_a_del_intrç  r<   r<   r=   Útest_single_item_arrayû  s   
z!TestDelete.test_single_item_arrayc                 C   s$  t t d¡t dg¡ƒ}t|t d¡ƒ t d¡}tjdgtd�}tjdgtd�}t ||dd�}t||ƒ t ||dd�}t||d d …d d…f ƒ t t¡� t t d	¡tjdgt	d�ƒ W d   ƒ n1 sgw   Y  t t¡� t t d	¡tjdgd
d�ƒ W d   ƒ d S 1 s‹w   Y  d S )NrM   F)rU   rM   r¸   Tr\   r   r   rK   zm8[ns])
r   r6   ra   r�   r(   r¹   rð   rñ   rs  r·   )rc   Úresrá   Ú
false_maskÚ	true_maskr<   r<   r=   Útest_single_item_array_non_int  s   

ÿ"þz)TestDelete.test_single_item_array_non_intN)rz   r{   r|   rã  rê  rñ  rò  ró  rf  rj  rõ  ru  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 )NrM   rU   rI   rÎ   rÑ   rÒ   rÐ   )r6   r�   r(   r   ©rc   Úvrá   Údxr<   r<   r=   ri      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 )NrV   )rÐ   rÎ   rÚ   r  ç      &@é   rÑ   ç      ø?rK   rM   r   z.*scalars or 1dr\   )
r6   rŒ  ra   r7   rt   r   r�   r.   r`   Ústack)rc   r  Ú	dx_unevenÚf_2dr<   r<   r=   Ú	test_args(  s   
ÿzTestGradient.test_argsc                 C   sÚ   t  d¡ dd¡}t  t  d¡¡}ttt||t  d¡ƒ ttt|dt  d¡ƒ ttt|t  d¡t  d¡ƒ ttt||ƒ ttt||dd� ttt||||ƒ ttt|dddƒ ttt|||dd� ttt|dddd� d S )Nr  rV   rK   rM   r]   r   )	r6   r7   rt   rŒ  ra   r+   r`   r   rò   )rc   r  rá   r<   r<   r=   Útest_badargsA  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¸   )r|  rY   r   é   é=   iŒ  iÛ  rÔ  ©r6   r�   r(   r   r&   r´   ©rc   rá   r  r<   r<   r=   Útest_datetime64Q  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 )NrM   rU   rI   FrØ  r   rV   rK   ©Ú
edge_order)FFTFF)r6   r   r�   r   r'   r  r&   Ú_maskr7   Úmaskedr(   rÙ  )rc   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   rM   r½   rK   rU   rI   rr   rq   r  g¸…ëQ¸ž?T)	r6   ÚlinspaceÚabsr   r&   r±   ÚrandomÚseedÚsort)rc   rá   r  r÷   Ú
analyticalÚ	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 ]r\}}	t|dd|d�}
t|||d|d�}t|||d |d�}t|
|ƒ t||ƒ t|
d |	jƒ t|
d |	ƒ t|dd|d�}
t||d|d�}t	|
j
|j
kƒ t||	jƒ t|dd|d�}
t||d|d�}t	|
j
|j
kƒ t||	ƒ qGd|fd|ffD ]E\}}	t|||d|d�}
t|||d |d�}t|
|ƒ t|
d |	jƒ t|
d |	ƒ t||d|d�}
t|
|	jƒ t||d|d�}
t|
|	ƒ qÂt|||ddd�}
t|||ddd�}t|
d |d ƒ t|
d |d ƒ t|
d |jƒ t|
d |ƒ t|||ddd�}
t|||ddd�}t|
d |d ƒ t|
d |d ƒ t|
d |jƒ t|
d |ƒ d S )N)r   rÎ   rÑ   rÙ   rÚ   rÚ   )rr   rM   r\   rM   )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      Ð¿rK   rÐ   r]   )r€   r  r   r^   )r6   r�   Útilert   r7   r   r(   r)   r  r&   rA   )rc   ÚfÚx_unevenÚx_evenÚfdx_even_ord1Úfdx_even_ord2Úfdx_uneven_ord1Úfdx_uneven_ord2r  Úexp_resÚres1Úres2Úres3r<   r<   r=   Útest_spacing€  sl   
ÿÿ

ÿÿ
zTestGradient.test_spacingc                 C   s<  ddgddgg}t  |¡}t  ddgddgg¡t  ddgddgg¡g}tt|dd	�|d ƒ tt|dd	�|d ƒ tt|d
d	�|d ƒ tt|dd	�|d |d gƒ tt|d d	�|d |d gƒ tt|d d	�t|ƒƒ tt|dddd	�|d d |d d gƒ ttt|dddd	� ttt|dd	� ttt|dd	� d S )NrM   rU   rI   rÎ   rÑ   rÒ   rÐ   r   r   r\   r^   rK   rY   )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)r|  rY   r½   r   r  iA  é,  rÔ  r¸   )rK   rs   rs   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   )rc   Ú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 )NrK   rM   r  rU   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)rV   rI   rU   rK   rM   r¸   r\   ©r6   r�   r   r(   r2  )rc   r7  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 )NrM   rU   r\   r¸   rK   )r6   ÚiinforÒ  r�   r   r(   )rc   r7  Ú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   rK   rI   rS   r8  )rc   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¸   rK   r   r  )r6   r;  ÚminrÒ  r�   r   r(   )rc   r?  Ú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 )NrM   rK   rU   )r6   r   r  Útuple©rc   rú  r<   r<   r=   Útest_return_type  s   zTestGradient.test_return_typeN)rz   r{   r|   ri   r  r	  r  r  r  r-  r.  r2  r5  r6  rð   r'  r(  r6   rM  r›  r�  Úuint64r:  rB  rš  rœ  Úint64r>  rA  rD  rG  r<   r<   r<   r=   rþ    s:    @ÿ
ÿ
ÿ
ÿ
rþ  c                   @   rž   )Ú	TestAnglec                 C   s¸   dt  d¡d dt  d¡ d  dddddd	g}t|ƒ}t  d
¡t  d¡dt jd t jt j d t  d
¡ t jt  d
¡ g}t|dd�}t  |¡d t j }t||dƒ t||dƒ d S )Nù      ð?      @rK   rÎ   rA  rM   r\   ù       €      ð¿ù      ð?      Ày      ð¿      @rÑ   rÐ   r   T)Údegr­  rØ   )r6   Úsqrtr   ÚarctanÚpir�   r*   )rc   rá   r÷   ÚyoÚzÚzor<   r<   r=   ri      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 )NrK  rM   rK   ù      ð?      ð?rÑ   r   rÐ   )
r6   r   r�   rO  r  rP  r   r'   r  rÙ  )rc   rá   r¼  rù   r<   r<   r=   rj  -  s    zTestAngle.test_subclassN)rz   r{   r|   ri   rj  r<   r<   r<   r=   rJ    ó    rJ  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   rM   r   rK   rU   rI   r   c                    s   d}‡ fdd„|D ƒS )N)rd   r‡   rœ   rG  c                 3   s   � | ]}t ˆ |ƒV  qd S r5   )Úgetattr)r   Únamer„   r<   r=   Ú	<genexpr>A  ó   € z'TestTrimZeros.values.<locals>.<genexpr>r<   )rc   Ú
attr_namesr<   r„   r=   r5  ?  s   zTestTrimZeros.valuesc                 C   s6   t jdd… }|  ¡ D ]}t|ƒ}t||| ƒ qd S )NrK   r\   ©r6   Ús_r5  r!   r(   ©rc   Úslcrº   rú  r<   r<   r=   ri   C  s
   þzTestTrimZeros.test_basicc                 C   s:   t jd d… }|  ¡ D ]}t|dd�}t||| ƒ qd S )Nr\   r‡   ©Útrimr]  r_  r<   r<   r=   Útest_leading_skipI  ó
   þzTestTrimZeros.test_leading_skipc                 C   s:   t jdd … }|  ¡ D ]}t|dd�}t||| ƒ qd S )NrK   rÀ   ra  r]  r_  r<   r<   r=   Útest_trailing_skipO  rd  z TestTrimZeros.test_trailing_skipc                 C   sZ   |   ¡ D ]&}tj||jd�}t|dd�}t|ƒdksJ ‚t|dd�}t|ƒdks*J ‚qd S )Nr¸   ÚBra  r   r"  )r5  r6   Ú
zeros_liker´   r!   r2  )rc   Ú_arrrº   r*  r+  r<   r<   r=   Útest_all_zeroU  s   ùzTestTrimZeros.test_all_zeroc                 C   s    t  d¡}t|ƒ}t||ƒ d S rK  )r6   r?   r!   r(   ©rc   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 )NrM   rK   )r6   r^  r!   r(   )rc   rº   r`  rú  r<   r<   r=   Útest_overflowd  s   zTestTrimZeros.test_overflowc                 C   s$   t  g d¢¡}t|ƒ}t||ƒ d S )N)NrM   N)r6   r�   r!   r(   rj  r<   r<   r=   Útest_no_trimo  s   zTestTrimZeros.test_no_trimc                 C   s    t | j ¡ ƒ}t|tƒsJ ‚d S r5   )r!   rd   Útolistrh  rÐ  rF  r<   r<   r=   Útest_list_to_listt  s   zTestTrimZeros.test_list_to_listN)rz   r{   r|   r6   r�   rd   ró   rt  r‡   Úcomplexrœ   r·   rG  r5  ri   rc  re  ri  rk  rð   r'  r(  rl  rm  ro  r<   r<   r<   r=   rW  8  s*    



þþ
rW  c                   @   rG   )Ú
TestExtinsc                 C   s.   t  g d¢¡}t|dk|ƒ}t|g d¢ƒ d S )N)rM   rU   rK   rM   rK   rU   rU   rM   )rU   rK   rK   rU   rU   )r6   r�   r   r(   r†   r<   r<   r=   ri   {  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   rM   )rM   rI   rU   rK   rV   rq   rs   )r   rM   r   rM   r   rM   r   ©rK   rI   rr   )rM   rK   rU   rI   rV   rr   rs   rs   rq   )rM   r   rM   r   rM   r   rM   r+  )rq   rK   r+  rI   rq   rr   r+  z!Cannot insert from an empty arrayc                      s   t ˆ g d¢g ƒS )N)r   r   r   r   r   rM   r   )r   r<   ©rd   r<   r=   Ú<lambda>�  s    z'TestExtins.test_place.<locals>.<lambda>Ú12Ú34Ú9)
r+   rò   r   r6   r�   r(   r?   r7   r.   r`   r„   r<   rs  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(   )rc   rd   rÙ  Úacrœ   r<   r<   r=   Ú	test_both–  s   
zTestExtins.test_bothN)rz   r{   r|   ri   rx  rz  r<   r<   r<   r=   rq  y  s    rq  rÐ   c                 C   s   |t  | ¡ S r5   ©ÚmathÚfloor©rá   r÷   r<   r<   r=   Ú_foo1¢  ó   r  rÒ   c                 C   s   |t  | ¡ | S r5   r{  )rá   r÷   rS  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   ó   | |kr| | S | | S r5   r<   ©rd   r‡   r<   r<   r=   Úaddsubtract­  ó   z.TestVectorize.test_simple.<locals>.addsubtract©r   rU   rr   r+  ©rM   rU   rV   rs   ©rM   rr   rM   rK   ©r$   r(   ©rc   r…  r"  rc  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   rƒ  r5   r<   r„  r<   r<   r=   r…  ¸  r†  z.TestVectorize.test_scalar.<locals>.addsubtractr‡  rV   )rV   rq   rM   rI   rŠ  r‹  r<   r<   r=   Útest_scalar·  s   zTestVectorize.test_scalarc                 C   s0   t  ddd¡}tdd„ ƒ}||ƒ}t||ƒ d S )NrY   rK   i'  c                 S   ó   | S r5   r<   rÍ  r<   r<   r=   rt  Ä  ó    z*TestVectorize.test_large.<locals>.<lambda>)r6   r  r$   r(   )rc   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  rK   )r$   r|  Úcosr6   r�   rQ  r*   )rc   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 )	NrM   c                 S   ó   | | S r5   r<   r„  r<   r<   r=   rm  Ñ  ó   z(TestVectorize.test_keywords.<locals>.foor—   rî   rK   rT   r#  ©r$   r6   r�   r(   ©rc   rm  r"  r’  r“  r”  r<   r<   r=   Útest_keywordsÏ  s   


zTestVectorize.test_keywordsc                 C   s:   t ttgd�}|t d¡dƒ}|t d¡ƒ}t||ƒ d S ©N©ÚotypesrÑ   rÐ   ©r$   r  rt  r6   r7   r(   ©rc   r"  r“  r”  r<   r<   r=   Ú test_keywords_with_otypes_order1Ý  s   z.TestVectorize.test_keywords_with_otypes_order1c                 C   s:   t ttgd�}|t d¡ƒ}|t d¡dƒ}t||ƒ d S r›  rž  rŸ  r<   r<   r=   Ú test_keywords_with_otypes_order2ç  s   z.TestVectorize.test_keywords_with_otypes_order2c                 C   sT   t ttgd�}|t d¡ƒ}|t d¡dd�}|t d¡ƒ}t||ƒ t||ƒ d S )Nrœ  rÑ   rÐ   ©r÷   rž  ©rc   r"  r“  r”  Úr3r<   r<   r=   Ú test_keywords_with_otypes_order3ò  s   
z.TestVectorize.test_keywords_with_otypes_order3c                 C   sd   t ttgd�}|ddd�}|ddd�}|dƒ}t|tddd�ƒ t|tddd�ƒ t|tdƒƒ d S )Nrœ  çÍÌÌÌÌÌ$@rO  )rS  r\   r¢  ©r$   r�  rt  r'   r£  r<   r<   r=   Ú+test_keywords_with_otypes_several_kwd_args1þ  s   z9TestVectorize.test_keywords_with_otypes_several_kwd_args1c                 C   sR   t ttgd�}|dddd�}|dddƒ}t|tdddd�ƒ t|tdddƒƒ d S )	Nrœ  rO  r¦  r\   )rS  rá   r÷   rM   rK   rU   r§  rŸ  r<   r<   r=   Ú+test_keywords_with_otypes_several_kwd_args2  s
   z9TestVectorize.test_keywords_with_otypes_several_kwd_args2c                 C   s.   dd l }zt|jƒ W d S  ty   tƒ ‚w rK  )r  r$   Ú	randrangeÚ	ExceptionÚAssertionError)rc   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 )NrM   c                 S   r–  r5   r<   r„  r<   r<   r=   rm  #  r—  z5TestVectorize.test_keywords2_ticket_2100.<locals>.foor—   rs  rî   )r‡   rd   rK   ©r‡   rT   r#  r˜  r™  r<   r<   r=   Útest_keywords2_ticket_2100   s   



z(TestVectorize.test_keywords2_ticket_2100c                 C   sr   dd„ }t j|ddgd�}ddg}t||ddgg d	¢d
�ƒ t||ddgg d	¢d�ƒ t||ddgg d	¢ƒƒ d S )Nc                 S   s0   t |ƒ}| d¡}|r||  | d¡ }|s|S rK  )rÐ  Úpop)rá   ÚpÚ_prú  r<   r<   r=   Ú	mypolyval3  s   
ÿz;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyvalr±  rM   )ÚexcludedrU   rr   r   r—   )rá   r±  )r±  )r6   r$   r(   )rc   r³  ÚvpolyvalÚansr<   r<   r=   Útest_keywords3_ticket_21001  s   z(TestVectorize.test_keywords3_ticket_2100c                 C   s.   t dd„ ƒ}t|ddgddgd�ddgƒ d S )	Nc                  [   s   d}| D ]}|| | 9 }q|S ©NrÐ   r<   )Úkwrú  Ú_kr<   r<   r=   r"  B  s   z3TestVectorize.test_keywords4_ticket_2100.<locals>.frM   rK   rU   rI   r„  rq   rŠ  ©rc   r"  r<   r<   r=   Útest_keywords4_ticket_2100@  s   
"z(TestVectorize.test_keywords4_ticket_2100c                 C   s,   t dd„ ƒ}t|ddgddgƒddgƒ d S )Nc                  W   ó
   t  | ¡S r5   )r6   r±  )r   r<   r<   r=   r"  M  s   
z3TestVectorize.test_keywords5_ticket_2100.<locals>.frM   rK   rU   rI   rq   rŠ  r»  r<   r<   r=   Útest_keywords5_ticket_2100K  s   
 z(TestVectorize.test_keywords5_ticket_2100c                 C   s    dd„ }t |ƒ}t|ƒ dƒ d S )Nc                   S   ó   dS ©NrM   r<   r<   r<   r<   r=   rm  T  ó   z5TestVectorize.test_coverage1_ticket_2100.<locals>.foorM   rŠ  ©rc   rm  r"  r<   r<   r=   Útest_coverage1_ticket_2100S  s   z(TestVectorize.test_coverage1_ticket_2100c                 C   s>   dd„ }t |ƒ}t|j|jƒ d}t ||d�}t|j|ƒ d S )Nc                 S   rŽ  )zOriginal documentationr<   rÍ  r<   r<   r=   rm  [  ó   z3TestVectorize.test_assigning_docstring.<locals>.foozProvided documentation)Údoc)r$   r'   Ú__doc__)rc   rm  r"  rÅ  r<   r<   r=   Útest_assigning_docstringZ  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>.FoorK   c                 S   s
   || j  S r5   r®  ro   r<   r<   r=   rn  k  s   
z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.barN)rz   r{   r|   r‡   rn  r<   r<   r<   r=   ÚFooh  s    rÈ  r+  rK   )r(   r$   rn  r6   r7   )rc   rÈ  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   rŽ  r5   r<   rÍ  r<   r<   r=   rt  u  r�  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>rU   rÄ  c                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  x  r�  )r$   r6   r7   r'   )rc   Úf1Úres1aÚres1bÚf2Úres2bÚ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   rŽ  r5   r<   rÍ  r<   r<   r=   rt  €  r�  z7TestVectorize.test_string_ticket_1892.<locals>.<lambda>Úd0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r6   r$   r'   )rc   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   rM   rK   r<   rÍ  ©Ú_callsr<   r=   r"  ˆ  s   z#TestVectorize.test_cache.<locals>.fTrV   )r$   Úcacher6   r7   r(   r'   r2  ©rc   r"  rá   r<   rÓ  r=   Ú
test_cache„  s   
zTestVectorize.test_cachec                 C   s0   t  dd„ ¡}d|_t  d¡}t||ƒ|ƒ d S )Nc                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  “  r�  z+TestVectorize.test_otypes.<locals>.<lambda>r•   rV   )r6   r$   r�  r7   r(   rÖ  r<   r<   r=   Útest_otypes’  s   
zTestVectorize.test_otypesc                 C   sÈ  t t d¡dgdgfƒ t t d¡dgdgfƒ t t d¡ddgdgfƒ t t d¡dgdgfƒ t t d	¡dgddgfƒ t t d
¡g d¢dgfƒ t t d¡dgdgfƒ t t d¡dgdgfƒ t t d¡ddgdgfƒ t t d¡dgdgfƒ t t d¡dgddgfƒ t t d¡g d¢dgfƒ ttƒ� t d¡ W d   ƒ n1 sªw   Y  ttƒ� t d¡ W d   ƒ n1 sÃw   Y  ttƒ� t d¡ W d   ƒ d S 1 sÝw   Y  d S )Nz(x)->()rÍ  r<   z	(x,y)->()r~  z(x),(y)->()r¢  z(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r<   )rd   r‡   rœ   )rG  )rG  Úez(x )->()z( x , y )->(  )z(x),( y) ->()z(  x)-> (y )  z (x)->( y),( )z*(  ), ( a,  b,c )  ,(  d)   ->   (d  ,  e)z
(x)(y)->()z	(x),(y)->z
((x))->(x))r'   ÚnfbÚ_parse_gufunc_signaturer+   r`   r„   r<   r<   r=   Útest_parse_gufunc_signature˜  sV   

ÿ
ÿ

ÿ
ÿ
ÿ

ÿ
ÿ

ÿ
ÿÿþ
ÿ
ÿ
"ÿz)TestVectorize.test_parse_gufunc_signaturec                 C   s8   dd„ }t |dd�}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   rƒ  r5   r<   r„  r<   r<   r=   r…  »  r†  z8TestVectorize.test_signature_simple.<locals>.addsubtractz	(),()->()©Ú	signaturer‡  rˆ  r‰  rŠ  r‹  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Ó   rs  r<   r<   r=   rÓ   Æ  r—  z4TestVectorize.test_signature_mean_last.<locals>.meanz(n)->()rÝ  rM   rU   rK   rI   rŠ  )rc   rÓ   r"  rc  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   rà  rs  r<   r<   r=   ÚcenterÎ  s   z3TestVectorize.test_signature_center.<locals>.centerú(n)->(n)rÝ  rM   rU   rK   rI   r\   rŠ  )rc   râ  r"  rc  r<   r<   r=   Útest_signature_centerÍ  s   z#TestVectorize.test_signature_centerc                 C   s^   t dd„ dd�}|g d¢ƒ}tt|tƒot|ƒdkƒ t|d g d¢ƒ t|d g d¢ƒ d S )	Nc                 S   ó   | | fS r5   r<   rÍ  r<   r<   r=   rt  Ö  ó    z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>ú	()->(),()rÝ  r—   rK   r   rM   )r$   r&   rh  rE  r2  r(   ©rc   r"  rc  r<   r<   r=   Útest_signature_two_outputsÕ  s
   z(TestVectorize.test_signature_two_outputsc                 C   sê   t tjdd�}|ddgg d¢ƒ}t|g d¢g d¢gƒ |ddgggg d¢ƒ}t|g d¢g d¢gggƒ |ddgddggg d¢ƒ}t|g d¢g d¢gg d¢g d¢ggƒ |ddgg d¢g d¢gƒ}t|g d¢g d¢gg d¢g d¢ggƒ d S )	Nz(a),(b)->(a,b)rÝ  rM   rK   r—   rr  r   r§   )r$   r6   r9   r(   rè  r<   r<   r=   Útest_signature_outerÜ  s   ÿ
ÿz"TestVectorize.test_signature_outerc                 C   sX   t dd„ dd�}|g d¢ƒ}t|ddgƒ |g d¢g d¢gƒ}t|ddgdd	ggƒ d S )
Nc                 S   ó   | d d… S ©Nr\   r<   rÍ  r<   r<   r=   rt  í  ó    z<TestVectorize.test_signature_computed_size.<locals>.<lambda>z(n)->(m)rÝ  r—   rM   rK   rî   rU   rŠ  rè  r<   r<   r=   Útest_signature_computed_sizeì  s
   z*TestVectorize.test_signature_computed_sizec                 C   sN   ddd„}t |ddhd�}t|g d¢ƒg d¢ƒ t|g d¢d	d
�g d¢ƒ d S )NrM   c                 S   r–  r5   r<   r„  r<   r<   r=   rm  ö  r—  z2TestVectorize.test_signature_excluded.<locals>.fooú()->()r‡   )rÞ  r´  r—   rî   r   r®  r#  rŠ  rÂ  r<   r<   r=   Útest_signature_excludedô  s   
z%TestVectorize.test_signature_excludedc                 C   sD   t dd„ ddgd�}|g d¢ƒ}t|jt d¡ƒ t|g d¢ƒ d S )Nc                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  þ  r�  z5TestVectorize.test_signature_otypes.<locals>.<lambda>rã  rõ   ©rÞ  r�  r—   )r$   r'   r´   r6   r(   rè  r<   r<   r=   Útest_signature_otypesý  s   z#TestVectorize.test_signature_otypesc                 C   sü   t tjdd�}ttdƒ� |ddgƒ W d   ƒ n1 sw   Y  ttdƒ� |ddƒ W d   ƒ n1 s7w   Y  ttdƒ� |ddgg d¢ƒ W d   ƒ n1 sUw   Y  t tjd	d�}ttdƒ� |ddƒ W d   ƒ d S 1 sww   Y  d S )
Nz(n),(n)->(n)rÝ  zwrong number of positionalrM   rK   zdoes not have enough dimensionsú$inconsistent size for core dimensionr—   rï  )r$   Úoperatorr8   r.   rò   r`   r»  r<   r<   r=   Útest_signature_invalid_inputs  s$   ÿÿþÿþ"ÿz+TestVectorize.test_signature_invalid_inputsc                 C   sÔ   t dd„ dd�}ttdƒ� |g d¢ƒ W d   ƒ n1 sw   Y  t dd„ dd�}ttd	ƒ� |d
ƒ W d   ƒ n1 s?w   Y  t dd„ dd�}ttd	ƒ� |d
dgƒ W d   ƒ d S 1 scw   Y  d S )Nc                 S   rë  rì  r<   rÍ  r<   r<   r=   rt    rí  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>rã  rÝ  ró  r—   c                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt    r�  rç  zwrong number of outputsrM   c                 S   rå  r5   r<   rÍ  r<   r<   r=   rt    ræ  rï  rK   )r$   r.   r`   r»  r<   r<   r=   Útest_signature_invalid_outputs  s   ÿþ
ÿ"ÿz,TestVectorize.test_signature_invalid_outputsc                 C   s^  t  dd„ ¡}t jddgtd�}ttdƒ� ||ƒ W d   ƒ n1 s$w   Y  d|_t||ƒ|ƒ t jdd„ d	d
�}ttdƒ� ||ƒ W d   ƒ n1 sPw   Y  t jdd„ d	dd�}t||ƒ|ƒ t jdd„ ddd�}t||ƒ|ƒ t jdd„ dd
�}t||jƒ|jƒ t jdd„ ddd�}ttdƒ� ||ƒ W d   ƒ d S 1 s¨w   Y  d S )Nc                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  #  r�  z5TestVectorize.test_size_zero_output.<locals>.<lambda>r   rV   r¸   r�  r•   c                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  +  r�  rï  rÝ  c                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  /  r�  rñ  c                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  2  r�  rã  c                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  5  r�  c                 S   s   | gS r5   r<   rÍ  r<   r<   r=   rt  8  s    z()->(n)znew output dimensions)	r6   r$   r?   Úintr.   r`   r�  r(   r  rÖ  r<   r<   r=   Útest_size_zero_output!  s*   
ÿ
ÿ
"ÿz#TestVectorize.test_size_zero_outputc                 C   sÒ   G dd„ dt jƒ}t  g d¢g d¢g d¢g¡ |¡}t  g d¢g d¢g d¢g¡ |¡}t jt jd	d
�}|||ƒ}tt|ƒ|ƒ t|g d¢g d¢g d¢gƒ t  dd„ ¡}|||ƒ}tt|ƒ|ƒ t||| ƒ d S )Nc                   @   r  )z/TestVectorize.test_subclasses.<locals>.subclassNr  r<   r<   r<   r=   r  =  r  r  )rÐ   rÒ   rÒ   rT  )rÒ   rÐ   rÒ   rÏ   )rÙ   rÚ   rë   r  z(m,m),(m)->(m)rÝ  )rÐ   rÑ   rÎ   )rÙ   rë   rÚ   )r  r  r×   c                 S   s   | | S r5   r<   r~  r<   r<   r=   rt  K  ræ  z/TestVectorize.test_subclasses.<locals>.<lambda>)r6   r  r�   r  r$   Úmatmulr'   r  )rc   r  r1  r   Úmatvecrc  Úmultr<   r<   r=   r  <  s    
þþ"

zTestVectorize.test_subclassesc                 C   s    t jdd„ ƒ}|jdksJ ‚d S )Nc                 S   r–  r5   r<   r„  r<   r<   r=   rÍ  R  s   z#TestVectorize.test_name.<locals>.f2rÍ  )r6   r$   rz   )rc   rÍ  r<   r<   r=   Ú	test_nameP  s   
zTestVectorize.test_namec                 C   s0   t dd„ ƒ}|g d¢g d¢ƒ}t|g d¢ƒ d S )Nc                 S   rƒ  r5   r<   r„  r<   r<   r=   r…  Y  s   z1TestVectorize.test_decorator.<locals>.addsubtractr‡  rˆ  r‰  rŠ  )rc   r…  rc  r<   r<   r=   Útest_decoratorX  s   
zTestVectorize.test_decoratorc                 C   s.   t dd„ ƒ}tjjdk r|jdksJ ‚d S d S )Nc                 S   rŽ  )Ú	Docstringr<   rÍ  r<   r<   r=   r"  d  s   z'TestVectorize.test_docstring.<locals>.frK   rþ  )r$   ÚsysrÃ   ÚoptimizerÆ  r»  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   r–  r5   r<   r~  r<   r<   r=   rm  m  r—  z'TestVectorize.test_partial.<locals>.foorU   rM   rI   )r   r6   r$   )rc   rm  rn  Ú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s(J ‚d S )Nrã  rõ   rñ  c                 S   rŽ  r5   r<   rÍ  r<   r<   r=   r"  u  rÄ  z8TestVectorize.test_signature_otypes_decorator.<locals>.fr—   r"  )r$   r'   r´   r6   r(   rz   rè  r<   r<   r=   Útest_signature_otypes_decoratort  s   
z-TestVectorize.test_signature_otypes_decoratorc                 C   s:   t tƒ� tjdd�}W d   ƒ d S 1 sw   Y  d S )NrU   )Úpyfunc©r+   rò   r6   r$   )rc   ÚAr<   r<   r=   Útest_bad_input~  s   
"ÿzTestVectorize.test_bad_inputc                 C   s@   t tƒ� t d¡dd„ ƒ}W d   ƒ d S 1 sw   Y  d S )NÚstringc                   S   r¿  )Nrn  r<   r<   r<   r<   r=   rm  „  rÄ  z+TestVectorize.test_no_keywords.<locals>.foor  )rc   rm  r<   r<   r=   Útest_no_keywords‚  s   
"þzTestVectorize.test_no_keywordsc                 C   s0   t dd„ dgƒ}|dgƒ}t|jt d¡ƒ d S )Nc                 S   rŽ  r5   r<   rÍ  r<   r<   r=   rt  Œ  r�  z?TestVectorize.test_positional_regression_9477.<locals>.<lambda>rõ   rK   )r$   r'   r´   r6   rè  r<   r<   r=   Útest_positional_regression_9477ˆ  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   rŽ  r5   r<   rÍ  r<   r<   r=   rt  ”  r�  z8TestVectorize.test_datetime_conversion.<locals>.<lambda>z(i)->(j)rñ  )r6   r�   r(   r$   )rc   Úotyperº   r<   r<   r=   Útest_datetime_conversion�  s   
ÿÿÿÿz&TestVectorize.test_datetime_conversionN)/rz   r{   r|   rŒ  r�  r�  r•  rš  r   r¡  r¥  r¨  r©  r­  r¯  r·  r¼  r¾  rÃ  rÇ  rÉ  rÐ  rÒ  r×  rØ  rÜ  rß  rá  rä  ré  rê  rî  rð  rò  rõ  rö  rø  r  rü  rý  r  r  r  r  r
  r  r  r<   r<   r<   r=   r‚  ª  sZ    

"		
r‚  c                   @   s\   e Zd ZG dd„ dƒZejje dd�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.Arr  c                 G   r¿  rK  r<   ©rc   r’  r<   r<   r=   Úboundœ  rÁ  zTestLeaks.A.boundc                  G   r¿  rK  r<   )r’  r<   r<   r=   ÚunboundŸ  rÄ  zTestLeaks.A.unboundN)rz   r{   r|   Úitersr  Ústaticmethodr  r<   r<   r<   r=   r  ™  s
    r  úPython lacks refcounts©ÚreasonzJFunctions are immortalized if a thread is launched, making this test flakyz
name, incrr  )r  r   c           	      C   s¾   dd l }t| j|ƒ}| ¡  zKt |¡}t| jjƒD ]}|  ¡ }t 	t||ƒdd¡|_
| 
t d¡¡}qd }tt |¡|| ƒ tdƒD ]}| ¡  qDtt |¡|ƒ W | ¡  d S | ¡  w )Nr   rM   r½   rV   )ÚgcrX  r  Údisablerÿ  Úgetrefcountrb   r  r6   Ú
frompyfuncr"  r7   r'   ÚcollectÚenable)	rc   rY  Úincrr  ÚA_funcÚrefcountr•   rd   r»  r<   r<   r=   Útest_frompyfunc_leaks£  s   

zTestLeaks.test_frompyfunc_leaksN)rz   r{   r|   r  rð   r'  Úskipifr0   r2   r(  r  r   r<   r<   r<   r=   r  ˜  s    
ÿþr  c                   @   sz   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zejjdd�dd„ ƒZdS )ÚTestDigitizec                 C   s2   t  dd¡}t  dd¡}tt||ƒt  d¡ƒ d S )Nrë  rV   r|  rØ   ©r6   r7   r(   r   ©rc   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 )NrV   rë  r\   r|  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  rB  rÒ  r&   r±   r   )rc   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)rM   rV   rI   r½   rq   rØ   r   )rM   rV   r½   )rM   rK   rM   rU   rK   rU   r   )r   rM   rM   rK   rK   rU   r   T)r(   r   )rc   rá   r%  Údefault_answerÚ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ë  rV   rI   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 )NrV   rë  r\   rI   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   rM   rK   r²   F)r   rK   rU   rU   T)r   r   rK   rU   r©   )rU   rK   r   r   )rU   rU   rK   r   r°   )r   r   rI   rI   )r   r   r   rI   r    )rM   rM   r   rM   )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)rM   rK   y      @      ð?r—   )r+   rò   r   r$  r<   r<   r=   Útest_casting_errorü  s
   
zTestDigitize.test_casting_errorc                 C   sh   G dd„ dt jƒ}t  d¡ |¡}t  dd¡ |¡}ttt||dƒ|ƒ ƒ ttt||dƒ|ƒ ƒ d S )Nc                   @   r  )z(TestDigitize.test_return_type.<locals>.ANr  r<   r<   r<   r=   r    r  r  rV   rM   rU   FT)r6   r  r7   r  r&   rh  r   )rc   r  rd   r‡   r<   r<   r=   rG    s
   zTestDigitize.test_return_typec                 C   s&   d}t t ||d |d g¡dƒ d S ©Nl          rM   ©r'   r6   r   rk  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 r3  r4  rk  r<   r<   r=   Útest_large_integers_decreasing  s   "z+TestDigitize.test_large_integers_decreasingN)rz   r{   r|   r&  r'  r*  r-  r.  r/  r0  r1  r2  rG  r5  rð   r'  Úxfailr6  r<   r<   r<   r=   r"  Ä  s     	ÿr"  c                   @   rž   )Ú
TestUnwrapc                 C   sH   t tdddtj  gƒddgƒ tt tttdƒd ƒƒtjk ¡ƒ d S )NrM   rK   r½   rO  )r(   r"   r6   rQ  r&   r±   r   r3   r„   r<   r<   r=   rŒ    s    (zTestUnwrap.test_simplec                 C   sÐ   t tddgdd�ddgƒ tt tttdƒd dd�ƒdk ¡ƒ t g d¢¡}t |d¡}t t|dd�|ƒ t g d	¢¡}t |d
¡}t|d
d�}t |g d¢ƒ t|d
dd�}t |g d	¢ƒ |j	|j	ksfJ ‚d S )NrM   i  éÿ   ©ÚperiodrK   r½   éè  )r   éK   é–   éá   r/  )r   r=  r>  r?  r/  i®  éú   )r   r=  r>  r?  r/  r­  éŒ   )r;  Údiscont)
r(   r"   r&   r6   r±   r   r3   r�   Úmodr´   )rc   Ú
simple_seqÚwrap_seqÚ
uneven_seqÚwrap_unevenÚ
no_discontÚ
sm_discontr<   r<   r=   Útest_period!  s   &zTestUnwrap.test_periodN)rz   r{   r|   rŒ  rJ  r<   r<   r<   r=   r8    ó    r8  ÚOÚ
AllIntegerÚFloatÚM)r   rM   r½   c                   @   sz   e Zd Zdededdfdd„Zdededdfdd„Zdededdfd	d
„Zdededdfdd„Zdededdfdd„Z	dS )ÚTestFilterwindowsr´   rO  ÚreturnNc                 C   ó¨   t j||d�d }t|ƒ}|dkrt j}nt  |jt j¡}|j|ks$J ‚t|t|ƒƒ |dk r9t|t  g ¡ƒ d S |dkrGt|t  	d¡ƒ d S t
t j|dd�ddƒ d S )	Nr¸   r<   rL  rM   r   r   ç      @rI   )r6   r�   r   rõ   rö   r´   r'   r   r(   ra   r)   rï   ©rc   r´   rO  Úscalarrø   Ú	ref_dtyper<   r<   r=   Útest_hanning:  ó   zTestFilterwindows.test_hanningc                 C   rR  )	Nr¸   r<   rL  rM   r   r   gÃõ(\�Â@rI   )r6   r�   r   rõ   rö   r´   r'   r   r(   ra   r)   rï   rT  r<   r<   r=   Útest_hammingO  rX  zTestFilterwindows.test_hammingc                 C   rR  )	Nr¸   r<   rL  rM   r   r   gž^)ËÇ@rI   )r6   r�   r	   rõ   rö   r´   r'   r   r(   ra   r)   rï   rT  r<   r<   r=   Útest_bartlettd  rX  zTestFilterwindows.test_bartlettc                 C   rR  )	Nr¸   r<   rL  rM   r   r   g=
×£p=@rI   )r6   r�   r
   rõ   rö   r´   r'   r   r(   ra   r)   rï   rT  r<   r<   r=   Útest_blackmany  rX  zTestFilterwindows.test_blackmanc                 C   sª   t j||d�d }t|dƒ}|dkrt j}nt  |jt j¡}|j|ks%J ‚t|t|ƒƒ |dk r:t|t  g ¡ƒ d S |dkrHt|t  	d¡ƒ d S t
t j|dd�ddƒ d S )	Nr¸   r<   r   rL  rM   r   r½   r9  )r6   r�   r   rõ   rö   r´   r'   r   r(   ra   r)   rï   rT  r<   r<   r=   Útest_kaiserŽ  s   
zTestFilterwindows.test_kaiser)
rz   r{   r|   Ústrr÷  rW  rY  rZ  r[  r\  r<   r<   r<   r=   rP  4  s    rP  c                   @   rG   )Ú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  rK   )r  rM   rs   )r6   r7   r    rÉ  rO  rQ  r)   )rc   rá   rc  r<   r<   r=   rŒ  ¦  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   rM   rU   rK   rq   rZ   r\   r   )rá   r€   )r6   r  Ú	ones_likerï   r    r)   )rc   rá   r÷   rS  ÚwxÚwyÚwzÚqÚqxÚqyÚqzrc  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 )NrV   rK   rØ  g      *@)r6   r7   r   r�   r)   r    )rc   rá   r÷   rÙ  Úymrc  Úxmr<   r<   r=   r  Ñ  s   
zTestTrapezoid.test_maskedN)rz   r{   r|   rŒ  rh  r  r<   r<   r<   r=   r^  ¤  s    %r^  c                   @   rž   )ÚTestSincc                 C   s6   t tdƒdkƒ tt ddd¡ƒ}t|t|ƒdƒ d S )Nr   rM   r\   rO  rs   )r&   r   r6   r  r*   r   ©rc   rø   r<   r<   r=   rŒ  ä  s   zTestSinc.test_simplec                 C   sF   ddg}t t |¡ƒ}t t|ƒƒ}t t|ƒƒ}t||ƒ t||ƒ d S )Nr   r  )r   r6   r�   rÐ  rE  r(   )rc   rá   r¤   r¥   r¦   r<   r<   r=   Útest_array_likeê  s   
zTestSinc.test_array_likeN)rz   r{   r|   rŒ  rm  r<   r<   r<   r=   rk  â  rK  rk  c                   @   rx  )Ú
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)	rI   rU   rK   rM   rM   rK   rU   rI   r   )r   rM   rK   rU   rI   )rM   rM   rM   rM   rM   rM   )ÚwidgetÚhamrm  rn  rm  rp  )rn  rm  rp  ro  )ù      @      @rU  ù      ð?      $@r½   rq  )rU  rr  rq  r½   )r6   r�   r&   r±   r#   rk  r<   r<   r=   rŒ  õ  s   "zTestUnique.test_simpleN)rz   r{   r|   rŒ  r<   r<   r<   r=   rn  ó  r„  rn  c                   @   rž   )Ú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—   rM   rK   )r6   ÚinfrE  Úasarray_chkfiniter+   r`   r›   r<   r<   r=   rŒ  	  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   ru  rõ   r&   r´   ro   r<   r<   r=   Útest_dtype_order		  s   z TestCheckFinite.test_dtype_orderN)rz   r{   r|   rŒ  rv  r<   r<   r<   r=   rs  ÿ  r®   rs  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@©¿)rx  rÐ   çp¾è]‚4Ó?)ry  rz  rÐ   )rÐ   rx  ry  ç?Ä'LÓ?çÝë(÷Ð8å?çîê4V‹}à?)rx  rÐ   rz  çÕØw¨{¨¿ç,H¨×5ì?çjSŽ,úè?)ry  rz  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¨   )rM   r   rM   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 r¸  )
r   r  r)   r*  r&   r6   r±   r  rf  r+  )rc   Útgt1Útgt2r<   r<   r=   rŒ  )	  s   
zTestCorrCoef.test_simplec                 C   s²   t ƒ �L}t d¡ ttt| jdd� | t¡ tt| jdd�| j	ƒ tt| j| j
dd�| jƒ tt| jdd�| j	ƒ tt| j| j
dd�| jƒ W d   ƒ d S 1 sRw   Y  d S )NrW  r\   ©ÚddofrU   )r/   rZ  Úsimplefilterr-   ÚDeprecationWarningr   r  Úfilterr)   r*  rf  r+  ©rc   Úsupr<   r<   r=   Ú	test_ddof2	  s   

"øzTestCorrCoef.test_ddofc                 C   s~   t ƒ �2}t d¡ ttt| j| jddƒ ttt| jdd� | t¡ t	t| jdd�| j
ƒ W d   ƒ d S 1 s8w   Y  d S )NrW  rM   r   )Úbias)r/   rZ  r�  r-   rŽ  r   r  rf  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—   ©rA  y               @rI  rÐ   rL  rA  )r6   r�   r   r,   r&   r±   r  )rc   rá   rú  r£  r<   r<   r=   Útest_complexH	  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   ©rc   rá   r÷   r<   r<   r=   Útest_xyO	  s   (zTestCorrCoef.test_xyc                 C   ó´   t jdd��J t  dt¡ ttt g ¡ƒtjƒ ttt g ¡ 	dd¡ƒt g ¡ 	dd¡ƒ ttt g ¡ 	dd¡ƒt tjtjgtjtjgg¡ƒ W d   ƒ d S 1 sSw   Y  d S ©NTrU  rW  r   rK   )
rZ  r[  r�  ÚRuntimeWarningr(   r   r6   r�   rE  rt   r„   r<   r<   r=   Ú
test_emptyT	  ó   ÿÿ"ûzTestCorrCoef.test_emptyc                 C   s|   ddgddgg}t jdd�� t|ƒ}W d   ƒ n1 sw   Y  t|t  ddgddgg¡ƒ tt  t  |¡dk¡ƒ d S )Ng0Žä.ÿ++g}Ã”%­I²TÚraise)r±   rÐ   r‡  )r6   Úerrstater   r*   r�   r&   r±   r  )rc   rá   rœ   r<   r<   r=   Útest_extreme]	  s   
ÿzTestCorrCoef.test_extremeÚ	test_typec                 C   ó*   | j  |¡}t||d�}||jksJ ‚d S ©Nr¸   )r  ró   r   r´   )rc   r¢  Úcast_Arú  r<   r<   r=   Útest_corrcoef_dtyped	  ó   z TestCorrCoef.test_corrcoef_dtypeN)rz   r{   r|   r6   r�   r  rf  r*  r+  rˆ  rŒ  r’  r”  r—  r™  r�  r¡  rð   r'  r(  ÚhalfÚsingleÚdoubleÚ
longdoubler¦  r<   r<   r<   r=   rw  	  sL    þÿþÿþÿûÿ	
	rw  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   rK   rM   rÐ   r‡  )rÒ   rÐ   rÎ   )Úndmin)rM   rI   rM   rÒ   rÎ   çš™™™™™Ù?gš™™™™™Ù¿rU   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=   ri   x	  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Ð   rL  rA  rU   ©Úaweights)r6   r�   r,   r   ra   )rc   rá   rú  r<   r<   r=   r—  {	  s   zTestCov.test_complexc                 C   sF   t  g d¢g¡}t  g d¢g¡}tt||ƒt  ddgddgg¡ƒ d S r•  )r6   r�   r,   r   r˜  r<   r<   r=   r™  �	  s   &zTestCov.test_xyc                 C   rš  r›  )
rZ  r[  r�  rœ  r(   r   r6   r�   rE  rt   r„   r<   r<   r=   r�  †	  rž  zTestCov.test_emptyc                 C   sp   t jdd��( t  dt¡ tt| jdd�t tj	tj	 gtj	 tj	gg¡ƒ W d   ƒ d S 1 s1w   Y  d S )NTrU  rW  rV   r‹  )
rZ  r[  r�  rœ  r(   r   r¯  r6   r�   rt  r„   r<   r<   r=   Útest_wrong_ddof�	  s   ÿÿ"þzTestCov.test_wrong_ddofc                 C   sJ   t t| jƒt| jdd�ƒ t g d¢¡}t t| j|ƒt| j|dd�ƒ d S )NF)Úrowvar)g+‡ÙÎ÷³?g4€·@‚âÓ?g¾Á&SË?gÒo_Î¡?gŒJê4ë?)r,   r   Úx3r6   r�   ©rc   r÷   r<   r<   r=   Útest_1D_rowvar–	  s   "zTestCov.test_1D_rowvarc                 C   s$   t t| jdd�tj| jdd�ƒ d S )NrM   r‹  )r,   r   r´  r6   Úvarr„   r<   r<   r=   Útest_1D_variance›	  s   $zTestCov.test_1D_variancec                 C   sÖ   t t| j| jd�t| jƒƒ t t| j| jd�| jƒ t t| j| jd�| jƒ | jd }t	t
t| j|d� tjdtjd�}t	tt| j|d� tjdtjd�}t	tt| j|d� dtjdtjd� }t	tt| j|d� d S )N)Úfweightsr  ©rK   rU   r¸   rK   r\   rU   )r,   r   r  ÚfrequenciesÚ
x2_repeatsr¯  r+  Úunit_frequenciesr*  r+   rò   r6   ra   rL  ÚRuntimeErrorr`   )rc   Ú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º  rK   r‡  rU   )r,   r   r¯  rß   r,  Úunit_weightsr*  r6   ra   r+   r¾  r`   rl  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   r£  r¤  )r¯  ró   r   r´   )rc   r¢  Úcast_x1rú  r<   r<   r=   Útest_cov_dtypeÎ	  r§  zTestCov.test_cov_dtypeN)%rz   r{   r|   r6   r�   r  r¯  r*  r  r»  r¼  r+  ra   rL  r½  rß   r,  rÁ  r´  ri   r—  r™  r�  r²  r¶  r¸  rÀ  rÂ  rÃ  rð   r'  r(  r¨  r©  rª  r«  rÅ  r<   r<   r<   r=   r¬  k	  s0    $
	r¬  c                   @   rG   )Ú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?Û�?r}  )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(   )rc   r  r¼  rf  Úi0_0r<   r<   r=   rŒ  ×	  s4   þ
ü
üþzTest_I0.test_simplec                    sV   t  d¡‰ G ‡ fdd„dƒ}tt  |ƒ ¡|ƒsJ ‚t  ˆ ¡}t  |ƒ ¡}t||ƒ d S )NrI   c                       s   e Zd Z” jZdd„ ZdS )z*Test_I0.test_non_array.<locals>.array_likec                 S   rŽ  r5   r<   )rc   rº   ÚcontextÚreturn_scalarr<   r<   r=   Ú__array_wrap__ù	  rÁ  z9Test_I0.test_non_array.<locals>.array_like.__array_wrap__N)rz   r{   r|   Ú__array_interface__rÊ  r<   rs  r<   r=   Ú
array_likeö	  s    rÌ  )r6   r7   rh  r  r   r(   )rc   rÌ  rÉ  rú  r<   rs  r=   rˆ  ó	  s   

zTest_I0.test_non_arrayc                 C   sJ   t  ddg¡}tjtdd�� t|ƒ}W d   ƒ d S 1 sw   Y  d S )Nr   y      ð?       @z#i0 not supported for complex valuesrì   )r6   r�   rð   rñ   rò   r   )rc   rd   rú  r<   r<   r=   r—  
  s   
"ÿzTest_I0.test_complexN)rz   r{   r|   rŒ  rˆ  r—  r<   r<   r<   r=   rÆ  Õ	  s    rÆ  c                   @   rž   )Ú
TestKaiserc                 C   s|   t t tddƒ¡ƒ ttddƒt g ¡ƒ ttddƒt ddg¡ƒ ttddƒt g d¢¡ƒ ttddƒt g d	¢¡ƒ d S )
NrM   rÐ   r   rK   ç ˆöoFé?rV   )rÎ  çÀvT¶=î?rÐ   rÏ  rÎ  gg›Óù?)çø†„½¦â?ç÷�ñY…Jì?rÐ   rÑ  rÐ  )r&   r6   Úisfiniter   r)   r�   r„   r<   r<   r=   rŒ  
  s   
ÿ
ÿ
ÿ
ÿzTestKaiser.test_simplec                 C   s   t ddƒ d S )NrU   rI   )r   r„   r<   r<   r=   Útest_int_beta
  r€  zTestKaiser.test_int_betaN)rz   r{   r|   rŒ  rÓ  r<   r<   r<   r=   rÍ  	
  rV  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—   ©rI   rV   rr   rs   rÜ   )rV   rV   rV   )rr   rr   rr   )rs   rs   rs   ©r   r(   r6   r�   ©rc   ÚXÚYr<   r<   r=   rŒ  
  s   ýýzTestMeshgrid.test_simplec                 C   s&   t g d¢ƒ\}t|t g d¢¡ƒ d S )NrŽ  rÖ  )rc   rØ  r<   r<   r=   Útest_single_input)
  s   zTestMeshgrid.test_single_inputc                 C   s*   g }t g t|Ž ƒ t g t|ddiŽƒ d S )Nr¾   F)r(   r   r  r<   r<   r=   Útest_no_input-
  s   zTestMeshgrid.test_no_inputc                 C   sð   g d¢}g d¢}t ||dd�\}}t|t g d¢g d¢g d¢g¡ƒ t|t g d¢g d¢g d¢g¡ƒ dd	g}tt ||ƒd
 jdkƒ tt ||dd�d
 jdkƒ tt |||ƒd
 jdkƒ tt |||dd�d
 jdkƒ ttt ||dd� d S )Nr—   rÕ  Úij©Úindexingr°   )rK   rK   rK   rK   )rU   rU   rU   rU   rq   r+  r   r>  ©rU   rI   )rI   rU   rK   )rU   rI   rK   Únotvalid)r   r(   r6   r�   r&   rA   r+   r`   )rc   rá   r÷   rØ  rÙ  rS  r<   r<   r=   Útest_indexing2
  s"   þþzTestMeshgrid.test_indexingc                 C   sT   t g d¢g d¢dd�\}}t|t g d¢g¡ƒ t|t dgdgdgdgg¡ƒ d S )	Nr—   rÕ  T©ÚsparserI   rV   rr   rs   rÖ  r×  r<   r<   r=   Útest_sparseF
  s   $zTestMeshgrid.test_sparsec                 C   s   t ttg d¢g d¢dd� d S )Nr—   rÕ  rÜ  )rå  )r+   rò   r   r„   r<   r<   r=   Útest_invalid_argumentsK
  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¸   rr  T)r¾   râ  )r6   r7   rô   rõ   r   r&   r´   )rc   rá   r÷   rØ  rÙ  r<   r<   r=   rG  R
  s   zTestMeshgrid.test_return_typec                 C   sr   t  ddg¡}t  ddg¡}t j||ddd�\}}d|dd d …f< t|dd d …f dƒ t|d	d d …f |ƒ d S )
NrÀ  rÁ  gffffff
@gš™™™™™@FT)rã  r¾   r   rM   )r6   r�   r   r'   )rc   rØ  rÙ  rá   r÷   r<   r<   r=   Útest_writebackj
  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=   rZ  u
  r[  z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>rM   rr   )rK   rM   rU   rI   rV   )r6   r   rb   r'   rA   )rc   rd   r‡   rœ   rG  rÙ  Úexpected_shaper<   r<   r=   Útest_nd_shapet
  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   rM   rK   rT   r§   r³   rJ   ©r6   r   r'   r›   r<   r<   r=   Útest_nd_values}
  s   zTestMeshgrid.test_nd_valuesc                 C   sn   t jdgddgg d¢dd�\}}}t|g d¢g d¢ggƒ t|g d¢g d	¢ggƒ t|g d¢g d¢ggƒ d S )
Nr   rM   rK   rT   rÜ  rÝ  r§   r³   rJ   rê  r›   r<   r<   r=   Útest_nd_indexingƒ
  s   "zTestMeshgrid.test_nd_indexingN)rz   r{   r|   rŒ  rÚ  rÛ  rá  rä  rå  rG  ræ  ré  rë  rì  r<   r<   r<   r=   rÔ  
  s    
	rÔ  c                   @   r}   )ÚTestPiecewisec                 C   s4  t ddgddgdgƒ}t|ddgƒ t ddgddggdgƒ}t|ddgƒ t ddgt ddg¡dgƒ}t|ddgƒ t ddgt ddg¡dgƒ}t|ddgƒ t ddgt ddg¡gdgƒ}t|ddgƒ t ddgddggdd„ gƒ}t|ddgƒ ttdt ddgddggg ƒ ttdt ddgddggg d	¢ƒ d S )
Nr   TFrM   c                 S   r¿  rì  r<   rÍ  r<   r<   r=   rt  ¡
  r�  z+TestPiecewise.test_simple.<locals>.<lambda>r\   z1 or 2 functions are expectedr—   )r   r(   r6   r�   r.   r`   rk  r<   r<   r=   rŒ  Œ
  s$   ÿÿzTestPiecewise.test_simplec                 C   s2   t ddgddgddggddgƒ}t|ddgƒ d S )NrM   rK   TFrU   rI   ©r   r(   rk  r<   r<   r=   Útest_two_conditions©
  s    z!TestPiecewise.test_two_conditionsc                 C   s"   t dg d¢g d¢ƒ}t|dƒ d S )NrU   )TFF)rI   rK   r   rI   )r   r'   rk  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 )NrM   rK   TFr   rU   rî  rk  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 )
NrU   rI   r   rV   TFrM   r-  r—   )r6   r�   r   r&   r“   r(   r˜  r<   r<   r=   rf  º
  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 )
NrU   rI   r   rV   r—   rK   z2 or 3 functions are expectedrM   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 )NrU   rM   rK   )r6   r�   r   r'   )rc   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   rK   rS  )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                   @   r  )z/TestPiecewise.test_subclasses.<locals>.subclassNr  r<   r<   r<   r=   r  æ
  r  r  rÚ   rÎ   rI   )r‡  rÐ   rÒ   )r‡  r‡  rÒ   rÒ   rÐ   )r6   r  r7   r  r   r'   r  )rc   r  rá   rc  r<   r<   r=   r  å
  s
   zTestPiecewise.test_subclassesN)rz   r{   r|   rŒ  rï  rð  rñ  rf  rò  ró  rô  r  r<   r<   r<   r=   rí  Š
  s    	rí  c                   @   s°   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zej dddg¡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 )NrI   )r6   Úbincountr7   r(   ra   rµ  r<   r<   r=   rŒ  ð
  s   zTestBincount.test_simplec                 C   s,   t  t  g d¢¡¡}t|t  g d¢¡ƒ d S )N)rM   rV   rK   rI   rM   )r   rK   rM   r   rM   rM   )r6   rö  r�   r(   rµ  r<   r<   r=   Útest_simple2ô
  s   zTestBincount.test_simple2c                 C   s2   t  d¡}t  g d¢¡}t  ||¡}t||ƒ d S )NrI   )çš™™™™™É?ç333333Ó?r  rÄ  )r6   r7   r�   rö  r(   ©rc   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©rM   rK   rI   rV   rK   ©rø  rù  r  rÄ  rø  )r   rø  r  r   r  rÄ  ©r6   r�   rö  r(   rú  r<   r<   r=   Útest_simple_weight2þ
  s   z TestBincount.test_simple_weight2c                 C   sV   t  g d¢¡}t j|dd�}t|t  g d¢¡ƒ g }t j|dd�}t|t  g ¡ƒ d S )N)r   rM   r   rM   rM   rU   ©Ú	minlength)rK   rU   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   rM   rM   rK   rK   rU   rU   rK   r   )rM   rK   rK   rK   r   rþ  r˜  r<   r<   r=   Ú)test_with_minlength_smaller_than_maxvalue  s
   z6TestBincount.test_with_minlength_smaller_than_maxvaluec                 C   sB   t  g d¢¡}t  g d¢¡}t  ||d¡}t|t  g d¢¡ƒ d S )Nrü  rý  rq   )r   rø  r  r   r  rÄ  r   r   rþ  rú  r<   r<   r=   Útest_with_minlength_and_weights  ó   z,TestBincount.test_with_minlength_and_weightsc                 C   s&   t jg td�}t  |¡}t||ƒ d S r¤  )r6   r�   r÷  rö  r(   r˜  r<   r<   r=   r�    s   
zTestBincount.test_emptyc                 C   s4   t jg td�}t j|dd�}t|t jdtd�ƒ d S )Nr¸   rV   r   )r6   r�   r÷  rö  r(   r?   r˜  r<   r<   r=   Útest_empty_with_minlength  s   z&TestBincount.test_empty_with_minlengthr  r   rU   c                 C   s"   t tjg |d�tj|td�ƒ d S )Nr   r¸   )r(   r6   rö  r?   r÷  )rc   r  r<   r<   r=   Útest_empty_list#  s   ÿzTestBincount.test_empty_listc                    sl   t jg td�‰ ttd‡ fdd„ƒ ttd‡ fdd„ƒ t  d¡‰ ttd‡ fdd„ƒ ttd‡ fd	d„ƒ d S )
Nr¸   z"'str' object cannot be interpretedc                      ó   t jˆ dd�S ©NÚfoobarr   ©r6   rö  r<   rÍ  r<   r=   rt  ,  ó    z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>zmust not be negativec                      r  ©Nr\   r   r  r<   rÍ  r<   r=   rt  /  r  rV   c                      r  r	  r  r<   rÍ  r<   r=   rt  4  r  c                      r  r  r  r<   rÍ  r<   r=   rt  7  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¢¡ q<tt  t tj¡¡|ƒ tt  t tj¡¡|ƒ d S )Nr½   r—   r˜   )	rÿ  r  r6   r´   Úintprª  rb   rö  r'   )rc   Úintp_refcountÚdouble_refcountÚjr<   r<   r=   Útest_dtype_reference_leaks9  s   z'TestBincount.test_dtype_reference_leaksÚvalsrK   c                 C   st   t  |¡}ttƒ� t  |¡ W d   ƒ n1 sw   Y  ttƒ� t  |¡ W d   ƒ d S 1 s3w   Y  d S r5   )r6   Úasarrayr+   r`   rö  )rc   r  Úvals_arrr<   r<   r=   Útest_error_not_1dI  s   

ÿ
"ÿzTestBincount.test_error_not_1dN)rz   r{   r|   rŒ  r÷  rû  rÿ  r  r  r  r�  r  rð   r'  r(  r  r  r!  r0   r  r  r<   r<   r<   r=   rõ  î
  s"    

rõ  c                   @   s®   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	dd„ dd„ dd„ dd„ gg d¢d�dd„ ƒZ
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&S )'Ú
TestInterpc                 C   st   t ttdg g ƒ t ttddgddgƒ t ttdddgddgdd� t ttdg g dd� t ttddgddgdd� d S )Nr   rM   rK   r:  éh  )r+   r`   r   r„   r<   r<   r=   Útest_exceptionsU  s
   zTestInterp.test_exceptionsc                 C   sB   t  ddd¡}t  ddd¡}t  ddd¡}tt  |||¡|ƒ d S )Nr   rM   rV   rj   )r6   r  r)   r   ©rc   rá   r÷   Úx0r<   r<   r=   ri   \  r  zTestInterp.test_basicc           
      C   sª  t ddƒD ]Í}tj|tjd�}tj|tjd�}tjdd|d |gtjd�}|d d d… }t|||ƒ}t|||ƒ}tjg d¢td�}|d d d… }	t||ƒ t||	ƒ t|||dd�}t|||dd�}tjg d¢td�}|d d d… }	t||ƒ t||	ƒ t|||d	d
�}t|||d	d
�}tjg d¢td�}|d d d… }	t||ƒ t||	ƒ t|||dd	d�}t|||dd	d�}tjg d¢td�}|d d d… }	t||ƒ t||	ƒ qd S )NrM   r½   r¸   r\   r   r°   ©Úleft)r   rM   rM   rM   rK   ©Úright)rM   rM   rM   rK   )r  r   )r   rM   rM   rK   )	rb   r6   r7   rª  ra   r�   r   rt  r'   )
rc   ÚsizeÚxpÚypÚincptsÚdecptsÚincresÚdecresÚinctgtÚdectgtr<   r<   r=   Útest_right_left_behaviorb  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   rM   rV   rù  )r6   r  r)   r   rô   rõ   rE  r  r<   r<   r=   Útest_scalar_interpolation_pointˆ  s   

z*TestInterp.test_scalar_interpolation_pointc                 C   st   g d¢}g d¢}ddt jdg}tt  |||¡ddt jt jdgƒ ddt jdg}tt  |||¡ddt jt jdgƒ d S )N©rM   rK   r  rU   rI   rŽ  rM   rK   rI   )r6   rt  r)   r   rE  )rc   rá   r"  Úfpr<   r<   r=   Ú test_non_finite_behavior_exact_x–  s   "&z+TestInterp.test_non_finite_behavior_exact_xc                 C   r½  r5   ©r6   rõ   rÍ  r<   r<   r=   rt  Ÿ  ó   
 zTestInterp.<lambda>c                 C   s
   t | dƒS rK  ©rF   rÍ  r<   r<   r=   rt     r0  c                 C   s
   t d| ƒS rK  r1  rÍ  r<   r<   r=   rt  ¡  r0  c                 C   s   t | t | d¡ƒS )NrS   )rF   r6   ÚmultiplyrÍ  r<   r<   r=   rt  ¢  s    )rC   zcomplex-realzcomplex-imagzcomplex-both)ÚparamsÚidsc                 C   s   |j S )z( scale function used by the below tests )Úparam)rc   Úrequestr<   r<   r=   Úscž  s   zTestInterp.scc                 C   s¤   t t dtjdg|ddgƒ¡|tjƒƒ t t ddtjg|ddgƒ¡|tjƒƒ t t dddg|tjdgƒ¡|tjƒƒ t t dddg|dtjgƒ¡|tjƒƒ dS )z test that nans are propagated r  rM   r   r½   N)r'   r6   r   rE  ©rc   r7  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½   rM   N©r'   r6   r   rt  rE  r8  r<   r<   r=   Útest_non_finite_inf´  s   ...0zTestInterp.test_non_finite_infc                 C   st  t t dtj dg|tj dgƒ¡|tjƒƒ t t dtj dg|tj
 dgƒ¡|tjƒƒ t t dtj dg|dtj gƒ¡|tjƒƒ t t dtj dg|dtj
 gƒ¡|tjƒƒ t t ddtj
 g|tj dgƒ¡|tjƒƒ t t ddtj
 g|tj
 dgƒ¡|tjƒƒ t t ddtj
 g|dtj gƒ¡|tjƒƒ t t ddtj
 g|dtj
 gƒ¡|tjƒƒ dS )z@ Test that interp where both axes have a bound at inf gives nan r  rM   r½   r   Nr:  r8  r<   r<   r=   Útest_non_finite_half_inf_xf½  s   .......2z&TestInterp.test_non_finite_half_inf_xfc                 C   s¬   t t dtj tj g|ddgƒ¡|dƒƒ t t dtj dg|ddgƒ¡|dƒƒ t t ddtj
 g|ddgƒ¡|dƒƒ t t dtj
 tj
 g|ddgƒ¡|dƒƒ dS )z1 Test interp where the x axis has a bound at inf r  r   r½   rM   N©r'   r6   r   rt  r8  r<   r<   r=   Útest_non_finite_half_inf_xÈ  s   ,((0z%TestInterp.test_non_finite_half_inf_xc                 C   s  t t dddg|dtj gƒ¡|tj ƒƒ t t dddg|dtj
 gƒ¡|tj
 ƒƒ t t dddg|tj dgƒ¡|tj ƒƒ t t dddg|tj
 dgƒ¡|tj
 ƒƒ t t dddg|tj tj gƒ¡|tj ƒƒ t t dddg|tj
 tj
 gƒ¡|tj
 ƒƒ dS )z1 Test interp where the f axis has a bound at inf r  r   rM   r½   Nr=  r8  r<   r<   r=   Útest_non_finite_half_inf_fÏ  s   ,,,,04z%TestInterp.test_non_finite_half_inf_fc           	      C   s  t  ddd¡}t  ddd¡dt  ddd¡ d  }d}|d| d  }tt  |||¡|ƒ d}d}tt j||||d�|ƒ d	}d}tt j||||d
�|ƒ g d¢}g d¢}ddt jdg}ddt jd t jdg}tt  |||¡|ƒ g d¢}g d¢}g d¢}g d¢}tt j|||dd�|ƒ d S )Nr   rM   rV   rA  rù  r\   ù       @      @r  rÎ   r  r,  rŽ  ù       @      ð?rI   y              à?©iLÿÿÿiVÿÿÿiGÿÿÿé¹   r_  r|  r   im  ©é¾   iBÿÿÿi^  i¢þÿÿ)ù      @      ð?y      $@       @ù      @      @y      @      @)y      @      ø?rF  y     €!@      ü?y      @      ô?rG  y      
@      
@y      @      @y      @      @r  r:  )r6   r  r)   r   rt  )	rc   rá   r÷   r  Úy0r  r   r"  r-  r<   r<   r=   Útest_complex_interpØ  s*   $zTestInterp.test_complex_interpc                 C   sº   t  ddd¡}t  ddd¡}t  d¡}tt  |||¡|ƒ t  g d¢¡}t  g d¢¡}t  t  d¡||¡}t|dƒ tt|t jƒƒ t jt  d¡||dd	�}t|d
ƒ tt|t jƒƒ d S )Nr   rM   rV   rù  r@  )rM   r\   rM   rS  rI   r:  r  )	r6   r  r�   r)   r   r'   r&   rh  rõ   )rc   rá   r÷   r  r"  r-  rù   r<   r<   r=   Ú)test_zero_dimensional_interpolation_pointô  s   


z4TestInterp.test_zero_dimensional_interpolation_pointc                 C   s2   t  ddd¡}t  |¡}tt  t j||¡dƒ d S )Nr   r½   g-Cëâ6?rÒ   )r6   r7   Úsinr)   r   rQ  )rc   r"  r-  r<   r<   r=   Útest_if_len_x_is_small  s   
z!TestInterp.test_if_len_x_is_smallc                 C   s€   g d¢}g d¢}g d¢}g d¢}t tj|||dd�|ƒ tj|dd� d	d
¡}tj|dd� d	d
¡}t tj|||dd�|ƒ d S )NrB  rD  )rV   r½   rU   rI   )g      @rÚ   ç     €!@g      @rÑ   g      
@ç      @g      @r  r:  rÀ   rÁ   rK   r\   r/  )r)   r6   r   r�   rt   )rc   rá   r"  r-  r÷   r<   r<   r=   rJ  
  s   zTestInterp.test_periodN)rz   r{   r|   r  ri   r*  r+  r.  rð   Úfixturer7  r9  r;  r<  r>  r?  rI  rJ  rL  rJ  r<   r<   r<   r=   r  S  s0    &üû
		r  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 )Nrq   r  r   rÒ   rO  rN  rj   rÖ   rM   Únearest©ÚmethodÚinverted_cdf©rS  rß   )r6   r7   r'   Ú
percentilerE  r`  rk  r<   r<   r=   ri     s   

ÿýzTestPercentile.test_basicc                 C   sØ   dd„ t dƒD ƒ}t |tdƒ¡}t|tdƒƒ tt|ƒtƒ t |tdƒ¡}t|tddƒƒ tt|ƒtƒ t |tdƒ¡}t|tdd	ƒƒ tt|ƒtƒ t |tdƒg¡}t|t tdd	ƒg¡ƒ tt|ƒtjƒ d S )
Nc                 S   ó   g | ]}t |d ƒ‘qS ©rK   r   rç  r<   r<   r=   r!  '  r"  z0TestPercentile.test_fraction.<locals>.<listcomp>rq   r   rO  rs   rK   rj   rI   )rb   r6   rV  r   r'   r  r�   r  )rc   rá   r±  r<   r<   r=   Útest_fraction&  s   zTestPercentile.test_fractionc                 C   sR   t  d¡}t  |dd d d¡ t  |dd d dd¡ t  d¡}t  |dd |dd¡ d S )NrV   FÚlinearr#  )r6   ra   rV  )rc   rG  Úor<   r<   r=   Útest_api9  s
   

zTestPercentile.test_apic                 C   ój   t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ d S ©N)y      à?      @yÍÌÌÌÌÌ @      à?yš™™™™™ù?ffffff@ÚGr¸   r  ÚDrÀ   )r6   r�   r+   rò   rV  ©rc   Ú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³   )rI   rI   rU   rj   r   r   )r6   r�   r(   rV  rk  r<   r<   r=   Útest_2DH  s   
üzTestPercentile.test_2Dr´   rN  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¸   rZ  rR  )r6   r  rE  rV  Útestingr'   r´   )rc   r´   rº   rú  r<   r<   r=   Útest_linear_nan_1DP  s   ýz!TestPercentile.test_linear_nan_1Dc                 C   s   g | ]}|t jf‘qS r<   r/  )r   Úint_typer<   r<   r=   r!  [  s    ÿzTestPercentile.<listcomp>rM  rL  ÚfunctionÚquantiler®  re  Úinput_dtypeÚexpected_dtype)rS  Úweightedr¼  )
)rT  Frr  )rT  Trr  )Úaveraged_inverted_cdfFç     €;@)Úclosest_observationFrr  )Úinterpolated_inverted_cdfFrr  )ÚhazenFrp  )ÚweibullFé   )rZ  FrÈ  )Úmedian_unbiasedFr—  )Únormal_unbiasedFg      ;@c                 C   s  t  |¡}t  ¡ dkrt  |t j¡}t jg d¢|d�}|r"t  |¡nd }	|t ju r7|t ju r2|dƒ}t j	j
}
nt j	j}
|||||	d�}|
|| |¡ƒ |dv rq|dkrat j	 t  |¡jt j¡ d S t j	 t  |¡jt  |¡¡ d S t j	 t  |¡jt  |¡¡ d S )NÚlegacy)rˆ  g      4@rd  re  rf  r¸   z0.4rU  )rT  rq  rL  )r6   r´   Ú_get_promotion_stateÚpromote_typesrõ   r  r`  r«  rk  rg  r)   Úassert_array_almost_equal_nulpr  r'   )rc   rj  rk  rS  rn  r¼  rl  rm  rº   rß   Útest_functionrù   r<   r<   r=   Útest_linear_interpolationc  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¸   rj   ÚlowerrR  rI   ÚhigherrV   ©r'   r6   rV  r7   ©rc   r´   r<   r<   r=   Útest_lower_higher›  ó   ÿÿÿÿz TestPercentile.test_lower_higherc                 C   sˆ   t tjtjd|d�ddd�dƒ t tjtjd|d�d d	dd�d
ƒ t tjtjd|d�ddd�dƒ t tjtjd|d�d	dd�d
ƒ d S )Nr½   r¸   é3   ÚmidpointrR  rS  r+  rM   rj   rV   rØ   ç      @r€  r�  r<   r<   r=   Útest_midpoint¢  s(   ÿÿÿÿÿÿÿÿzTestPercentile.test_midpointc                 C   sD   t tjtjd|d�ddd�dƒ t tjtjd|d�ddd�dƒ d S )	Nr½   r¸   r„  rQ  rR  rV   é1   rI   r€  r�  r<   r<   r=   Útest_nearest­  rƒ  zTestPercentile.test_nearestc                 C   sL   t j d¡}t  |d¡}t j || ¡ ¡ t  |d¡}t j || ¡ ¡ d S )NrV   rO  r   )r6   r  r3   rV  rg  r'   rÒ  rB  )rc   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 )Nrq   r  )r   rO  rj   )r   rN  rÖ   )r6   r7   r'   rV  rk  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   rU   rI   )r  rj   rO  )g      @r†  r  )rK   rU   rI   rV   rÕ  )rq   r+  r½   rØ   r   r   )ç      è?r  rU   )r  r†  rs   )rM  rÛ   rØ   rM   r  rV   rr   ©r  rj   rX  )r  rj   r=  ©rU   )rK   rI   rV   rr   )rK   rU   rV   rr   rK   )rK   rU   rI   rr   )rU   rU   rV   rr   r  rR  ©r€   rS  )r6   r7   rt   r'   rV  r�   r  rA   )rc   rá   Úr0r“  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   rU   rI   rj   r†  ©rÙ   rÚ   rë   r  r   r   ©r  r†  rÛ   rM   ©r»  ©r€   r»  r~  rR  rÚ   )rS  r€   )rÐ   rÚ   r  r<   r¸   ©rS  r»  rV   ©rS  r€   r»  )r6   r7   rt   r'   rV  r&   Úisscalarr�   rA   r)   Úemptyr´   )rc   rá   r�  r“  r»  Úc0Úc1rœ   r<   r<   r=   Útest_scalar_qå  sR   












zTestPercentile.test_scalar_qc                 C   s€   t ttjddgddd� t ttjdgdƒ t ttjdgdƒ t ttjdgttdƒƒdg ƒ t ttjdgttdƒƒd	g ƒ d S )
NrM   rK   é8   r
  rR  ée   r\   rj   rÂ  )r+   r`   r6   rV  rÐ  rb   r„   r<   r<   r=   Útest_exception  s   ÿ $zTestPercentile.test_exceptionc                 C   s   t t g d¢d¡dƒ d S )Nr—   r   rM   )r'   r6   rV  r„   r<   r<   r=   Útest_percentile_list  s   z#TestPercentile.test_percentile_listzpercentile, with_weightsFrT  rR  Tc                 C   sv  |rt nt}t g d¢¡}tjd|d�}d}|rt |¡nd }|||||d�}||u s-J ‚t||||d�|ƒ t g d¢g d¢g¡}tjd|d�}|rPt |¡nd }|||d||d	�}||u saJ ‚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�}
|r·t |¡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   )r€   r»  rß   rê   rº  rM   r   rU   rI   ©r   rM   rK   rU   rÕ  )rÎ   rÑ   rÙ   rÚ   r‘  )rK   rI   r�  )rŒ  r  rM  r’  rº  r”  r~  r–  )r   rI   rq   )rM   rV   r+  )r÷  rt  r6   r�   r?   r`  r'   r7   rt   r˜  rV  r´   )rc   rV  Úwith_weightsÚ	out_dtyperá   r÷   r±  rß   rc  r�  r»  r“  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 )Nr™  rØ   rM   rK   rj   r   r   )rM   rK   rM   )rØ   rK   rM   )rØ   rM   rM   rU   )rØ   rM   rK   r\   rS   rY   r`  r…  r�  r½   )rK   rM   rK   rM   )rK   rØ   rK   rM   )rK   rØ   rM   rM   )rK   rØ   rM   rK   )r6   r7   rt   r(   rV  rA   r�   ©rc   rG  r<   r<   r=   Útest_percentile_empty_dimZ  sB   ÿþÿþÿÿÿÿz(TestPercentile.test_percentile_empty_dimc                 C   sh   t  g d¢¡}t j|dgdd� t|t  g d¢¡ƒ t  g d¢¡}t  |dg¡ t|t  g d¢¡ƒ d S )N©rK   rU   rI   rM   rj   F©Úoverwrite_input©r6   r�   rV  r'   ro   r<   r<   r=   Útest_percentile_no_overwritev  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@rV   )Únumr…  rR  )r6   r  rV  r7   r(   rn  )rc   r±  r<   r<   r=   Útest_no_p_overwrite  s   z"TestPercentile.test_no_p_overwritec                 C   s^   t  g d¢¡}t j|dgdd�}t|t  dg¡ƒ t jg d¢dgdd�}t|t  dg¡ƒ d S )Nr¦  rj   Tr§  r  r©  r†   r<   r<   r=   Útest_percentile_overwrite‡  s
   z(TestPercentile.test_percentile_overwritec              
   C   sÔ  t jjdd�}t  |gd ¡}tt j|ddd�t  |d¡ƒ t  |dd¡}tt j|dd	d�t  |d¡ƒ | dd
¡ ¡ }tt j|ddd�t  |d¡ƒ | dd
¡ ¡ }tt j|ddgdd�t j|ddgd d�ƒ tt j|ddgdd�t j|ddgdd�ƒ t  	d¡ 
d¡}t j | ¡ ¡ tt j|ddd�d t  |d d …d d …d d …df  ¡ d¡ƒ tt j|ddgdd�d d …d
f t  |d d …d d …d
d d …f  ¡ ddg¡ƒ tt j|ddd�d t  |d d …d d …dd d …f  ¡ d¡ƒ tt j|ddd�d t  |dd d …d d …d d …f  ¡ d¡ƒ tt j|ddd�d t  |dd
d d …d d …f  ¡ d¡ƒ tt j|ddd�d t  |dd d …d d …d
f  ¡ d¡ƒ tt j|ddd�d t  |dd d …dd d …f  ¡ d¡ƒ d S )N©éG   é   ©r!  r½   r‘  r]   r   r\   r   rn   rM   rl   r  rô  rL   rQ  éƒ  ©rU   rV   rs   rØ   éZ   ©r   rM   rU   ©rU   rM   r`  rK   ©rU   rM   rK   rº  ©rK   rM   ©rM   rS   ©rM   rU   rP   )r6   r  ÚnormalÚdstackr'   rV  Úmoveaxisr”   r¾   r7   rt   ÚshuffleÚravelÚflatten©rc   r[  rá   rG  r<   r<   r=   Útest_extended_axis�  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´  r|  r  )r€   rd  ©r   r|  rI   ©r   rI   rR   )r\   r\   )rU   r\   )r6   ra   r+   r%   rV  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´  rs   TrÝ   r°   r]   ©rM   rM   rs   rØ   r‚   ©rM   rV   rs   rM   r#  ©rU   rM   rs   rØ   r   )rÞ   r¶  ©rM   rM   rs   rM   rM   )rK   rM   rM   rs   rM   )rK   rM   rV   rs   rM   )r6   ra   r'   rV  rA   r¤  r<   r<   r=   Útest_keepdimsº  s:   
ÿÿÿÿÿÿÿÿÿÿzTestPercentile.test_keepdimsrd  rs   rM   r€   ©NrM   r#  r]   )rY   r\   ©ÚargnamesÚ	argvaluesc                    s�   t  d¡‰|d u rdˆj }nt|ˆjƒ‰ t‡ ‡fdd„tˆjƒD ƒƒ}t  |¡| }t  |¡}t jˆ||d|d�}||u s@J ‚t	|j|ƒ d S )Nr´  r#  c                 3   ó&   � | ]}|ˆ v r
d nˆj | V  qdS ©rM   N©rA   rç  ©Ú	axis_normrG  r<   r=   rZ  ß  ó   € 
ÿz3TestPercentile.test_keepdims_out.<locals>.<genexpr>T©r€   rÞ   r»  )
r6   ra   r“   r4   rE  rb   rA   r˜  rV  r'   )rc   rd  r€   Ú	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©rI   rß  r   r“  rQ  r•  rŽ  rM   r<   rK   )r6   r?   ra   r'   rV  ©rc   r[  rG  r<   r<   r=   Útest_outè  s   



zTestPercentile.test_outzmethod, weighted))rZ  F)rQ  F)rT  F)rT  Tc                 C   sî   |rt  d¡|dœ}nd|i}tjdd��X 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   ƒ d S 1 spw   Y  d S )Nrß  ©rß   rS  rS  TrU  rW  rX  rÙ  r¹  r   r»  rŽ  rM   r<   )
r6   ra   rZ  r[  r\  rœ  r?   rE  r'   rV  )rc   rS  rn  Úkwargsr[  rG  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¸   rK   rù  r   r   ç333333ã?rU   rI   r—   ©rM   rM   rK   rº  rm   rM   r»  rQ   rQ  rR  )	r6   r7   rt  rE  r'   rV  r�   rt   r“   r†   r<   r<   r=   Útest_nan_behavior  sl   
ÿ

"

ÿ"

ÿÿ

ÿ
ÿÿÿz TestPercentile.test_nan_behaviorc                 C   sÞ   t jtdd�� t g d¢tj¡ W d   ƒ n1 sw   Y  t jtdd�� t g d¢tjg¡ W d   ƒ n1 s<w   Y  t ddd¡}tj|d< t jtdd�� t g d¢|¡ W d   ƒ d S 1 shw   Y  d S )NzPercentiles must be inrì   )rM   rK   rU   rÙ   rÐ   g     ÀX@r”  r   )rð   rñ   r`   r6   rV  rE  r  )rc   rd  r<   r<   r=   Ú
test_nan_qJ  s   ÿÿ
"ÿzTestPercentile.test_nan_qzm8[D]zM8[s]Úpos©r   r±  r½   c                 C   s¼   t jdd|d�}d||< t  |d¡}|j|ksJ ‚t  |¡s J ‚t  |ddg¡}|j|ks/J ‚t  |¡ ¡ s8J ‚t jdd|d� dd	¡}d||d
f< t j|ddd�}tt  |¡g d¢ƒ d S ©Nr   r_  r¸   ÚNaTr‘  rô  éH   r\   rU   rM   r   r,  )r6   r7   rV  r´   Úisnatr±   rt   r(   ©rc   r´   rã  rd   rú  r<   r<   r=   Útest_nat_basicU  s   zTestPercentile.test_nat_basicN)0rz   r{   r|   ri   rY  r\  r—  rc  rð   r'  r(  r6   Ú	typecodesrh  r3  rô   rõ   r«  r´   ÚH_F_TYPE_CODESrk  rV  r}  Ú
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=   rP    sŠ    

ÿ



üþÿÿÿ&



	$0þþ
3	 þ

=rP  )rT  ro  rq  rr  rs  rt  rZ  rv  rw  rQ  r~  r  r…  rT  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<   )rc   rá   r÷   Úalphar<   r<   r=   r.  v  s   zTestQuantile.Vc                 C   s*   g d¢}t  |d¡}t jj|ddd� d S )N)rÒ   rø  r®  gÍÌÌÌÌÌÜ?g
×£p=
Ç?rM   )Úmaxulp)r6   rk  rg  Úassert_array_max_ulp)rc   rá   rd   r<   r<   r=   Útest_max_ulpz  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 )Nrq   r  r   rÒ   rM   rN  rÖ   )r6   r7   r'   rk  rk  r<   r<   r=   ri   ‚  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�   rk  r'   r  r´   r(   )rc   rd   Útf_quantÚ	quant_resr<   r<   r=   Útest_correct_quantile_valueˆ  s   
z(TestQuantile.test_correct_quantile_valuec                 C   s^  dd„ t dƒD ƒ}t |d¡}t|dƒ tt|ƒtƒ t |d¡}t|tddƒƒ tt|ƒtƒ t |d¡}t|d	ƒ tt|ƒtjƒ t |tddƒ¡}t|tdd
ƒƒ tt|ƒtƒ t |tddƒg¡}t|t tdd
ƒg¡ƒ tt|ƒtjƒ t |tddƒgg¡}t|t tdd
ƒgg¡ƒ tt|ƒtjƒ t 	d¡}tt |tddƒ¡tddƒƒ d S )Nc                 S   rW  rX  r   rç  r<   r<   r=   r!  ”  r"  z.TestQuantile.test_fraction.<locals>.<listcomp>rq   r   rM   rs   rK   r  rÖ   rI   )
rb   r6   rk  r'   r  r   rõ   r�   r  r7   )rc   rá   rd  r<   r<   r=   rY  ’  s*   


"zTestQuantile.test_fractionc                 C   r]  r^  )r6   r�   r+   rò   rk  ra  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…  rR  )r6   r�   r¾   rk  r7   r(   rn  )rc   Úp0r±  r<   r<   r=   r­  º  s   
z TestQuantile.test_no_p_overwriter´   rM  c                 C   s2   t jt jddg|d�dgdd�}|j|ksJ ‚d S )NrM   rK   r¸   r  rQ  rR  )r6   rk  r�   r´   )rc   r´   rú  r<   r<   r=   Útest_quantile_preserve_int_typeÆ  s   ÿz,TestQuantile.test_quantile_preserve_int_typerS  c                 C   s4   g d¢}t j|ddg|d�}t|t  ddg¡ƒ d S )N)r½   rØ   r   r   rM   )rd  rS  r½   r   )r6   rk  r'   r�   )rc   rS  rº   rk  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   rM   r�  )r   rM   rM   rK   rK   rU   rU   rI   rV   rV   rM   rM   r+  r+  r+  rq   rq   rs   rÄ  rR  )rÒ   rÐ   rÎ   rÑ   )r6   r  rk  r�   r'   r  )rc   rS  rö  rk  r<   r<   r=   Útest_quantile_monotonicÓ  s   ÿÿz$TestQuantile.test_quantile_monotonicrU   r<  )Ú	min_valueÚ	max_valueFçœu ˆ<ä7þçœu ˆ<ä7~)Úallow_infinityÚ	allow_nanrú  rû  )r´   rA   Úelements)rº   c                 C   s.   t  ddd¡}t  ||¡}tt  |¡|ƒ d S )Nr   rM   g{®Gáz„?)r6   r7   rk  r'   r  )rc   rº   rö  rk  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)r}  r  rÙ   )rÑ   rÎ   rÐ   r   rM   r  )r6   r�   rE  rk  r—  r'   )rc   rd   rù   r<   r<   r=   Útest_quantile_scalar_nanë  s
   z%TestQuantile.test_quantile_scalar_nanrß   Trï  )rø  r  çÍÌÌÌÌÌì?c           	   	   C   s  |r|t vrt d¡ tj d¡}d}| |¡}|r"|jdd|d�nd }tj||||d�}|dv rFt t 	|  
|||¡¡¡d	| ksDJ ‚d S t|| ƒ|| kre|settj|  
|||¡|d
�ddd� d S ttj|  
|||¡|d
�dd| t |d| g¡ d� d S )Nú Weights not supported by method.éá  éf   r   r½   ©ÚlowÚhighr!  rU  )r  rÄ  ré   g›+¡†›„=)ÚatolrM   )Úmethods_supporting_weightsrð   Úskipr6   r  Údefault_rngÚintegersrk  r  rÓ   r.  r÷  r,   r   r†  )	rc   rß   rS  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}| |¡}|r"|jdd|d�nd }tj||||d�}d}	ttj|	| |||d�|	| ƒ ttj|	| |||d�|	| ƒ |rSd S tj| d	| |d
� }|dkr–|| t	|| ƒks|t 
|| ¡t	|| ƒd	 kr‰t|tj||dd
�ƒ d S t|tj||dd
�ƒ d S |dkrÞ|| t	|| ƒkr±t|tj||dd
�ƒ d S t 
|| ¡t	|| ƒd	 krÑt|tj||d	|  dd
�ƒ d S t|tj||dd
�ƒ d S |dkrót|tj||d	|  |d
�ƒ d S |dk�r!|| t	|| ƒk�rt|tj||d	|  |d
�ƒ d S t|tj|||d
�ƒ d S |dk�r3t|tj||dd
�ƒ d S |dk�rEt|tj||dd
�ƒ d S t|tj|||d
�ƒ d S )Nr  r  r  r   r½   r  rU  g      +@rM   rR  rT  r  r~  rq  rr  rQ  )r  rð   r  r6   r  r  r  rk  r,   r÷  Úround)
rc   rß   rS  rï  r  r:   r÷   rø   rd  rœ   r<   r<   r=   Ú'test_quantile_add_and_multiply_constant  sR   

ÿÿÿ"
"

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  rR  rU  g     @ @)r6   r  r  rk  r`  r,   )	rc   rS  rï  r  r:   r÷   rd  rø   Úqwr<   r<   r=   Útest_quantile_constant_weightsZ  s   


z+TestQuantile.test_quantile_constant_weights)r   rø  r  r  rM   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	  r!  r´   rU  rR  )r6   r  r  r  rœ  rk  ra  r,   )	rc   rS  rï  r  r:   r÷   rø   r  rd  r<   r<   r=   Ú"test_quantile_with_integer_weightsn  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/q)t||ƒ g d¢}t j||||dd�}t jdd�}td	ƒD ] }td
ƒD ]}	t j||d d …|	f |||d�|d d …||	f< qjqdt||ƒ 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 ]$}td
ƒD ]}	t j||d d …|	f ||||d d …|	f d�|||	f< qÍqÇt||ƒ d S )Nr  )rK   r½   rU   r½   r  rM   )rß   rS  r€   rº  rÒ  rK   rU   rU  )r   rø  r®  rß  rÃ  rM   )rr   rK   rU   r   rø  r®  rß  rÃ  )rU   rK   rK   rU   )	r6   r  r  r  rk  r?   rb   r,   rt   )
rc   rS  r  r÷   rø   rï  rd  Úq_resr•   r  r<   r<   r=   Ú#test_quantile_with_weights_and_axis  sL   
ÿÿ
ÿÿ


$ÿÿz0TestQuantile.test_quantile_with_weights_and_axisc                 C   sV   ddg}ddg}t jtdd�� tj|d|dd� W d   ƒ d S 1 s$w   Y  d S )	NrM   rK   r  zWeights must be non-negativerì   r  rT  rÜ  ©rð   rñ   r`   r6   rk  )rc   r÷   rø   r<   r<   r=   Ú-test_quantile_weights_raises_negative_weights­  s
   "ÿz:TestQuantile.test_quantile_weights_raises_negative_weightsc                 C   sZ   ddg}ddg}d}t jt|d�� tj|d||d� W d   ƒ d S 1 s&w   Y  d S )NrM   rK   r  z+Only method 'inverted_cdf' supports weightsrì   rÜ  r  )rc   rS  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   rM   r½   rt  rR  rK   rr  )r   r6   rk  r'   r�   )rc   rº   rk  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 )Nrq  r  )
rM   rK   rU   rI   rV   rr   rs   rq   r+  r½   rK   r   rU   rR  rI   rV   rr   rs   rq   r+  )r'   r6   rk  )rc   r1  rd  rº   r<   r<   r=   Útest_closest_observationÅ  s   z%TestQuantile.test_closest_observationN)(rz   r{   r|   r.  rò  ri   rõ  rY  r—  r­  rð   r'  r(  r6   rë  r÷  Úquantile_methodsrø  rù  Ú
hypothesisÚgivenr   rõ   Ústr  Úfloatsr  r  r  r  r  r  r  r  r  ÚsortedÚsetr  r  r  r<   r<   r<   r=   rî  s  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   rM   )rÿ  rþ  rú  rû  rü  rý  )Út0Út1rd   r‡   c                 C   sl   t  |||¡}t  |||¡}||ks||kr||ksJ ‚d S ||k ||k kr.||ks,J ‚d S ||ks4J ‚d S r5   ©rÚ  Ú_lerp)rc   r%  r&  rd   r‡   Úl0Úl1r<   r<   r=   Ú+test_linear_interpolation_formula_monotonicÕ  s   	z4TestLerp.test_linear_interpolation_formula_monotonic)Útrd   r‡   c                 C   s\   ||kr|t  |||¡  kr|ksJ ‚ J ‚d S |t  |||¡  kr)|ks,J ‚ J ‚d S r5   r'  )rc   r,  rd   r‡   r<   r<   r=   Ú)test_linear_interpolation_formula_boundedç  s   **z2TestLerp.test_linear_interpolation_formula_boundedc                 C   s6   t  ||dd|  ¡}t  ||d| ¡}t||ƒ d S rÀ  )rÚ  r(  r,   )rc   r,  rd   r‡   r  r   r<   r<   r=   Ú+test_linear_interpolation_formula_symmetricó  s   z4TestLerp.test_linear_interpolation_formula_symmetricc                 C   s8   t  d¡}t  d¡}t  d¡}t |||¡dksJ ‚d S )NrK   rV   rø  gÍÌÌÌÌÌ@)r6   r�   rÚ  r(  )rc   rd   r‡   r,  r<   r<   r=   Ú+test_linear_interpolation_formula_0d_inputsÿ  s   


z4TestLerp.test_linear_interpolation_formula_0d_inputsN)rz   r{   r|   r  r  r   r!  r+  r-  r.  r/  r<   r<   r<   r=   r$  Ô  sL    ÿÿÿÿú

ÿÿÿü
ÿÿÿü
r$  c                   @   sö   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
dg d¢dejdgejdf¡dd„ ƒZdd„ Zdd„ Zdd„ Zej	jedd�dd„ ƒZdd„ Zdd„ Zd d!„ Zd"d#„ Zej	j
d$g d%¢d&�d'd(„ ƒZej	 
d)d*g¡ej	 
d+g d,¢¡d-d.„ ƒƒZd/S )0Ú
TestMedianc                 C   s>  t  d¡}t  d¡}t  d¡ dd¡}tt  |¡dƒ tt  |¡dƒ tt  |¡dƒ tt j|dd�g d	¢ƒ tt j|dd�dd
gƒ tt j|d d�dƒ t  g d¢¡}t|d |d  d t  |¡ƒ t  g d¢¡}t|d t  |¡ƒ t  g d¢¡}t|d t  |¡ƒ tt  |¡jdƒ t j	|d< tt  |¡jdƒ d S )NrM   rK   rr   rU   r  r  r   r   ©r  r  rN  rI   )çð™6-Â¦?çº¤0”¸§?çºÝË}rÂ?g©Á4¯?rÎ   )r3  r2  r4  )r2  r4  r3  r\   )
r6   r�   r7   rt   r'   Úmedianr,   r)   r“   rE  )rc   Úa0Úa1r¢  rd   r<   r<   r=   ri     s$   

 
zTestMedian.test_basicc                 C   sè   t  ddgddgddgddgg¡}|t jjdd	d
d�fD ]!}| ¡ }t j|d d� t|jƒD ]	}t j||d� q.t||ƒ qt	t j|dd�ddgƒ t	t j|j
dd�ddgƒ t	t  |¡dƒ t	t j|d d�dƒ t	t  |j
¡dƒ d S )NrK   rU   r   rM   rr   rs   rI   rV   rO  rî   r²  r   rN  )r6   r�   r  Úrandintr¾   r5  rb   r“   r(   r,   r  )rc   Úa3rd   Ú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 )NrK   rU   r   rM   rr   rs   rI   rV   Tr§  r  r  )r¨  r€   r1  rô  r¸   rT   r   )r€   r¨  )r6   r�   r7   rt   r,   r5  r¾   r  rô   r  r¿  rÀ  )rc   r9  r6  r7  r¢  Úa4r<   r<   r=   Útest_overwrite_keyword0  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—   rK   r   r   )r)   r6   r5  r,   )rc   rá   r  r<   r<   r=   rm  Q  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   r  r  Úinfo)ÚclsÚinput_arrayr?  Úobjr<   r<   r=   Ú__new__\  s   z4TestMedian.test_subclass.<locals>.MySubClass.__new__c                 S   r¿  )Néùÿÿÿr<   )rc   r€   r´   r»  r<   r<   r=   rÓ   a  rÁ  z1TestMedian.test_subclass.<locals>.MySubClass.meanr5   )NNN)rz   r{   r|   rC  rÓ   r<   r<   r<   r=   Ú
MySubClassZ  s    
rE  r—   rD  )r6   r  r'   r5  )rc   rE  rd   r<   r<   r=   rj  X  s   
zTestMedian.test_subclassrº   rÏ   rÐ   rÑ   rÒ   c                 C   s:   G dd„ dt jƒ}t  t  |¡ |¡¡}t||ƒsJ ‚dS )z6Check that we return subclasses, even if a NaN scalar.c                   @   r  )z-TestMedian.test_subclass2.<locals>.MySubclassNr  r<   r<   r<   r=   Ú
MySubclassk  r  rF  N)r6   r  r5  r�   r  rh  )rc   rº   rF  r1  r<   r<   r=   Útest_subclass2g  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Ž  rM   r<   )r6   r?   ra   r'   r5  rÚ  r<   r<   r=   rÛ  q  s   



zTestMedian.test_outc                 C   s²   t jdd��I t  ddt¡ t d¡}t d¡}tj|d< ttj	|d|d	�|ƒ t d
¡}ttj	|d|d	�|ƒ t d¡}ttj	||d	�|ƒ W d   ƒ d S 1 sRw   Y  d S )NTrU  rW  rX  rÙ  rß  r¹  r   r“  rŽ  rM   r<   )
rZ  r[  r\  rœ  r6   r?   ra   rE  r'   r5  rÚ  r<   r<   r=   rÞ  z  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¸   rK   r   r   rU   rI   r—   rà  rº  rm   rM   r»  rQ   )r6   r7   rt  rE  r'   r5  rt   r“   r†   r<   r<   r=   rá  †  s*   


 

 

 

zTestMedian.test_nan_behaviorzfp errors don't work correctlyr  c                 C   s˜  t jg td�}tjdd��(}t ddt¡ tt  |¡t j	ƒ t
|d jtu ƒ tt|ƒdƒ W d   ƒ n1 s8w   Y  t jg tdd	�}tjdd��!}t ddt¡ tt  |¡t j	ƒ t
|d jtu ƒ W d   ƒ n1 sow   Y  t jg tdd	�}tt j|dd
�|ƒ tt j|dd
�|ƒ t jt j	tdd	�}tjdd��#}t ddt¡ tt j|dd
�|ƒ t
|d jtu ƒ W d   ƒ d S 1 sÅw   Y  d S )Nr¸   TrU  rW  rX  r   rK   rU   )r´   r­  r   rM   )r6   r�   rt  rZ  r[  r\  rœ  r'   r5  rE  r&   r^  r2  )rc   rd   rø   r‡   r<   r<   r=   r�  ¦  s,   üý"ýzTestMedian.test_emptyc                 C   sL   t  d¡}ttt  | t¡¡ƒtƒ t j|d< ttt  | t¡¡ƒtƒ d S )Nr  rK   )	r6   r7   r&   r  r5  ró   r·   rt  rE  )rc   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]   r   r\   r   rn   rM   rl   rL   rQ  )r\   r³  r´  r¶  r·  rK   r¸  rº  r¹  rº  r»  rP   )r6   r  r¼  r½  r'   r5  r¾  r”   r¾   r7   rt   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´  r|  r   rÄ  rI   rÅ  rR   )r6   ra   r+   r%   r5  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Ç  r‚   rÈ  r#  rÉ  r   r¶  rÊ  )r6   ra   r'   r5  rA   r¤  r<   r<   r=   rË  ð  s&   
ÿÿÿÿÿÿzTestMedian.test_keepdimsr€   rÌ  rÍ  c                    s€   t  d¡‰|d u rdˆj }nt|ˆjƒ‰ t‡ ‡fdd„tˆjƒD ƒƒ}t  |¡}t jˆ|d|d�}||u s8J ‚t|j	|ƒ d S )Nr´  r#  c                 3   rÐ  rÑ  rÒ  rç  rÓ  r<   r=   rZ    rÕ  z/TestMedian.test_keepdims_out.<locals>.<genexpr>TrÖ  )
r6   ra   r“   r4   rE  rb   r˜  r5  r'   rA   )rc   r€   r×  r»  rÝ  r<   rÓ  r=   rØ  ÿ  s   
ÿ
zTestMedian.test_keepdims_outr´   zm8[s]rã  rä  c                 C   s¸   t jdd|d�}d||< t  |¡}|j|ksJ ‚t  |¡sJ ‚t  |ddg¡}|j|ks.J ‚t  |¡ ¡ s7J ‚t jdd|d� dd	¡}d||d
f< t j|dd�}tt  |¡g d¢ƒ d S rå  )	r6   r7   r5  r´   rè  rV  r±   rt   r(   ré  r<   r<   r=   Útest_nat_behavior  s   
zTestMedian.test_nat_behaviorN)rz   r{   r|   ri   r<  r>  rm  rj  rð   r'  r(  r6   rE  rG  rÛ  rÞ  rá  r!  r1   r�  rH  rÃ  rÆ  rË  rØ  rI  r<   r<   r<   r=   r0    s6    !ÿ
	 
þ

r0  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À   )rf  rÀ   )r9  r_  c                 C   sH   t jg d¢|d�}t  |¡}t  |¡ |¡}t||ƒ t|j|jƒ d S )N)rV   rU   rr   rK   rM   r¸   )r6   r�   Úsort_complexr  ró   r'   r´   )rc   Útype_inÚtype_outrd   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@  ù      ð?       ÀrM  rA  r`  r¸   )rM  rR  rA  r@  )r6   r�   rN  r'   r´   )rc   rd   r¼  rù   r<   r<   r=   Útest_sort_complex<  s
   

z!TestSortComplex.test_sort_complexN)rz   r{   r|   rð   r'  r(  rQ  rS  r<   r<   r<   r=   rJ  *  s    
rJ  )rÐ   )rÐ   rÒ   )~rô  rZ  rÿ  r  Ú	fractionsr   r|  rð   r  Úhypothesis.extra.numpyr   Úhypothesis.strategiesÚ
strategiesr   Ú	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$   Únumpy.exceptionsr%   Únumpy.testingr&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   Únumpy.lib._function_base_implÚlibÚ_function_base_implrÚ  Únumpy.randomr3   Únumpy._core.numericr4   r>   rF   rH   r~   rŸ   r¯   r'  r(  r»   r¼   rÍ   r)  rR  ry  r…  r‡  r‹  r¦  r²  r½  r¾  rá  rþ  rJ  rW  rq  r  r�  r‚  r  r"  r8  rë  rP  r^  rk  rn  rs  rw  r¬  rÆ  rÍ  rÔ  rí  rõ  r  rP  r  r  rî  r$  r0  rJ  r<   r<   r<   r=   Ú<module>   s²    „<Dg
# <>o u  A
)
   q,Uÿl>[j4nde C    X  c2  &