a
    ç´«jiÐ  ã                   @   s"  d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
mZ d dlmZmZ d dlmZ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  '¡ d0�G d1d2„ d2ƒƒƒZ(G d3d4„ d4ƒZ)G d5d6„ d6e)ƒZ*G d7d8„ d8e)ƒZ+G d9d:„ d:e)ƒZ,d;Z-e.ej&d- ƒZ/e/d<d=„ e-D ƒ7 Z/G d>d?„ d?ƒZ0G d@dA„ dAƒZ1G dBdC„ dCƒZ2ej$ %dDe ejdEejej3g¡e g dF¢¡fejg dG¢ej4dH�dIfe g dF¢¡dIfejejdEgejej3ggej5dH�e d)dIgd)dIgg¡fg¡dJdK„ ƒZ6dLdM„ Z7dS )Né    N)Úpartial)Únormalize_axis_tuple)Ú	AxisErrorÚComplexWarning)Ú	_nan_maskÚ_replace_nan)Úassert_Úassert_equalÚassert_almost_equalÚassert_raisesÚassert_raises_regexÚ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   s   g | ]
}|j ‘qS © ©Ú__name__)Ú.0Úkr    r    ú`/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/numpy/lib/tests/test_nanfunctions.pyÚ
<listcomp>;   ó    zTestSignatureMatch.<listcomp>ú...c                 C   sT   g }t  | ¡}|j ¡ D ]0}|jt jju r6| |¡ 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)   Zprm_listr+   Zprmr    r    r%   Úget_signature=   s    
z TestSignatureMatch.get_signatureznan_func,func©Úidsc                 C   s&   |   |¡}|   |¡}tj ||¡ d S ©N)r4   ÚnpÚtestingr	   )ÚselfZnan_funcr3   r+   Znan_signaturer    r    r%   Útest_signature_matchI   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)r8   r9   r	   ÚsetÚIDSÚlibZ_nanfunctions_implÚ__all__©r:   r    r    r%   Útest_exhaustivenessR   s    ÿz&TestSignatureMatch.test_exhaustivenessN)r(   )*r"   Ú
__module__Ú__qualname__r8   ÚnanminZaminÚnanmaxZamaxÚ	nanargminÚargminÚ	nanargmaxÚargmaxÚnansumÚsumÚnanprodÚprodÚ	nancumsumÚcumsumÚ
nancumprodÚcumprodÚnanmeanÚmeanÚ	nanmedianÚmedianÚnanpercentileÚ
percentileÚnanquantileÚquantileÚnanvarÚvarÚnanstdÚstdZNANFUNCSr=   Ústaticmethodr4   ÚpytestÚmarkÚparametrizeÚitemsr;   rA   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   s*   t  ¡ }| jD ]}||ƒ t|t ƒ qd S r7   ©Ú_ndatÚcopyÚnanfuncsr	   ©r:   ÚndatÚfr    r    r%   Útest_mutation^   s    
z%TestNanFunctions_MinMax.test_mutationc                 C   s\   t  d¡}t| j| jƒD ]>\}}dD ]0}|||dd�}|||dd�}t|j|jkƒ q$qd S ©Né   ©Nr   é   T©ÚaxisÚkeepdims©r8   ÚeyeÚziprg   Ústdfuncsr   Úndim©r:   ÚmatÚnfÚrfrq   ÚtgtÚresr    r    r%   Útest_keepdimse   s    
z%TestNanFunctions_MinMax.test_keepdimsc                 C   s^   t  d¡}t| j| jƒD ]@\}}t  d¡}||dd�}||d|d�}t||ƒ t||ƒ qd S ©Nrm   ro   ©rq   ©rq   Úout©r8   rt   ru   rg   rv   Úzerosr
   ©r:   ry   rz   r{   Úresoutr|   r}   r    r    r%   Útest_outm   s    


z TestNanFunctions_MinMax.test_outc                 C   s�   d}t | j| jƒD ]x\}}|D ]j}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ÚefdgFDGrm   ©Údtypero   r€   ©ru   rg   rv   r8   rt   rŠ   Útyper   ©r:   Úcodesrz   r{   Úcry   r|   r}   r    r    r%   Útest_dtype_from_inputv   s    z-TestNanFunctions_MinMax.test_dtype_from_inputc                    sD   t | j| jƒD ]0\}‰ ‡ fdd„tD ƒ}|tdd�}t||ƒ qd S )Nc                    s   g | ]}ˆ |ƒ‘qS r    r    ©r#   Úd©r{   r    r%   r&   …   r'   z>TestNanFunctions_MinMax.test_result_values.<locals>.<listcomp>ro   r€   ©ru   rg   rv   Ú_rdatre   r
   ©r:   rz   r|   r}   r    r“   r%   Útest_result_valuesƒ   s    z*TestNanFunctions_MinMax.test_result_valuesrq   rn   rŠ   ÚAllFloatÚarray©rm   rm   Ú0dÚ2dr5   c              	   C   s–   |d ur|j dkrt d¡ | |¡}d}| jD ]`}tjt|d�� |||d�}W d   ƒ n1 sd0    Y  t |¡ 	¡ s€J ‚|j
|j
ks0J ‚q0d S ©Nr   ú*`axis != None` not supported for 0d arraysúAll-NaN slice encountered©Úmatchr€   )rw   r_   ÚskipÚastyperg   ÚwarnsÚRuntimeWarningr8   ÚisnanÚallrŠ   ©r:   rq   rŠ   r™   r¡   r3   r‚   r    r    r%   Útest_allnans‰   s    


*z$TestNanFunctions_MinMax.test_allnansc                 C   sj   t j t¡}|j ¡ }t jfD ]F}||dd�}|tdd�}t||ƒ t|j|ƒ tt  	|¡ 
¡  ƒ qd S )Nro   r€   )r8   ÚmaZfix_invalidre   Z_maskrf   rD   r	   r   ÚisinfÚany)r:   ry   Zmskrj   r}   r|   r    r    r%   Útest_masked›   s    

