o
    Ô­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mZm	Z	 d dl
mZmZmZmZmZmZ e dejddejdgd	d
ejdddgejejejdejdgdejejddejgg¡Ze g d¢¡e g d¢¡e ddg¡e g d¢¡gZe g d¢g d¢g d¢g d¢g¡Ze g d¢g d¢g d¢g d¢g¡ZG dd„ dƒZG d d!„ d!ƒZG d"d#„ d#ƒZe d$¡e g d%¢¡d&œZe ¡ D ]Zejd'd(� q»ej d)ej d* ej d+  d, ¡ejjd-e ¡ e !¡ d.�G d/d0„ d0ƒƒƒZ"G d1d2„ d2ƒZ#G d3d4„ d4e#ƒZ$G d5d6„ d6e#ƒZ%G d7d8„ d8e#ƒZ&d9Z'e(ej d+ ƒZ)e)d:d;„ e'D ƒ7 Z)G d<d=„ d=ƒZ*G d>d?„ d?ƒZ+G d@dA„ dAƒZ,ej dBe ejdCejej-g¡e g dD¢¡fejg dE¢ej.dF�dGfe g dD¢¡dGfejejdCgejej-ggej/dF�e d'dGgd'dGgg¡fg¡dHdI„ ƒZ0dJdK„ Z1dS )Lé    N)Únormalize_axis_tuple)Ú	_nan_maskÚ_replace_nan)Úassert_Úassert_equalÚassert_almost_equalÚassert_raisesÚassert_array_equalÚsuppress_warningsç³êsµûã?ç&S£’:Ñ?çàœ¥½Á‡?çÁÊ¡E¶ó½?çÞ	Šá?ç»¸�ðî¿çáz®GáÊ?çL¦
F%uÞ?ç6<½R–!Ò?ç[B>èÙ¬º?ç“:M„ã¿çÏ÷Sã¥›Ä?çzÇ):’ËÇ?ç•Ô	h"Ô?)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   r   )r   r   r   r   r   r   c                   @   sÂ   e Zd Zejejejejejej	ej
ejejejejejejejejejejejejejejejejejejejejejiZ dd„ e D ƒZ!e"ddd„ƒZ#e$j%j&de  '¡ e!d�dd	„ ƒZ(d
d„ Z)dS )ÚTestSignatureMatchc                 C   ó   g | ]}|j ‘qS © ©Ú__name__)Ú.0Úkr   r   ú^/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/lib/tests/test_nanfunctions.pyÚ
<listcomp>9   ó    zTestSignatureMatch.<listcomp>ú...c                 C   sT   g }t  | ¡}|j ¡ D ]}|jt jju r| |¡ q| |j|d�¡ qt  	|¡S )z?Construct a signature and replace all default parameter-values.)Údefault)
ÚinspectÚ	signatureÚ
parametersÚvaluesr&   Ú	ParameterÚemptyÚappendÚreplaceÚ	Signature)Úfuncr&   Úprm_listr(   Úprmr   r   r"   Úget_signature;   s   

z TestSignatureMatch.get_signatureznan_func,func©Úidsc                 C   s&   |   |¡}|   |¡}tj ||¡ d S ©N)r3   ÚnpÚtestingr   )ÚselfÚnan_funcr0   r(   Únan_signaturer   r   r"   Útest_signature_matchG   s   

z'TestSignatureMatch.test_signature_matchc                 C   s"   t j t| jƒtt jjjƒ¡ dS )z4Validate that all nan functions are actually tested.N)r7   r8   r   ÚsetÚIDSÚlibÚnanfunctionsÚ__all__©r9   r   r   r"   Útest_exhaustivenessP   s   ÿz&TestSignatureMatch.test_exhaustivenessN)r%   )*r   Ú
__module__Ú__qualname__r7   ÚnanminÚaminÚnanmaxÚamaxÚ	nanargminÚargminÚ	nanargmaxÚargmaxÚnansumÚsumÚnanprodÚprodÚ	nancumsumÚcumsumÚ
nancumprodÚcumprodÚnanmeanÚmeanÚ	nanmedianÚmedianÚnanpercentileÚ
percentileÚnanquantileÚquantileÚnanvarÚvarÚnanstdÚstdÚNANFUNCSr>   Ústaticmethodr3   ÚpytestÚmarkÚparametrizeÚitemsr<   rC   r   r   r   r"   r   (   s,    ò
r   c                	   @   sþ   e Zd ZejejgZejejgZ	dd„ Z
dd„ Zdd„ Zdd„ Zd	d
„ Zej dg d¢¡ej dejd ¡ejjde ej¡e dej¡gddgd�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jd ¡d d!„ ƒZd"S )#ÚTestNanFunctions_MinMaxc                 C   ó*   t  ¡ }| jD ]}||ƒ t|t ƒ qd S r6   ©Ú_ndatÚcopyÚnanfuncsr   ©r9   ÚndatÚfr   r   r"   Útest_mutation\   ó
   
þz%TestNanFunctions_MinMax.test_mutationc                 C   ó\   t  d¡}t| j| jƒD ]\}}dD ]}|||dd�}|||dd�}t|j|jkƒ qqd S ©Né   ©Nr   é   T©ÚaxisÚkeepdims©r7   ÚeyeÚziprm   Ústdfuncsr   Úndim©r9   ÚmatÚnfÚrfry   ÚtgtÚresr   r   r"   Útest_keepdimsc   ó   
ýÿz%TestNanFunctions_MinMax.test_keepdimsc                 C   ó^   t  d¡}t| j| jƒD ] \}}t  d¡}||dd�}||d|d�}t||ƒ t||ƒ qd S ©Nru   rw   ©ry   ©ry   Úout©r7   r|   r}   rm   r~   Úzerosr   ©r9   r�   r‚   rƒ   Úresoutr„   r…   r   r   r"   Útest_outk   ó   


ûz TestNanFunctions_MinMax.test_outc                 C   s�   d}t | j| jƒD ]<\}}|D ]5}tjd|d�}||dd�jj}||dd�jj}t||u ƒ ||d d�jj}||d d�jj}t||u ƒ qq	d S )NÚefdgFDGru   ©Údtyperw   rŠ   ©r}   rm   r~   r7   r|   r•   Útyper   ©r9   Úcodesr‚   rƒ   Úcr�   r„   r…   r   r   r"   Útest_dtype_from_inputt   s   øÿz-TestNanFunctions_MinMax.test_dtype_from_inputc                    óD   t | j| jƒD ]\}‰ ‡ fdd„tD ƒ}|tdd�}t||ƒ qd S )Nc                    ó   g | ]}ˆ |ƒ‘qS r   r   ©r    Úd©rƒ   r   r"   r#   ƒ   ó    z>TestNanFunctions_MinMax.test_result_values.<locals>.<listcomp>rw   rŠ   ©r}   rm   r~   Ú_rdatrk   r   ©r9   r‚   r„   r…   r   r    r"   Útest_result_values�   ó
   ýz*TestNanFunctions_MinMax.test_result_valuesry   rv   r•   ÚAllFloatÚarray©ru   ru   Ú0dÚ2dr4   c              	   C   s–   |d ur|j dkrt d¡ | |¡}d}| jD ]0}tjt|d�� |||d�}W d   ƒ n1 s2w   Y  t |¡ 	¡ s@J ‚|j
