U
    M»{j/®  ã                   @   sT  d dl Z d dlZd dlZd dl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 ddddg¡e dd	d
ddg¡e ddg¡e dddg¡gZe ddddddgdd	dd
ddgddddddgddddddgg¡Ze ddddddgdd	dd
ddgddddddgddddddgg¡ZG dd„ dƒZG dd„ dƒZG dd„ dƒZe d¡e dddddg¡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)d*„ d*ƒƒƒZ G d+d,„ d,ƒZ!G d-d.„ d.e!ƒZ"G d/d0„ d0e!ƒZ#G d1d2„ d2e!ƒZ$d3Z%e&ejd% ƒZ'e'd4d5„ e%D ƒ7 Z'G d6d7„ d7ƒZ(G d8d9„ d9ƒZ)G d:d;„ d;ƒZ*ej d<e ejd=ejej+g¡e d!d>d!d>g¡fejd?dd@dAgej,dB�d>fe d!d>d!d>g¡d>fejejd=gejej+ggej-dB�e d!d>gd!d>gg¡fg¡dCdD„ ƒZ.dEdF„ Z/dS )Gé    N)Ú	_nan_maskÚ_replace_nan)Úassert_Úassert_equalÚassert_almost_equalÚassert_raisesÚassert_array_equalÚsuppress_warningsg³êsµûã?g&S£’:Ñ?gàœ¥½Á‡?gÁÊ¡E¶ó½?gÞ	Šá?g»¸�ðî¿gáz®GáÊ?gL¦
F%uÞ?g6<½R–!Ò?g[B>èÙ¬º?g“:M„ã¿gÏ÷Sã¥›Ä?gzÇ):’ËÇ?g•Ô	h"Ô?ç      ð?ç        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/bwave/python/venv/lib/python3.8/site-packages/numpy/lib/tests/test_nanfunctions.pyÚ
<listcomp>8   s     zTestSignatureMatch.<listcomp>ú...c                 C   sT   g }t  | ¡}|j ¡ D ]0}|jt jjk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©Zidsc                 C   s&   |   |¡}|   |¡}tj ||¡ d S ©N)r    ÚnpÚtestingr   )ÚselfZnan_funcr   r   Znan_signaturer   r   r   Útest_signature_matchF   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)r#   r$   r   ÚsetÚIDSÚlibZnanfunctionsÚ__all__©r%   r   r   r   Útest_exhaustivenessO   s     ÿz&TestSignatureMatch.test_exhaustivenessN)r   )*r   Ú
__module__Ú__qualname__r#   Ú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(   Ústaticmethodr    ÚpytestÚmarkÚparametrizeÚitemsr&   r,   r   r   r   r   r   '   sF                 ò
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dddg¡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 r"   ©Ú_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©r#   ÚeyeÚziprR   Ústdfuncsr   Úndim©r%   ÚmatÚnfÚrfr\   ÚtgtÚresr   r   r   Útest_keepdimsb   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 ©NrX   rZ   ©r\   ©r\   Úout©r#   r_   r`   rR   ra   Úzerosr   ©r%   rd   re   rf   Úresoutrg   rh   r   r   r   Útest_outj   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||kƒ ||d d�jj}||d d�jj}t||kƒ qqd S )NÚefdgFDGrX   ©ÚdtyperZ   rk   ©r`   rR   ra   r#   r_   ru   Útyper   ©r%   Úcodesre   rf   Úcrd   rg   rh   r   r   r   Útest_dtype_from_inputs   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©rf   r   r   r   ‚   s     z>TestNanFunctions_MinMax.test_result_values.<locals>.<listcomp>rZ   rk   ©r`   rR   ra   Ú_rdatrP   r   ©r%   re   rg   rh   r   r~   r   Útest_result_values€   s    z*TestNanFunctions_MinMax.test_result_valuesr\   Nr   rZ   ru   ÚAllFloatÚarray©rX   rX   Ú0dÚ2dr!   c              
   C   s‚   |d k	r|j dkrt d¡ | |¡}d}| jD ]L}tjt|d�� |||d�}W 5 Q R X t |¡ 	¡ slt