z#TestNanFunctions_MinMax.test_maskedc                 C   s    | j D ]}t|dƒdkƒ qd S ©Nr   ©rg   r   ©r:   rj   r    r    r%   Útest_scalar¥   s    
z#TestNanFunctions_MinMax.test_scalarc              	   C   sB  G dd„ dt jƒ}t  d¡ |¡}| jD ]j}||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
��Z}t	 d¡ ||dd�}tt||ƒƒ tt  t  |¡¡ ƒ tt|ƒdkƒ W d   ƒ n1 �s0    Y  t	j
d	d
���}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Æ0    Y  t	j
d	d
��N}t	 d¡ ||ƒ}t|jdkƒ t|t jkƒ tt|ƒdkƒ W d   ƒ q¤1 �s20    Y  q¤d S )Nc                   @   s   e Zd ZdS )z8TestNanFunctions_MinMax.test_subclass.<locals>.MyNDArrayN©r"   rB   rC   r    r    r    r%   Ú	MyNDArrayª   s   r³   rm   r   r€   ©rm   ro   r    T©ÚrecordÚalwaysé   úno warning raised)r8   Úndarrayrt   Úviewrg   r   Ú
isinstanceÚshapeÚnanÚwarningsÚcatch_warningsÚsimplefilterr¬   r¦   ÚlenÚ
issubclassÚcategoryr¥   )r:   r³   Úminerj   r}   Úwr    r    r%   Útest_subclass©   sD    


0
$ÿ4
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��`}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   ƒ n1 sÀ0    Y  d S )Nr   ç       @ç      @r‰   r   r€   Trµ   r·   ro   r¹   )r8   r™   r¾   Úobjectr	   rD   r¿   rÀ   rÁ   Úlistr   rÂ   rÃ   rÄ   r¥   )r:   Ú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 ]h}|t ju rHdnd}|||d�}|j|ksfJ ‚||ksrJ ‚|| |¡|d�}|j|ks’J ‚||ks6J ‚q6d S )Nc                   @   s   e Zd ZdS )z7TestNanFunctions_MinMax.test_initial.<locals>.MyNDArrayNr²   r    r    r    r%   r³   â   s   r³   é	   é   éd   r   ©Úinitial)	r8   rº   Úaranger£   r¾   rg   rE   rŠ   r»   )r:   rŠ   r³   Úarrj   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 ]l}|t j	u rtdnd	}|||d
d�}|j
|ks”J ‚||ks J ‚|| |¡|d
d�}|j
|ksÂJ ‚||ksbJ ‚qbd S )Nc                   @   s   e Zd ZdS )z5TestNanFunctions_MinMax.test_where.<locals>.MyNDArrayNr²   r    r    r    r%   r³   õ   s   r³   rÎ   rm   r   r‰   Fé   é   rÏ   ©ÚwhererÒ   )r8   rº   rÓ   Úreshaper£   r¾   Ú	ones_likeÚboolrg   rD   rŠ   r»   )	r:   rŠ   r³   rÔ   rÛ   rj   Ú	referencerÕ   rÖ   r    r    r%   Ú
test_whereó   s    
z"TestNanFunctions_MinMax.test_whereN)r"   rB   rC   r8   rD   rE   rg   ÚminÚmaxrv   rk   r~   r‡   r�   r—   r_   r`   ra   Ú	typecodesr™   r¾   Úfullr©   r­   r±   rÇ   rÍ   r×   rà   r    r    r    r%   rc   Y   s0   	
þý
+
rc   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   s*   t  ¡ }| jD ]}||ƒ t|t ƒ qd S r7   rd   rh   r    r    r%   rk     s    
z+TestNanFunctions_ArgminArgmax.test_mutationc              
   C   s°   t | jtjtjgƒD ]–\}}tD ]ˆ}tƒ �n}| td¡ ||ƒ}|| }t	t 
|¡ ƒ t	|||ƒ ¡  ƒ t	t ||d |… ¡ ¡  ƒ W d   ƒ q 1 sž0    Y  q qd S )Nzinvalid value encountered in)ru   rg   r8   ZgreaterÚlessre   r   Úfilterr¥   r   r¦   r¬   Úequal)r:   rj   ZfcmpÚrowÚsupÚindÚvalr    r    r%   r—     s    z0TestNanFunctions_ArgminArgmax.test_result_valuesrq   rn   rŠ   r˜   r™   rš   r›   rœ   r5   c              	   C   sp   |d ur|j dkrt d¡ | |¡}| jD ]>}tjtdd�� |||d� W d   ƒ q,1 s`0    Y  q,d S r�   )rw   r_   r¢   r£   rg   ZraisesÚ
ValueError)r:   rq   rŠ   r™   r3   r    r    r%   r©   !  s    


z*TestNanFunctions_ArgminArgmax.test_allnansc              	   C   s\   t  d¡}| jD ]F}dD ]}ttd|||d� qdD ] }|||d�}t|t  d¡ƒ q4qd S )N©r   rm   ©r   Nz*attempt to get argm.. of an empty sequencer€   ©ro   r   )r8   r„   rg   r   rí   r	   )r:   ry   rj   rq   r}   r    r    r%   Ú
test_empty0  s    

ýz(TestNanFunctions_ArgminArgmax.test_emptyc                 C   s    | j D ]}t|dƒdkƒ qd S r®   r¯   r°   r    r    r%   r±   <  s    
z)TestNanFunctions_ArgminArgmax.test_scalarc                 C   s˜   G dd„ dt jƒ}t  d¡ |¡}| jD ]j}||dd�}tt||ƒƒ t|jdkƒ ||dd�}tt||ƒƒ t|jdkƒ ||ƒ}t|jdkƒ q(d S )	Nc                   @   s   e Zd ZdS )z>TestNanFunctions_ArgminArgmax.test_subclass.<locals>.MyNDArrayNr²   r    r    r    r%   r³   A  s   r³   rm   r   r€   r´   ro   r    )r8   rº   rt   r»   rg   r   r¼   r½   )r:   r³   rÅ   rj   r}   r    r    r%   rÇ   @  s    
z+TestNanFunctions_ArgminArgmax.test_subclassc                 C   sh   t  d¡ |¡}t j|d d…< | jD ]>}|t ju r6dnd}||dd�}|j|jksVJ ‚||ks$J ‚q$d S )NrÎ   rÏ   rÙ   T)rr   )r8   rÓ   r£   r¾   rg   rF   rw   ©r:   rŠ   rÔ   rj   rß   Úretr    r    r%   r~   Q  s    
z+TestNanFunctions_ArgminArgmax.test_keepdimsc                 C   st   t  d¡ |¡}t j|d d…< | jD ]J}t jdt jd�}|t ju rFdnd}|||d�}||u sbJ ‚||ks$J ‚q$d S )NrÎ   rÏ   r    r‰   rÙ   ©r‚   )r8   rÓ   r£   r¾   rg   r„   ÚintprF   )r:   rŠ   rÔ   rj   r‚   rß   ró   r    r    r%   r‡   \  s    
z&TestNanFunctions_ArgminArgmax.test_outN)r"   rB   rC   r8   rF   rH   rg   rk   r—   r_   r`   ra   rã   r™   r¾   rä   r©   rñ   r±   rÇ   r~   r‡   r    r    r    r%   rå   	  s&   
þý	

