o
    ðT·jˆ“ ã                   @   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<   úe/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/numpy/lib/tests/test_function_base.pyÚget_mat    s   
r>   c                 C   s(   t  t  | |¡jt j¡}| |_||_|S )za
    Like real + 1j * imag, but behaves as expected when imag contains non-finite
    values
    )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   sH  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 t|t dgd ¡d
ƒg d¢ƒ t t|t g d¢¡d
ƒg d¢ƒ 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Ð   TrI   )r+  rM   r+  rK   r+  rU   r+  )TFTF)r+  rM   rK   r+  rU   )r'   r   Úslicer6   r�   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_multidim4  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_0d^  s   
ÿ"ÿzTestInsert.test_0dc              	   C   sä   G dd„ dt jƒ}t  d¡ |¡}ttt  |ddg¡|ƒƒ ttt  |g g ¡|ƒƒ ttt  |ddgddg¡|ƒƒ ttt  |tddƒddg¡|ƒƒ ttt  |tdddƒg ¡|ƒƒ t  d¡ |¡}ttt  |ddg¡|ƒƒ d S )	Nc                   @   r  )z*TestInsert.test_subclass.<locals>.SubClassNr  r<   r<   r<   r=   ÚSubClassf  r  r^  r½   r   rM   rK   rS   r\   )	r6   r  r7   r  r&   Ú
isinstancer   rU  r�   ©rc   r^  rd   r<   r<   r=   Útest_subclasse  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_copiedr  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_arrayw  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   rW  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ñ   rj  r6   r   )rc   rm  r<   r<   r=   Útest_index_out_of_bounds‡  s   "ÿz#TestInsert.test_index_out_of_boundsN)rz   r{   r|   ri   r[  r]  ra  rc  rh  rl  rð   r'  r(  rn  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   rt  rÚ   ©rq   rÑ   rÎ   r   r   )r×   rt  r  rM   )r  rt  r×   )r'   r6   Úamaxr†   r<   r<   r=   ri   �  ó   þzTestAmax.test_basicN©rz   r{   r|   ri   r<   r<   r<   r=   rp  �  ó    rp  c                   @   ro  )ÚTestAminc                 C   rq  )Nrr  g      Àru  rv  rw  r   r   )rÑ   rÑ   rÎ   rM   )rÑ   rÙ   rÎ   )r'   r6   Úaminr†   r<   r<   r=   ri   ›  ry  zTestAmin.test_basicNrz  r<   r<   r<   r=   r|  ™  r{  r|  c                   @   ro  )Ú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 )Nrr  r   r   ç      .@ru  rv  rw  )rÚ   r  r  r\   )rë   rë   rë   TrÝ   r]   r×   )r6   r�   r'   Úptpr†   r<   r<   r=   ri   §  s   
þzTestPtp.test_basicNrz  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   rV  é   é#   é'   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                   @   ro  )Ú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\   )rV  é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_basicNrz  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   ri  éÜ   i(  iÈ  r   r   )rV   r   é   r¢  r¡  )rM   rK   rr   rV  )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   ri  )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½   ri  rˆ  rM   rK   )r½   é   rˆ  r\   )r½   ri  é   r   r   )r+  ri  rˆ  rS   rU   rW  gæÇqÇñ?)
r6   r?   ra   r(   r   r+   r%   r�   rõ   r`   )rc   rá   Úexpr<   r<   r=   Ú	test_axis.  s   

zTestDiff.test_axisc                 C   s*  dt dddƒ }|d d …d d …dd …f |d d …d d …d d…f  }|d d …d d …dd …f |d d …d d …d d…f  }|dd …d d …d d …f |d d…d d …d d …f  }|dd …d d …d d …f |d d…d d …d d …f  }tt|ƒ|ƒ tt|dd�|ƒ tt|dd	�|ƒ tt|ddd
�|ƒ d S )Nri  r½   rˆ  rM   r\   rK   r¶  r   r   )r:   r€   )r3   r(   r   )rc   rá   Úout1r¼  r½  Úout4r<   r<   r=   r¬   >  s   4444zTestDiff.test_ndc                    sÄ   t tdƒƒ‰ tttˆ dd� ‡ fdd„tddƒD ƒ}ddgdgg g g}ttˆ dd�ˆ u ƒ tt||ƒdd	�D ])\}\}}tt|ƒt	j
u ƒ t||ƒ t|jt	jƒ tt|ƒtdtˆ ƒ| ƒƒ q6d S )
NrU   r\   r¶  c                    s   g | ]}t ˆ |d �‘qS )r¶  )r   )r   r:   ©rá   r<   r=   r!  L  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_nI  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_timesU  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=   ra  a  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_prependp  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   rW  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Î  ra  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   rX  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   )rU  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ñ   rj  r   rd   r`   r„   r<   r<   r=   Ú
test_fancy½  s$   ÿÿÿÿ"ÿzTestDelete.test_fancyc                 C   s   |   d¡ |   d¡ d S )Nr   rW  )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   r\  )r6   r�   rð   rñ   r%   r   rò   ro   r<   r<   r=   r]  Ö  s   
ÿ"ÿzTestDelete.test_0dc                 C   s–   G dd„ dt jƒ}| j |¡}ttt|dƒ|ƒƒ ttt|g ƒ|ƒƒ ttt|ddgƒ|ƒƒ ttt|tddƒƒ|ƒƒ ttt|tddƒƒ|ƒƒ d S )Nc                   @   r  )z*TestDelete.test_subclass.<locals>.SubClassNr  r<   r<   r<   r=   r^  Þ  r  r^  r   rM   rK   rS   )r6   r  rd   r  r&   r_  r   rU  r`  r<   r<   r=   ra  Ý  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   rU  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ñ   rj  r6   r   r�   rk  r„   r<   r<   r=   rl  ñ  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ñ   rj  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ê  r]  ra  rì  rl  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_badargs=  s   zTestGradient.test_badargsc                 C   sJ   t jg d¢dd�}t jg d¢dd�}tt|ƒ|ƒ t|jt  d¡kƒ d S )N)z
1910-08-16z
1910-08-11z
1910-08-10z
1910-08-12z
1910-10-12z
1910-12-12z
1912-12-12zdatetime64[D]r¸   )rs  rY   r   é   é=   iŒ  iÛ  rË  ©r6   r�   r(   r   r&   r´   ©rc   rá   rù  r<   r<   r=   Útest_datetime64M  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_maskedY  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_accurateh  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)rs  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   r/  r  Úgr<   r<   r=   Útest_f_decreasing_unsigned_intó  s   z+TestGradient.test_f_decreasing_unsigned_intc                 C   sR   t  |¡j}t  ddg¡}t jd|g|d�}t||ƒ}t||d d gd ƒ d S )NrM   rU   r\   r¸   rK   )r6   ÚiinforÉ  r�   r   r(   )rc   r/  Úmaxintrá   r  Údfdxr<   r<   r=   Útest_f_signed_int_big_jumpú  s
   