|j
ksHJ ‚qd S ©Nr   ú*`axis != None` not supported for 0d arraysúAll-NaN slice encountered©ÚmatchrŠ   )r   rd   ÚskipÚastyperm   ÚwarnsÚRuntimeWarningr7   ÚisnanÚallr•   ©r9   ry   r•   r¨   r°   r0   rŒ   r   r   r"   Útest_allnans‡   s   


ÿüz$TestNanFunctions_MinMax.test_allnansc                 C   sj   t j t¡}|j ¡ }t jfD ]#}||dd�}|tdd�}t||ƒ t|j|ƒ tt  	|¡ 
¡  ƒ qd S )Nrw   rŠ   )r7   ÚmaÚfix_invalidrk   Ú_maskrl   rF   r   r   ÚisinfÚany)r9   r�   Úmskrp   r…   r„   r   r   r"   Útest_masked™   s   

ûz#TestNanFunctions_MinMax.test_maskedc                 C   ó    | j D ]
}t|dƒdkƒ qd S ©Nr   ©rm   r   ©r9   rp   r   r   r"   Útest_scalar£   ó   
ÿz#TestNanFunctions_MinMax.test_scalarc              	   C   s8  G dd„ dt jƒ}t  d¡ |¡}| jD ]5}||dd�}tt||ƒƒ t|jdkƒ ||dd�}tt||ƒƒ t|jdkƒ ||ƒ}t|jdkƒ qt j|d< | jD ]Ç}t	j
d	d
��-}t	 d¡ ||dd�}tt||ƒƒ tt  t  |¡¡ ƒ tt|ƒdkƒ W d   ƒ n1 sŠw   Y  t	j
d	d
��F}t	 d¡ ||dd�}tt||ƒƒ tt  |d ¡o¿t  |d ¡ o¿t  |d ¡ ƒ tt|ƒdkdƒ tt|d jtƒƒ W d   ƒ n1 sÞw   Y  t	j
d	d
��'}t	 d¡ ||ƒ}t|jdkƒ t|t jkƒ tt|ƒdkƒ W d   ƒ n	1 �sw   Y  qRd S )Nc                   @   ó   e Zd ZdS )z8TestNanFunctions_MinMax.test_subclass.<locals>.MyNDArrayN©r   rD   rE   r   r   r   r"   Ú	MyNDArray¨   ó    rÈ   ru   r   rŠ   ©ru   rw   r   T©ÚrecordÚalwaysé   úno warning raised)r7   Úndarrayr|   Úviewrm   r   Ú
isinstanceÚshapeÚnanÚwarningsÚcatch_warningsÚsimplefilterr½   rµ   ÚlenÚ
issubclassÚcategoryr´   )r9   rÈ   Úminerp   r…   Úwr   r   r"   Útest_subclass§   sN   



û
 ÿù	
û€ïz%TestNanFunctions_MinMax.test_subclassc                 C   sÐ   t jddgt jdgt jt jggtd�}tt  |¡dƒ tt j|dd�ddgƒ tjdd��1}t d	¡ tt	t j|d
d�ƒddt jgƒ t
t|ƒd
kdƒ t
t|d jtƒƒ W d   ƒ d S 1 saw   Y  d S )Nr   g       @ç      @r”   r   rŠ   TrË   rÍ   rw   rÏ   )r7   r¨   rÔ   Úobjectr   rF   rÕ   rÖ   r×   Úlistr   rØ   rÙ   rÚ   r´   )r9   ÚarrrÜ   r   r   r"   Útest_object_arrayÒ   s   &
 "ûz)TestNanFunctions_MinMax.test_object_arrayc                 C   s¤   G dd„ dt jƒ}t  d¡ |¡}t j|d d…< | jD ]4}|t ju r$dnd}|||d�}|j|ks3J ‚||ks9J ‚|| |¡|d�}|j|ksIJ ‚||ksOJ ‚qd S )Nc                   @   rÆ   )z7TestNanFunctions_MinMax.test_initial.<locals>.MyNDArrayNrÇ   r   r   r   r"   rÈ   à   rÉ   rÈ   é	   é   éd   r   ©Úinitial)	r7   rÐ   Úaranger²   rÔ   rm   rH   r•   rÑ   )r9   r•   rÈ   Úarrp   rç   Úret1Úret2r   r   r"   Útest_initialÞ   s   
÷z$TestNanFunctions_MinMax.test_initialc           	      C   sÔ   G dd„ dt jƒ}t  d¡ dd¡ |¡}t j|dd d …f< t j|t jd�}d|d d …df< | jD ]6}|t j	u r:dnd	}|||d
d�}|j
|ksJJ ‚||ksPJ ‚|| |¡|d
d�}|j
|ksaJ ‚||ksgJ ‚q1d S )Nc                   @   rÆ   )z5TestNanFunctions_MinMax.test_where.<locals>.MyNDArrayNrÇ   r   r   r   r"   rÈ   ó   rÉ   rÈ   rã   ru   r   r”   Fé   é   rä   ©Úwhererç   )r7   rÐ   rè   Úreshaper²   rÔ   Ú	ones_likeÚbool_rm   rF   r•   rÑ   )	r9   r•   rÈ   ré   rð   rp   Ú	referencerê   rë   r   r   r"   Ú
test_whereñ   s   
÷z"TestNanFunctions_MinMax.test_whereN)r   rD   rE   r7   rF   rH   rm   ÚminÚmaxr~   rq   r†   r‘   r›   r¥   rd   re   rf   Ú	typecodesr¨   rÔ   Úfullr¸   r¿   rÄ   rÝ   râ   rì   rõ   r   r   r   r"   rh   W   s2    	
þý
+
rh   c                	   @   sÒ   e Zd ZejejgZdd„ Zdd„ Ze	j
 dg d¢¡e	j
 dejd ¡e	j
jd	e ej¡e d
ej¡gddgd�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jd ¡dd„ ƒZdS )ÚTestNanFunctions_ArgminArgmaxc                 C   ri   r6   rj   rn   r   r   r"   rq     rr   z+TestNanFunctions_ArgminArgmax.test_mutationc              
   C   s°   t | jtjtjgƒD ]K\}}tD ]D}tƒ �7}| td¡ ||ƒ}|| }t	t 