rå   rÏ   )é   é'   é]   éW   é.   )r›   Z1dF)ÚwriterŠ   Z
AllIntegerr˜   ÚOry   r5   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)ej  dejejg¡dd„ ƒZ*dS )ÚTestNanFunctions_NumberTypesc                 C   s   g | ]
}|j ‘qS r    r!   ©r#   Úir    r    r%   r&   †  r'   z'TestNanFunctions_NumberTypes.<listcomp>znanfunc,funcr5   Úignore)Zoverc                 C   sV   |  |¡}||ƒ}||ƒ}t||ƒ |dkrBt|ƒt|ƒu sRJ ‚n|j|jksRJ ‚d S )Nrü   ©r£   r
   rŒ   rŠ   ©r:   ry   rŠ   Únanfuncr3   r|   r‚   r    r    r%   Útest_nanfuncˆ  s    

z)TestNanFunctions_NumberTypes.test_nanfuncrX   rV   c                 C   sŒ   |  |¡}|jjdkr8tt||dd� tt||dd� nP||dd�}||dd�}t||ƒ |dkrxt|ƒt|ƒu sˆJ ‚n|j|jksˆJ ‚d S )Nr�   ro   )Úqrü   )r£   rŠ   Úkindr   Ú	TypeErrorr
   rŒ   r  r    r    r%   Útest_nanfunc_q•  s    

z+TestNanFunctions_NumberTypes.test_nanfunc_qrZ   r\   c                 C   s^   |  |¡}||dd�}||dd�}t||ƒ |dkrJt|ƒt|ƒu sZJ ‚n|j|jksZJ ‚d S )Nç      à?©Úddofrü   r  r  r    r    r%   Útest_nanfunc_ddof«  s    

z.TestNanFunctions_NumberTypes.test_nanfunc_ddofr  c                 C   sœ   |  |¡}t||dd�||dd�ƒ d}tt|ƒ� ||ddd� W d   ƒ n1 sV0    Y  tt|ƒ� ||ddd� W d   ƒ n1 sŽ0    Y  d S )Nr	  )Ú
correctionr
  z5ddof and correction can't be provided simultaneously.)r  r  ro   r   )r£   r
   r   rí   )r:   ry   rŠ   r  Úerr_msgr    r    r%   Útest_nanfunc_correction»  s    
ÿ,z4TestNanFunctions_NumberTypes.test_nanfunc_correctionN)+r"   rB   rC   r8   rD   rá   rE   râ   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rZ   r[   r\   r]   rg   Znanfunc_idsr_   r`   ra   rb   Zerrstater  rX   rY   rV   rW   r  r  r  r    r    r    r%   rý   r  sB   ô
ý
ý
ÿ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   s*   t  ¡ }| jD ]}||ƒ t|t ƒ qd S r7   rd   rh   r    r    r%   rk   Í  s    
z*SharedNanFunctionsTestsMixin.test_mutationc                 C   s\   t  d¡}t| j| jƒD ]>\}}dD ]0}|||dd�}|||dd�}t|j|jkƒ q$qd S rl   rs   rx   r    r    r%   r~   Ô  s    
z*SharedNanFunctionsTestsMixin.test_keepdimsc                 C   s^   t  d¡}t| j| jƒD ]@\}}t  d¡}||dd�}||d|d�}t||ƒ t||ƒ qd S r   rƒ   r…   r    r    r%   r‡   Ü  s    


z%SharedNanFunctionsTestsMixin.test_outc           	   
   C   sô   t  d¡}d}t| j| jƒD ]Ò\}}|D ]Ä}tƒ �ª}|t jt jhv rV|dv rV| t	¡ ||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   ƒ q(1 sâ0    Y  q(qd S ©Nrm   rˆ   ZFDGro   )rŠ   rq   ©r8   rt   ru   rg   rv   r   r\   rZ   rç   r   rŠ   rŒ   r   ©	r:   ry   rŽ   rz   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 ]¬}tƒ �’}|t jt jhv rV|dv rV| t	¡ |||dd�j