z'TestGradient.test_f_signed_int_big_jumpÚx_dtypec                 C   sB   t jg d¢|d�}t  g d¢¡}t||ƒ}t|dgt|ƒ ƒ d S )Nr™   r¸   ©r   rK   rI   rS   r0  )rc   r7  rá   r  r5  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   r3  ÚminrÉ  r�   r   r(   )rc   r7  Úminintr4  rá   r  r5  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&  r*  r-  r.  rð   r'  r(  r6   rM  r’  r”  Úuint64r2  rB  r‘  r“  Úint64r6  r9  r<  r?  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 )NrC  rM   rK   ù      ð?      ð?rÑ   r   rÐ   )
r6   r   r�   rG  r
  rH  r   r'   r  rÐ  ©rc   rá   r³  rù   r<   r<   r=   ra  )  s    zTestAngle.test_subclassN)rz   r{   r|   ri   ra  r<   r<   r<   r=   rB    ó    rB  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ej dd¡dd„ ƒZej dd¡dd„ ƒZdd „ Zej d!d"¡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>=  ó   € 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   ?  s
   þzTestTrimZeros.test_basicc                 C   s:   t jd d… }|  ¡ D ]}t|dd�}t||| ƒ qd S )Nr\   r‡   ©ÚtrimrV  rX  r<   r<   r=   Útest_leading_skipE  ó
   þzTestTrimZeros.test_leading_skipc                 C   s:   t jdd … }|  ¡ D ]}t|dd�}t||| ƒ qd S )NrK   rÀ   rZ  rV  rX  r<   r<   r=   Útest_trailing_skipK  r]  z TestTrimZeros.test_trailing_skipc                 C   sZ   |   ¡ D ]&}tj||jd�}t|dd�}t|ƒdksJ ‚t|dd�}t|ƒdks*J ‚qd S )Nr¸   ÚBrZ  r   r  )r5  r6   Ú
zeros_liker´   r!   r2  )rc   Ú_arrrº   r"  r#  r<   r<   r=   Útest_all_zeroQ  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   rW  r!   r(   )rc   rº   rY  rò  r<   r<   r=   Útest_overflow`  s   zTestTrimZeros.test_overflowc                 C   s$   t  g d¢¡}t|ƒ}t||ƒ d S )N)NrM   N©r6   r�   r!   r(   rd  r<   r<   r=   Útest_no_trimk  s   zTestTrimZeros.test_no_trimc                 C   s    t | j ¡ ƒ}t|tƒsJ ‚d S r5   )r!   rd   Útolistr_  rÇ  r>  r<   r<   r=   Útest_list_to_listp  s   zTestTrimZeros.test_list_to_listr“   )r   rM   rK   rU   r½   c                 C   s:   t  d| ¡}t j|dddd�}t|d d�}t||ƒ d S )N©rK   ©rK   rM   Úconstantr   )ÚmodeÚconstant_valuesr   )r6   ra   Úpadr!   r(   )rc   r“   rd   r‡   rò  r<   r<   r=   Útest_nd_basict  s   zTestTrimZeros.test_nd_basic©r   rM   rK   rU   c                 C   s2   t  d| ¡}t|d d�}t|t  d| ¡ƒ d S )N©rU   r   rQ  rc  )rc   r“   rd   rò  r<   r<   r=   Útest_allzero{  s   zTestTrimZeros.test_allzeroc                 C   sF   t  g d¢¡}t|dd�}t|g d¢ƒ t|dd�}t|g d¢ƒ d S )N)r   rM   rK   r   r  rZ  )rM   rK   r   r‡   rL   rg  ©rc   rd   rò  r<   r<   r=   Útest_trim_arg�  s
   zTestTrimZeros.test_trim_argr[  )ÚfrontÚ c                 C   sF   | j }tjtdd�� t||d� W d   ƒ d S 1 sw   Y  d S )Nz#unexpected character\(s\) in `trim`rì   rZ  )rd   rð   rñ   r`   r!   )rc   r[  rº   r<   r<   r=   Útest_unexpected_trim_valueŠ  s   "ÿz(TestTrimZeros.test_unexpected_trim_valueN)rz   r{   r|   r6   r�   rd   ró   rk  r‡   Úcomplexrœ   r·   rG  r5  ri   r\  r^  rb  re  rð   r'  r(  rf  rh  rj  rq  rt  rv  ry  r<   r<   r<   r=   rP  4  s8    



þþ


	rP  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<   r}  r=   Ú