‚|j|jks0t
‚q0d S ©Nr   ú*`axis != None` not supported for 0d arraysúAll-NaN slice encountered©Úmatchrk   )rb   rJ   ÚskipÚastyperR   ÚwarnsÚRuntimeWarningr#   ÚisnanÚallÚAssertionErrorru   ©r%   r\   ru   r„   rŒ   r   rm   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 )NrZ   rk   )r#   ÚmaZfix_invalidrP   Z_maskrQ   r/   r   r   ÚisinfÚany)r%   rd   ZmskrU   rh   rg   r   r   r   Útest_masked˜   s    

z#TestNanFunctions_MinMax.test_maskedc                 C   s    | j D ]}t|dƒdkƒ qd S ©Nr   ©rR   r   ©r%   rU   r   r   r   Útest_scalar¢   s    
z#TestNanFunctions_MinMax.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(t j|d< | jD �]T}t	j
d	d
��P}t	 d¡ ||dd�}tt||ƒƒ tt  t  |¡¡ ƒ tt|ƒdkƒ W 5 Q R X t	j
d	d
��†}t	 d¡ ||dd�}tt||ƒƒ tt  |d ¡�opt  |d ¡ �opt  |d ¡ ƒ tt|ƒdkdƒ tt|d jtƒƒ W 5 Q R X t	j
d	d
��D}t	 d¡ ||ƒ}t|jdkƒ t|t jkƒ tt|ƒdkƒ W 5 Q R X q¤d S )Nc                   @   s   e Zd ZdS )z8TestNanFunctions_MinMax.test_subclass.<locals>.MyNDArrayN©r   r-   r.   r   r   r   r   Ú	MyNDArray§   s   rŸ   rX   r   rk   ©rX   rZ   r   T©ÚrecordÚalwaysé   úno warning raised)r#   Úndarrayr_   ÚviewrR   r   Ú
isinstanceÚshapeÚnanÚwarningsÚcatch_warningsÚsimplefilterr˜   r‘   ÚlenÚ
issubclassÚcategoryr�   )r%   rŸ   ÚminerU   rh   Úwr   r   r   Útest_subclass¦   sD    



$ÿ
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��V}t d	¡ tt	t j|d
d�ƒddt jgƒ t
t|ƒd
kdƒ t
t|d jtƒƒ W 5 Q R X d S )Nr
   g       @ç      @rt   r   rk   Tr¡   r£   rZ   r¥   )r#   r„   rª   Úobjectr   r/   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krHdnd}|||d�}|j|ksft‚||ksrt‚|| 	|¡|d�}|j|ks’t‚||ks6t‚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)
r#   r¦   ÚarangerŽ   rª   rR   r0   ru   r“   r§   )r%   ru   rŸ   ÚarrU   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	krtdnd	}|||d
d�}|j
|ks”t‚||ks t‚|| |¡|d
d�}|j
|ksÂt‚||ksbt‚qbd S )Nc                   @   s   e Zd ZdS )z5TestNanFunctions_MinMax.test_where.<locals>.MyNDArrayNrž   r   r   r   r   rŸ   ò   s   rŸ   r¹   rX   r   rt   Fé   é   rº   ©Úwherer½   )r#   r¦   r¾   ÚreshaperŽ   rª   Ú	ones_likeÚbool_rR   r/   ru   r“   r§   )	r%   ru   rŸ   r¿   rÆ   rU   Ú	referencerÀ   rÁ   r   r   r   Ú
test_whereð   s    
z"TestNanFunctions_MinMax.test_where)r   r-   r.   r#   r/   r0   rR   ÚminÚmaxra   rV   ri   rr   r{   r‚   rJ   rK   rL   Ú	typecodesr„   rª   Úfullr•   r™   r�   r³   r¸   rÂ   rË   r   r   r   r   rN   V   s0   	
þý
+
rN   c                	   @   sÔ   e Zd ZejejgZdd„ Zdd„ Ze	j
 ddddg¡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 r"   rO   rS   r   r   r   rV   
  s    