|¡ ƒ t	|||ƒ ¡  ƒ t	t ||d |… ¡ ¡  ƒ W d   ƒ n1 sOw   Y  qq
d S )Nzinvalid value encountered in)r}   rm   r7   ÚgreaterÚlessrk   r
   Úfilterr´   r   rµ   r½   Úequal)r9   rp   ÚfcmpÚrowÚsupÚindÚvalr   r   r"   r¥     s    ø€ÿÿz0TestNanFunctions_ArgminArgmax.test_result_valuesry   rv   r•   r§   r¨   r©   rª   r«   r4   c              	   C   sp   |d ur|j dkrt d¡ | |¡}| jD ]}tjtdd�� |||d� W d   ƒ n1 s0w   Y  qd S r¬   )r   rd   r±   r²   rm   ÚraisesÚ
ValueError)r9   ry   r•   r¨   r0   r   r   r"   r¸     s   


ÿ€ÿz*TestNanFunctions_ArgminArgmax.test_allnansc                 C   sZ   t  d¡}| jD ]"}dD ]
}tt|||d� qdD ]}|||d�}t|t  d¡ƒ qqd S )N©r   ru   ©r   NrŠ   ©rw   r   )r7   rŽ   rm   r   r  r   )r9   r�   rp   ry   r…   r   r   r"   Ú
test_empty.  s   

þýz(TestNanFunctions_ArgminArgmax.test_emptyc                 C   rÀ   rÁ   rÂ   rÃ   r   r   r"   rÄ   7  rÅ   z)TestNanFunctions_ArgminArgmax.test_scalarc                 C   s˜   G dd„ dt jƒ}t  d¡ |¡}| jD ]5}||dd�}tt||ƒƒ t|jdkƒ ||dd�}tt||ƒƒ t|jdkƒ ||ƒ}t|jdkƒ qd S )	Nc                   @   rÆ   )z>TestNanFunctions_ArgminArgmax.test_subclass.<locals>.MyNDArrayNrÇ   r   r   r   r"   rÈ   <  rÉ   rÈ   ru   r   rŠ   rÊ   rw   r   )r7   rÐ   r|   rÑ   rm   r   rÒ   rÓ   )r9   rÈ   rÛ   rp   r…   r   r   r"   rÝ   ;  s   
øz+TestNanFunctions_ArgminArgmax.test_subclassc                 C   sh   t  d¡ |¡}t j|d d…< | jD ]}|t ju rdnd}||dd�}|j|jks+J ‚||ks1J ‚qd S )Nrã   rä   rî   T)rz   )r7   rè   r²   rÔ   rm   rJ   r   ©r9   r•   ré   rp   rô   Úretr   r   r"   r†   L  s   
üz+TestNanFunctions_ArgminArgmax.test_keepdimsc                 C   st   t  d¡ |¡}t j|d d…< | jD ]%}t jdt jd�}|t ju r#dnd}|||d�}||u s1J ‚||ks7J ‚qd S )Nrã   rä   r   r”   rî   ©rŒ   )r7   rè   r²   rÔ   rm   rŽ   ÚintprJ   )r9   r•   ré   rp   rŒ   rô   r  r   r   r"   r‘   W  s   
ûz&TestNanFunctions_ArgminArgmax.test_outN)r   rD   rE   r7   rJ   rL   rm   rq   r¥   rd   re   rf   rø   r¨   rÔ   rù   r¸   r	  rÄ   rÝ   r†   r‘   r   r   r   r"   rú     s(    
þý		

rú   rä   )é   é'   é]   éW   é.   )rª   Ú1dF)Úwriter•   Ú
AllIntegerr§   ÚOr�   r4   c                   @   s  e Zd Zejejejejejej	ej
ejejejejejejejejejejejejejejejejejiZdd„ eD ƒZejj de !¡ ed�ej"dd�dd„ ƒƒZ#ejj dej$ej%fej&ej'fgd	d
gd�dd„ ƒZ(ejj dejejfejejfgddgd�dd„ ƒZ)dS )ÚTestNanFunctions_NumberTypesc                 C   r   r   r   ©r    Úir   r   r"   r#   �  r$   z'TestNanFunctions_NumberTypes.<listcomp>znanfunc,funcr4   Úignore)Úoverc                 C   sX   |  |¡}||ƒ}||ƒ}t||ƒ |dkr"t|ƒt|ƒu s J ‚d S |j|jks*J ‚d S )Nr  ©r²   r   r—   r•   ©r9   r�   r•   Únanfuncr0   r„   rŒ   r   r   r"   Útest_nanfuncƒ  s   

z)TestNanFunctions_NumberTypes.test_nanfuncr\   rZ   c                 C   s�   |  |¡}|jjdkrtt||dd� tt||dd� d S ||dd�}||dd�}t||ƒ |dkr>t|ƒt|ƒu s<J ‚d S |j|jksFJ ‚d S )Nrš   rw   ©Úqr  )r²   r•   Úkindr   Ú	TypeErrorr   r—   r  r   r   r"   Útest_nanfunc_q�  s   

z+TestNanFunctions_NumberTypes.test_nanfunc_qr^   r`   c                 C   s`   |  |¡}||dd�}||dd�}t||ƒ |dkr&t|ƒt|ƒu s$J ‚d S |j|jks.J ‚d S )Nç      à?©Úddofr  r  r  r   r   r"   Útest_nanfunc_ddof¦  s   

z.TestNanFunctions_NumberTypes.test_nanfunc_ddofN)*r   rD   rE   r7   rF   rö   rH   r÷   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r^   r_   r`   ra   rm   Únanfunc_idsrd   re   rf   rg   Úerrstater  r\   r]   rZ   r[   r$  r(  r   r   r   r"   r  m  s<    ô
ý
ýr  c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚSharedNanFunctionsTestsMixinc                 C   ri   r6   rj   rn   r   r   r"   rq   ¸  rr   z*SharedNanFunctionsTestsMixin.test_mutationc                 C   rs   rt   r{   r€   r   r   r"   r†   ¿  r‡   z*SharedNanFunctionsTestsMixin.test_keepdimsc                 C   rˆ   r‰   r�   r�   r   r   r"   r‘   Ç  r’   z%SharedNanFunctionsTestsMixin.test_outc           	   
   C   sö   t  d¡}d}t| j| jƒD ]j\}}|D ]c}tƒ �V}|t jt jhv r,|dv r,| t j	¡ ||t  
|¡dd�j
j}||t  
|¡dd�j
j}t||u ƒ ||t  
|¡d d�j
j}||t  
|¡d d�j
j}t||u ƒ W d   ƒ n1 srw   Y  qqd S ©Nru   r“   ÚFDGrw   )r•   ry   ©r7   r|   r}   rm   r~   r
   r`   r^   rý   ÚComplexWarningr•   r—   r   ©	r9   r�   r™   r‚   rƒ   rš   r  r„   r…   r   r   r"   Útest_dtype_from_dtypeÐ  s"   