test_place˜  s   
ÿzTestExtins.test_placec                 C   sH   t dƒ}|dk}| ¡ }t||ƒ}t||dƒ t|||ƒ t||ƒ d S )Nr½   r  r   )r3   r¾   r   r   r(   )rc   rd   rÐ  Úacrœ   r<   r<   r=   Ú	test_both®  s   
zTestExtins.test_bothN)rz   r{   r|   ri   r‚  r„  r<   r<   r<   r=   r{  ‘  s    r{  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÷   rK  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  rZ  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   é'  c                 S   ó   | S r5   r<   rÄ  r<   r<   r=   r~  Ü  ó    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�   rI  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=   rd  é  ó   z(TestVectorize.test_keywords.<locals>.foor—   rî   rK   rT   r#  ©r$   r6   r�   r(   ©rc   rd  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‰  rk  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  )rK  r\   r­  ©r$   r‹  rk  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\   )rK  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=   rd  ;  r¢  z5TestVectorize.test_keywords2_ticket_2100.<locals>.foor—   r}  rî   )r‡   rd   rK   ©r‡   rT   r#  r£  r¤  r<   r<   r=   Útest_keywords2_ticket_21008  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=   Ú	mypolyvalK  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_2100I  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  Z  s   z3TestVectorize.test_keywords4_ticket_2100.<locals>.frM   rK   rU   rI   rŽ  rq   r”  ©rc   r  r<   r<   r=   Útest_keywords4_ticket_2100X  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  e  s   
z3TestVectorize.test_keywords5_ticket_2100.<locals>.frM   rK   rU   rI   rq   r”  rÆ  r<   r<   r=   Útest_keywords5_ticket_2100c  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=   rd  l  ó   z5TestVectorize.test_coverage1_ticket_2100.<locals>.foorM   r”  ©rc   rd  r  r<   r<   r=   Útest_coverage1_ticket_2100k  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=   rd  s  ó   z3TestVectorize.test_assigning_docstring.<locals>.foozProvided documentation)Údoc)r$   r'   Ú__doc__)rc   rd  r  rÐ  r<   r<   r=   Útest_assigning_docstringr  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=   re  ƒ  s   
z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.barN)rz   r{   r|   r‡   re  r<   r<   r<   r=   ÚFoo€  s    rÓ  r+  rK   )r(   r$   re  r6   r7   )rc   rÓ  r<   r<   r=   Útest_UnboundMethod_ticket_1156~  s   ÿÿz,TestVectorize.test_UnboundMethod_ticket_1156c                 C   sl   t dd„ ƒ}|t d¡ƒ}|t dd¡ƒ}t dd„ ƒ}|t dd¡ƒ}|t d¡ƒ}t||ƒ t||ƒ d S )Nc                 S   r™  r5   r<   rÄ  r<   r<   r=   r~  �  rš  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>rU   r»  c                 S   r™  r5   r<   rÄ  r<   r<   r=   r~  �  rš  )r$   r6   r7   r'   )rc   Úf1Úres1aÚres1bÚf2Úres2bÚres2ar<   r<   r=   Ú test_execution_order_ticket_1487‹  s   
z.TestVectorize.test_execution_order_ticket_1487c                 C   s$   t  dd„ ¡}d}t|||ƒƒ d S )Nc                 S   r™  r5   r<   rÄ  r<   r<   r=   r~  ˜  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=   r~  «  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Ó   r}  r<   r<   r=   rÓ   Þ  r¢  z4TestVectorize.test_signature_mean_last.<locals>.meanz(n)->()rè  rM   rU   rK   rI   r”  )rc   rÓ   r  rZ  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ë  r}  r<   r<   r=   Úcenteræ  s   z3TestVectorize.test_signature_center.<locals>.centerú(n)->(n)rè  rM   rU   rK   rI   r\   r”  )rc   rí  r  rZ  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=   r~  î  ó    z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>ú	()->(),()rè  r—   rK   r   rM   )r$   r&   r_  r=  r2  r(   ©rc   r  rZ  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—   r|  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=   r~    ó    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=   rd    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=   r~    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=   r~  ,  rø  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>rî  rè  rþ  r—   c                 S   r™  r5   r<   rÄ  r<   r<   r=   r~  1  rš  rò  zwrong number of outputsrM   c                 S   rð  r5   r<   rÄ  r<   r<   r=   r~  5  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=   r~  ;  rš  z5TestVectorize.test_size_zero_output.<locals>.<lambda>r   rV   r¸   r¨  r•   c                 S   r™  r5   r<   rÄ  r<   r<   r=   r~  C  rš  rú  rè  c                 S   r™  r5   r<   rÄ  r<   r<   r=   r~  G  rš  rü  c                 S   r™  r5   r<   rÄ  r<   r<   r=   r~  J  rš  rî  c                 S   r™  r5   r<   rÄ  r<   r<   r=   r~  M  rš  c                 S   s   | gS r5   r<   rÄ  r<   r<   r=   r~  P  s    z()->(n)znew output dimensions)	r6   r$   r?   Úintr.   r`   r¨  r(   r  rá  r<   r<   r=   Útest_size_zero_output9  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  U  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=   r~  c  rñ  z/TestVectorize.test_subclasses.<locals>.<lambda>)r6   r  r�   r  r$   Úmatmulr'   r  )rc   r  r1  rø  ÚmatvecrZ  Úmultr<   r<   r=   r  T  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Ø  j  s   z#TestVectorize.test_name.<locals>.f2rØ  )r6   r$   rz   )rc   rØ  r<   r<   r=   Ú	test_nameh  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�  q  s   z1TestVectorize.test_decorator.<locals>.addsubtractr‘  r’  r“  r”  )rc   r�  rZ  r<   r<   r=   Útest_decoratorp  s   
zTestVectorize.test_decoratorc                 C   s.   t dd„ ƒ}tjjdk r|jdksJ ‚d S d S )Nc                 S   r™  )Ú	Docstringr<   rÄ  r<   r<   r=   r  |  s   z'TestVectorize.test_docstring.<locals>.frK   r	  )r$   ÚsysrÃ   ÚoptimizerÑ  rÆ  r<   r<   r=   Útest_docstring{  s   
ÿzTestVectorize.test_docstringc                 C   s0   dd„ }t |dƒ}t |¡}|dƒdksJ ‚d S )Nc                 S   r¡  r5   r<   rˆ  r<   r<   r=   rd  …  r¢  z'TestVectorize.test_partial.<locals>.foorU   rM   rI   )r   r6   r$   )rc   rd  re  Úvbarr<   r<   r=   Útest_partial„  s   

zTestVectorize.test_partialc                 C   sT   t ddgd�dd„ ƒ}|g d¢ƒ}t|jt d¡ƒ t|g d¢ƒ |jdks(J ‚d S )Nrî  rõ   rü  c                 S   r™  r5   r<   rÄ  r<   r<   r=   r  �  rÏ  z8TestVectorize.test_signature_otypes_decorator.<locals>.fr—   r  )r$   r'   r´   r6   r(   rz   ró  r<   r<   r=   Útest_signature_otypes_decoratorŒ  s   
z-TestVectorize.test_signature_otypes_decoratorc                 C   s:   t tƒ� tjdd�}W d   ƒ d S 1 sw   Y  d S )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Ê  )Nre  r<   r<   r<   r<   r=   rd  œ  rÏ  z+TestVectorize.test_no_keywords.<locals>.foor  )rc   rd  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=   r~  ¤  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=   r~  ¬  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.Ari  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   )ÚgcrQ  r  Údisabler
  Úgetrefcountrb   r  r6   Ú
frompyfuncr  r7   r'   ÚcollectÚenable)	rc   rR  Ú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   rs  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\   rs  rØ   r.  r/  r<   r<   r=   Útest_reverseã  s   zTestDigitize.test_reversec                 C   s:   t dƒ}t | ¡ | ¡ d¡}tt t||ƒdk¡ƒ d S )Nr½   r   ©r3   r6   r  r:  rÉ  r&   r±   r   )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á   r0  Ú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½   Tr3  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&   r_  r   )rc   r  rd   r‡   r<   r<   r=   r?    s
   zTestDigitize.test_return_typec                 C   s&   d}t t ||d |d g¡dƒ d S ©Nl          rM   ©r'   r6   r   rb  r<   r<   r=   Útest_large_integers_increasing$  s   "z+TestDigitize.test_large_integers_increasingz9gh-11022: np._core.multiarray._monoticity loses precisionr   c                 C   s&   d}t t ||d |d g¡dƒ d S r>  r?  rb  r<   r<   r=   Útest_large_integers_decreasing)  s   "z+TestDigitize.test_large_integers_decreasingN)rz   r{   r|   r1  r2  r5  r8  r9  r:  r;  r<  r=  r?  r@  rð   r'  ÚxfailrA  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   rI  r&   r±   r   r3   r„   r<   r<   r=   r–  3  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   rH  rI  rJ  r'  i®  éú   )r   rH  rI  rJ  r'  r¤  éŒ   )rF  Ú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_period9  s   &zTestUnwrap.test_periodN)rz   r{   r|   r–  rU  r<   r<   r<   r=   rC  1  ó    rC  Ú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´   rZ  Ú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<   rW  rM   r   r   ç      @rI   )r6   r�   r   rõ   rö   r´   r'   r   r(   ra   r)   rï   ©rc   r´   rZ  Úscalarrø   Ú	ref_dtyper<   r<   r=   Útest_hanningR  ó   zTestFilterwindows.test_hanningc                 C   r]  )	Nr¸   r<   rW  rM   r   r   gÃõ(\�Â@rI   )r6   r�   r   rõ   rö   r´   r'   r   r(   ra   r)   rï   r_  r<   r<   r=   Útest_hammingg  rc  zTestFilterwindows.test_hammingc                 C   r]  )	Nr¸   r<   rW  rM   r   r   gž^)ËÇ@rI   )r6   r�   r	   rõ   rö   r´   r'   r   r(   ra   r)   rï   r_  r<   r<   r=   Útest_bartlett|  rc  zTestFilterwindows.test_bartlettc                 C   r]  )	Nr¸   r<   rW  rM   r   r   g=
×£p=@rI   )r6   r�   r
   rõ   rö   r´   r'   r   r(   ra   r)   rï   r_  r<   r<   r=   Útest_blackman‘  rc  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   rW  rM   r   r½   r9  )r6   r�   r   rõ   rö   r´   r'   r   r(   ra   r)   rï   r_  r<   r<   r=   Útest_kaiser¦  s   
zTestFilterwindows.test_kaiser)
rz   r{   r|   Ústrr  rb  rd  re  rf  rg  r<   r<   r<   r=   r[  L  s    r[  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À  rG  rI  r)   )rc   rá   rZ  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÷   rK  ÚwxÚwyÚwzÚqÚqxÚqyÚqzrZ  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Ð  ÚymrZ  Úxmr<   r<   r=   r  é  s   
zTestTrapezoid.test_maskedN)rz   r{   r|   r–  rs  r  r<   r<   r<   r=   ri  ¼  s    %ri  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Ç  r=  r(   )rc   rá   r¤   r¥   r¦   r<   r<   r=   Útest_array_like	  s   
zTestSinc.test_array_likeN)rz   r{   r|   r–  rx  r<   r<   r<   r=   rv  ú  rV  rv  c                   @   ro  )Ú
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Úhamrd  re  rd  r{  )re  rd  r{  rz  )ù      @      @rM  ù      ð?      $@r½   r|  )rM  r}  r|  r½   )r6   r�   r&   r±   r#   rb  r<   r<   r=   r–  	  s   "zTestUnique.test_simpleN)rz   r{   r|   r–  r<   r<   r<   r=   ry  	  r{  ry  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   r€  rõ   r&   r´   ro   r<   r<   r=   Útest_dtype_order!	  s   z TestCheckFinite.test_dtype_orderN)rz   r{   r|   r–  r�  r<   r<   r<   r=   r~  	  r®   r~  c                	   @   sô   e Zd Ze g d¢g d¢g d¢g¡Ze g d¢g d¢g d¢g¡Ze g d¢g d¢g d	¢g¡Ze g d
¢g d¢g d¢g d¢g d¢g d¢g¡Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej d ejejejejg¡d!d"„ ƒZd#S )$ÚTestCorrCoef)gÿÁ°‘^³Ã?gŸ.{§<Ç?g�¥‹$,Â?)g¯ßá4Œæ?gpÖ)ßî?gÕJ¶ôGÜÑ?)gY»’‰Àí?g½�¬€«Ô?gáÞˆ0v©È?)gØ©‡¢‘º?gBÈF­Uá?g ¢G)tàß?)g3äTBâ„ê?gLÁ\ƒåè?gïÃAçÙ?)g>
“Îí?gqµFëE`å?g€5Ø¢?)rÐ   çÞ›•£¶î?çßÉár@©¿)rƒ  rÐ   çp¾è]‚4Ó?)r„  r…  rÐ   )rÐ   rƒ  r„  ç?Ä'LÓ?çÝë(÷Ð8å?çîê4V‹}à?)rƒ  rÐ   r…  çÕØw¨{¨¿ç,H¨×5ì?çjSŽ,úè?)r„  r…  rÐ   çªÀâÓóî¿çµ)h¤ïßæ?çå5#AÀ“ê?)r†  r‰  rŒ  rÐ   çƒätÄçoà¿çBCÃæ,å¿)r‡  rŠ  r�  r�  rÐ   ç@§ÿ02vï?)rˆ  r‹  rŽ  r�  r‘  rÐ   c                 C   s*   t t g d¢g d¢¡ddgddggƒ d S )Nr¨   )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  r_  r#  )rc   Útgt1Útgt2r<   r<   r=   r–  A	  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 )NÚalwaysr\   ©ÚddofrU   )r/   ÚwarningsÚsimplefilterr-   ÚDeprecationWarningr   r  Úfilterr)   r"  r_  r#  ©rc   Úsupr<   r<   r=   Ú	test_ddofJ	  s   