z+TestNanFunctions_ArgminArgmax.test_mutationc                 C   sœ   t | jtjtjgƒD ]‚\}}tD ]t}tƒ �d}| td¡ ||ƒ}|| }t	t 
|¡ ƒ t	|||ƒ ¡  ƒ t	t ||d |… ¡ ¡  ƒ W 5 Q R X q qd S )Nzinvalid value encountered in)r`   rR   r#   ZgreaterÚlessrP   r	   Úfilterr�   r   r‘   r˜   Úequal)r%   rU   ZfcmpÚrowÚsupÚindÚvalr   r   r   r‚     s    z0TestNanFunctions_ArgminArgmax.test_result_valuesr\   Nr   rZ   ru   rƒ   r„   r…   r†   r‡   r!   c              
   C   s\   |d k	r|j dkrt d¡ | |¡}| jD ]*}tjtdd�� |||d� W 5 Q R X q,d S rˆ   )rb   rJ   r�   rŽ   rR   ZraisesÚ
ValueError)r%   r\   ru   r„   r   r   r   r   r•     s    


z*TestNanFunctions_ArgminArgmax.test_allnansc                 C   sZ   t  d¡}| jD ]D}dD ]}tt|||d� qdD ] }|||d�}t|t  d¡ƒ q2qd S )N©r   rX   ©r   Nrk   ©rZ   r   )r#   ro   rR   r   rØ   r   )r%   rd   rU   r\   rh   r   r   r   Ú
test_empty-  s    

z(TestNanFunctions_ArgminArgmax.test_emptyc                 C   s    | j D ]}t|dƒdkƒ qd S rš   r›   rœ   r   r   r   r�   6  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Ÿ   ;  s   rŸ   rX   r   rk   r    rZ   r   )r#   r¦   r_   r§   rR   r   r¨   r©   )r%   rŸ   r±   rU   rh   r   r   r   r³   :  s    
z+TestNanFunctions_ArgminArgmax.test_subclassc                 C   sh   t  d¡ |¡}t j|d d…< | jD ]>}|t jkr6dnd}||dd�}|j|jksVt‚||ks$t‚q$d S )Nr¹   rº   rÄ   T)r]   )r#   r¾   rŽ   rª   rR   r1   rb   r“   ©r%   ru   r¿   rU   rÊ   Úretr   r   r   ri   K  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krFdnd}|||d�}||ksbt‚||ks$t‚q$d S )Nr¹   rº   r   rt   rÄ   ©rm   )	r#   r¾   rŽ   rª   rR   ro   Úintpr1   r“   )r%   ru   r¿   rU   rm   rÊ   rÞ   r   r   r   rr   V  s    
z&TestNanFunctions_ArgminArgmax.test_out)r   r-   r.   r#   r1   r3   rR   rV   r‚   rJ   rK   rL   rÎ   r„   rª   rÏ   r•   rÜ   r�   r³   ri   rr   r   r   r   r   rÐ     s&   
þý		

rÐ   rº   é   é'   é]   éW   é.   )r†   Z1dF)Úwriteru   Z
AllIntegerrƒ   ÚOrd   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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   s   g | ]
}|j ‘qS r   r   )r   Úir   r   r   r   €  s     z'TestNanFunctions_NumberTypes.<listcomp>znanfunc,funcr!   Úignore)Zoverc                 C   sV   |  |¡}||ƒ}||ƒ}t||ƒ |dkrBt|ƒt|ƒksRt‚n|j|jksRt‚d S )Nrç   ©rŽ   r   rw   r“   ru   ©r%   rd   ru   Znanfuncr   rg   rm   r   r   r   Útest_nanfunc‚  s    

z)TestNanFunctions_NumberTypes.test_nanfuncrC   rA   c                 C   s^   |  |¡}||dd�}||dd�}t||ƒ |dkrJt|ƒt|ƒksZt‚n|j|jksZt‚d S )NrZ   ©Úqrç   rë   rì   r   r   r   Útest_nanfunc_q�  s    

z+TestNanFunctions_NumberTypes.test_nanfunc_qrE   rG   c                 C   s^   |  |¡}||dd�}||dd�}t||ƒ |dkrJt|ƒt|ƒksZt‚n|j|jksZt‚d S )Nç      à?©Úddofrç   rë   rì   r   r   r   Útest_nanfunc_ddofŸ  s    

z.TestNanFunctions_NumberTypes.test_nanfunc_ddofN)*r   r-   r.   r#   r/   rÌ   r0   rÍ   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rE   rF   rG   rH   rR   Znanfunc_idsrJ   rK   rL   rM   Zerrstaterí   rC   rD   rA   rB   rð   rô   r   r   r   r   rè   l  sR               ô
ý
ý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 r"   rO   rS   r   r   r   rV   ±  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 rW   r^   rc   r   r   r   ri   ¸  s    
z*SharedNanFunctionsTestsMixin.test_keepdimsc                 C   s^   t  d¡}t| j| jƒD ]@\}}t  d¡}||dd�}||d|d�}t||ƒ t||ƒ qd S rj   rn   rp   r   r   r   rr   À  s    


z%SharedNanFunctionsTestsMixin.test_outc           	      C   sâ   t  d¡}d}t| j| jƒD ]À\}}|D ]²}tƒ �¢}|t jt jhkrX|dkrX| t j	¡ ||t  
|¡dd�j
j}||t  
|¡dd�j
j}t||kƒ ||t  
|¡d d�j
j}||t  
|¡d d�j
j}t||kƒ W 5 Q R X q(qd S ©NrX   rs   ZFDGrZ   )ru   r\   ©r#   r_   r`   rR   ra   r	   rG   rE   rÒ   ÚComplexWarningru   rw   r   ©	r%   rd   ry   re   rf   rz   rÕ   rg   rh   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krX|dkrX| t j	¡ |||dd�j
j}|||dd�j
j}t||kƒ |||d d�j
j}|||d d�j
j}t||kƒ W 5 Q R X 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||kd||f ƒ ||d d�jj}||d d�jj}t||kƒ qqd S )Nrs   rX   rt   rZ   rk   zres %s, tgt %srv   rx   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   ú  s     zCSharedNanFunctionsTestsMixin.test_result_values.<locals>.<listcomp>rZ   rk   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Ÿ   rX   r   rk   rZ   )r#   r¦   r_   r§   rR   r©   r   r¨   )r%   rŸ   r„   r±   rU   Zexpected_shaperh   r   r   r   r³     s     