ö€ÿÿz2SharedNanFunctionsTestsMixin.test_dtype_from_dtypec           	   
   C   sÞ   t  d¡}d}t| j| jƒD ]^\}}|D ]W}tƒ �J}|t jt jhv r,|dv r,| t j	¡ |||dd�j
j}|||dd�j
j}t||u ƒ |||d d�j
j}|||d d�j
j}t||u ƒ W d   ƒ n1 sfw   Y  qqd S r,  r.  r0  r   r   r"   Útest_dtype_from_chará  s"   
ö€ÿÿz1SharedNanFunctionsTestsMixin.test_dtype_from_charc                 C   sš   d}t | j| jƒD ]A\}}|D ]:}tjd|d�}||dd�jj}||dd�jj}t||u d||f ƒ ||d d�jj}||d d�jj}t||u ƒ qq	d S )Nr“   ru   r”   rw   rŠ   zres %s, tgt %sr–   r˜   r   r   r"   r›   ò  s   øÿz2SharedNanFunctionsTestsMixin.test_dtype_from_inputc                    rœ   )Nc                    r�   r   r   rž   r    r   r"   r#     r¡   zCSharedNanFunctionsTestsMixin.test_result_values.<locals>.<listcomp>rw   rŠ   r¢   r¤   r   r    r"   r¥   ÿ  r¦   z/SharedNanFunctionsTestsMixin.test_result_valuesc                 C   rÀ   rÁ   rÂ   rÃ   r   r   r"   rÄ     rÅ   z(SharedNanFunctionsTestsMixin.test_scalarc                 C   sÐ   G dd„ dt jƒ}t  d¡}| |¡}| jD ]O}||dd�j}||dd�}tt||ƒƒ t|j|kƒ ||dd�j}||dd�}tt||ƒƒ t|j|kƒ ||ƒj}||ƒ}tt||ƒƒ t|j|kƒ qd S )Nc                   @   rÆ   )z=SharedNanFunctionsTestsMixin.test_subclass.<locals>.MyNDArrayNrÇ   r   r   r   r"   rÈ   
  rÉ   rÈ   ru   r   rŠ   rw   )r7   rÐ   r|   rÑ   rm   rÓ   r   rÒ   )r9   rÈ   r¨   rÛ   rp   Úexpected_shaper…   r   r   r"   rÝ   	  s"   



ôz*SharedNanFunctionsTestsMixin.test_subclassN)r   rD   rE   rq   r†   r‘   r1  r2  r›   r¥   rÄ   rÝ   r   r   r   r"   r+  ·  s    	r+  c                	   @   s¾   e Zd ZejejgZejejgZ	e
j dg d¢¡e
j dejd ¡e
jjde ej¡e dej¡gddgd	�d
d„ ƒƒƒZdd„ Ze
j dejd ¡dd„ ƒZe
j dejd ¡dd„ ƒZdS )ÚTestNanFunctions_SumProdry   rv   r•   r§   r¨   r©   rª   r«   r4   c                 C   sr   |d ur|j dkrt d¡ | |¡}t| jddgƒD ]\}}|||d�}t ||k¡s.J ‚|j|jks6J ‚qd S )Nr   r­   rw   rŠ   ©	r   rd   r±   r²   r}   rm   r7   r¶   r•   ©r9   ry   r•   r¨   r0   ÚidentityrŒ   r   r   r"   r¸   %  s   

ýz%TestNanFunctions_SumProd.test_allnansc                 C   s‚   t tjtjgddgƒD ]3\}}t d¡}|gd }||dd�}t||ƒ g }||dd�}t||ƒ |}||d d�}t||ƒ qd S )Nr   rw   r  ru   rŠ   )r}   r7   rN   rP   rŽ   r   ©r9   rp   Ú	tgt_valuer�   r„   r…   r   r   r"   r	  5  s   



öz#TestNanFunctions_SumProd.test_emptyc                 C   sf   t  d¡ |¡}t j|d d…< | jD ]}|t ju rdnd}||dd�}|j|ks*J ‚||ks0J ‚qd S )Nrã   rä   é   i   rÎ   ræ   )r7   rè   r²   rÔ   rm   rN   r•   r
  r   r   r"   rì   B  s   
üz%TestNanFunctions_SumProd.test_initialc                 C   s”   t  d¡ dd¡ |¡}t j|dd d …f< t j|t jd�}d|d d …df< | jD ]}|t ju r1dnd}|||dd	�}|j	|ksAJ ‚||ksGJ ‚q(d S )
Nrã   ru   r   r”   Fé   iÀ  rÎ   rï   )
r7   rè   rñ   r²   rÔ   rò   ró   rm   rN   r•   )r9   r•   ré   rð   rp   rô   r  r   r   r"   rõ   M  s   
üz#TestNanFunctions_SumProd.test_whereN)r   rD   rE   r7   rN   rP   rm   rO   rQ   r~   rd   re   rf   rø   r¨   rÔ   rù   r¸   r	  rì   rõ   r   r   r   r"   r4     s"    
þý


r4  c                	   @   sž   e Zd ZejejgZejejgZ	e
j dg d¢¡e
j dejd ¡e
jjde ej¡e dej¡gddgd	�d
d„ ƒƒƒZdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestNanFunctions_CumSumProdry   rv   r•   r§   r¨   r©   rª   r«   r4   c                 C   sn   |d ur|j dkrt d¡ | |¡}t| jddgƒD ]\}}||ƒ}t ||k¡s,J ‚|j|jks4J ‚qd S )Nr   r­   rw   r5  r6  r   r   r"   r¸   `  s   

ýz(TestNanFunctions_CumSumProd.test_allnansc                 C   s†   t | jddgƒD ]8\}}t d¡}|t d¡ }||dd�}t||ƒ |}||dd�}t||ƒ t d¡}||d d�}t||ƒ qd S )Nr   rw   r  rŠ   )r}   rm   r7   rŽ   Úonesr   r8  r   r   r"   r	  p  s   



öz&TestNanFunctions_CumSumProd.test_emptyc           	      C   sÔ   t | j| jƒD ]$\}}t d¡}dD ]}|||d d�}|||d d�}t|j|jkƒ qq| jD ]8}t d¡}tj 	d¡}tj
||j|jŽ dk < ||d d�}t|jdƒ t d	¡D ]}|||d�}t|jdƒ qXq/d S )
Nru   rv   r‹   ©ru   rä   é   é   r   r%  rŠ   )iƒ  rí   )r}   rm   r~   r7   r|   r   r   r=  ÚrandomÚRandomStaterÔ   ÚrandrÓ   r   rè   )	r9   rp   Úgr�   ry   r„   r…   rŸ   Úrsr   r   r"   r†   }  s$   
ý