"øzTestCorrCoef.test_ddofc                 C   s~   t ƒ �2}t d¡ ttt| j| jddƒ ttt| jdd� | t¡ t	t| jdd�| j
ƒ W d   ƒ d S 1 s8w   Y  d S )Nr–  rM   r   )Úbias)r/   r™  rš  r-   r›  r   r  r_  rœ  r)   r"  r�  r<   r<   r=   Ú	test_biasV	  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Ð   rD  rA  )r6   r�   r   r,   r&   r±   r  )rc   rá   rò  rš  r<   r<   r=   Útest_complex`	  s
   
zTestCorrCoef.test_complexc                 C   sH   t  g d¢g¡}t  g d¢g¡}tt  ||¡t  ddgddgg¡ƒ d S r¢  )r6   r�   r,   r   ©rc   rá   r÷   r<   r<   r=   Útest_xyg	  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 ©NT©Úrecordr–  r   rK   )
r™  Úcatch_warningsrš  ÚRuntimeWarningr(   r   r6   r�   rE  rt   r„   r<   r<   r=   Ú
test_emptyl	  ó   ÿÿ"û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_extremeu	  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_dtype|	  ó   z TestCorrCoef.test_corrcoef_dtypeN)rz   r{   r|   r6   r�   r  r_  r"  r#  r“  r–  rŸ  r¡  r¤  r¦  r­  r±  rð   r'  r(  ÚhalfÚsingleÚdoubleÚ
longdoubler¶  r<   r<   r<   r=   r‚  (	  sL    þÿþÿþÿûÿ	
	r‚  c                   @   sd  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*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   �	  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Ð   rD  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¨  )
r™  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 )NTr©  r–  rV   r—  )
r™  r«  rš  r¬  r(   r   r¿  r6   r�   r  r„   r<   r<   r=   Útest_wrong_ddof§	  s   ÿÿ"þzTestCov.test_wrong_ddofc                 C   sJ   t t| jƒt| jdd�ƒ t g d¢¡}t t| j|ƒt| j|dd�ƒ d S )NF)Ú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`   rw  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_dtypec                 C   s>   t  d¡}t j|ddd�}t j|jddd�}t||dd� d S )Nrñ  r   T)r˜  rÃ  F)Ústrict)r6   ra   r   r  r,   rN  r<   r<   r=   Útest_gh_27658ì	  s   
zTestCov.test_gh_27658N)&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=   r¼  ƒ	  s2    $
	
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?Û�?rt  )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³  r_  Ú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<   r}  r<   r=   Ú
array_like
  s    rÞ  )r6   r7   r_  r  r   r(   )rc   rÞ  rÀ  rò  r<   r}  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   ru  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_beta6
  rŠ  zTestKaiser.test_int_betaN)rz   r{   r|   r–  rå  r<   r<   r<   r=   rß  '
  rO  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_inputG
  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_inputK
  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ë  rK  r<   r<   r=   Útest_indexingP
  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_sparsed
  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_argumentsi
  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¸   ri  T)r¾   rô  )r6   r7   rô   rõ   r   r&   r´   )rc   rá   r÷   rê  rë  r<   r<   r=   r?  p
  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_writebackˆ
  s   zTestMeshgrid.test_writebackc                 C   sh   t jdd„ tddƒD ƒŽ \}}}}}d}t|j|ƒ t|j|ƒ t|j|ƒ t|j|ƒ t|j|ƒ d S )Nc                 s   s   � | ]}d g| V  qdS )r   Nr<   ©r   r•   r<   r<   r=   rS  “
  rT  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_shape’
  s   $zTestMeshgrid.test_nd_shapec                 C   sp   t  dgddgg d¢¡\}}}t|g d¢gg d¢ggƒ t|g d¢gg d¢ggƒ t|g d¢gg d¢ggƒ d S )Nr   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÷  r?  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=   r~  ¿
  rš  z+TestPiecewise.test_simple.<locals>.<lambda>r\   z1 or 2 functions are expectedr—   )r   r(   r6   r�   r.   r`   rb  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(   rb  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'   rb  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   rb  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=   r]  Ø
  s   
zTestPiecewise.test_0dc                 C   s¨   d}t ||dk|dkgddgƒ}t|dƒ d}t ||dk|dk|dk |dkgg d¢ƒ}t|dƒ ttdt ||dk|dkgdgƒ ttdt ||dk|dkgg d	¢ƒ d S )
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á   rZ  r<   r<   r=   r    s
   zTestPiecewise.test_subclassesN)rz   r{   r|   r–  r  r  r  r]  r  r  r  r  r<   r<   r<   r=   rÿ  ¨
  s    	rÿ  c                   @   sÜ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Z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ej d"ejd# ¡d$d%„ ƒZd&d'„ Z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_weights1  ó   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­  7  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_listA  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=   r~  J  ó    z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>zmust not be negativec                      r  ©Nr\   r  r  r<   rÄ  r<   r=   r~  M  r  rV   c                      r  r  r  r<   rÄ  r<   r=   r~  R  r  c                      r  r  r  r<   rÄ  r<   r=   r~  U  r  )r6   r�   r  r.   rò   r`   r7   r„   r<   rÄ  r=   Útest_with_incorrect_minlengthF  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_leaksW  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_1dg  s   

ÿ
"ÿzTestBincount.test_error_not_1dr,  rX  c                 C   s2   t jg d¢|d�}t  |¡}g d¢}t||ƒ d S )N©r   rM   rM   rU   rK   rM   rs   r¸   ©rM   rU   rM   rM   r   r   r   rM   r  )rc   r,  rd   rù   r³  r<   r<   r=   Útest_gh_28354p  s   
zTestBincount.test_gh_28354c                 C   s   t  t  d¡d d d… ¡ d S )Nr˜  rK   )r6   r  r7   r„   r<   r<   r=   Útest_contiguous_handlingw  s   z%TestBincount.test_contiguous_handlingc                 C   s4   G dd„ dƒ}|ƒ }t  |¡}g d¢}t||ƒ d S )Nc                   @   ro  )z0TestBincount.test_gh_28354_array_like.<locals>.Ac                 S   s   t jg d¢t jd�S )Nr*  r¸   )r6   r�   r@  r„   r<   r<   r=   Ú	__array__}  s   z:TestBincount.test_gh_28354_array_like.<locals>.A.__array__N)rz   r{   r|   r.  r<   r<   r<   r=   r  |  s    r  r+  )r6   r  r(   )rc   r  rd   rù   r³  r<   r<   r=   Útest_gh_28354_array_like{  s
   
z%TestBincount.test_gh_28354_array_likeN)rz   r{   r|   r–  r	  r  r  r  r  r  r­  r  rð   r'  r(  r  r   r,  r0   r%  r)  r6   Ú	typecodesr,  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   rE  éh  )r+   r`   r   r„   r<   r<   r=   Útest_exceptionsˆ  s
   zTestInterp.test_exceptionsc                 C   sB   t  ddd¡}t  ddd¡}t  ddd¡}tt  |||¡|ƒ d S )Nr   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   )r7  r9  )r   rM   rM   rK   )	rb   r6   r7   rº  ra   r�   r   rk  r'   )