z*SharedNanFunctionsTestsMixin.test_subclassN)r   r-   r.   rV   ri   rr   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dddg¡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_SumProdr\   Nr   rZ   ru   rƒ   r„   r…   r†   r‡   r!   c                 C   sr   |d k	r|j dkrt d¡ | |¡}t| jddgƒD ]6\}}|||d�}t ||k¡s\t‚|j	|j	ks6t‚q6d S )Nr   r‰   rZ   rk   ©
rb   rJ   r�   rŽ   r`   rR   r#   r’   r“   ru   ©r%   r\   ru   r„   r   Úidentityrm   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   rZ   rÙ   rX   rk   )r`   r#   r5   r7   ro   r   ©r%   rU   Z	tgt_valuerd   rg   rh   r   r   r   rÜ   .  s    



z#TestNanFunctions_SumProd.test_emptyc                 C   sf   t  d¡ |¡}t j|d d…< | jD ]<}|t jkr6dnd}||dd�}|j|ksTt‚||ks$t‚q$d S )Nr¹   rº   é   i   r¤   r¼   )r#   r¾   rŽ   rª   rR   r5   ru   r“   rÝ   r   r   r   rÂ   ;  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krbdnd}|||dd	�}|j	|ks‚t
‚||ksPt
‚qPd S )
Nr¹   rX   r   rt   Fé   iÀ  r¤   rÅ   )r#   r¾   rÇ   rŽ   rª   rÈ   rÉ   rR   r5   ru   r“   )r%   ru   r¿   rÆ   rU   rÊ   rÞ   r   r   r   rË   F  s    
z#TestNanFunctions_SumProd.test_where)r   r-   r.   r#   r5   r7   rR   r6   r8   ra   rJ   rK   rL   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dddg¡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_CumSumProdr\   Nr   rZ   ru   rƒ   r„   r…   r†   r‡   r!   c                 C   sn   |d k	r|j dkrt d¡ | |¡}t| jddgƒD ]2\}}||ƒ}t ||k¡sXt‚|j	|j	ks6t‚q6d S )Nr   r‰   rZ   rý   rþ   r   r   r   r•   Y  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   rZ   rÙ   rk   )r`   rR   r#   ro   Úonesr   r   r   r   r   rÜ   i  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 )
NrX   rY   rl   ©rX   rº   é   é   r   rñ   rk   )iƒ  rÃ   )r`   rR   ra   r#   r_   r   rb   r  ÚrandomZRandomStaterª   Úrandr©   r   r¾   )	r%   rU   Úgrd   r\   rg   rh   r}   Úrsr   r   r   ri   v  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   rZ   Nrk   )	r#   r<   Ú
_ndat_onesr;   rP   r   r:   Ú_ndat_zerosr9   )r%   r\   rg   rh   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 )NrX   )r  r  r   rZ   rk   rl   )r#   r_   r`   rR   ra   r   )r%   rd   re   rf   rq   r\   rg   rh   r   r   r   rr   ’  s    