þùz)TestNanFunctions_CumSumProd.test_keepdimsc                 C   sZ   dD ](}t jt|d�}t jt|d�}t||ƒ t jt|d�}t jt|d�}t||ƒ qd S )N)éþÿÿÿéÿÿÿÿr   rw   NrŠ   )	r7   rU   Ú
_ndat_onesrT   rk   r   rS   Ú_ndat_zerosrR   )r9   ry   r„   r…   r   r   r"   r¥   �  s   
úz.TestNanFunctions_CumSumProd.test_result_valuesc                 C   sh   t  d¡}t| j| jƒD ]%\}}t  d¡}dD ]}|||d�}||||d�}t||ƒ t||ƒ qqd S )Nru   )rF  rG  r   rw   rŠ   r‹   )r7   r|   r}   rm   r~   r   )r9   r�   r‚   rƒ   r�   ry   r„   r…   r   r   r"   r‘   ™  s   


üþz$TestNanFunctions_CumSumProd.test_outN)r   rD   rE   r7   rR   rT   rm   rS   rU   r~   rd   re   rf   rø   r¨   rÔ   rù   r¸   r	  r†   r¥   r‘   r   r   r   r"   r<  [  s     
þý
	r<  c                	   @   sÊ   e Zd ZejejejgZejej	ej
gZdd„ Zdd„ Zdd„ Zdd„ Zej d	g d
¢¡ej dejd ¡ejjde ej¡e dej¡gddgd�dd„ ƒƒƒZdd„ Zej dejd ¡dd„ ƒZdS )ÚTestNanFunctions_MeanVarStdc              	   C   s8   | j D ]}tjtjtjfD ]}tt|td|d� qqd S )Nrw   )ry   r•   )rm   r7   ró   Úint_Úobject_r   r#  rk   )r9   rp   r•   r   r   r"   Útest_dtype_error©  s
   
ÿÿz,TestNanFunctions_MeanVarStd.test_dtype_errorc              	   C   sL   | j D ] }tjtjtjfD ]}tjtjd |d�}tt	|td|d� qqd S )Nr   r”   rw   r‹   )
rm   r7   ró   rK  rL  r,   rk   rÓ   r   r#  )r9   rp   r•   rŒ   r   r   r"   Útest_out_dtype_error®  s   
þÿz0TestNanFunctions_MeanVarStd.test_out_dtype_errorc                    sf   t jt jg}t jt jg}t||ƒD ]\}‰dD ]‰ ‡ ‡fdd„tD ƒ}|tdˆ d�}t||ƒ qqd S )N©r   rw   c                    s   g | ]}ˆ|ˆ d �‘qS )r&  r   rž   ©r'  rƒ   r   r"   r#   ¹  ó    z9TestNanFunctions_MeanVarStd.test_ddof.<locals>.<listcomp>rw   ©ry   r'  )	r7   r^   r`   r_   ra   r}   r£   rk   r   )r9   rm   r~   r‚   r„   r…   r   rP  r"   Ú	test_ddof´  s   ýÿz%TestNanFunctions_MeanVarStd.test_ddofc           	   
      sæ   t jt jg}t jt jg}dd„ tD ƒ}t||ƒD ]X\}}tdƒD ]O‰ tƒ �B}| 	t
¡ | t j¡ ‡ fdd„|D ƒ}|tdˆ d�}tt  |¡|ƒ t|ƒrWtt|jƒdkƒ n	tt|jƒdkƒ W d   ƒ n1 sjw   Y  q qd S )Nc                 S   s   g | ]}t |ƒ‘qS r   )rØ   rž   r   r   r"   r#   À  r¡   zATestNanFunctions_MeanVarStd.test_ddof_too_big.<locals>.<listcomp>rä   c                    s   g | ]}ˆ |k‘qS r   r   rž   r&  r   r"   r#   Æ  r¡   rw   rR  r   )r7   r^   r`   r_   ra   r£   r}   Úranger
   rÌ   r´   rý   r/  rk   r   rµ   r½   r   rØ   Úlog)	r9   rm   r~   Údsizer‚   rƒ   r  r„   r…   r   r&  r"   Útest_ddof_too_big½  s&   
€÷€ÿÿz-TestNanFunctions_MeanVarStd.test_ddof_too_bigry   rv   r•   r§   r¨   r©   rª   r«   r4   c              	   C   s¸   |d ur|j dkrt d¡ | |¡}d}| jD ]A}tjt|d�� |||d�}W d   ƒ n1 s2w   Y  t |¡ 	¡ s@J ‚|tj
u rN|j|jksMJ ‚q|jt |¡jksYJ ‚qd S )Nr   r­   z:(Degrees of freedom <= 0 for slice.)|(Mean of empty slice)r¯   rŠ   )r   rd   r±   r²   rm   r³   r´   r7   rµ   r¶   rV   r•   Úabsr·   r   r   r"   r¸   Î  s   


ÿ
öz(TestNanFunctions_MeanVarStd.test_allnansc              
   C   s   t  d¡}| jD ]u}dD ]<}tjdd��,}t d¡ tt  |||d�¡ ¡ ƒ tt	|ƒdkƒ tt
|d jtƒƒ W d   ƒ n1 sCw   Y  qd	D ]1}tjdd��!}t d¡ t|||d�t  g ¡ƒ tt	|ƒdkƒ W d   ƒ n1 sww   Y  qKqd S ©
Nr  r  TrË   rÍ   rŠ   rw   r   r  )r7   rŽ   rm   rÕ   rÖ   r×   r   rµ   r¶   rØ   rÙ   rÚ   r´   r   )r9   r�   rp   ry   rÜ   r   r   r"   r	  æ  s&   