rc   ÚsizeÚxpÚypÚincptsÚdecptsÚincresÚdecresÚinctgtÚdectgtr<   r<   r=   Útest_right_left_behavior•  s<   






àz#TestInterp.test_right_left_behaviorc                 C   s¦   t  ddd¡}t  ddd¡}d}tt  |||¡|ƒ d}tt  |||¡|ƒ t  d¡}tt  |||¡|ƒ t  d¡}tt  |||¡|ƒ t j}tt  |||¡|ƒ d S )Nr   rM   rV   r  )r6   r  r)   r   rô   rõ   rE  r4  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   r  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=   r~  Ò  ó   
 zTestInterp.<lambda>c                 C   s
   t | dƒS rK  ©rF   rÄ  r<   r<   r=   r~  Ó  rI  c                 C   s
   t d| ƒS rK  rJ  rÄ  r<   r<   r=   r~  Ô  rI  c                 C   s   t | t | d¡ƒS )NrS   )rF   r6   ÚmultiplyrÄ  r<   r<   r=   r~  Õ  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   rP  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   r  rE  rQ  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   NrS  rQ  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   r  rQ  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½   NrV  rQ  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\   ù       @      @r6  rÎ   r8  rE  r…  ù       @      ð?rI   y              à?©iLÿÿÿiVÿÿÿiGÿÿÿé¹   rj  rs  r   im  ©é¾   iBÿÿÿi^  i¢þÿÿ)ù      @      ð?y      $@       @ù      @      @y      @      @)y      @      ø?r_  y     €!@      ü?y      @      ô?r`  y      
@      
@y      @      @y      @      @r2  rE  )r6   r  r)   r   r  )	rc   rá   r÷   r5  Úy0r7  r9  r;  rF  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  r8  )rM   r\   rM   r^  rI   rE  r  )	r6   r  r�   r)   r   r'   r&   r_  rõ   )rc   rá   r÷   r5  r;  rF  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   rI  )rc   r;  rF  r<   r<   r=   Útest_if_len_x_is_small8  s   
z!TestInterp.test_if_len_x_is_smallc                 C   s€   g d¢}g d¢}g d¢}g d¢}t tj|||dd�|ƒ tj|dd� d	d
¡}tj|dd� d	d
¡}t tj|||dd�|ƒ d S )Nr[  r]  )rV   r½   rU   rI   )g      @rÚ   ç     €!@g      @rÑ   g      
@ç      @g      @r2  rE  rÀ   rÁ   rK   r\   r/  )r)   r6   r   r�   rt   )rc   rá   r;  rF  r÷   r<   r<   r=   rU  =  s   zTestInterp.test_periodN)rz   r{   r|   r3  ri   rC  rD  rG  rð   ÚfixturerP  rR  rT  rU  rW  rX  rb  rc  re  rU  r<   r<   r<   r=   r1  †  s0    &üû
		r1  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  rg  rj   rÖ   rM   Únearest©ÚmethodÚinverted_cdf©rl  rß   )r6   r7   r'   Ú
percentilerE  rk  rb  r<   r<   r=   ri   J  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!  Z  r"  z0TestPercentile.test_fraction.<locals>.<listcomp>rq   r   rO  rs   rK   rj   rI   )rb   r6   ro  r   r'   r  r�   r  )rc   rá   r¼  r<   r<   r=   Útest_fractionY  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   ro  )rc   rG  Úor<   r<   r=   Útest_apil  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ò   ro  ©rc   Úarr_cr<   r<   r=   r¤  s  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(   ro  rb  r<   r<   r=   Útest_2D{  s   
üzTestPercentile.test_2Dr´   rY  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¸   rr  rk  )r6   r'  rE  ro  Útestingr'   r´   )rc   r´   rº   rò  r<   r<   r=   Útest_linear_nan_1Dƒ  s   ýz!TestPercentile.test_linear_nan_1Dc                 C   s   g | ]}|t jf‘qS r<   rH  )r   Úint_typer<   r<   r=   r!  Ž  s    ÿzTestPercentile.<listcomp>rX  rW  ÚfunctionÚquantiler¾  r}  Úinput_dtypeÚexpected_dtype)rl  Úweightedr³  )
)rm  Fri  )rm  Tri  )Úaveraged_inverted_cdfFç     €;@)Úclosest_observationFri  )Úinterpolated_inverted_cdfFri  )ÚhazenFrˆ  )ÚweibullFé   )rr  Fr¿  )Úmedian_unbiasedFrŽ  )Únormal_unbiasedFg      ;@c                 C   sè   t  |¡}t jg d¢|d�}|rt  |¡nd }	|t ju r*|t ju r%|dƒ}t jj}
nt jj}
|||||	d�}|
|| 	|¡ƒ |dv rd|dkrTt j 
t  |¡jt j¡ d S t j 
t  |¡jt  |¡¡ d S t j 
t  |¡jt  |¡¡ d S )N)r  g      4@r|  r}  r~  r¸   z0.4rn  )rm  r‰  rW  )r6   r´   r'  rk  r»  rƒ  r  r)   Úassert_array_almost_equal_nulpr  r'   rõ   )rc   r‚  rƒ  rl  r†  r³  r„  r…  rº   rß   Útest_functionrù   r<   r<   r=   Útest_linear_interpolation–  s&   



ÿÿz(TestPercentile.test_linear_interpolationc                 C   sD   t tjtjd|d�ddd�dƒ t tjtjd|d�ddd�dƒ d S )	Nr½   r¸   rj   Úlowerrk  rI   ÚhigherrV   ©r'   r6   ro  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   Úmidpointrk  r^  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™  rj  rk  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   ro  r  r'   rÉ  r:  )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   rg  rÖ   )r6   r7   r'   ro  rb  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   )rf  rÛ   rØ   rM   r2  rV   rr   ©rû  rj   rk  )rû  rj   rH  rs  )rK   rI   rV   rr   )rK   rU   rV   rr   rK   )rK   rU   rI   rr   )rU   rU   rV   rr   r”  rk  ©r€   rl  )r6   r7   rt   r'   ro  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“  rk  rÚ   )rl  r€   )rÐ   rÚ   r  r<   r¸   ©rl  r²  rV   ©rl  r€   r²  )r6   r7   rt   r'   ro  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  rk  ée   r\   rj   r¹  )r+   r`   r6   ro  rÇ  rb   r„   r<   r<   r=   Útest_exceptionF  s   ÿ $zTestPercentile.test_exceptionc                 C   s   t t g d¢d¡dƒ d S )Nr—   r   rM   )r'   r6   ro  r„   r<   r<   r=   Útest_percentile_listN  s   z#TestPercentile.test_percentile_listzpercentile, with_weightsFrm  rk  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—   rs  r¸   )r²  rß   ré   r˜   rÒ  r   )r€   r²  rß   rê   r±  rM   r   rU   rI   rr  rç  )rÎ   rÑ   rÙ   rÚ   r¥  )rK   rI   r¢  )r¡  r  rf  r¦  rÊ  r¨  r“  rª  )r   rI   rq   )rM   rV   r+  )r  rk  r6   r�   r?   rk  r'   r7   rt   r¬  ro  r´   )rc   ro  Úwith_weightsÚ	out_dtyperá   r÷   r¼  rß   rZ  r¤  r²  rž  rœ   r<   r<   r=   Útest_percentile_outQ  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   rW  rš  r£  r½   )rK   rM   rK   rM   )rK   rØ   rK   rM   )rK   rØ   rM   rM   )rK   rØ   rM   rK   )r6   r7   rt   r(   ro  rA   r�   ©rc   rG  r<   r<   r=   Útest_percentile_empty_dim‹  sB   ÿþÿþÿÿÿÿz(TestPercentile.test_percentile_empty_dimc                 C   sh   t  g d¢¡}t j|dgdd� t|t  g d¢¡ƒ t  g d¢¡}t  |dg¡ t|t  g d¢¡ƒ d S )N©rK   rU   rI   rM   rj   F©Úoverwrite_input©r6   r�   ro  r'   ro   r<   r<   r=   Útest_percentile_no_overwrite§  s   z+TestPercentile.test_percentile_no_overwritec                 C   s„   t jdddd�}t jt  d¡|dd� t|t jdddd�ƒ t jdddd� ¡ }t jt  d¡|dd� t|t jdddd� ¡ ƒ d S )NrÒ   ç      Y@rV   )Únumrš  rk  )r6   r  ro  r7   r(   ri  )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   rW  rK   ©rU   rM   rK   r±  rl  ©rM   rS   ©rM   rU   rP   )r6   r  ÚnormalÚdstackr'   ro  Úmoveaxisr”   r¾   r7   rt   ÚshuffleÚravelÚflatten©rc   rs  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Ç  rs  rû  )r€   ro  ©r   rs  rI   ©r   rI   rR   )r\   r\   )rU   r\   )r6   ra   r+   r%   ro  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Ø   rr  )rÞ   rÉ  ©rM   rM   rs   rM   rM   )rK   rM   rM   rs   rM   )rK   rM   rV   rs   rM   )r6   ra   r'   ro  rA   r·  r<   r<   r=   Útest_keepdimsë  s:   
ÿÿÿÿÿÿÿÿÿÿzTestPercentile.test_keepdimsro  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=   rS    ó   € 
ÿz3TestPercentile.test_keepdims_out.<locals>.<genexpr>T©r€   rÞ   r²  )
r6   ra   r“   r4   r=  rb   rA   r¬  ro  r'   )rc   ro  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§  rj  r©  rs  rM   r<   rK   )r6   r?   ra   r'   ro  ©rc   rs  rG  r<   r<   r=   Útest_out  s   