z$TestNanFunctions_CumSumProd.test_out)r   r-   r.   r#   r9   r;   rR   r:   r<   ra   rJ   rK   rL   rÎ   r„   rª   rÏ   r•   rÜ   ri   r‚   rr   r   r   r   r   r  T  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	d
ddg¡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 )NrZ   )r\   ru   )rR   r#   rÉ   Úint_Úobject_r   Ú	TypeErrorrP   )r%   rU   ru   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   rt   rZ   rl   )
rR   r#   rÉ   r  r  r   rP   r©   r   r  )r%   rU   ru   rm   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   rZ   c                    s   g | ]}ˆ|ˆ d �‘qS )rò   r   r|   ©ró   rf   r   r   r   ²  s     z9TestNanFunctions_MeanVarStd.test_ddof.<locals>.<listcomp>rZ   ©r\   ró   )	r#   rE   rG   rF   rH   r`   r€   rP   r   )r%   rR   ra   re   rg   rh   r   r  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ƒ �z}| 	t
¡ | t j¡ ‡ fdd„|D ƒ}|tdˆ d�}tt  |¡|ƒ t|ƒr®tt|jƒdkƒ ntt|jƒdkƒ W 5 Q R X q@q0d S )Nc                 S   s   g | ]}t |ƒ‘qS r   )r®   r|   r   r   r   r   ¹  s     zATestNanFunctions_MeanVarStd.test_ddof_too_big.<locals>.<listcomp>rº   c                    s   g | ]}ˆ |k‘qS r   r   r|   rò   r   r   r   ¿  s     rZ   r  r   )r#   rE   rG   rF   rH   r€   r`   Úranger	   r¢   r�   rÒ   rø   rP   r   r‘   r˜   r   r®   Úlog)	r%   rR   ra   Zdsizere   rf   rÕ   rg   rh   r   rò   r   Útest_ddof_too_big¶  s    
z-TestNanFunctions_MeanVarStd.test_ddof_too_bigr\   Nr   rZ   ru   rƒ   r„   r…   r†   r‡   r!   c              
   C   s¤   |d k	r|j dkrt d¡ | |¡}d}| jD ]n}tjt|d�� |||d�}W 5 Q R X t |¡ 	¡ slt
‚|tjkrˆ|j|jksžt
‚q0|jt |¡jks0t
‚q0d S )Nr   r‰   z:(Degrees of freedom <= 0 for slice.)|(Mean of empty slice)r‹   rk   )rb   rJ   r�   rŽ   rR   r�   r�   r#   r‘   r’   r“   r=   ru   Úabsr”   r   r   r   r•   Ç  s    