ü€
ý€ÿùz&TestNanFunctions_MeanVarStd.test_emptyc           	      C   s¸   t  d¡ dd¡ |¡}t j|dd d …f< t j|t jd�}d|d d …df< t| j| j	ƒD ]-\}}||| dd … ƒ}|t j
u rA|n|jj}|||d�}|j|ksRJ ‚t j ||¡ q,d S )Nrã   ru   r   r”   FrÎ   )rð   )r7   rè   rñ   r²   rÔ   rò   ró   r}   rm   r~   rV   Úrealr•   r8   Úassert_allclose)	r9   r•   ré   rð   rp   Úf_stdrô   Údtype_referencer  r   r   r"   rõ   õ  s   úz&TestNanFunctions_MeanVarStd.test_whereN)r   rD   rE   r7   rV   r^   r`   rm   rW   r_   ra   r~   rM  rN  rS  rW  rd   re   rf   rø   r¨   rÔ   rù   r¸   r	  rõ   r   r   r   r"   rJ  ¤  s&    	
þýrJ  )ÚYÚMÚWÚDÚhÚmÚsÚmsÚusÚnsÚpsÚfsÚasc                 C   s   g | ]}d |› d�‘qS )zm8[ú]r   )r    Úunitr   r   r"   r#     rQ  r#   c                   @   s¤   e Zd Zdd„ Zdd„ Zejjdg d¢d�ej d¡d	d
„ ƒƒZ	dd„ Z
dd„ Zdd„ Zej dg d¢¡ej de¡dd„ ƒƒZdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestNanFunctions_Medianc                 C   s    t  ¡ }t |¡ t|t ƒ d S r6   )rk   rl   r7   rX   r   ©r9   ro   r   r   r"   rq     s   
z%TestNanFunctions_Median.test_mutationc                 C   sn  t  d¡}dD ]}t j||d dd�}t j||d dd�}t|j|jkƒ qt  d¡}t j d¡t  |j	¡d d …d f  }| 
t j¡}t j|t|ƒ< tƒ �b}| t¡ t j|d dd�}t|j	d	ƒ t j|d
dd�}t|j	dƒ t j|ddd�}t|j	dƒ t j|ddd�}t|j	dƒ t j|ddd�}t|j	d	ƒ t j|ddd�}t|j	dƒ W d   ƒ d S 1 s°w   Y  d S )Nru   rv   F©ry   rŒ   Úoverwrite_inputr>  ©rí   éÈ   Trx   ©rw   rw   rw   rw   rO  ©rw   rw   r?  r@  r  ©rw   rä   r?  rw   r  ©ru   rw   r?  r@  ©r   rw   rÎ   ru   ©r   rw   ru   ©rw   rw   r?  rw   )r7   r|   rY   rX   r   r   r=  rA  r¨   rÓ   r²   r  rÔ   Útupler
   rý   r´   r   ©r9   r�   ry   r„   r…   rŸ   rÜ   r  r   r   r"   r†     s0   

$
"óz%TestNanFunctions_Median.test_keepdimsry   ©Nrw   r  rO  )éýÿÿÿrG  ©ÚargnamesÚ	argvaluesú#ignore:All-NaN slice:RuntimeWarningc                    s¾   t  d¡‰t j d¡t  ˆj¡d d …d f  }| t j¡}t jˆt|ƒ< |d u r.dˆj	 }nt
|ˆj	ƒ‰ t‡ ‡fdd„tˆj	ƒD ƒƒ}t  |¡}t jˆ|d|d�}||u sWJ ‚t|j|ƒ d S )Nr>  rq  r  c                 3   ó&   � | ]}|ˆ v r
d nˆj | V  qdS ©rw   N©rÓ   r  ©Ú	axis_normrŸ   r   r"   Ú	<genexpr>F  ó   € 
ÿz<TestNanFunctions_Median.test_keepdims_out.<locals>.<genexpr>T©ry   rz   rŒ   )r7   r=  rA  r¨   rÓ   r²   r  rÔ   rz  r   r   rT  r,   rX   r   )r9   ry   rÜ   Ú	shape_outrŒ   Úresultr   r…  r"   Útest_keepdims_out1  s   
$ÿ
z)TestNanFunctions_Median.test_keepdims_outc                 C   sÆ   t j dd¡}t j|ddgt jdd�}t  d¡}t j|dd�}t j|d|d�}t||ƒ t||ƒ t  d¡}t j|d d�}t j|d |d�}t||ƒ t||ƒ t j|d|d�}t||ƒ t||ƒ d S )	Nru   r   rÎ   rw   rŠ   r‹   r   rO  )	r7   rA  rC  ÚinsertrÔ   rŽ   rY   rX   r   ©r9   r�   Únan_matr�   r„   r…   r   r   r"   r‘   M  s   






z TestNanFunctions_Median.test_outc                 C   sž   dD ]J}t j d|¡}t jjd|j|jd d�}t j| ¡ |< d|d d …df< g }|D ]}t  t  |¡ |¡}| 	t j
|dd�¡ q+tt j|d	d
�|ƒ qd S )N)rä   é   é3   rr  iè  rí   r   rä   )Úsizer   T)rp  rG  rŠ   )r7   rA  ÚrandnÚrandintr’  rÔ   ÚravelÚcompressrµ   r-   rY   r	   rX   )r9   rd  rŸ   rÜ   r„   ÚxÚnonanr   r   r"   Útest_small_large_  s   ôz(TestNanFunctions_Median.test_small_largec                 C   s*   dd„ t D ƒ}tjtdd�}t||ƒ d S )Nc                 S   s   g | ]}t  |¡‘qS r   )r7   rY   rž   r   r   r"   r#   p  s    z>TestNanFunctions_Median.test_result_values.<locals>.<listcomp>rw   rŠ   )r£   r7   rX   rk   r   ©r9   r„   r…   r   r   r"   r¥   o  s   z*TestNanFunctions_Median.test_result_valuesrv   r•   c                 C   s$  t  dt j¡ |¡}tƒ �{}| t¡ t j||d�}|j|jks"J ‚t  	|¡ 
¡ s+J ‚|d u r9tt|jƒdkƒ n	tt|jƒdkƒ t  t j¡ |¡d }t  |¡}|j|jksZJ ‚t  	|¡saJ ‚|d u rott|jƒdkƒ ntt|jƒdkƒ W d   ƒ d S W d   ƒ d S 1 s‹w   Y  d S )Nr©   rŠ   rw   ru   r   rÎ   rí   )r7   rù   rÔ   r²   r
   rÌ   r´   rX   r•   rµ   r¶   r   rØ   rU  r¨   )r9   r•   ry   r�   r  ÚoutputÚscalarÚoutput_scalarr   r   r"   r¸   t  s&   

ë"íz$TestNanFunctions_Median.test_allnansc              	   C   sø   t  d¡}dD ]=}tjdd��-}t d¡ tt  t j||d�¡ ¡ ƒ tt	|ƒdkƒ tt
|d jtƒƒ W d   ƒ n1 s?w   Y  qd	D ]2}tjdd��"}t d¡ tt j||d�t  g ¡ƒ tt	|ƒdkƒ W d   ƒ n1 stw   Y  qGd S rY  )r7   rŽ   rÕ   rÖ   r×   r   rµ   rX   r¶   rØ   rÙ   rÚ   r´   r   ©r9   r�   ry   rÜ   r   r   r"   r	  �  s"   