zTestPercentile.test_outzmethod, weighted))rr  F)rj  F)rm  F)rm  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ß   rl  rl  Tr©  r–  rx  rë  rl  r   r²  rs  rM   r<   )
r6   ra   r™  r«  Úfilterwarningsr¬  r?   rE  r'   ro  )rc   rl  r†  Úkwargsrs  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 )NrV  r¸   rK   r  r   r   ç333333ã?rU   rI   r—   ©rM   rM   rK   rÊ  rm   rM   rÍ  rQ   rj  rk  )	r6   r7   rk  rE  r'   ro  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   ro  rE  r  )rc   ro  r<   r<   r=   Ú
test_nan_q{  s   ÿÿ
"ÿzTestPercentile.test_nan_qzm8[D]zM8[s]Úpos©r   rÄ  r½   c                 C   s¼   t jdd|d�}d||< t  |d¡}|j|ksJ ‚t  |¡s J ‚t  |ddg¡}|j|ks/J ‚t  |¡ ¡ s8J ‚t jdd|d� dd	¡}d||d
f< t j|ddd�}tt  |¡g d¢ƒ d S ©Nr   rV  r¸   ÚNaTrˆ  rë  éH   r\   rU   rM   r   r,  )r6   r7   ro  r´   Úisnatr±   rt   r(   ©rc   r´   rö  rd   rò  r<   r<   r=   Útest_nat_basic†  s   zTestPercentile.test_nat_basicN)0rz   r{   r|   ri   rq  rt  r¤  r{  rð   r'  r(  r6   r0  r€  r+  rô   rõ   r»  r´   ÚH_F_TYPE_CODESrƒ  ro  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=   ri  H  sŠ    

ÿ



üþÿÿÿ$



	$0þþ
3	 þ

=ri  )rm  r‡  r‰  rŠ  r‹  rŒ  rr  rŽ  r�  rj  r“  r”  rš  rm  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!e
j de¡d4d5„ ƒZ"d6d7„ Z#e
j de$e%eƒe%eƒ ƒ¡d8d9„ ƒZ&d:d;„ Z'd<d=„ Z(d>S )?ÚTestQuantilec                 C   s   ||k| S r5   r<   )rc   rá   r÷   Úalphar<   r<   r=   r.  §  s   zTestQuantile.Vc                 C   s*   g d¢}t  |d¡}t jj|ddd� d S )N)rÒ   r
  r¾  gÍÌÌÌÌÌÜ?g
×£p=
Ç?rM   )Úmaxulp)r6   rƒ  r  Úassert_array_max_ulp)rc   rá   rd   r<   r<   r=   Útest_max_ulp«  s   zTestQuantile.test_max_ulpc                 C   sH   t  d¡d }tt  |d¡dƒ tt  |d¡dƒ tt  |d¡dƒ d S )Nrq   r  r   rÒ   rM   rg  rÖ   )r6   r7   r'   rƒ  rb  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�   rƒ  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   rp  rk  r   rù  r<   r<   r=   r!  Å  r"  z.TestQuantile.test_fraction.<locals>.<listcomp>rq   r   rM   rs   rK   r  rÖ   rI   )
rb   r6   rƒ  r'   r  r   rõ   r�   r  r7   )rc   rá   ro  r<   r<   r=   rq  Ã  s*   