j}|||dd�j
j}t||u ƒ |||d d�j
j}|||d d�j
j}t||u ƒ W d   ƒ q(1 sÊ0    Y  q(qd S r  r  r  r    r    r%   Útest_dtype_from_charö  s    

z1SharedNanFunctionsTestsMixin.test_dtype_from_charc                 C   sš   d}t | j| jƒD ]‚\}}|D ]t}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ˆ   rm   r‰   ro   r€   zres %s, tgt %sr‹   r�   r    r    r%   r�     s    z2SharedNanFunctionsTestsMixin.test_dtype_from_inputc                    sD   t | j| jƒD ]0\}‰ ‡ fdd„tD ƒ}|tdd�}t||ƒ qd S )Nc                    s   g | ]}ˆ |ƒ‘qS r    r    r‘   r“   r    r%   r&     r'   zCSharedNanFunctionsTestsMixin.test_result_values.<locals>.<listcomp>ro   r€   r”   r–   r    r“   r%   r—     s    z/SharedNanFunctionsTestsMixin.test_result_valuesc                 C   s    | j D ]}t|dƒdkƒ qd S r®   r¯   r°   r    r    r%   r±     s    
z(SharedNanFunctionsTestsMixin.test_scalarc                 C   sÐ   G dd„ dt jƒ}t  d¡}| |¡}| jD ]ž}||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                   @   s   e Zd ZdS )z=SharedNanFunctionsTestsMixin.test_subclass.<locals>.MyNDArrayNr²   r    r    r    r%   r³     s   r³   rm   r   r€   ro   )r8   rº   rt   r»   rg   r½   r   r¼   )r:   r³   r™   rÅ   rj   Zexpected_shaper}   r    r    r%   rÇ     s     



z*SharedNanFunctionsTestsMixin.test_subclassN)r"   rB   rC   rk   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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_SumProdrq   rn   rŠ   r˜   r™   rš   r›   rœ   r5   c                 C   sr   |d ur|j dkrt d¡ | |¡}t| jddgƒD ]6\}}|||d�}t ||k¡s\J ‚|j|jks6J ‚q6d S )Nr   rž   ro   r€   ©	rw   r_   r¢   r£   ru   rg   r8   r§   rŠ   ©r:   rq   rŠ   r™   r3   Úidentityr‚   r    r    r%   r©   :  s    

z%TestNanFunctions_SumProd.test_allnansc                 C   s‚   t tjtjgddgƒD ]f\}}t d¡}|gd }||dd�}t||ƒ g }||dd�}t||ƒ |}||d d�}t||ƒ qd S )Nr   ro   rî   rm   r€   )ru   r8   rJ   rL   r„   r	   ©r:   rj   Z	tgt_valuery   r|   r}   r    r    r%   rñ   J  s    



z#TestNanFunctions_SumProd.test_emptyc                 C   sf   t  d¡ |¡}t j|d d…< | jD ]<}|t ju r6dnd}||dd�}|j|ksTJ ‚||ks$J ‚q$d S )NrÎ   rÏ   é   i   r¸   rÑ   )r8   rÓ   r£   r¾   rg   rJ   rŠ   rò   r    r    r%   r×   W  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 rbdnd}|||dd	�}|j	|ks‚J ‚||ksPJ ‚qPd S )
NrÎ   rm   r   r‰   Fé   iÀ  r¸   rÚ   )
r8   rÓ   rÜ   r£   r¾   rÝ   rÞ   rg   rJ   rŠ   )r:   rŠ   rÔ   rÛ   rj   rß   ró   r    r    r%   rà   b  s    
z#TestNanFunctions_SumProd.test_whereN)r"   rB   rC   r8   rJ   rL   rg   rK   rM   rv   r_   r`   ra   rã   r™   r¾   rä   r©   rñ   r×   rà   r    r    r    r%   r  5  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dd„ Zdd„ Zdd„ ZdS )ÚTestNanFunctions_CumSumProdrq   rn   rŠ   r˜   r™   rš   r›   rœ   r5   c                 C   sn   |d ur|j dkrt d¡ | |¡}t| jddgƒD ]2\}}||ƒ}t ||k¡sXJ ‚|j|jks6J ‚q6d S )Nr   rž   ro   r  r  r    r    r%   r©   u  s    

z(TestNanFunctions_CumSumProd.test_allnansc                 C   s†   t | jddgƒD ]p\}}t d¡}|t d¡ }||dd�}t||ƒ |}||dd�}t||ƒ t d¡}||d d�}t||ƒ qd S )Nr   ro   rî   r€   )ru   rg   r8   r„   Úonesr	   r  r    r    r%   rñ   …  s    



z&TestNanFunctions_CumSumProd.test_emptyc           	      C   sÔ   t | j| jƒD ]H\}}t d¡}dD ]0}|||d d�}|||d d�}t|j|jkƒ q$q| jD ]p}t d¡}tj 	d¡}tj
||j|jŽ dk < ||d d�}t|jdƒ t d	¡D ]}|||d�}t|jdƒ q°q^d S )
Nrm   rn   r�   ©rm   rÏ   é   é   r   r	  r€   )iƒ  rØ   )ru   rg   rv   r8   rt   r   rw   r  ÚrandomÚRandomStater¾   Úrandr½   r	   rÓ   )	r:   rj   Úgry   rq   r|   r}   r’   Úrsr    r    r%   r~   ’  s    


z)TestNanFunctions_CumSumProd.test_keepdimsc                 C   sZ   dD ]P}t jt|d�}t jt|d�}t||ƒ t jt|d�}t jt|d�}t||ƒ qd S )N)éþÿÿÿéÿÿÿÿr   ro   Nr€   )	r8   rQ   Ú
_ndat_onesrP   re   r
   rO   Ú_ndat_zerosrN   )r:   rq   r|   r}   r    r    r%   r—   ¥  s    
z.TestNanFunctions_CumSumProd.test_result_valuesc                 C   sh   t  d¡}t| j| jƒD ]J\}}t  d¡}dD ]2}|||d�}||||d�}t||ƒ t||ƒ q.qd S )Nrm   )r'  r(  r   ro   r€   r�   )r8   rt   ru   rg   rv   r
   )r:   ry   rz   r{   r†   rq   r|   r}   r    r    r%   r‡   ®  s    