z(TestNanFunctions_MeanVarStd.test_allnansc                 C   sØ   t  d¡}| jD ]Â}dD ]d}tjdd��N}t d¡ tt  |||d�¡ ¡ ƒ tt	|ƒdkƒ tt
|d jtƒƒ W 5 Q R X qd	D ]N}tjdd��8}t d¡ t|||d�t  g ¡ƒ tt	|ƒdkƒ W 5 Q R X q‚qd S ©
NrÙ   rÚ   Tr¡   r£   rk   rZ   r   rÛ   )r#   ro   rR   r«   r¬   r­   r   r‘   r’   r®   r¯   r°   r�   r   )r%   rd   rU   r\   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 ]Z\}}||| dd … ƒ}|t j
kr‚|n|jj}|||d�}|j|ks¤t‚t j ||¡ qXd S )Nr¹   rX   r   rt   Fr¤   )rÆ   )r#   r¾   rÇ   rŽ   rª   rÈ   rÉ   r`   rR   ra   r=   Úrealru   r“   r$   Zassert_allclose)	r%   ru   r¿   rÆ   rU   Zf_stdrÊ   Zdtype_referencerÞ   r   r   r   rË   î  s    z&TestNanFunctions_MeanVarStd.test_where)r   r-   r.   r#   r=   rE   rG   rR   r>   rF   rH   ra   r  r  r  r  rJ   rK   rL   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     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g¡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 r"   )rP   rQ   r#   r?   r   ©r%   rT   r   r   r   rV   	  s    
z%TestNanFunctions_Median.test_mutationc              	   C   sX  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 5 Q R X d S )NrX   rY   F©r\   rm   Úoverwrite_inputr  ©rÃ   éÈ   Tr[   ©rZ   rZ   rZ   rZ   r  ©rZ   rZ   r  r  rÙ   ©rZ   rº   r  rZ   rÛ   ©rX   rZ   r  r  ©r   rZ   r¤   rX   ©r   rZ   rX   ©rZ   rZ   r  rZ   )r#   r_   r@   r?   r   rb   r  r  r„   r©   rŽ   rà   rª   Útupler	   rÒ   r�   r   ©r%   rd   r\   rg   rh   r}   r²   rÕ   r   r   r   ri     s.    

$
z%TestNanFunctions_Median.test_keepdimsc                 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 )	NrX   r   r¤   rZ   rk   rl   r   r  )	r#   r  r	  Úinsertrª   ro   r@   r?   r   ©r%   rd   Únan_matrq   rg   rh   r   r   r   rr   *  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º   é   é3   r3  iè  rÃ   r   rº   )Úsizer
   T)r1  r  rk   )r#   r  ZrandnÚrandintrB  rª   ZravelÚcompressr‘   r   r@   r   r?   )r%   r&  r}   r²   rg   Ú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   )r#   r@   r|   r   r   r   r   M  s     z>TestNanFunctions_Median.test_result_values.<locals>.<listcomp>rZ   rk   )r€   r#   r?   rP   r   ©r%   rg   rh   r   r   r   r‚   L  s    z*TestNanFunctions_Median.test_result_valuesr\   Nr   rZ   ru   c              	   C   sþ   t  dt j¡ |¡}tƒ �Ú}| t¡ t j||d�}|j|jksDt	‚t  
|¡ ¡ sVt	‚|d krrtt|jƒdkƒ ntt|jƒdkƒ t  t j¡ |¡d }t  |¡}|j|jks´t	‚t  
|¡sÂt	‚|d krÞtt|jƒdkƒ ntt|jƒdkƒ W 5 Q R X d S )Nr…   rk   rZ   rX   r   r¤   rÃ   )r#   rÏ   rª   rŽ   r	   r¢   r�   r?   ru   r“   r‘   r’   r   r®   r  r„   )r%   ru   r\   rd   rÕ   ÚoutputZscalarZoutput_scalarr   r   r   r•   Q  s     

z$TestNanFunctions_Median.test_allnansc              
   C   sÐ   t  d¡}dD ]f}tjdd��P}t d¡ tt  t j||d�¡ ¡ ƒ tt	|ƒdkƒ tt
|d jtƒƒ W 5 Q R X qd	D ]P}tjdd��:}t d¡ tt j||d�t  g ¡ƒ tt	|ƒdkƒ W 5 Q R X qzd S r  )r#   ro   r«   r¬   r­   r   r‘   r?   r’   r®   r¯   r°   r�   r   ©r%   rd   r\   r²   r   r   r   rÜ   l  s    

 
z"TestNanFunctions_Median.test_emptyc                 C   s   t t d¡dkƒ d S rš   )r   r#   r?   r+   r   r   r   r�   z  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  éûÿÿÿrk   ©r   rJ  rÃ   ©r   rÃ   ©rZ   rZ   )r#   r  r   Ú	AxisErrorr?   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 5 Q R X d S )Nr   rk   rZ   r  i÷ÿÿÿiöÿÿÿrº   rÃ   rt   r´   g      @ç      @g      @g      $Àg      "Àg      Àr  g      ð¿é
   r¤   )r	   rÒ   r�   r#   Úinfr„   rª   r   r?   Úfloat32r  )r%   rÕ   rS  Úaré   Újr   r   r   Útest_float_special…  sR    