"zTestQuantile.test_fractionc                 C   ru  rv  )r6   r�   r+   rò   rƒ  ry  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š  rk  )r6   r�   r¾   rƒ  r7   r(   ri  )rc   Úp0r¼  r<   r<   r=   rÀ  ë  s   
z TestQuantile.test_no_p_overwriter´   rX  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  rj  rk  )r6   rƒ  r�   r´   )rc   r´   rò  r<   r<   r=   Útest_quantile_preserve_int_type÷  s   ÿz,TestQuantile.test_quantile_preserve_int_typerl  c                 C   s4   g d¢}t j|ddg|d�}t|t  ddg¡ƒ d S )N)r½   rØ   r   r   rM   )ro  rl  r½   r   )r6   rƒ  r'   r�   )rc   rl  rº   rƒ  r<   r<   r=   Útest_q_zero_oneý  s   zTestQuantile.test_q_zero_onec                 C   sd   t  ddd¡}t jt  g d¢¡d ||d�}tt  |¡|ƒ t jg d¢||d�}tt  |¡|ƒ d S )Nr   rM   r±  )r   rM   rM   rK   rK   rU   rU   rI   rV   rV   rM   rM   r+  r+  r+  rq   rq   rs   r»  rk  )rÒ   rÐ   rÎ   rÑ   )r6   r  rƒ  r�   r'   r  )rc   rl  r  rƒ  r<   r<   r=   Útest_quantile_monotonic  s   ÿÿz$TestQuantile.test_quantile_monotonicrU   rG  )Ú	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   rƒ  r'   r  )rc   rº   r  rƒ  r<   r<   r=   Útest_quantile_monotonic_hypo  s   z)TestQuantile.test_quantile_monotonic_hypoc                 C   sV   t  g d¢g d¢g¡}t j|d d< t  |d¡}t  |¡sJ ‚tt  |d¡t jƒ d S )N)rt  r  rÙ   )rÑ   rÎ   rÐ   r   rM   r  )r6   r�   rE  rƒ  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:  rn  )r”  r»  ré   g›+¡†›„=)ÚatolrM   )Úmethods_supporting_weightsrð   Úskipr6   r  Údefault_rngÚintegersrƒ  r  rÓ   r.  r  r,   r   r}  )	rc   rß   rl  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  rn  g      +@rM   rk  rm  r”  r“  r‰  rŠ  rj  )r  rð   r  r6   r  r  r   rƒ  r,   r  Úround)
rc   rß   rl  r  r!  r:   r÷   rø   ro  rœ   r<   r<   r=   Ú'test_quantile_add_and_multiply_constantH  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  rk  rn  g     @ @)r6   r  r  rƒ  rk  r,   )	rc   rl  r  r!  r:   r÷   ro  rø   Úqwr<   r<   r=   Útest_quantile_constant_weights‹  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´   rn  rk  )r6   r  r  r   r“  rƒ  rX  r,   )	rc   rl  r  r!  r:   r÷   rø   r%  ro  r<   r<   r=   Ú"test_quantile_with_integer_weightsŸ  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ß   rl  r€   rÊ  rä  rK   rU   rn  )r   r
  r¾  rò  rº  rM   )rr   rK   rU   r   r
  r¾  rò  rº  )rU   rK   rK   rU   )	r6   r  r  r  rƒ  r?   rb   r,   rt   )
rc   rl  r!  r÷   rø   r  ro  Úq_resr•   r$  r<   r<   r=   Ú#test_quantile_with_weights_and_axis°  sL   
ÿÿ
ÿÿ