z$TestNanFunctions_CumSumProd.test_outN)r"   rB   rC   r8   rN   rP   rg   rO   rQ   rv   r_   r`   ra   rã   r™   r¾   rä   r©   rñ   r~   r—   r‡   r    r    r    r%   r  p  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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 )Nro   )rq   rŠ   )rg   r8   rÞ   Úint_Úobject_r   r  re   )r:   rj   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‰   ro   r�   )
rg   r8   rÞ   r,  r-  r/   re   r½   r   r  )r:   rj   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 ]0‰ ‡ ‡fdd„tD ƒ}|tdˆ d�}t||ƒ q.q"d S )N©r   ro   c                    s   g | ]}ˆ|ˆ d �‘qS )r
  r    r‘   ©r  r{   r    r%   r&   Î  r'   z9TestNanFunctions_MeanVarStd.test_ddof.<locals>.<listcomp>ro   ©rq   r  )	r8   rZ   r\   r[   r]   ru   r•   re   r
   )r:   rg   rv   rz   r|   r}   r    r1  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 ]®\}}tdƒD ]œ‰ tƒ �‚}| 	t
¡ | t¡ ‡ fdd„|D ƒ}|tdˆ d�}tt  |¡|ƒ t|ƒr¬tt|jƒdkƒ ntt|jƒdkƒ W d   ƒ q@1 sÒ0    Y  q@q0d 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'   ro   r2  r   )r8   rZ   r\   r[   r]   r•   ru   Úranger   r¶   r¥   rç   r   re   r	   r¦   r¬   r   rÂ   Úlog)	r:   rg   rv   Zdsizerz   r{   rê   r|   r}   r    r
  r%   Útest_ddof_too_bigÒ  s    

z-TestNanFunctions_MeanVarStd.test_ddof_too_bigrq   rn   rŠ   r˜   r™   rš   r›   rœ   r5   c              	   C   s¸   |d ur|j dkrt d¡ | |¡}d}| jD ]‚}tjt|d�� |||d�}W d   ƒ n1 sd0    Y  t |¡ 	¡ s€J ‚|tj
u rœ|j|jks²J ‚q0|jt |¡jks0J ‚q0d S )Nr   rž   z:(Degrees of freedom <= 0 for slice.)|(Mean of empty slice)r    r€   )rw   r_   r¢   r£   rg   r¤   r¥   r8   r¦   r§   rR   rŠ   Úabsr¨   r    r    r%   r©   ã  s    


*
z(TestNanFunctions_MeanVarStd.test_allnansc              
   C   s   t  d¡}| jD ]ê}dD ]x}tjdd��X}t d¡ tt  |||d�¡ ¡ ƒ tt	|ƒdkƒ tt
|d jtƒƒ W d   ƒ q1 s†0    Y  qd	D ]b}tjdd��B}t d¡ t|||d�t  g ¡ƒ tt	|ƒdkƒ W d   ƒ q–1 sî0    Y  q–qd S ©
Nrî   rï   Trµ   r·   r€   ro   r   rð   )r8   r„   rg   r¿   rÀ   rÁ   r   r¦   r§   rÂ   rÃ   rÄ   r¥   r	   )r:   ry   rj   rq   rÆ   r    r    r%   rñ   û  s    


4
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 ]Z\}}||| dd … ƒ}|t j
u r‚|n|jj}|||d�}|j|ks¤J ‚t j ||¡ qXd S )NrÎ   rm   r   r‰   Fr¸   )rÛ   )r8   rÓ   rÜ   r£   r¾   rÝ   rÞ   ru   rg   rv   rR   ÚrealrŠ   r9   Zassert_allclose)	r:   rŠ   rÔ   rÛ   rj   Zf_stdrß   Zdtype_referenceró   r    r    r%   rà   
  s    z&TestNanFunctions_MeanVarStd.test_wherec                 C   sÔ   t j d¡}| ddd¡d }t j|d d …dd d …f< t  d¡}t  d¡}t j||ddd	�}||u shJ ‚t j||dd|d
�}||u sˆJ ‚|j|jks˜J ‚|jdks¦J ‚t j|ddd�}|j|jksÆJ ‚t	||ƒ d S )NiÒ  é
   é   rÏ   r	  )r:  ro   rÏ   ro   T)r‚   rq   rr   )r‚   rq   rr   rS   rp   )
r8   r"  r#  Úrandnr¾   r„   rR   r\   r½   r
   )r:   ÚrngÚAZmean_outZstd_outrS   r]   Zstd_oldr    r    r%   Útest_nanstd_with_mean_keyword  s.    