ÿþý
"ÿ$ÿz*TestNanFunctions_Median.test_float_special)r   r-   r.   rV   ri   rr   rF  r‚   rJ   rK   rL   Ú_TYPE_CODESr•   rÜ   r�   rP  rW  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ej 	d	d
ddg¡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é   )rP   rQ   r#   rA   r   r/  r   r   r   rV   ¶  s    z)TestNanFunctions_Percentile.test_mutationc              	   C   sh  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 5 Q R X d S )NrX   rY   éF   Fr0  r  r2  éZ   Tr[   r4  r  r5  rÙ   r6  rÛ   r7  r8  r9  r:  )r#   r_   rB   rA   r   rb   r  r  r„   r©   rŽ   rà   rª   r;  r	   rÒ   r�   r   r<  r   r   r   ri   ¼  s6    
ÿÿ
$
z)TestNanFunctions_Percentile.test_keepdimsc                 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 )
NrX   r   r¤   rZ   rk   é*   rl   r   r  )	r#   r  r	  r=  rª   ro   rB   rA   r   r>  r   r   r   rr   Ù  s    






z$TestNanFunctions_Percentile.test_outc                 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   s   g | ]}t  |d ¡‘qS )r  ©r#   rB   r|   r   r   r   r   ì  s     zBTestNanFunctions_Percentile.test_result_values.<locals>.<listcomp>r  rZ   rk   c                 S   s   g | ]}t  |d ¡‘qS )©r  éb   r^  r|   r   r   r   r   ð  s     r_  )r€   r#   rA   rP   r   Z	transposerG  r   r   r   r‚   ë  s    
z.TestNanFunctions_Percentile.test_result_valuesr\   Nr   rZ   ru   rƒ   r„   r…   r†   r‡   r!   c              	   C   sv   |d k	r|j dkrt d¡ | |¡}tjtdd�� tj|d|d�}W 5 Q R X t |¡ 	¡ sbt
‚|j|jksrt
‚d S )Nr   r‰   rŠ   r‹   é<   rk   )rb   rJ   r�   rŽ   r�   r�   r#   rA   r‘   r’   r“   ru   ©r%   r\   ru   r„   rm   r   r   r   r•   ô  s    

z(TestNanFunctions_Percentile.test_allnansc              
   C   sÔ   t  d¡}dD ]h}tjdd��R}t d¡ tt  t j|d|d�¡ ¡ ƒ tt	|ƒdkƒ tt
|d	 jtƒƒ W 5 Q R X qd
D ]R}tjdd��<}t d¡ tt j|d|d�t  g ¡ƒ tt	|ƒd	kƒ W 5 Q R X q|d S )NrÙ   rÚ   Tr¡   r£   é(   rk   rZ   r   rÛ   )r#   ro   r«   r¬   r­   r   r‘   rA   r’   r®   r¯   r°   r�   r   rI  r   r   r   rÜ     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   rk   g      @)r   r#   rA   r¾   r   Zisscalar)r%   rU  Ú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º   rJ  ©rï   r\   rK  rÃ   rL  rM  )r#   r  r   rN  rA   rØ   rO  r   r   r   rP    s    
z6TestNanFunctions_Percentile.test_extended_axis_invalidc                 C   s  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ƒ �r}| td¡ t j||||d�}t j||||d�}	t|	j	|j	ƒ t j||||d�}t j||||d�}	t|	|ƒ W 5 Q R X qpqht  d¡}
tt j|
|dd�j	dƒ d S )Nre  r»   )rÃ   rX   )rX   rÃ   rº   r   r¤   rÃ   rX   rY   )FTrŠ   r[   )rX   rÃ   rº   rd  )rZ   r¤   rk   )r¤   rX   rd  )
r#   r  rª   r	   rÒ   r�   rB   rA   r   r©   )r%   Úpercrd   r?  Z	large_matr\   ZkeepdimrÕ   r×   Znan_valZmegamatr   r   r   Útest_multiple_percentiles!  s0    