$ÿÿz0TestQuantile.test_quantile_with_weights_and_axisc                 C   sZ   g d¢}t  d¡}t j|d|dd�}t j|d|dd�}||d ks#J ‚||d ks+J ‚d S )	N)r   r   rM   rK   rU   r   rr   r   rm  rî  rM   rK   rI   )r6   r7   rƒ  )rc   rl  rø   r÷   Úy_minÚy_maxr<   r<   r=   Útest_quantile_weights_min_maxÞ  s   
z*TestQuantile.test_quantile_weights_min_maxc                 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  rm  rî  ©rð   rñ   r`   r6   rƒ  )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   rl  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½   rŒ  rk  rK   ri  )r   r6   rƒ  r'   r�   )rc   rº   rƒ  r<   r<   r=   Útest_weibull_fractionú  s
   z"TestQuantile.test_weibull_fractionc                 C   sü   d}d}g d¢}t dtj|dd… ||d�ƒ t dtj|dd… ||d�ƒ t dtj|dd	… ||d�ƒ t dtj|dd
… ||d�ƒ t dtj|dd… ||d�ƒ t dtj|dd… ||d�ƒ t dtj|dd… ||d�ƒ t d	tj|||d�ƒ d S )Nr‰  r  )
rM   rK   rU   rI   rV   rr   rs   rq   r+  r½   rK   r   rU   rk  rI   rV   rr   rs   rq   r+  )r'   r6   rƒ  )rc   r1  ro  rº   r<   r<   r=   Útest_closest_observation  s   z%TestQuantile.test_closest_observationN))rz   r{   r|   r.  r  ri   r  rq  r¤  rÀ  rð   r'  r(  r6   r0  r	  Úquantile_methodsr
  r  Ú
hypothesisÚgivenr   rõ   Ústr   Úfloatsr  r  r"  r$  r  r&  r'  r)  r,  r.  ÚsortedÚsetr/  r0  r1  r<   r<   r<   r=   r   ¤  sd    
	


ÿþÿ
"@
-

þ
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   rA  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   rA  rd   r‡   r7  r9  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‡   rA  r<   r<   r=   Ú+test_linear_interpolation_formula_0d_inputs;  s   


z4TestLerp.test_linear_interpolation_formula_0d_inputsN)rz   r{   r|   r3  r4  r5  r6  r@  rB  rC  rD  r<   r<   r<   r=   r9    sL    ÿÿÿÿú

ÿÿÿü
ÿÿÿü
r9  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  rg  rI   )çð™6-Â¦?çº¤0”¸§?çºÝË}rÂ?g©Á4¯?rÎ   )rH  rG  rI  )rG  rI  rH  r\   )
r6   r�   r7   rt   r'   Úmedianr,   r)   r“   rE  )rc   Úa0Úa1r™  rd   r<   r<   r=   ri   D  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   rg  )r6   r�   r  Úrandintr¾   rJ  rb   r“   r(   r,   r  )rc   Úa3rd   ÚorigÚaxr<   r<   r=   Útest_axis_keywordZ  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€   rF  rë  r¸   rT   r   )r€   r»  )r6   r�   r7   rt   r,   rJ  r¾   r  rô   r  rÑ  rÒ  )rc   rN  rK  rL  r™  Úa4r<   r<   r=   Útest_overwrite_keywordl  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   rJ  r,   )rc   rá   r  r<   r<   r=   rx  �  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_arrayrT  Úobjr<   r<   r=   Ú__new__˜  s   z4TestMedian.test_subclass.<locals>.MySubClass.__new__c                 S   rÊ  )Néùÿÿÿr<   )rc   r€   r´   r²  r<   r<   r=   rÓ   �  rÌ  z1TestMedian.test_subclass.<locals>.MySubClass.meanr5   )NNN)rz   r{   r|   rX  rÓ   r<   r<   r<   r=   Ú
MySubClass–  s    
rZ  r—   rY  )r6   r  r'   rJ  )rc   rZ  rd   r<   r<   r=   ra  ”  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=   Ú
MySubclass§  r  r[  N)r6   r  rJ  r�   r  r_  )rc   rº   r[  r1  r<   r<   r=   Útest_subclass2£  s   zTestMedian.test_subclass2c                 C   sl   t  d¡}t  d¡}tt j|d|d�|ƒ t  d¡}tt j|d|d�|ƒ t  d¡}tt j||d�|ƒ d S )Nrë  rñ  r   r§  rs  rM   r<   )r6   r?   ra   r'   rJ  rì  r<   r<   r=   rí  ­  s   



zTestMedian.test_outc                 C   s²   t jdd��I t  ddt¡ t d¡}t d¡}tj|d< ttj	|d|d	�|ƒ t d
¡}ttj	|d|d	�|ƒ t d¡}ttj	||d	�|ƒ W d   ƒ d S 1 sRw   Y  d S )NTr©  r–  rx  rë  rñ  rl  r   r§  rs  rM   r<   )
r™  r«  rï  r¬  r6   r?   ra   rE  r'   rJ  rì  r<   r<   r=   rñ  ¶  s   




"÷zTestMedian.test_out_nanc                 C   sf  t jdtd�}t j|d< tt  |¡t jƒ tt j|dd�t jƒ t jdtd� ddd¡}t j|d< t j|d	< tt  |¡t jƒ tt  |¡jdƒ t  t jdtd� ddd¡d¡}t j|d
< t j|d< tt  |d¡|ƒ t  t jdtd� ddd¡d¡}t j|d< t j|d< tt  |d¡|ƒ t  t jdtd� ddd¡d¡}t j|d< t j|d< tt  |d¡|ƒ d S )NrV  r¸   rK   r   r   rU   rI   r—   ró  rÊ  rm   rM   rÍ  rQ   )r6   r7   rk  rE  r'   rJ  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¸   Tr©  r–  rx  r   rK   rU   )r´   r½  r   rM   )r6   r�   rk  r™  r«  rï  r¬  r'   rJ  rE  r&   Úcategoryr2  )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  rJ  ró   r·   rk  rE  )rc   rs  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±  rl  rÌ  rÍ  rP   )r6   r  rÎ  rÏ  r'   rJ  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Ç  rs  r   rÖ  rI   r×  rR   )r6   ra   r+   r%   rJ  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Û  rr  rÉ  rÜ  )r6   ra   r'   rJ  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=   rS  K  rç  z/TestMedian.test_keepdims_out.<locals>.<genexpr>Trè  )
r6   ra   r“   r4   r=  rb   r¬  rJ  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   rJ  r´   rû  ro  r±   rt   r(   rü  r<   r<   r=   Útest_nat_behaviorR  s   
zTestMedian.test_nat_behaviorN)rz   r{   r|   ri   rQ  rS  rx  ra  rð   r'  r(  r6   rE  r\  rí  rñ  rô  r,  r1   r­  r^  rÕ  rØ  rÝ  rê  r_  r<   r<   r<   r=   rE  B  s6    !ÿ
	 
þ

rE  c                   @   s.   e Zd Zej dg d¢¡dd„ ƒZdd„ ZdS )ÚTestSortComplexztype_in, type_out))Úlrx  )ÚhrÀ   )ÚHrÀ   )r‡   rÀ   )r_  rÀ   )r1  rw  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_realh  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)rY  ù      ð?       ÀrE  rZ  rx  r¸   )rE  rh  rZ  rY  )r6   r�   rd  r'   r´   )rc   rd   r³  rù   r<   r<   r=   Útest_sort_complexx  s
   

z!TestSortComplex.test_sort_complexN)rz   r{   r|   rð   r'  r(  rg  ri  r<   r<   r<   r=   r`  f  s    
r`  )rÐ   )rÐ   rÒ   )~rÿ  r™  r
  r  Ú	fractionsr   r†  rð   r3  Úhypothesis.extra.numpyr   Úhypothesis.strategiesÚ
strategiesr5  Ú	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  rp  r|  r~  r‚  r�  r©  r´  rµ  rØ  rö  rB  rP  r{  r‰  r‹  rŒ  r  r-  rC  r0  r[  ri  rv  ry  r~  r‚  r¼  rØ  rß  ræ  rÿ  r  r1  ri  r2  r  r   r9  rE  r`  r<   r<   r<   r=   Ú<module>   s²    „<Dg
# <>k u  ]
)
   q,Uÿl>[p4ndz C    V  n2  &