ýüz9TestNanFunctions_MeanVarStd.test_nanstd_with_mean_keywordN)r"   rB   rC   r8   rR   rZ   r\   rg   rS   r[   r]   rv   r.  r/  r3  r6  r_   r`   ra   rã   r™   r¾   rä   r©   rñ   rà   r?  r    r    r    r%   r+  ¹  s&   	
þý
r+  )ÚYÚMÚWÚDÚhÚmÚsÚmsÚusÚnsZpsÚfsÚasc                 C   s   g | ]}d |› d�‘qS )zm8[ú]r    )r#   Úunitr    r    r%   r&   C  r'   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 r7   )re   rf   r8   rT   r	   ©r:   ri   r    r    r%   rk   H  s    
z%TestNanFunctions_Median.test_mutationc                 C   sn  t  d¡}dD ]8}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ƒ �Â}| 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   ƒ n1 �s`0    Y  d S )Nrm   rn   F©rq   r‚   Úoverwrite_inputr  ©rØ   éÈ   Trp   ©ro   ro   ro   ro   r0  ©ro   ro   r   r!  rî   ©ro   rÏ   r   ro   rð   ©rm   ro   r   r!  ©r   ro   r¸   rm   ©r   ro   rm   ©ro   ro   r   ro   )r8   rt   rU   rT   r   rw   r  r"  r™   r½   r£   rõ   r¾   Útupler   rç   r¥   r	   ©r:   ry   rq   r|   r}   r’   rÆ   rê   r    r    r%   r~   N  s.    

$
z%TestNanFunctions_Median.test_keepdimsrq   ©Nro   rð   r0  )éýÿÿÿr(  ©ÚargnamesZ	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 s®J ‚t|j|ƒ d S )Nr  rR  rð   c                 3   s$   | ]}|ˆ v rd nˆj | V  qdS ©ro   N©r½   rþ   ©Z	axis_normr’   r    r%   Ú	<genexpr>~  s   z<TestNanFunctions_Median.test_keepdims_out.<locals>.<genexpr>T©rq   rr   r‚   )r8   r  r"  r™   r½   r£   rõ   r¾   r[  rw   r   r4  r/   rT   r	   )r:   rq   rÆ   Ú	shape_outr‚   Úresultr    rd  r%   Útest_keepdims_outi  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 )	Nrm   r   r¸   ro   r€   r�   r    r0  )	r8   r"  r$  Úinsertr¾   r„   rU   rT   r
   )r:   ry   Únan_matr†   r|   r}   r    r    r%   r‡   …  s    






z TestNanFunctions_Median.test_outc                 C   sž   dD ]”}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�¡ qVtt j|d	d
�|ƒ qd S )N)rÏ   r;  é3   rS  iè  rØ   r   rÏ   ©Úsizer   T)rQ  r(  r€   )r8   r"  r<  Úrandintrn  r¾   ZravelÚcompressr¦   r0   rU   r   rT   )r:   rF  r’   rÆ   r|   ÚxZ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    )r8   rU   r‘   r    r    r%   r&   ¨  r'   z>TestNanFunctions_Median.test_result_values.<locals>.<listcomp>ro   r€   )r•   r8   rT   re   r
   )r:   r|   r}   r    r    r%   r—   §  s    z*TestNanFunctions_Median.test_result_valuesrn   rŠ   c                 C   s  t  dt j¡ |¡}tƒ �ä}| t¡ t j||d�}|j|jksDJ ‚t  	|¡ 
¡ sVJ ‚|d u rrtt|jƒdkƒ ntt|jƒdkƒ t  t j¡ |¡d }t  |¡}|j|jks´J ‚t  	|¡sÂJ ‚|d u rÞtt|jƒdkƒ ntt|jƒdkƒ W d   ƒ n1 �s0    Y  d S )Nrš   r€   ro   rm   r    r¸   rØ   )r8   rä   r¾   r£   r   r¶   r¥   rT   rŠ   r¦   r§   r   rÂ   r5  r™   )r:   rŠ   rq   ry   rê   ÚoutputZscalarZoutput_scalarr    r    r%   r©   ¬  s     

z$TestNanFunctions_Median.test_allnansc              	   C   sø   t  d¡}dD ]z}tjdd��Z}t d¡ tt  t j||d�¡ ¡ ƒ tt	|ƒdkƒ tt
|d jtƒƒ W d   ƒ q1 s~0    Y  qd	D ]d}tjdd��D}t d¡ tt j||d�t  g ¡ƒ tt	|ƒdkƒ W d   ƒ qŽ1 sè0    Y  qŽd S r8  )r8   r„   r¿   rÀ   rÁ   r   r¦   rT   r§   rÂ   rÃ   rÄ   r¥   r	   ©r:   ry   rq   rÆ   r    r    r%   rñ   Ç  s    

4
z"TestNanFunctions_Median.test_emptyc                 C   s   t t d¡dkƒ d S r®   )r   r8   rT   r@   r    r    r%   r±   Õ  s    z#TestNanFunctions_Median.test_scalarc                 C   sh   t  d¡}ttt j|dd� ttt j|dd� ttt j|dd� ttt j|dd� ttt j|dd� d S )Nr  éûÿÿÿr€   ©r   ru  rØ   ©r   rØ   ©ro   ro   )r8   r  r   r   rT   rí   ©r:   r’   r    r    r%   Útest_extended_axis_invalidØ  s    
z2TestNanFunctions_Median.test_extended_axis_invalidc              	   C   sú  t ƒ ��Ü}| t¡ tjtj fD �]°}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 ]ø}t
ddƒD ]æ}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   ƒ n1 �sì0    Y  d S )Nr   r€   ro   r   i÷ÿÿÿiöÿÿÿrÏ   rØ   r‰   rÉ   g      @ç      @g      @g      $Àg      "Àg      Àr(  g      ð¿r:  r¸   )r   rç   r¥   r8   Úinfr™   r¾   r	   rT   Úfloat32r4  )r:   rê   r|  Úarÿ   Újr    r    r%   Útest_float_specialà  sR    

ÿþý
"ÿ$ÿz*TestNanFunctions_Median.test_float_specialN)r"   rB   rC   rk   r~   r_   r`   ra   Úfilterwarningsri  r‡   rr  r—   Ú_TYPE_CODESr©   rñ   r±   rz  r€  r    r    r    r%   rN  F  s$   þ