"
ÿ
ÿ
ÿ
z5TestNanFunctions_Percentile.test_multiple_percentiles)r   r-   r.   rV   ri   rr   r‚   rJ   rK   rL   r#   rÎ   r„   rª   rÏ   r•   rÜ   r�   rP  ri  r   r   r   r   rY  ´  s"   	
þý
rY  c                	   @   s€   e Zd Zdd„ Zdd„ Zdd„ Zej ddd	d
g¡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|dddgdd
�t j|dd	dgdd
�ƒ d S )Né   r¤   rX   rÃ   r   rZ   rñ   rî   re  rg  ç      Ð?ç      è?é   éK   )	r#   r¾   rÇ   rŽ   Úfloatrª   r   rC   rA   )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   rZ   g      @g      ü?)r#   r¾   r   rC   )r%   rE  r   r   r   Ú
test_basicM  s    z$TestNanFunctions_Quantile.test_basicc                 C   sp   t  dddddg¡}| ¡ }t jt  d¡|dd� t||ƒ | ¡ }| ¡ }t jt  d¡|dd� t||ƒ d S )	Nr   rm  rl  rñ   r
   g      Y@Zmidpoint)Úmethod)r#   r„   rQ   rC   r¾   r   Útolist)r%   Úp0Úpr   r   r   Útest_no_p_overwriteS  s    
z-TestNanFunctions_Quantile.test_no_p_overwriter\   Nr   rZ   ru   rƒ   r„   r…   r†   r‡   r!   c              	   C   sv   |d k	r|j dkrt d¡ | |¡}tjtdd�� tj|d|d�}W 5 Q R X t |¡ 	¡ sbt
‚|j|jksrt
‚d S )Nr   r‰   rŠ   r‹   rZ   rk   )rb   rJ   r�   rŽ   r�   r�   r#   rC   r‘   r’   r“   ru   rb  r   r   r   r•   _  s    

z&TestNanFunctions_Quantile.test_allnans)r   r-   r.   rq  rr  rw  rJ   rK   rL   r#   rÎ   r„   rª   rÏ   r•   r   r   r   r   rj  <  s   
þýrj  zarr, expectedrQ  TrZ   r  r¹   rt   c                 C   sP   d t j| jt jd�fD ]4}t| |d�}t||ƒ t|ƒt jk	r|dkst‚qd S )Nrt   rß   T)	r#   r   r©   rÉ   r   r   rw   r¦   r“   )r·   Úexpectedrm   Úactualr   r   r   Útest__nan_masko  s
    
rz  c                  C   s  t jt jt jfD ]<} t jddg| d�}t|dƒ\}}|dks@t‚||kst‚qt jt jfD ]¸} t jddg| d�}t|dƒ\}}|dk 	¡ sŽt‚||k	sšt‚t
||ƒ t jddt jg| d�}t|dƒ\}}t
|t  dddg¡ƒ ||k	sêt‚t
|t  dddg¡ƒ t  |d ¡sZt‚qZdS )	z] Test that _replace_nan returns the original array if there are no
    NaNs, not a copy.
    r   rZ   rt   Nr¤   FTr  )r#   rÉ   Zint32Úint64r„   r   r“   rT  Zfloat64r’   r   rª   r‘   )ru   r·   ÚresultÚmaskZarr_nanZ
result_nanZmask_nanr   r   r   Útest__replace_nanŠ  s"    
r~  )0r«   rJ   r   Únumpyr#   Znumpy.lib.nanfunctionsr   r   Znumpy.testingr   r   r   r   r   r	   r„   rª   rP   r€   r  r  r   rN   rÐ   Z_TEST_ARRAYSr   Ú_vZsetflagsrK   rL   rÎ   Úkeysrè   rõ   rü   r  r  Z_TIME_UNITSr¶   rX  r.  rY  rj  rS  r{  Z	complex64rz  r~  r   r   r   r   Ú<module>   s”    ýýýý/ 1_þþ?i;Ia . 	3ÿÿÿ
ÿÿ
ÿþõ