ü€
ý€ÿz"TestNanFunctions_Median.test_emptyc                 C   s   t t d¡dkƒ d S rÁ   )r   r7   rX   rB   r   r   r"   rÄ   �  s   z#TestNanFunctions_Median.test_scalarc                 C   sp   t  d¡}tt jt j|dd� tt jt j|dd� tt jt j|dd� tt jt j|dd� ttt j|dd� d S )Nr>  éûÿÿÿrŠ   ©r   rŸ  rí   ©r   rí   ©rw   rw   )r7   r=  r   Ú	AxisErrorrX   r  ©r9   rŸ   r   r   r"   Útest_extended_axis_invalid   s   
z2TestNanFunctions_Median.test_extended_axis_invalidc              	   C   sö  t ƒ ��l}| t¡ tjtj fD �]U}t |tjgtjtjgg¡}ttj|dd�|tjgƒ ttj|dd�|tjgƒ tt |¡|ƒ t tjtj|gtjtj|gg¡}tt |¡|ƒ ttj|dd�tjtj|gƒ ttj|dd�|ƒ t ||g||gg¡}ttj|dd�|ƒ tj|d| dgdtjtjdgdtjtj|ggtj	d	�}|dkrÃttj|dd�d
d| dgƒ tt |¡dƒ nttj|dd�dd| dgƒ tt |¡dƒ ttj|dd�dd|gƒ t
ddƒD ]z}t
ddƒD ]r}t tjg| |g|  gd ¡}tt |¡|ƒ ttj|dd�|ƒ ttj|dd�tjg| |g|  ƒ t tjg| | g|  gd ¡}tt |¡| ƒ ttj|dd�| ƒ ttj|dd�tjg| | g|  ƒ qóqìqW d   ƒ d S 1 �stw   Y  d S )Nr   rŠ   rw   r?  i÷ÿÿÿiöÿÿÿrä   rí   r”   rÞ   g      @ç      @g      @g      $Àg      "Àg      ÀrG  g      ð¿é
   rÎ   )r
   rý   r´   r7   Úinfr¨   rÔ   r   rX   Úfloat32rT  )r9   r  r¨  Úar  Újr   r   r"   Útest_float_special¨  sZ   

ÿþý"ÿ$ÿöÿã$þz*TestNanFunctions_Median.test_float_specialN)r   rD   rE   rq   r†   rd   re   rf   ÚfilterwarningsrŒ  r‘   r™  r¥   Ú_TYPE_CODESr¸   r	  rÄ   r¥  r¬  r   r   r   r"   rm    s&    þ

rm  c                	   @   sì   e Zd Zdd„ Zdd„ Zej ddddgg¡ejjdg d	¢d
�ej d¡dd„ ƒƒƒZ	dd„ Z
dd„ Zdd„ Zej dg d¢¡ej dejd ¡ejjde ej¡e dej¡gddgd�dd„ ƒƒƒZdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&S )'ÚTestNanFunctions_Percentilec                 C   s"   t  ¡ }t |d¡ t|t ƒ d S )Né   )rk   rl   r7   rZ   r   rn  r   r   r"   rq   Ù  s   z)TestNanFunctions_Percentile.test_mutationc                 C   s~  t  d¡}dD ]}t j|d|d dd�}t j|d|d dd�}t|j|jkƒ qt  d¡}t j d¡t  |j	¡d d …d f  }| 
t j¡}t j|t|ƒ< tƒ �h}| t¡ t j|dd d	d
�}t|j	dƒ t j|ddd	d
�}t|j	dƒ t j|ddd	d
�}t|j	dƒ t j|ddd	d
�}t|j	dƒ t j|ddd	d
�}t|j	dƒ t j|ddd	d
�}t|j	dƒ W d   ƒ d S 1 s¸w   Y  d S )Nru   rv   éF   Fro  r>  rq  éZ   Trx   rs  rO  rt  r  ru  r  rv  rw  rx  ry  )r7   r|   r[   rZ   r   r   r=  rA  r¨   rÓ   r²   r  rÔ   rz  r
   rý   r´   r   r{  r   r   r"   r†   ß  s8   
ÿÿ
$
"óz)TestNanFunctions_Percentile.test_keepdimsr!  r?  rw   ry   r|  r~  r�  c                    sÎ   t  d¡‰t j d¡t  ˆj¡d d …d f  }| t j¡}t jˆt|ƒ< |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>  rq  r  c                 3   r‚  rƒ  r„  r  r…  r   r"   r‡    rˆ  z@TestNanFunctions_Percentile.test_keepdims_out.<locals>.<genexpr>Tr‰  )r7   r=  rA  r¨   rÓ   r²   r  rÔ   rz  r   r   rT  r,   rZ   r   )r9   r!  ry   rÜ   rŠ  rŒ   r‹  r   r…  r"   rŒ  ü  s   
$ÿ
z-TestNanFunctions_Percentile.test_keepdims_outc                 C   sÐ   t j dd¡}t j|ddgt jdd�}t  d¡}t j|ddd�}t j|dd|d�}t||ƒ t||ƒ t  d¡}t j|dd d�}t j|dd |d�}t||ƒ t||ƒ t j|dd	|d�}t||ƒ t||ƒ d S )
Nru   r   rÎ   rw   rŠ   é*   r‹   r   rO  )	r7   rA  rC  r�  rÔ   rŽ   r[   rZ   r   rŽ  r   r   r"   r‘     s   






z$TestNanFunctions_Percentile.test_outc                 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%  ra  ÚF)r7   r¨   r   r#  rZ   ©r9   Úarr_cr   r   r"   Útest_complex-  ó   z(TestNanFunctions_Percentile.test_complexc                 C   sZ   dd„ t D ƒ}tjtddd�}t||ƒ t dd„ t D ƒ¡}tjtddd�}t||ƒ d S )Nc                 S   ó   g | ]}t  |d ¡‘qS )r:  ©r7   r[   rž   r   r   r"   r#   6  rQ  zBTestNanFunctions_Percentile.test_result_values.<locals>.<listcomp>r:  rw   rŠ   c                 S   r¼  )©r:  éb   r½  rž   r   r   r"   r#   :  rQ  r¾  )r£   r7   rZ   rk   r   Ú	transposerš  r   r   r"   r¥   5  s   
z.TestNanFunctions_Percentile.test_result_valuesrv   r•   ÚFloatr¨   r©   rª   r«   r4   c                 C   óŠ   |d ur|j dkrt d¡ | |¡}tjtdd�� tj|d|d�}W d   ƒ n1 s-w   Y  t |¡ 	¡ s;J ‚|j
|j
ksCJ ‚d S )Nr   r­   r®   r¯   é<   rŠ   )r   rd   r±   r²   r³   r´   r7   rZ   rµ   r¶   r•   ©r9   ry   r•   r¨   rŒ   r   r   r"   r¸   >  ó   

ÿz(TestNanFunctions_Percentile.test_allnansc              
   C   sü   t  d¡}dD ]>}tjdd��.}t d¡ tt  t j|d|d�¡ ¡ ƒ tt	|ƒdkƒ tt