rN  c                	   @   sV  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	ej dddg¡dd„ ƒZ
dd„ Zej dddg¡ej dddg¡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*g d+¢¡d,d-„ ƒZej dg d.¢¡d/d0„ ƒZd1S )2ÚTestNanFunctions_Percentilec                 C   s"   t  ¡ }t |d¡ t|t ƒ d S )Né   )re   rf   r8   rV   r	   rO  r    r    r%   rk     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ƒ �Î}| 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   ƒ n1 �sp0    Y  d S )Nrm   rn   éF   FrP  r  rR  éZ   Trp   rT  r0  rU  rî   rV  rð   rW  rX  rY  rZ  )r8   rt   rW   rV   r   rw   r  r"  r™   r½   r£   rõ   r¾   r[  r   rç   r¥   r	   r\  r    r    r%   r~     s6    
ÿÿ
$
z)TestNanFunctions_Percentile.test_keepdimsr  r   ro   rq   r]  r_  ra  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  rR  rð   c                 3   s$   | ]}|ˆ v rd nˆj | V  qdS rb  rc  rþ   rd  r    r%   re  J  s   z@TestNanFunctions_Percentile.test_keepdims_out.<locals>.<genexpr>Trf  )r8   r  r"  r™   r½   r£   rõ   r¾   r[  rw   r   r4  r/   rV   r	   )r:   r  rq   rÆ   rg  r‚   rh  r    rd  r%   ri  4  s    
$ÿ
z-TestNanFunctions_Percentile.test_keepdims_outÚweightedFTc           	      C   s*  t j dd¡}t j|ddgt jdd�}t  d¡}|rVt  |¡ddœ}t  |¡ddœ}ntƒ }tƒ }t j|dfd	di|¤Ž}t j	|dfd|d
œ|¤Ž}t
||ƒ t
||ƒ t  d¡}t j|dfd	d i|¤Ž}t j	|dfd |d
œ|¤Ž}t
||ƒ t
||ƒ t j	|dfd|d
œ|¤Ž}t
||ƒ t
||ƒ d S )Nrm   r   r¸   ro   r€   Úinverted_cdf©ÚweightsÚmethodé*   rq   r�   r    r0  )r8   r"  r$  rj  r¾   r„   rÝ   ÚdictrW   rV   r
   )	r:   r‡  ry   rk  r†   Úw_argsZ
nan_w_argsr|   r}   r    r    r%   r‡   S  sB    

ÿ


ÿÿÿ

ÿÿÿ
z$TestNanFunctions_Percentile.test_outc                 C   sj   t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ d S ©N)y      à?      @yÍÌÌÌÌÌ @      à?yš™™™™™ù?ffffff@ÚGr‰   r	  rC  ÚF)r8   r™   r   r  rV   ©r:   Zarr_cr    r    r%   Útest_complexr  s    z(TestNanFunctions_Percentile.test_complexÚuse_outc                    sÔ   |r*t tjdd�‰t tjdd�}dd„ ‰ ntj‰tj}dd„ ‰ ‡ ‡fdd„tD ƒ}|r`t |¡nd }|tdd	ˆ tƒ|d
�}t||ƒ t ‡ ‡fdd„tD ƒ¡}|r¬t |¡nd }|tdd	ˆ tƒ|d
�}t||ƒ d S )Nrˆ  ©r‹  c                 S   s
   t  | ¡S r7   )r8   rÝ   ©r’   r    r    r%   Úgen_weights�  s    zCTestNanFunctions_Percentile.test_result_values.<locals>.gen_weightsc                 S   s   d S r7   r    r–  r    r    r%   r—  ˆ  s    c                    s   g | ]}ˆ|d ˆ |ƒd�‘qS )r  ©rŠ  r    r‘   ©r—  rW   r    r%   r&   ‹  r'   zBTestNanFunctions_Percentile.test_result_values.<locals>.<listcomp>r  ro   )rq   rŠ  r‚   c                    s   g | ]}ˆ|d ˆ |ƒd�‘qS )©r  éb   r˜  r    r‘   r™  r    r%   r&   ‘  s   ÿrš  )	r   r8   rW   rV   r•   Ú
empty_likere   r
   Z	transpose)r:   r‡  r”  rV   r|   r‚   r}   r    r™  r%   r—   z  s*    
ÿ
ÿÿz.TestNanFunctions_Percentile.test_result_valuesrn   rŠ   ÚFloatr™   rš   r›   rœ   r5   c                 C   sŠ   |d ur|j dkrt d¡ | |¡}tjtdd��  tj|d|d�}W d   ƒ n1 sZ0    Y  t |¡ 	¡ svJ ‚|j
|j
ks†J ‚d S )Nr   rž   rŸ   r    é<   r€   )rw   r_   r¢   r£   r¤   r¥   r8   rV   r¦   r§   rŠ   ©r:   rq   rŠ   r™   r‚   r    r    r%   r©   ˜  s    

.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   ƒ q1 s€0    Y  qd
D ]f}tjdd��F}t d¡ tt j|d|d�t  g ¡ƒ tt	|ƒd	kƒ W d   ƒ q�1 sì0    Y  q�d S )Nrî   rï   Trµ   r·   é(   r€   ro   r   rð   )r8   r„   r¿   rÀ   rÁ   r   r¦   rV   r§   rÂ   rÃ   rÄ   r¥   r	   rt  r    r    r%   rñ   ¨  s    

4
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	   r8   rV   rÓ   r   Zisscalar)r:   r~  Úrr    r    r%   r±   ¶  s
    

z'TestNanFunctions_Percentile.test_scalarc                 C   sr   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� d S )	Nr  rÏ   ru  ©r  rq   rv  rØ   rw  rx  )r8   r  r   r   rV   rí   ry  r    r    r%   rz  ½  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 ] }d
D ]–}tƒ �|}| td¡ t j||||d�}t j||||d�}	t|	j	|j	ƒ t j||||d�}t j||||d�}	t|	|ƒ W d   ƒ qp1 sü0    Y  qpqht  d¡}
tt j|
|dd�j	dƒ d S )Nr¢  rÐ   )rØ   rm   )rm   rØ   rÏ   r   r¸   rØ   rm   rn   )FTrŸ   rp   )rm   rØ   rÏ   r¡  )ro   r¸   r€   )r¸   rm   r¡  )
r8   r  r¾   r   rç   r¥   rW   rV   r	   r½   )r:   Úpercry   rk  Z	large_matrq   Zkeepdimrê   rì   Znan_valZmegamatr    r    r%   Útest_multiple_percentilesÅ  s4    


"
ÿ
ÿ
ÿ,
ÿz5TestNanFunctions_Percentile.test_multiple_percentilesÚ
nan_weight)r   ro   r¸   rm   çZb××çtic                 C   s^   dt jddg}t  d¡}t j|ddd�}t||ƒ d|ddg}t j|d|dd	�}t||ƒ d S )
Nro   r¸   rm   rÈ   r¢  rˆ  r•  r   r‰  )r8   r¾   Úfloat64rV   r	   )r:   r§  rq  rh  Zq_unweightedrÆ   Z
q_weightedr    r    r%   Útest_nan_value_with_weightá  s    

z6TestNanFunctions_Percentile.test_nan_value_with_weight©r   ro   r¸   c                 C   s  t j d¡ t jjdd�}| ¡ }t j|t  d¡t  d¡df< t  g d¢g d¢g¡}t  |¡}d|t  |¡< t j	||||dd	�}t j
|||dd
�}t||ƒ d|t  |¡< t j
||||dd	�}t||ƒ t  |¡}	t j
|||||	dd�}
|
|	u sôJ ‚t|	|ƒ d S )Nro   )rÐ   éc   r¸   rm  r¬  r   )g      4@g      I@r„  )r…  é!   éP   rˆ  )rq   rŠ  r‹  )rq   r‹  r¨  )rq   rŠ  r‚   r‹  )r8   r"  Úseedrf   r¾   rÓ   r™   rÝ   r¦   rW   rV   r	   rœ  )r:   rq   Zx_no_nanrq  ÚprŠ  Z
p_expectedZp_unweightedZ
p_weightedr‚   r}   r    r    r%   Útest_nan_value_with_weight_ndimí  s2    

ÿÿ

ÿ

ÿz;TestNanFunctions_Percentile.test_nan_value_with_weight_ndimN)r"   rB   rC   rk   r~   r_   r`   ra   r�  ri  r‡   r“  r—   r8   rã   r™   r¾   rä   r©   rñ   r±   rz  r¦  rª  r±  r    r    r    r%   rƒ    s@   þ



þý

rƒ  c                	   @   s˜   e Zd Zej dddg¡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_Quantiler‡  FTc                 C   sJ  t  d¡ ddd¡ t¡}t j|d d< |r>t  |¡ddœ}ntƒ }tt j	|fd	d
i|¤Žt j
|fd	di|¤Žƒ tt j	|fd
ddœ|¤Žt j
|fdddœ|¤Žƒ tt j	|fd
ddœ|¤Žt j
|fdddœ|¤Žƒ tt j	|fd
gddœ|¤Žt j
|fdgddœ|¤Žƒ tt j	|fg d¢ddœ|¤Žt j
|fg d¢ddœ|¤Žƒ d S )Né   r¸   rm   rØ   r   ro   rˆ  r‰  r  r	  r¢  r¤  )ç      Ð?r	  ç      è?)é   r¢  éK   )r8   rÓ   rÜ   r£   Úfloatr¾   rÝ   r�  r	   rX   rV   )r:   r‡  rÔ   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   ro   g      @g      ü?)r8   rÓ   r	   rX   )r:   rq  r    r    r%   Ú
test_basic-  s    z$TestNanFunctions_Quantile.test_basicc                 C   sj   t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ t jg d¢dd�}ttt j|dƒ d S r�  )r8   r™   r   r  rX   r’  r    r    r%   r“  3  s    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@Zmidpointr•  )r8   r™   rf   rX   rÓ   r   Útolist)r:   Úp0r°  r    r    r%   Útest_no_p_overwrite;  s    
z-TestNanFunctions_Quantile.test_no_p_overwriterq   rn   rŠ   r�  r™   rš   r›   rœ   r5   c                 C   sŠ   |d ur|j dkrt d¡ | |¡}tjtdd��  tj|d|d�}W d   ƒ n1 sZ0    Y  t |¡ 	¡ svJ ‚|j
|j
ks†J ‚d S )Nr   rž   rŸ   r    ro   r€   )rw   r_   r¢   r£   r¤   r¥   r8   rX   r¦   r§   rŠ   rŸ  r    r    r%   r©   G  s    

.z&TestNanFunctions_Quantile.test_allnansN)r"   rB   rC   r_   r`   ra   r¹  rº  r“  r½  r8   rã   r™   r¾   rä   r©   r    r    r    r%   r²    s   

þýr²  zarr, expectedr{  )FTFT)ro   rÏ   r   rÎ   r‰   Tc                 C   sP   d t j| jt jd�fD ]4}t| |d�}t||ƒ t|ƒt jur|du sJ ‚qd S )Nr‰   rô   T)r8   r/   r½   rÞ   r   r	   rŒ   rº   )rÌ   Úexpectedr‚   Úactualr    r    r%   Útest__nan_maskW  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 ]´} t jddg| d�}t|dƒ\}}|dk ¡ sŽJ ‚||usšJ ‚t	||ƒ t jddt j
g| d�}t|dƒ\}}t	|t  g d¢¡ƒ ||usèJ ‚t	|t  g d¢¡ƒ t  |d	 ¡sZJ ‚qZdS )
z] Test that _replace_nan returns the original array if there are no
    NaNs, not a copy.
    r   ro   r‰   Nr¸   F)FFTr«  r(  )r8   rÞ   Zint32Úint64r™   r   r}  r©  r§   r	   r¾   r¦   )rŠ   rÌ   rh  ÚmaskZarr_nanZ
result_nanZmask_nanr    r    r%   Útest__replace_nanr  s"    
rÃ  )8r¿   r_   r*   Ú	functoolsr   Únumpyr8   Znumpy._core.numericr   Znumpy.exceptionsr   r   Znumpy.lib._nanfunctions_implr   r   Znumpy.testingr   r	   r
   r   r   r   r   r™   r¾   re   r•   r)  r*  r   rc   rå   Z_TEST_ARRAYSr-   Ú_vZsetflagsr`   ra   rã   Úkeysrý   r  r  r  r+  Z_TIME_UNITSrË   r‚  rN  rƒ  r²  r|  rÁ  Z	complex64rÀ  rÃ  r    r    r    r%   Ú<module>   sž   $ýý
ý
ý/ 1bþþUi;I  J  	Aÿÿÿ
ÿÿ
ÿþõ