|d	 jtƒƒ W d   ƒ n1 s@w   Y  qd
D ]3}tjdd��#}t d¡ tt j|d|d�t  g ¡ƒ tt	|ƒd	kƒ W d   ƒ n1 svw   Y  qHd S )Nr  r  TrË   rÍ   é(   rŠ   rw   r   r  )r7   rŽ   rÕ   rÖ   r×   r   rµ   rZ   r¶   rØ   rÙ   rÚ   r´   r   rž  r   r   r"   r	  N  s"   

ü€
ý€ÿz&TestNanFunctions_Percentile.test_emptyc                 C   sH   t t dd¡dƒ t d¡}tj|ddd�}t |dƒ tt |¡ƒ d S )Nr   rå   é   é2   r   rŠ   g      @)r   r7   rZ   rè   r   Úisscalar)r9   rª  Úrr   r   r"   rÄ   \  s
   

z'TestNanFunctions_Percentile.test_scalarc                 C   sz   t  d¡}tt jt j|ddd� tt jt j|ddd� tt jt j|ddd� tt jt j|ddd� ttt j|ddd� d S )	Nr>  rä   rŸ  ©r!  ry   r   rí   r¡  r¢  )r7   r=  r   r£  rZ   r  r¤  r   r   r"   r¥  c  s   
z6TestNanFunctions_Percentile.test_extended_axis_invalidc              
   C   s0  ddg}t  d¡}t j| }t  d¡}d|d d …ddd…d d …f< |d d …d d …dd …f  d9  < d	D ]P}d
D ]K}tƒ �>}| td¡ t j||||d�}t j||||d�}	t|	j	|j	ƒ t j||||d�}t j||||d�}	t|	|ƒ W d   ƒ n1 s~w   Y  q8q4t  d¡}
tt j|
|dd�j	dƒ d S )NrÈ  rå   )rí   ru   )ru   rí   rä   r   rÎ   rí   ru   rv   )FTr®   rx   )ru   rí   rä   rÇ  )rw   rÎ   rŠ   )rÎ   ru   rÇ  )
r7   r=  rÔ   r
   rý   r´   r[   rZ   r   rÓ   )r9   Úpercr�   r�  Ú	large_matry   Úkeepdimr  r  Únan_valÚmegamatr   r   r"   Útest_multiple_percentilesk  s6   


"
ÿ
ÿ
ÿõ€ÿ
z5TestNanFunctions_Percentile.test_multiple_percentilesN)r   rD   rE   rq   r†   rd   re   rf   r­  rŒ  r‘   rº  r¥   r7   rø   r¨   rÔ   rù   r¸   r	  rÄ   r¥  rÑ  r   r   r   r"   r¯  ×  s4    þ

	
þý
r¯  c                	   @   s†   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡ej 	de
jd ¡ejj	de
 e
j¡e
 de
j¡gddgd�dd„ ƒƒƒZdS )ÚTestNanFunctions_Quantilec                 C   sÞ   t  d¡ ddd¡ t¡}t j|d d< tt j|dd�t j|d	d�ƒ tt j|ddd
�t j|d	dd
�ƒ tt j|ddd
�t j|d	dd
�ƒ tt j|dgdd
�t j|d	gdd
�ƒ tt j|g d¢dd
�t j|g d¢dd
�ƒ d S )Né   rÎ   ru   rí   r   rw   r%  r   rÈ  rË  )ç      Ð?r%  ç      è?)é   rÈ  éK   )	r7   rè   rñ   r²   ÚfloatrÔ   r   r\   rZ   )r9   ré   r   r   r"   Útest_regression‰  s   ÿÿÿÿz)TestNanFunctions_Quantile.test_regressionc                 C   sH   t  d¡d }tt  |d¡dƒ tt  |d¡dƒ tt  |d¡dƒ d S )Nrî   r%  r   r   rw   g      @g      ü?)r7   rè   r   r\   )r9   r—  r   r   r"   Ú
test_basic—  s   z$TestNanFunctions_Quantile.test_basicc                 C   r´  rµ  )r7   r¨   r   r#  r\   r¸  r   r   r"   rº  �  r»  z&TestNanFunctions_Quantile.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   g      Y@Úmidpoint)Úmethod)r7   r¨   rl   r\   rè   r	   Útolist)r9   Úp0Úpr   r   r"   Útest_no_p_overwrite¥  s   
z-TestNanFunctions_Quantile.test_no_p_overwritery   rv   r•   rÁ  r¨   r©   rª   r«   r4   c                 C   rÂ  )Nr   r­   r®   r¯   rw   rŠ   )r   rd   r±   r²   r³   r´   r7   r\   rµ   r¶   r•   rÄ  r   r   r"   r¸   ±  rÅ  z&TestNanFunctions_Quantile.test_allnansN)r   rD   rE   rÙ  rÚ  rº  rà  rd   re   rf   r7   rø   r¨   rÔ   rù   r¸   r   r   r   r"   rÒ  †  s    
þýrÒ  zarr, expectedr¦  )FTFT)rw   rä   r?  rã   r”   Tc                 C   sP   d t j| jt jd�fD ]}t| |d�}t||ƒ t|ƒt jur%|du s%J ‚qd S )Nr”   r  T)r7   r,   rÓ   ró   r   r   r—   rÐ   )rá   ÚexpectedrŒ   Úactualr   r   r"   Útest__nan_maskÁ  s   
€ùrã  c                  C   s  t jt jt jfD ]} t jddg| d�}t|dƒ\}}|du s J ‚||u s&J ‚qt jt jfD ]Z} t jddg| d�}t|dƒ\}}|dk ¡ sGJ ‚||usMJ ‚t	||ƒ t jddt j
g| d�}t|dƒ\}}t	|t  g d¢¡ƒ ||ustJ ‚t	|t  g d¢¡ƒ t  |d	 ¡s‡J ‚q-dS )
z] Test that _replace_nan returns the original array if there are no
    NaNs, not a copy.
    r   rw   r”   NrÎ   F)FFT)r   rw   rÎ   rG  )r7   ró   Úint32Úint64r¨   r   r©  Úfloat64r¶   r   rÔ   rµ   )r•   rá   r‹  ÚmaskÚarr_nanÚ
result_nanÚmask_nanr   r   r"   Útest__replace_nanÜ  s$   
órë  )2rÕ   rd   r'   Únumpyr7   Únumpy.core.numericr   Únumpy.lib.nanfunctionsr   r   Únumpy.testingr   r   r   r   r	   r
   r¨   rÔ   rk   r£   rH  rI  r   rh   rú   Ú_TEST_ARRAYSr*   Ú_vÚsetflagsre   rf   rø   Úkeysr  r+  r4  r<  rJ  Ú_TIME_UNITSrà   r®  rm  r¯  rÒ  r¨  rå  Ú	complex64rã  rë  r   r   r   r"   Ú<module>   s˜     ýý
ý
ý/ 1_þþEi;Ia J 0;ÿÿÿ
ÿÿ
ÿþõ
