
    ii                     *   d dl Z d dlZd dlm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 d dlmZmZmZmZmZmZ  ej        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j        g d           ej        g d           ej        ddg           ej        g d          gZ ej        g dg dg dg dg          Z ej        g dg dg dg dg          Z G d  d!          Z G d" d#          Z G d$ d%          Z ej        d&           ej        g d'          d(Ze                                 D ]Z!e!"                    d)*           ej#        $                    d+ej%        d,         ej%        d-         z   d.z             ej#        $                    d/e                                 e&                                0           G d1 d2                                  Z' G d3 d4          Z( G d5 d6e(          Z) G d7 d8e(          Z* G d9 d:e(          Z+d;Z, e-ej%        d-                   Z.e.d< e,D             z  Z. G d= d>          Z/ G d? d@          Z0 G dA dB          Z1ej#        $                    dC ej        ej        dDej        ej2        g           ej        g dE          f ej        g dFej3        G          dHf ej        g dE          dHf ej        ej        dDgej        ej2        ggej4        G           ej        d)dHgd)dHgg          fg          dI             Z5dJ Z6ej#        7                    dKL          dM             Z8dS )N    N)partial)normalize_axis_tuple)	AxisErrorComplexWarning)	_nan_mask_replace_nan)assert_assert_almost_equalassert_array_equalassert_equalassert_raisesassert_raises_regexs?&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                      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 e D             Z!e"d	d            Z#e$j%        &                    de '                                e!          d             Z(d Z)dS )
TestSignatureMatchc                     g | ]	}|j         
S  __name__).0ks     \/var/www/html/ecfs/ecfsenv/lib/python3.11/site-packages/numpy/lib/tests/test_nanfunctions.py
<listcomp>zTestSignatureMatch.<listcomp>?   s    
(
(
(!1:
(
(
(    ...c                 <   g }t          j        |           }|j                                        D ]Y}|j        t           j        j        u r|                    |           0|                    |                    |                     Zt          j	        |          S )z?Construct a signature and replace all default parameter-values.)default)
inspect	signature
parametersvaluesr,   	Parameteremptyappendreplace	Signature)funcr,   prm_listr.   prms        r'   get_signaturez TestSignatureMatch.get_signatureA   s     %d++	'..00 	> 	>C{g/555$$$$G < <==== ***r)   znan_func,funcidsc                     |                      |          }|                      |          }t          j                            ||           d S N)r9   nptestingr   )selfnan_funcr6   r.   nan_signatures        r'   test_signature_matchz'TestSignatureMatch.test_signature_matchM   sH    
 &&t,,	**844

	=99999r)   c                     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lib_nanfunctions_impl__all__r@   s    r'   test_exhaustivenessz&TestSignatureMatch.test_exhaustivenessV   sC    

MM3rv8@AA	
 	
 	
 	
 	
r)   N)r*   )*r$   
__module____qualname__r>   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NANFUNCSrF   staticmethodr9   pytestmarkparametrizeitemsrC   rK   r"   r)   r'   r    r    .   s       
	27
	27
bi
bi
	26

BG
bi
rz

BG
bi
"-

	26
	26H  )
(x
(
(
(C	+ 	+ 	+ \	+ [_hnn.>.>CHH: : IH:
 
 
 
 
r)   r    c            
       x   e Zd Zej        ej        gZej        ej        gZ	d Z
d Zd Zd Zd Zej                            dg d          ej                            dej        d	                   ej                            d
 ej        ej                   ej        dej                  gddg          d                                     Zd Zd Zd Zd Zej                            dej        d	                   d             Zej                            dej        d	                   d             ZdS )TestNanFunctions_MinMaxc                     t                                           }| j        D ]"} ||           t          |t                      #d S r=   _ndatcopynanfuncsr   r@   ndatfs      r'   test_mutationz%TestNanFunctions_MinMax.test_mutationb   J    zz|| 	& 	&AAdGGGu%%%%	& 	&r)   c                     t          j        d          }t          | j        | j                  D ]C\  }}dD ];} |||d          } |||d          }t          |j        |j        k               <Dd S N   Nr      Taxiskeepdimsr>   eyeziprv   stdfuncsr	   ndimr@   matnfrfr   tgtress          r'   test_keepdimsz%TestNanFunctions_MinMax.test_keepdimsi       fQii$-77 	. 	.FB$ . .b4$777b4$777CH,----.	. 	.r)   c                    t          j        d          }t          | j        | j                  D ]T\  }}t          j        d          } ||d          } ||d|          }t          ||           t          ||           Ud S Nr~   r   r   r   outr>   r   r   rv   r   zerosr
   r@   r   r   r   resoutr   r   s          r'   test_outz TestNanFunctions_MinMax.test_outq       fQii$-77 	* 	*FBXa[[F"Sq///C"Sqf---CV,,,S))))	* 	*r)   c                 |   d}t          | j        | j                  D ]\  }}|D ]}t          j        d|          } ||d          j        j        } ||d          j        j        }t          ||u             ||d           j        j        } ||d           j        j        }t          ||u            d S )NefdgFDGr~   dtyper   r   r   rv   r   r>   r   r   typer	   r@   codesr   r   cr   r   r   s           r'   test_dtype_from_inputz-TestNanFunctions_MinMax.test_dtype_from_inputz   s    $-77 		$ 		$FB $ $fQa(((b1ooo+0b1ooo+0s
###b4(((.3b4(((.3s
####$		$ 		$r)   c                     t          | j        | j                  D ]:\  }fdt          D             } |t          d          }t          ||           ;d S )Nc                 &    g | ]} |          S r"   r"   r%   dr   s     r'   r(   z>TestNanFunctions_MinMax.test_result_values.<locals>.<listcomp>   !    (((Q22a55(((r)   r   r   r   rv   r   _rdatrt   r
   r@   r   r   r   r   s       @r'   test_result_valuesz*TestNanFunctions_MinMax.test_result_values   n    $-77 	* 	*FB((((%(((C"U###CS))))	* 	*r)   r   r   r   AllFloatarrayr~   r~   0d2dr:   c                 ~   ||j         dk    rt          j        d           |                    |          }d}| j        D ]|}t          j        t          |          5   |||          }d d d            n# 1 swxY w Y   t          j        |          	                                sJ |j
        |j
        k    sJ }d S Nr   *`axis != None` not supported for 0d arraysAll-NaN slice encounteredmatchr   )r   rl   skipastyperv   warnsRuntimeWarningr>   isnanallr   r@   r   r   r   r   r6   r   s          r'   test_allnansz$TestNanFunctions_MinMax.test_allnans   s    
aKDEEEU##+M 	, 	,DnE::: - -d5t,,,- - - - - - - - - - - - - - -8C==$$&&&&&9+++++		, 	,   A77A;	>A;	c                    t           j                            t                    }|j                                        }t           j        fD ]z} ||d          } |t          d          }t          ||           t          |j        |           t          t          j	        |          
                                            {d S )Nr   r   )r>   mafix_invalidrt   _maskru   rN   r   r	   isinfany)r@   r   mskry   r   r   s         r'   test_maskedz#TestNanFunctions_MinMax.test_masked   s    e&&inn) 	- 	-A!Ca...C!E"""Cc"""C((())+++,,,,	- 	-r)   c                 R    | j         D ]}t           |d          dk               d S Nr   rv   r	   r@   ry   s     r'   test_scalarz#TestNanFunctions_MinMax.test_scalar   :     	! 	!AAAbEERK    	! 	!r)   c           	          G d dt           j                  }t          j        d                              |          }| j        D ]} ||d          }t          t          ||                     t          |j        dk                ||d          }t          t          ||                     t          |j        dk                ||          }t          |j        dk               t           j        |d<   | j        D ]y}t          j
        d	
          5 }t          j        d            ||d          }t          t          ||                     t          t          j        t          j        |                                t          t          |          dk               d d d            n# 1 swxY w Y   t          j
        d	
          5 }t          j        d            ||d          }t          t          ||                     t          t          j        |d                   o5t          j        |d                    ot          j        |d                               t          t          |          dk    d           t          t          |d         j        t"                               d d d            n# 1 swxY w Y   t          j
        d	
          5 }t          j        d            ||          }t          |j        dk               t          |t           j        k               t          t          |          dk               d d d            n# 1 swxY w Y   {d S )Nc                       e Zd ZdS )8TestNanFunctions_MinMax.test_subclass.<locals>.MyNDArrayNr$   rL   rM   r"   r)   r'   	MyNDArrayr              Dr)   r   r~   r   r   r~   r   r"   Trecordalways   no warning raised)r>   ndarrayr   viewrv   r	   
isinstanceshapenanwarningscatch_warningssimplefilterr   r   len
issubclasscategoryr   )r@   r   minery   r   ws         r'   test_subclassz%TestNanFunctions_MinMax.test_subclass   s   	 	 	 	 	
 	 	 	
 vayy~~i(( 	% 	%A!Dq///CJsI..///CI%&&&!Dq///CJsI..///CI%&&&!D''CCIO$$$$ &Q 	% 	%A(555 %%h///a1ooo
3	22333BF28C==111222A!$$$% % % % % % % % % % % % % % % (555 C%h///a1ooo
3	22333Q(( 1#a&1A1A-A 1 "Q 0 002 2 2A!%8999
1Q4=.AABBBC C C C C C C C C C C C C C C (555 %%h///agg	R(((rv&&&A!$$$% % % % % % % % % % % % % % %#	% 	%s9   BF>>G	G	C*KK	K	4A5M55M9	<M9	c           	         t          j        ddgt           j        dgt           j        t           j        ggt                    }t	          t          j        |          d           t	          t          j        |d          ddg           t          j        d          5 }t          j        d	           t	          t          t          j        |d
                    ddt           j        g           t          t          |          d
k    d           t          t          |d         j        t                               d d d            d S # 1 swxY w Y   d S )Nr          @      @r   r   r   Tr   r   r   r   )r>   r   r   objectr   rN   r   r   r   listr	   r   r   r   r   )r@   arrr   s      r'   test_object_arrayz)TestNanFunctions_MinMax.test_object_array   sZ   hc
RVSMBFBF3CDFSSSRYs^^S)))RYs+++c3Z888$D111 	?Q!(+++bi!44455S"&7IJJJCFFaK!4555Jqt}n==>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s    B!EEEc                     G d dt           j                  }t          j        d                              |          }t           j        |d d<   | j        D ]k}|t           j        u rdnd} |||          }|j        |k    sJ ||k    sJ  ||                    |          |          }|j        |k    sJ ||k    sJ ld S )Nc                       e Zd ZdS )7TestNanFunctions_MinMax.test_initial.<locals>.MyNDArrayNr   r"   r)   r'   r   r      r   r)   r   	      d   r   initial)	r>   r   aranger   r   rv   rP   r   r   )r@   r   r   arry   r   ret1ret2s           r'   test_initialz$TestNanFunctions_MinMax.test_initial   s    	 	 	 	 	
 	 	 	 Yq\\  ''2A2 		# 		#A")^^ccG1R)))D:&&&&7????1RWWY''999D:&&&&7?????		# 		#r)   c                     G d dt           j                  }t          j        d                              dd                              |          }t           j        |dd d f<   t          j        |t           j                  }d|d d df<   | j        D ]m}|t           j	        u rdnd	} |||d
          }|j
        |k    sJ ||k    sJ  ||                    |          |d
          }|j
        |k    sJ ||k    sJ nd S )Nc                       e Zd ZdS )5TestNanFunctions_MinMax.test_where.<locals>.MyNDArrayNr   r"   r)   r'   r   r     r   r)   r   r   r~   r   r   F      r   wherer   )r>   r   r   reshaper   r   	ones_likeboolrv   rN   r   r   )	r@   r   r   r   r  ry   	referencer   r   s	            r'   
test_wherez"TestNanFunctions_MinMax.test_where   sF   	 	 	 	 	
 	 	 	 Yq\\!!!Q''..u5561aaa4Rrw///aaad 		% 		%A")^^I1Rua000D:&&&&9$$$$1RWWY''ua@@@D:&&&&9$$$$$		% 		%r)   N)r$   rL   rM   r>   rN   rP   rv   minmaxr   rz   r   r   r   r   rl   rm   rn   	typecodesr   r   fullr   r   r   r   r   r   r  r"   r)   r'   rq   rq   ]   s       	29%HH& & &. . .* * *$ $ $* * * [V\\\22[Wbl:&>??[W' $<   
, 
,	  @? 32
,- - -! ! !)% )% )%V
? 
? 
? [Wbl:&>??# # @?#$ [Wbl:&>??% % @?% % %r)   rq   c            
       D   e Zd Zej        ej        gZd Zd Ze	j
                            dg d          e	j
                            dej        d                   e	j
                            d ej        ej                   ej        dej                  gd	d
g          d                                     Zd Zd Zd Ze	j
                            dej        d                   d             Ze	j
                            dej        d                   d             ZdS )TestNanFunctions_ArgminArgmaxc                     t                                           }| j        D ]"} ||           t          |t                      #d S r=   rs   rw   s      r'   rz   z+TestNanFunctions_ArgminArgmax.test_mutation  r{   r)   c                 D   t          | j        t          j        t          j        g          D ]\  }}t
          D ]}t          j                    5  t          j        ddt                      ||          }||         }t          t          j        |                      t           |||                                                      t          t          j        ||d |                                                               d d d            n# 1 swxY w Y   d S )Nignorezinvalid value encountered in)r   rv   r>   greaterlessrt   r   r   filterwarningsr   r	   r   r   equal)r@   ry   fcmprowindvals         r'   r   z0TestNanFunctions_ArgminArgmax.test_result_values  sn   4=2:rw*?@@ 	@ 	@GAt 
@ 
@,.. 	@ 	@+ "@.R R R!C&&Cc(C -...S# 2 2 4 44555c$3$i 8 8 < < > >>???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@
@	@ 	@s   B:DDDr   r   r   r   r   r   r   r   r:   c                    ||j         dk    rt          j        d           |                    |          }| j        D ]B}t          j        t          d          5   |||           d d d            n# 1 swxY w Y   Cd S r   )r   rl   r   r   rv   raises
ValueError)r@   r   r   r   r6   s        r'   r   z*TestNanFunctions_ArgminArgmax.test_allnans&  s     
aKDEEEU##M 	' 	'Dz1LMMM ' 'U&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's   A55A9	<A9	c           	          t          j        d          }| j        D ]T}dD ]}t          t          d|||           dD ]1} |||          }t          |t          j        d                     2Ud S )Nr   r~   r   Nz*attempt to get argm.. of an empty sequencer   r   r   )r>   r   rv   r   r  r   )r@   r   ry   r   r   s        r'   
test_emptyz(TestNanFunctions_ArgminArgmax.test_empty5  s    hv 	/ 	/A! + +#"D3T+ + + + +  / /a$'''S"(1++..../	/ 	/r)   c                 R    | j         D ]}t           |d          dk               d S r   r   r   s     r'   r   z)TestNanFunctions_ArgminArgmax.test_scalarA  r   r)   c                     G d dt           j                  }t          j        d                              |          }| j        D ]} ||d          }t          t          ||                     t          |j        dk                ||d          }t          t          ||                     t          |j        dk                ||          }t          |j        dk               d S )	Nc                       e Zd ZdS )>TestNanFunctions_ArgminArgmax.test_subclass.<locals>.MyNDArrayNr   r"   r)   r'   r   r(  F  r   r)   r   r~   r   r   r   r   r"   )r>   r   r   r   rv   r	   r   r   )r@   r   r   ry   r   s        r'   r   z+TestNanFunctions_ArgminArgmax.test_subclassE  s   	 	 	 	 	
 	 	 	
 vayy~~i(( 	% 	%A!Dq///CJsI..///CI%&&&!Dq///CJsI..///CI%&&&!D''CCIO$$$$	% 	%r)   c                     t          j        d                              |          }t           j        |d d<   | j        D ];}|t           j        u rdnd} ||d          }|j        |j        k    sJ ||k    sJ <d S )Nr   r   r  T)r   )r>   r   r   r   rv   rR   r   r@   r   r   ry   r
  rets         r'   r   z+TestNanFunctions_ArgminArgmax.test_keepdimsV  s    Yq\\  ''2A2 	$ 	$A",..AI!B&&&C8rw&&&&)#####		$ 	$r)   c                 $   t          j        d                              |          }t           j        |d d<   | j        D ]O}t          j        dt           j                  }|t           j        u rdnd} |||          }||u sJ ||k    sJ Pd S )Nr   r   r"   r   r  r   )r>   r   r   r   rv   r   intprR   )r@   r   r   ry   r   r
  r+  s          r'   r   z&TestNanFunctions_ArgminArgmax.test_outa  s    Yq\\  ''2A2 	$ 	$A(2RW---C",..AI!BC...C#::::)#####	$ 	$r)   N)r$   rL   rM   r>   rR   rT   rv   rz   r   rl   rm   rn   r  r   r   r  r   r$  r   r   r   r   r"   r)   r'   r  r    s       bl+H& & &@ @ @ [V\\\22[Wbl:&>??[W' $<   ' '	  @? 32'
/ 
/ 
/! ! !% % %" [Wbl:&>??$ $ @?$ [Wbl:&>??	$ 	$ @?	$ 	$ 	$r)   r  r   )   '   ]   W   .   )r   1dF)writer   
AllIntegerr   Or   r:   c                   P   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 eD             Zej                             de!                                e           ej"        d          d                         Z#ej                             dej$        ej%        fej&        ej'        fgddg          d	             Z(ej                             dej        ej        fej        ej        fgd
dg          d             Z)ej                             dej        ej        g          d             Z*dS )TestNanFunctions_NumberTypesc                     g | ]	}|j         
S r"   r#   )r%   is     r'   r(   z'TestNanFunctions_NumberTypes.<listcomp>  s    000!1:000r)   znanfunc,funcr:   r  )overc                     |                     |          } ||          } ||          }t          ||           |dk    r"t          |          t          |          u sJ d S |j        |j        k    sJ d S )Nr7  r   r
   r   r   r@   r   r   nanfuncr6   r   r   s          r'   test_nanfuncz)TestNanFunctions_NumberTypes.test_nanfunc  s     jjd3iigcllC%%%C<<99S		))))))9	))))))r)   rd   rb   c                 |   |                     |          }|j        j        dk    r2t          t          ||d           t          t          ||d           d S  ||d          } ||d          }t          ||           |dk    r"t          |          t          |          u sJ d S |j        |j        k    sJ d S )Nr   r   )qr7  )r   r   kindr   	TypeErrorr
   r   r?  s          r'   test_nanfunc_qz+TestNanFunctions_NumberTypes.test_nanfunc_q  s     jj9>S  )T3!4444)WcQ777777 $sa...C'####CS)))||CyyDII------yCI------r)   rf   rh   c                     |                     |          } ||d          } ||d          }t          ||           |dk    r"t          |          t          |          u sJ d S |j        |j        k    sJ d S )N      ?ddofr7  r>  r?  s          r'   test_nanfunc_ddofz.TestNanFunctions_NumberTypes.test_nanfunc_ddof  s     jjd3S!!!gc$$$C%%%C<<99S		))))))9	))))))r)   r@  c                 n   |                     |          }t           ||d           ||d                     d}t          t          |          5   ||dd           d d d            n# 1 swxY w Y   t          t          |          5   ||dd           d d d            d S # 1 swxY w Y   d S )NrH  )
correctionrI  z5ddof and correction can't be provided simultaneously.)rJ  rM  r   r   )r   r
   r   r  )r@   r   r   r@  err_msgs        r'   test_nanfunc_correctionz4TestNanFunctions_NumberTypes.test_nanfunc_correction  s[    jjGCC(((''#C*@*@*@	
 	
 	
 J W55 	3 	3GCcc2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 !W55 	/ 	/GCaA....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$   A..A25A2B**B.1B.N)+r$   rL   rM   r>   rN   r  rP   r  rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rf   rg   rh   ri   rv   nanfunc_idsrl   rm   rn   ro   errstaterA  rd   re   rb   rc   rF  rK  rO  r"   r)   r'   r9  r9  v  s        		26
	26
bi
bi
	26

BG
bi
rz

BG
bi
	26
	26H 10x000K[^X^^-=-=;OOR[h	* 	*   PO	* [
."+	&)92=(IJO,   
. . 
." [
)RV	ry"&12x    
	* 	* 
	* [BIry) / / / / /r)   r9  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )SharedNanFunctionsTestsMixinc                     t                                           }| j        D ]"} ||           t          |t                      #d S r=   rs   rw   s      r'   rz   z*SharedNanFunctionsTestsMixin.test_mutation  r{   r)   c                     t          j        d          }t          | j        | j                  D ]C\  }}dD ];} |||d          } |||d          }t          |j        |j        k               <Dd S r}   r   r   s          r'   r   z*SharedNanFunctionsTestsMixin.test_keepdims  r   r)   c                    t          j        d          }t          | j        | j                  D ]T\  }}t          j        d          } ||d          } ||d|          }t          ||           t          ||           Ud S r   r   r   s          r'   r   z%SharedNanFunctionsTestsMixin.test_out  r   r)   c           	         t          j        d          }d}t          | j        | j                  D ]:\  }}|D ]0}t          j                    5  |t           j        t           j        hv r|dv rt          j	        dt                      ||t          j        |          d          j        j        } ||t          j        |          d          j        j        }t          ||u             ||t          j        |          d           j        j        } ||t          j        |          d           j        j        }t          ||u            d d d            n# 1 swxY w Y   2<d S Nr~   r   FDGr  r   )r   r   r>   r   r   rv   r   r   r   rh   rf   r   r   r   r   r	   r@   r   r   r   r   r   r   r   s           r'   test_dtype_from_dtypez2SharedNanFunctionsTestsMixin.test_dtype_from_dtype  s   fQii$-77 	( 	(FB ( (,.. 
( 
(bi333U

 -hGGG"S!<<<BGC"S!<<<BGCC3J'''"S$???EJC"S$???EJCC3J'''
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
((	( 	(s   DEE"%E"c                 F   t          j        d          }d}t          | j        | j                  D ]\  }}|D ]}t          j                    5  |t           j        t           j        hv r|dv rt          j	        dt                      |||d          j        j        } |||d          j        j        }t          ||u             |||d           j        j        } |||d           j        j        }t          ||u            d d d            n# 1 swxY w Y   d S rX  rZ  r[  s           r'   test_dtype_from_charz1SharedNanFunctionsTestsMixin.test_dtype_from_char  s{   fQii$-77 	( 	(FB ( (,.. 
( 
(bi333U

 -hGGG"S2228=C"S2228=CC3J'''"S555;@C"S555;@CC3J'''
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
((	( 	(s   B;DDDc           	         d}t          | j        | j                  D ]\  }}|D ]}t          j        d|          } ||d          j        j        } ||d          j        j        }t          ||u d| d|             ||d           j        j        } ||d           j        j        }t          ||u            d S )Nr   r~   r   r   r   zres z, tgt r   r   s           r'   r   z2SharedNanFunctionsTestsMixin.test_dtype_from_input  s    $-77 		$ 		$FB $ $fQa(((b1ooo+0b1ooo+0s
$;3$;$;c$;$;<<<b4(((.3b4(((.3s
####$		$ 		$r)   c                     t          | j        | j                  D ]:\  }fdt          D             } |t          d          }t          ||           ;d S )Nc                 &    g | ]} |          S r"   r"   r   s     r'   r(   zCSharedNanFunctionsTestsMixin.test_result_values.<locals>.<listcomp>  r   r)   r   r   r   r   s       @r'   r   z/SharedNanFunctionsTestsMixin.test_result_values  r   r)   c                 R    | j         D ]}t           |d          dk               d S r   r   r   s     r'   r   z(SharedNanFunctionsTestsMixin.test_scalar  r   r)   c                     G d dt           j                  }t          j        d          }|                    |          }| j        D ]} ||d          j        } ||d          }t          t          ||                     t          |j        |k                ||d          j        } ||d          }t          t          ||                     t          |j        |k                ||          j        } ||          }t          t          ||                     t          |j        |k               d S )Nc                       e Zd ZdS )=SharedNanFunctionsTestsMixin.test_subclass.<locals>.MyNDArrayNr   r"   r)   r'   r   re  #  r   r)   r   r~   r   r   r   )r>   r   r   r   rv   r   r	   r   )r@   r   r   r   ry   expected_shaper   s          r'   r   z*SharedNanFunctionsTestsMixin.test_subclass"  s_   	 	 	 	 	
 	 	 	
 q		zz)$$ 	1 	1AQu1---3N!Dq///CJsI..///CI/000Qu1---3N!Dq///CJsI..///CI/000QuXX^N!D''CJsI..///CI/0000	1 	1r)   N)r$   rL   rM   rz   r   r   r\  r^  r   r   r   r   r"   r)   r'   rS  rS    s        & & &. . .* * *( ( ("( ( ("$ $ $* * *! ! !1 1 1 1 1r)   rS  c            
       H   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                            d ej        ej                   ej        dej                  gddg	          d
                                     Zd Ze
j                            dej        d                   d             Ze
j                            dej        d                   d             ZdS )TestNanFunctions_SumProdr   r   r   r   r   r   r   r   r:   c                    ||j         dk    rt          j        d           |                    |          }t	          | j        ddg          D ]>\  }} |||          }t          j        ||k              sJ |j        |j        k    sJ ?d S )Nr   r   r   r   	r   rl   r   r   r   rv   r>   r   r   r@   r   r   r   r6   identityr   s          r'   r   z%TestNanFunctions_SumProd.test_allnans>  s     
aKDEEEU##!$-!Q88 	, 	,ND($u4(((C6#/*****9+++++	, 	,r)   c                 L   t          t          j        t          j        gddg          D ]z\  }}t          j        d          }|gdz  } ||d          }t          ||           g } ||d          }t          ||           |} ||d           }t          ||           {d S )Nr   r   r!  r~   r   )r   r>   rV   rX   r   r   r@   ry   	tgt_valuer   r   r   s         r'   r$  z#TestNanFunctions_SumProd.test_emptyN  s    BJ 7!Q@@ 
	# 
	#LAy(6""C+/C!Ca...Cc"""C!Ca...Cc"""C!Cd###Cc""""
	# 
	#r)   c                     t          j        d                              |          }t           j        |d d<   | j        D ]6}|t           j        u rdnd} ||d          }|j        |k    sJ ||k    sJ 7d S )Nr   r      i   r   r   )r>   r   r   r   rv   rV   r   r*  s         r'   r   z%TestNanFunctions_SumProd.test_initial[  s    Yq\\  ''2A2 	$ 	$A29nn$I!B"""C9%%%%)#####		$ 	$r)   c                 r   t          j        d                              dd                              |          }t           j        |dd d f<   t          j        |t           j                  }d|d d df<   | j        D ]7}|t           j        u rdnd} |||d	          }|j	        |k    sJ ||k    sJ 8d S )
Nr   r~   r   r   F   i  r   r  )
r>   r   r  r   r   r  r	  rv   rV   r   )r@   r   r   r  ry   r
  r+  s          r'   r  z#TestNanFunctions_SumProd.test_wheref  s    Yq\\!!!Q''..u5561aaa4Rrw///aaad 	$ 	$A29nn$I!BeQ///C9%%%%)#####		$ 	$r)   N)r$   rL   rM   r>   rV   rX   rv   rW   rY   r   rl   rm   rn   r  r   r   r  r   r$  r   r  r"   r)   r'   rh  rh  9  sX       	2:&H H[V\\\22[Wbl:&>??[W' $<   , ,	  @? 32,# # # [Wbl:&>??$ $ @?$ [Wbl:&>??
$ 
$ @?
$ 
$ 
$r)   rh  c            
          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                            d ej        ej                   ej        dej                  gddg	          d
                                     Zd Zd Zd Zd ZdS )TestNanFunctions_CumSumProdr   r   r   r   r   r   r   r   r:   c                    ||j         dk    rt          j        d           |                    |          }t	          | j        ddg          D ]<\  }} ||          }t          j        ||k              sJ |j        |j        k    sJ =d S )Nr   r   r   rj  rk  s          r'   r   z(TestNanFunctions_CumSumProd.test_allnansy  s     
aKDEEEU##!$-!Q88 	, 	,ND($u++C6#/*****9+++++	, 	,r)   c                 p   t          | j        ddg          D ]\  }}t          j        d          }|t          j        d          z  } ||d          }t          ||           |} ||d          }t          ||           t          j        d          } ||d           }t          ||           d S )Nr   r   r!  r   )r   rv   r>   r   onesr   rn  s         r'   r$  z&TestNanFunctions_CumSumProd.test_empty  s    1v66 
	# 
	#LAy(6""Cbgfoo-C!Ca...Cc"""C!Ca...Cc"""(1++C!Cd###Cc""""
	# 
	#r)   c                 Z   t          | j        | j                  D ]W\  }}t          j        d          }dD ];} |||d           } |||d           }t          |j        |j        k               <X| j        D ]}t          j        d          }t          j        	                    d          }t          j
        | |j        |j         dk     <    ||d           }t          |j        d           t          j        d	          D ]$} |||          }t          |j        d           %d S )
Nr~   r   r   r~   r         r   rH  r   )i  r  )r   rv   r   r>   r   r	   r   rx  randomRandomStater   randr   r   r   )	r@   ry   gr   r   r   r   r   rss	            r'   r   z)TestNanFunctions_CumSumProd.test_keepdims  sL   t}55 	. 	.DAq&))C$ . .a$D111a$D111CH,----.
  		7 		7A&&A&&q))B)+Agbgqw#%&!AD///CG,,,	! 7 7aoooSY66667		7 		7r)   c                 (   dD ]}t          j        t          |          }t          j        t          |          }t          ||           t          j        t          |          }t          j        t          |          }t          ||           d S )N)r   r   Nr   )	r>   r]   
_ndat_onesr\   rt   r
   r[   _ndat_zerosrZ   )r@   r   r   r   s       r'   r   z.TestNanFunctions_CumSumProd.test_result_values  s    ( 	* 	*D*Zd333C-D111CS))))Kd333C,u4000CS))))	* 	*r)   c                    t          j        d          }t          | j        | j                  D ]Y\  }}t          j        d          }dD ]=} |||          } ||||          }t          ||           t          ||           >Zd S )Nr~   )r  r  r   r   r   r   )r>   r   r   rv   r   r
   )r@   r   r   r   r   r   r   r   s           r'   r   z$TestNanFunctions_CumSumProd.test_out  s    fQii$-77 	. 	.FBVAYYF& . .b4(((b4V444#C000#C----	.	. 	.r)   N)r$   rL   rM   r>   rZ   r\   rv   r[   r]   r   rl   rm   rn   r  r   r   r  r   r$  r   r   r   r"   r)   r'   ru  ru  t  s       bm,H	2:&H[V\\\22[Wbl:&>??[W' $<   , ,	  @? 32,# # #7 7 7&* * *. . . . .r)   ru  c            
           e Zd Zej        ej        ej        gZej        ej	        ej
        gZd Zd Zd Zd Zej                            dg d          ej                            dej        d                   ej                            d	 ej        ej                   ej        d
ej                  gddg          d                                     Zd Zej                            dej        d                   d             Zd ZdS )TestNanFunctions_MeanVarStdc           	          | j         D ]F}t          j        t          j        t          j        fD ] }t          t          |t          d|           !Gd S )Nr   )r   r   )rv   r>   r	  int_object_r   rE  rt   )r@   ry   r   s      r'   test_dtype_errorz,TestNanFunctions_MeanVarStd.test_dtype_error  sa     	H 	HA'27BJ7 H HiEGGGGGH	H 	Hr)   c           	          | j         D ]l}t          j        t          j        t          j        fD ]F}t          j        t          j        d         |          }t          t          |t          d|           Gmd S )Nr   r   r   r   )
rv   r>   r	  r  r  r2   rt   r   r   rE  )r@   ry   r   r   s       r'   test_out_dtype_errorz0TestNanFunctions_MeanVarStd.test_out_dtype_error  s{     	D 	DA'27BJ7 D Dhu{1~U;;;iEsCCCCCD	D 	Dr)   c                    t           j        t           j        g}t           j        t           j        g}t          ||          D ]A\  }dD ]9fdt          D             } |t          d          }t          ||           :Bd S )Nr   r   c                 *    g | ]} |           S )rI  r"   )r%   r   rJ  r   s     r'   r(   z9TestNanFunctions_MeanVarStd.test_ddof.<locals>.<listcomp>  s(    777Arr!$'''777r)   r   r   rJ  )	r>   rf   rh   rg   ri   r   r   rt   r
   )r@   rv   r   r   r   r   rJ  r   s         @@r'   	test_ddofz%TestNanFunctions_MeanVarStd.test_ddof  s    Iry)FBF#(H-- 	. 	.FB . .77777777bQT222#C----.	. 	.r)   c                   	 t           j        t           j        g}t           j        t           j        g}d t
          D             }t          ||          D ]\  }}t          d          D ]	t          j	        d          5 }t          j
        d           t          j
        dt                     	fd|D             } |t          d		          }t          t          j        |          |           d d d            n# 1 swxY w Y   t          |          r!t!          t#          |          dk               t!          t#          |          d
k               d S )Nc                 ,    g | ]}t          |          S r"   )r   r%   r   s     r'   r(   zATestNanFunctions_MeanVarStd.test_ddof_too_big.<locals>.<listcomp>  s    '''AQ'''r)   r   Tr   r   r  c                     g | ]}|k    	S r"   r"   )r%   r   rJ  s     r'   r(   zATestNanFunctions_MeanVarStd.test_ddof_too_big.<locals>.<listcomp>  s    444419444r)   r   r  r   )r>   rf   rh   rg   ri   r   r   ranger   r   r   r   rt   r   r   r   r	   r   )
r@   rv   r   dsizer   r   r   r   r   rJ  s
            @r'   test_ddof_too_bigz-TestNanFunctions_MeanVarStd.test_ddof_too_big  s   Iry)FBF#'''''(H-- 	) 	)FBa 
) 
),D999 5Q)(333)(NCCC4444e444C"U666C #4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 s88 )CFFaK((((CFFaK((((
)	) 	)s   ?A2C==DDr   r   r   r   r   r   r   r   r:   c                    ||j         dk    rt          j        d           |                    |          }d}| j        D ]}t          j        t          |          5   |||          }d d d            n# 1 swxY w Y   t          j        |          	                                sJ |t          j
        u r|j        |j        k    sJ |j        t          j        |          j        k    sJ d S )Nr   r   z:(Degrees of freedom <= 0 for slice.)|(Mean of empty slice)r   r   )r   rl   r   r   rv   r   r   r>   r   r   r^   r   absr   s          r'   r   z(TestNanFunctions_MeanVarStd.test_allnans  s<    
aKDEEEU##LM 
	8 
	8DnE::: - -d5t,,,- - - - - - - - - - - - - - -8C==$$&&&&& rz!!yEK/////yBF5MM$777777
	8 
	8r   c                    t          j        d          }| j        D ]g}dD ]}t          j        d          5 }t          j        d           t          t          j         |||                                                               t          t          |          dk               t          t          |d         j        t                               d d d            n# 1 swxY w Y   d	D ]}t          j        d          5 }t          j        d           t           |||          t          j        g                      t          t          |          dk               d d d            n# 1 swxY w Y   id S 
Nr!  r"  Tr   r   r   r   r   r#  )r>   r   rv   r   r   r   r	   r   r   r   r   r   r   r   )r@   r   ry   r   r   s        r'   r$  z&TestNanFunctions_MeanVarStd.test_empty  s   hv 	) 	)A! G G,D999 GQ)(333BHQQs%6%6%677;;==>>>CFFaK(((Jqt}nEEFFF	G G G G G G G G G G G G G G G
  ) ),D999 )Q)(333 3T!2!2!2BHRLLAAACFFaK((() ) ) ) ) ) ) ) ) ) ) ) ) ) ))	) 	)s%   B C$$C(+C(	A"E77E;>E;c                    t          j        d                              dd                              |          }t           j        |dd d f<   t          j        |t           j                  }d|d d df<   t          | j        | j	                  D ]t\  }} |||         dd                    }|t           j
        u r|n|j        j        } |||          }|j        |k    sJ t           j                            ||           ud S )Nr   r~   r   r   Fr   )r  )r>   r   r  r   r   r  r	  r   rv   r   r^   realr   r?   assert_allclose)	r@   r   r   r  ry   f_stdr
  dtype_referencer+  s	            r'   r  z&TestNanFunctions_MeanVarStd.test_where  s   Yq\\!!!Q''..u5561aaa4Rrw///aaadDM4=99 	7 	7HAubim,,I'(BJeeBGMO!Be$$$C9////J&&sI6666	7 	7r)   c                    t           j                            d          }|                    ddd          dz   }t           j        |d d dd d f<   t          j        d          }t          j        d          }t          j        ||dd	          }||u sJ t          j        ||dd|
          }||u sJ |j        |j        k    sJ |j        dk    sJ t          j        |dd          }|j        |j        k    sJ t          ||           d S )Ni  
      r   rH  )r  r   r   r   T)r   r   r   )r   r   r   r_   r   )
r>   r}  r~  randnr   r   r^   rh   r   r
   )r@   rngAmean_outstd_outr_   ri   std_olds           r'   test_nanstd_with_mean_keywordz9TestNanFunctions_MeanVarStd.test_nanstd_with_mean_keyword  s<   i##D))IIb"a  3&V!!!Q'
8J''(:&&z!# $& & & 4i "	      #~~~~ yDJ&&&&yJ&&&& )AA555}
****C)))))r)   N)r$   rL   rM   r>   r^   rf   rh   rv   r_   rg   ri   r   r  r  r  r  rl   rm   rn   r  r   r   r  r   r$  r  r  r"   r)   r'   r  r    s}       
BIry1H(HH H H
D D D. . .) ) )" [V\\\22[Wbl:&>??[W' $<   8 8	  @? 328$) ) ) [Wbl:&>??7 7 @?7"* "* "* "* "*r)   r  )YMWDhmsmsusnspsfsasc                     g | ]}d | d	S )zm8[]r"   )r%   units     r'   r(   r(   H  s     666$d666r)   c                   `   e Zd Zd Zd Zej                            dg d          ej                            d          d                         Z	d Z
d	 Zd
 Zej                            dg d          ej                            de          d                         Zd Zd Zd Zd ZdS )TestNanFunctions_Medianc                     t                                           }t          j        |           t	          |t                      d S r=   )rt   ru   r>   r`   r   r@   rx   s     r'   rz   z%TestNanFunctions_Median.test_mutationM  s5    zz||
TT5!!!!!r)   c                    t          j        d          }dD ]O}t          j        ||d d          }t          j        ||d d          }t	          |j        |j        k               Pt          j        d          }t           j                            d          t          j        |j	                  d d d f         z  }|
                    t           j                  }t           j        |t          |          <   t          j                    5  t          j        dt"                     t          j        |d d	          }t%          |j	        d
           t          j        |dd	          }t%          |j	        d           t          j        |dd	          }t%          |j	        d           t          j        |dd	          }t%          |j	        d           t          j        |dd	          }t%          |j	        d
           t          j        |dd	          }t%          |j	        d           d d d            d S # 1 swxY w Y   d S )Nr~   r   Fr   r   overwrite_inputrz  r     r  Tr   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   ra   r`   r	   r   rx  r}  r   r   r   r.  r   tupler   r   r   r   r   r@   r   r   r   r   r   r   s          r'   r   z%TestNanFunctions_Median.test_keepdimsS  sD   fQii  	* 	*D)CdeLLLC,s4OOOCCH())))GM""IX&&!'):):111d7)CCHHRWf%(($&& 	2 	2!(N;;;,qtd;;;CL111,qv===CM222,qv===CL111,qtd;;;CM222,q|dCCCCL111,qy4@@@CL111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   D#H<<I I r   Nr   r#  r  )r  argnames	argvalues#ignore:All-NaN slice:RuntimeWarningc                 \   t          j        d          t           j                            d          t          j        j                  d d d f         z  }|                    t           j                  }t           j        t          |          <   |dj	        z  }nCt          |j	                  t          fdt          j	                  D                       }t          j        |          }t          j        |d|          }||u sJ t          |j        |           d S )Nrz  r  r#  c              3   >   K   | ]}|v rd nj         |         V  dS r   Nr   r%   r;  	axis_normr   s     r'   	<genexpr>z<TestNanFunctions_Median.test_keepdims_out.<locals>.<genexpr>  N       L L89Q)^^L L L L L Lr)   Tr   r   r   )r>   rx  r}  r   r   r   r.  r   r  r   r   r  r2   r`   r   )r@   r   r   	shape_outr   resultr  r   s         @@r'   test_keepdims_outz)TestNanFunctions_Median.test_keepdims_outn  s'    GM""IX&&!'):):111d7)CCHHRWf%((<qvII,T16::I L L L L L=B16]]L L L L LIhy!!adTsCCC}}}}V\9-----r)   c                    t           j                            dd          }t          j        |ddgt           j        d          }t          j        d          }t          j        |d          }t          j        |d|          }t          ||           t          ||           t          j        d          }t          j        |d           }t          j        |d |          }t          ||           t          ||           t          j        |d|          }t          ||           t          ||           d S )	Nr~   r   r   r   r   r   r"   r  )	r>   r}  r  insertr   r   ra   r`   r
   )r@   r   nan_matr   r   r   s         r'   r   z TestNanFunctions_Median.test_out  s   innQ"")C!Qa888!i!$$$l7777C(((C%%%"i$'''l76:::C(((C%%%l7V<<<C(((C%%%%%r)   c                    dD ]}t           j                            d|          }t           j                            d|j        |j        dz            }t           j        |                                |<   d|d d df<   g }|D ]S}t          j        t          j        |           |          }|	                    t          j
        |d                     Tt          t          j        |d	
          |           d S )N)r   r  3   r  i  r  r   r   sizer   T)r  r  r   )r>   r}  r  randintr  r   ravelcompressr   r3   ra   r   r`   )r@   r  r   r   r   xnonans          r'   test_small_largez(TestNanFunctions_Median.test_small_large  s    ' 	> 	>A	1%%A	!!!QV!&A+!>>A6AGGIIaLAaaadGC C CRXa[[L!44

29UDAAABBBBr|AB777====	> 	>r)   c                 ~    d t           D             }t          j        t          d          }t	          ||           d S )Nc                 6    g | ]}t          j        |          S r"   )r>   ra   r  s     r'   r(   z>TestNanFunctions_Median.test_result_values.<locals>.<listcomp>  s     +++ry||+++r)   r   r   )r   r>   r`   rt   r
   )r@   r   r   s      r'   r   z*TestNanFunctions_Median.test_result_values  s?    ++U+++l5q)))C%%%%%r)   r   r   c                 `   t          j        dt           j                                      |          }t	          j        t                    5 }t          j        ||          }|j        |j        k    sJ t          j	        |          
                                sJ |!t          t          |          dk               n t          t          |          dk               t          j        t           j                                      |          d         }t          j        |          }|j        |j        k    sJ t          j	        |          sJ |!t          t          |          dk               n t          t          |          dk               d d d            d S # 1 swxY w Y   d S )Nr   r   r   r~   r"   r   r  )r>   r  r   r   rl   r   r   r`   r   r   r   r	   r   r   )r@   r   r   r   routputscalaroutput_scalars           r'   r   z$TestNanFunctions_Median.test_allnans  s    gfbf%%,,U33\.)) 	%Q\#D111F<39,,,,8F##'')))))|A!$$$$A!$$$ Xbf%%,,U33B7FL00M &&,66668M*****|A!$$$$A!$$$'	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   E
F##F'*F'c           
         t          j        d          }dD ]}t          j        d          5 }t          j        d           t          t          j        t          j        ||                                                               t          t          |          dk               t          t          |d         j        t                               d d d            n# 1 swxY w Y   d	D ]}t          j        d          5 }t          j        d           t          t          j        ||          t          j        g                      t          t          |          dk               d d d            n# 1 swxY w Y   d S r  )r>   r   r   r   r   r	   r   r`   r   r   r   r   r   r   r@   r   r   r   s       r'   r$  z"TestNanFunctions_Median.test_empty  s   hv 	C 	CD(555 C%h///c!=!=!=>>BBDDEEEA!$$$
1Q4=.AABBB	C C C C C C C C C C C C C C C
  	% 	%D(555 %%h///R\#D99928B<<HHHA!$$$% % % % % % % % % % % % % % %	% 	%s%   B)C##C'	*C'	A+E??F	F	c                 P    t          t          j        d          dk               d S r   )r	   r>   r`   rJ   s    r'   r   z#TestNanFunctions_Median.test_scalar  s%    R  B&'''''r)   c                    t          j        d          }t          t          t           j        |d           t          t          t           j        |d           t          t          t           j        |d           t          t          t           j        |d           t          t
          t           j        |d           d S )Nrz  r   r   r  r  r   r  r   r   )r>   rx  r   r   r`   r  r@   r   s     r'   test_extended_axis_invalidz2TestNanFunctions_Median.test_extended_axis_invalid  s    GM""iqr::::iqw????iqq9999iqv>>>>j",??????r)   c           
      	   t          j                    5  t          j        dt                     t          j        t          j         fD ]a}t	          j        |t          j        gt          j        t          j        gg          }t          t	          j	        |d          |t          j        g           t          t	          j	        |d          |t          j        g           t          t	          j	        |          |           t	          j        t          j        t          j        |gt          j        t          j        |gg          }t          t	          j	        |          |           t          t	          j	        |d          t          j        t          j        |g           t          t	          j	        |d          |           t	          j        ||g||gg          }t          t	          j	        |d          |           t	          j        |d| dgdt          j        t          j        dgd	t          j        t          j        |ggt          j
        
          }|dk    rLt          t	          j	        |d          dd| dg           t          t	          j	        |          d           nKt          t	          j	        |d          dd| dg           t          t	          j	        |          d           t          t	          j	        |d          dd|g           t          d          D ]t}t          dd          D ]_}t	          j        t          j        g|z  |g|z  z   gdz            }t          t	          j	        |          |           t          t	          j	        |d          |           t          t	          j	        |d          t          j        g|z  |g|z  z              t	          j        t          j        g|z  | g|z  z   gdz            }t          t	          j	        |          |            t          t	          j	        |d          |            t          t	          j	        |d          t          j        g|z  | g|z  z              avc	 d d d            d S # 1 swxY w Y   d S )Nr  r   r   r   r{  iir   r  r   r   g      @      @g      @g      $g      "g      r  g      r  r   )r   r   r   r   r>   infr   r   r   r`   float32r  )r@   r  ar;  js        r'   test_float_specialz*TestNanFunctions_Median.test_float_special  s   $&& +	B +	B!(N;;;( )B )BHsRVnrvrv.>?@@R\!!444sRVnEEER\!!444sRVnEEER\!__c222 Hrvrvs3 fbfc24 5 5R\!__c222R\!!444rvrvs6KLLLR\!!444c::: HsCj3*566R\!!444c:::HsAtR0"BFBFA6 "&"&#68 %'J0 0 0 77 aa!8!8!82rC4:LMMM a#6666 aa!8!8!84cT3:OPPP a$777R\!"555T37GHHHr B BA"1b\\ B BHx!|	&B%Ca%GHH$R\!__c:::$R\!!%<%<%<cBBB$R\!!%<%<%<')vhlseai%?A A A Hx!|#
&C%Dq%HII$R\!__sd;;;$R\!!%<%<%<sdCCC$R\!!%<%<%<')vhltfqj%@B B B BBB;)B+	B +	B +	B +	B +	B +	B +	B +	B +	B +	B +	B +	B +	B +	B +	B +	B +	B +	Bs   RR99R= R=N)r$   rL   rM   rz   r   rl   rm   rn   r  r  r   r  r   _TYPE_CODESr   r$  r   r   r  r"   r)   r'   r  r  K  sX       " " "2 2 26 [
 
 
  	 	 [ EFF. . GF	 	."& & &$> > > & & &
 [V\\\22[Wk22% % 32 32%.% % %( ( (@ @ @,B ,B ,B ,B ,Br)   r  c            
          e Zd Zd Zd Zej                            ddddgg          ej                            dg d          ej                            d	          d
                                     Z	ej                            dddg          d             Z
d Zej                            dddg          ej                            dddg          d                         Zej                            dg d          ej                            dej        d                   ej                            d ej        ej                   ej        dej                  gddg          d                                     Zd Zd Zd Zd Zej                            dg d           d!             Zej                            dg d"          d#             Zd$S )%TestNanFunctions_Percentilec                     t                                           }t          j        |d           t	          |t                      d S )N   )rt   ru   r>   rb   r   r  s     r'   rz   z)TestNanFunctions_Percentile.test_mutation  s8    zz||
r"""T5!!!!!r)   c                    t          j        d          }dD ]Q}t          j        |d|d d          }t          j        |d|d d          }t	          |j        |j        k               Rt          j        d          }t           j                            d          t          j        |j	                  d d d f         z  }|
                    t           j                  }t           j        |t          |          <   t          j                    5  t          j        d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           d d d            d S # 1 swxY w Y   d S )Nr~   r   F   Fr  rz  r  r  Z   Tr   r  r  r  r!  r  r#  r  r  r  r  )r>   r   rc   rb   r	   r   rx  r}  r   r   r   r.  r   r  r   r   r   r   r   r  s          r'   r   z)TestNanFunctions_Percentile.test_keepdims  si   fQii  	* 	*D-Rd057 7 7C"3438: : :CCH())))GM""IX&&!'):):111d7)CCHHRWf%(($&& 	2 	2!(N;;;"1btdCCCCL111"1bvEEECM222"1bvEEECL111"1btdCCCCM222"1b|dKKKCL111"1by4HHHCL111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   D)IIIrC  r{  r   r   r  r  r  c                    t          j        d          t           j                            d          t          j        j                  d d d f         z  }|                    t           j                  }t           j        t          |          <   |dj	        z  }nCt          |j	                  t          fdt          j	                  D                       }t          j        |          |z   }t          j        |          }t          j        ||d|          }||u sJ t          |j        |           d S )Nrz  r  r#  c              3   >   K   | ]}|v rd nj         |         V  dS r  r  r  s     r'   r  z@TestNanFunctions_Percentile.test_keepdims_out.<locals>.<genexpr>M  r  r)   Tr  )r>   rx  r}  r   r   r   r.  r   r  r   r   r  r2   rb   r   )	r@   rC  r   r   r  r   r  r  r   s	          @@r'   r  z-TestNanFunctions_Percentile.test_keepdims_out7  s<    GM""IX&&!'):):111d7)CCHHRWf%((<qvII,T16::I L L L L L=B16]]L L L L LIHQKK)+	hy!!!!QTDcJJJ}}}}V\9-----r)   weightedFTc                    t           j                            dd          }t          j        |ddgt           j        d          }t          j        d          }|r/t          j        |          dd}t          j        |          dd}ni }i }t          j        |dfd	di|}t          j        |dfd|d
|}t          ||           t          ||           t          j        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 )Nr~   r   r   r   r   inverted_cdfweightsmethod*   r   r   r"   r  )
r>   r}  r  r  r   r   r  rc   rb   r
   )	r@   r  r   r  r   w_args
nan_w_argsr   r   s	            r'   r   z$TestNanFunctions_Percentile.test_outV  s   innQ"")C!Qa888! 	!#c!2!2nMMF<00N JJ FJmC66!6v66wMMM*MMC(((C%%%"mC99$9&99R
"
 
2<
 
 	C(((C%%%R
$&
 
4>
 
 	C(((C%%%%%r)   c                 \   t          j        g dd          }t          t          t           j        |d           t          j        g dd          }t          t          t           j        |d           t          j        g dd          }t          t          t           j        |d           d S N)y      ?      @y @      ?y?ffffff@Gr   rH  r  F)r>   r   r   rE  rb   r@   arr_cs     r'   test_complexz(TestNanFunctions_Percentile.test_complexu  s    ===SIIIi!15#>>>===SIIIi!15#>>>===SIIIi!15#>>>>>r)   use_outc                 X   |r:t          t          j        d          t          t          j        d          }d nt          j        t          j        }d fdt          D             }|rt          j        |          nd } |t          dd t                    |          }t          ||           t          j        fd	t          D                       }|rt          j        |          nd } |t          d
d t                    |          }t          ||           d S )Nr  r  c                 *    t          j        |           S r=   )r>   r  r   s    r'   gen_weightszCTestNanFunctions_Percentile.test_result_values.<locals>.gen_weights  s    |A&r)   c                     d S r=   r"   r&  s    r'   r'  zCTestNanFunctions_Percentile.test_result_values.<locals>.gen_weights  s    tr)   c           	      >    g | ]} |d  |                    S )rq  r  r"   r%   r   r'  rc   s     r'   r(   zBTestNanFunctions_Percentile.test_result_values.<locals>.<listcomp>  s2    HHHQzz!RQ888HHHr)   rq  r   )r   r  r   c           	      >    g | ]} |d  |                    S )rq  b   r*  r"   r+  s     r'   r(   zBTestNanFunctions_Percentile.test_result_values.<locals>.<listcomp>  sB     , , , ! 'Jq(KKNNKKK , , ,r)   r-  )	r   r>   rc   rb   r   
empty_likert   r
   	transpose)	r@   r  r"  rb   r   r   r   r'  rc   s	          @@r'   r   z.TestNanFunctions_Percentile.test_result_values}  sz     	 ~FFFJ#B$4^LLLM' ' ' ' J,M   IHHHH%HHH$+5bmC   mE2A$/K$6$6CA A AC%%%l , , , , ,%*, , , - -$+5bmC   mE8!$/K$6$6CA A AC%%%%%r)   r   r   Floatr   r   r   r   r:   c                 z   ||j         dk    rt          j        d           |                    |          }t          j        t
          d          5  t          j        |d|          }d d d            n# 1 swxY w Y   t          j        |          	                                sJ |j
        |j
        k    sJ d S )Nr   r   r   r   <   r   )r   rl   r   r   r   r   r>   rb   r   r   r   r@   r   r   r   r   s        r'   r   z(TestNanFunctions_Percentile.test_allnans  s     
aKDEEEU##\.0KLLL 	9 	9"5"4888C	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9x}}  """""yEK''''''   A66A:=A:c                    t          j        d          }dD ]}t          j        d          5 }t          j        d           t          t          j        t          j        |d|                                                               t          t          |          dk               t          t          |d	         j        t                               d d d            n# 1 swxY w Y   d
D ]}t          j        d          5 }t          j        d           t          t          j        |d|          t          j        g                      t          t          |          d	k               d d d            n# 1 swxY w Y   d S )Nr!  r"  Tr   r   (   r   r   r   r#  )r>   r   r   r   r   r	   r   rb   r   r   r   r   r   r   r  s       r'   r$  z&TestNanFunctions_Percentile.test_empty  s   hv 	C 	CD(555 C%h///!1#r!E!E!EFFJJLLMMMA!$$$
1Q4=.AABBB	C C C C C C C C C C C C C C C
  	% 	%D(555 %%h///R-c2DAAA28B<<PPPA!$$$% % % % % % % % % % % % % % %	% 	%s%   B*C$$C(	+C(		A,FF	F	c                    t          t          j        dd          d           t          j        d          }t          j        |dd          }t          |d           t	          t          j        |                     d S )Nr   r      2   r   r   g      @)r   r>   rb   r   r	   isscalar)r@   r  r  s      r'   r   z'TestNanFunctions_Percentile.test_scalar  so    R%b#..333IaLLQ+++QAr)   c                    t          j        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 )	Nrz  r   r  rC  r   r  r  r  r  )r>   rx  r   r   rb   r  r  s     r'   r   z6TestNanFunctions_Percentile.test_extended_axis_invalid  s    GM""i!11CCCCi!11HHHHi!11BBBBi!11GGGGj""2AHHHHHHr)   c           	         ddg}t          j        d          }t           j        |z  }t          j        d          }d|d d dddd d f<   |d d d d dd fxx         dz  cc<   d	D ]}d
D ]}t          j                    5  t          j        ddt                     t          j        ||||          }t          j        ||||          }t          |j
        |j
                   t          j        ||||          }t          j        ||||          }t          ||           d d d            n# 1 swxY w Y   ӌt          j        d          }	t          t          j        |	|d          j
        d           d S )Nr:  r   )r  r~   )r~   r  r   r   r   r  r~   r   )FTr  r   r   )r~   r  r   r9  )r   r   r   )r   r~   r9  )r>   rx  r   r   r   r  r   rc   rb   r   r   )
r@   percr   r  	large_matr   keepdimr  nan_valmegamats
             r'   test_multiple_percentilesz5TestNanFunctions_Percentile.test_multiple_percentiles  s   Cygfoo&3,GI&&	!"	!!!QqUAAA+!!!QQQ(q   	/ 	/D( / /,.. / /+ "=~O O O-TwOOOC .w48?A A AG 	:::-	4d18: : :C .y$T8?A A AG #.../ / / / / / / / / / / / / / // ',''Wd888>		
 	
 	
 	
 	
s   ?B&D11D58D5
nan_weight)r   r   r   r~   Zbtic                     dt           j        ddg}t          j        d          }t          j        |dd          }t	          ||           d|ddg}t          j        |d|d	          }t	          ||           d S )
Nr   r   r~   r   r:  r  r$  r   r  )r>   r   float64rb   r   )r@   rE  r  r  q_unweightedr   
q_weighteds          r'   test_nan_value_with_weightz6TestNanFunctions_Percentile.test_nan_value_with_weight  s    1C'2nEEE\6*** *c3'%aQ~NNN
Z(((((r)   r   r   r   c                 ,   t           j                            d           t           j                            d          }|                                }t           j        |t          j        d          t          j        d          df<   t          j        g dg dg          }t          j        |          }d|t          j        |          <   t          j	        ||||d	          }t          j
        |||d
          }t          ||           d|t          j        |          <   t          j
        ||||d	          }t          ||           t          j        |          }	t          j
        |||||	d          }
|
|	u sJ t          |	|           d S )Nr   )r   c   r   r  rN  r   )g      4@g      I@r  )r  !   P   r  )r   r  r  )r   r  rF  )r   r  r   r  )r>   r}  seedru   r   r   r   r  r   rc   rb   r   r/  )r@   r   x_no_nanr  pr  
p_expectedp_unweighted
p_weightedr   r   s              r'   test_nan_value_with_weight_ndimz;TestNanFunctions_Percentile.test_nan_value_with_weight_ndim  s    		q9###66 MMOO-/V")B--2
)*Hnnnlll344 ,q//
  !]adGNL L L
 'qtN4 4 4 	\:...$%qtW^E E E
Z,,,mJ''qtW#nN N N czzzzS*%%%%%r)   N)r$   rL   rM   rz   r   rl   rm   rn   r  r  r   r!  r   r>   r  r   r   r  r   r$  r   r   rD  rK  rW  r"   r)   r'   r
  r
    s       " " "2 2 2: [S1q!f+..[
 
 
  	 	 [ EFF. . GF	 	 /..& [Z%77& & 87&<? ? ? [Z%77[Y66& & 76 87&8 [V\\\22[Wbl7&;<<[W' $<   ( (	  =< 32(% % %     I I I
 
 
: [\+>+>+>??	) 	) @?	) [VYYY//%& %& 0/%& %& %&r)   r
  c            
          e Zd Zej                            dddg          d             Zd Zd Zd Z	ej                            dg d	          ej                            d
e
j        d                   ej                            d e
j        e
j                   e
j        de
j                  gddg          d                                     ZdS )TestNanFunctions_Quantiler  FTc           	         t          j        d                              ddd                              t                    }t           j        |d         d<   |rt          j        |          dd}ni }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   r~   r  r   r   r  r  rC  rH  r:  r=  )      ?rH        ?)   r:  K   )
r>   r   r  r   floatr   r  r   rd   rb   )r@   r  r   r  s       r'   test_regressionz)TestNanFunctions_Quantile.test_regression  s   Yr]]""1a++2259961a 	!#b!1!1^LLFFFR^B88#888%b99B9&99	; 	; 	;R^B@#A@@@@%bABQAA&AA	C 	C 	CR^B@#A@@@@%bABQAA&AA	C 	C 	CR^BB3%aBB6BB%bCRDqCCFCC	E 	E 	ER^BN*;*;*;!NNvNN%bKLLLqKKFKK	M 	M 	M 	M 	Mr)   c                    t          j        d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )Nr  rH  r   r   r   g      @g      ?)r>   r   r   rd   )r@   r  s     r'   
test_basicz$TestNanFunctions_Quantile.test_basic1  sn    IaLL3R^Aq))2...R^Aq))3///R^As++T22222r)   c                 \   t          j        g dd          }t          t          t           j        |d           t          j        g dd          }t          t          t           j        |d           t          j        g dd          }t          t          t           j        |d           d S r  )r>   r   r   rE  rd   r  s     r'   r!  z&TestNanFunctions_Quantile.test_complex7  s    ===SIIIi<<<===SIIIi<<<===SIIIi<<<<<r)   c                    t          j        g d          }|                                }t          j        t          j        d          |d           t          ||           |                                }|                                }t          j        t          j        d          |d           t          ||           d S )N)r   r]  r\  rH  r   g      Y@midpointr$  )r>   r   ru   rd   r   r   tolist)r@   p0rS  s      r'   test_no_p_overwritez-TestNanFunctions_Quantile.test_no_p_overwrite?  s    X///00GGII
ry*====1b!!!YY[[HHJJ
ry*====1b!!!!!r)   r   r   r   r1  r   r   r   r   r:   c                 z   ||j         dk    rt          j        d           |                    |          }t          j        t
          d          5  t          j        |d|          }d d d            n# 1 swxY w Y   t          j        |          	                                sJ |j
        |j
        k    sJ d S )Nr   r   r   r   r   r   )r   rl   r   r   r   r   r>   rd   r   r   r   r4  s        r'   r   z&TestNanFunctions_Quantile.test_allnansK  s     
aKDEEEU##\.0KLLL 	6 	6.555C	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6x}}  """""yEK''''''r5  N)r$   rL   rM   rl   rm   rn   ra  rc  r!  ri  r>   r  r   r   r  r   r"   r)   r'   rY  rY    s$        [Z%77M M 87M&3 3 3= = =
" 
" 
" [V\\\22[Wbl7&;<<[W' $<   ( (	  =< 32( ( (r)   rY  zarr, expectedr  )FTFT)r   r   r{  r   r   Tc                     d t          j        | j        t           j                  fD ]D}t	          | |          }t          ||           t          |          t           j        ur|du sJ Ed S )Nr   r-  T)r>   r2   r   r	  r   r   r   r   )r   expectedr   actuals       r'   test__nan_maskrn  [  sz    " bhsy8889 " "3C(((VX&&& >>++T>>>>" "r)   c                     t           j        t           j        t           j        fD ]7} t          j        ddg|           }t          |d          \  }}|J ||u sJ 8t           j        t           j        fD ]} t          j        ddg|           }t          |d          \  }}|dk                                    sJ ||usJ t          ||           t          j        ddt           j
        g|           }t          |d          \  }}t          |t          j        g d                     ||usJ t          |t          j        g d                     t          j        |d	                   sJ dS )
z] Test that _replace_nan returns the original array if there are no
    NaNs, not a copy.
    r   r   r   Nr   F)FFTrL  r  )r>   r	  int32int64r   r   r  rH  r   r   r   r   )r   r   r  maskarr_nan
result_nanmask_nans          r'   test__replace_nanrv  v  s    '28RX.  h1vU+++#C++|||}}}}}*bj) % %h1vU+++#C++""$$$$$S    VS!!!(Aq"&>777+GQ77
HXrx(<(<(<==>>>((((Z)))!4!4555x$$$$$$% %r)   z"memmap is thread-unsafe (gh-29126))reasonc                    t          j        dt                    }t          |                     d          d          5 }|                    |                                           t          j        ||j        |j	                  }t          j        t          d          5  t          j        |t          j        d          	           d d d            n# 1 swxY w Y   t          j        t          d
          5  t          j        |t          j        d          	           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Ng      $@r   zdata.binzw+b)r   r   zreduction operation fmaxr   r   r-  zreduction operation fmin)r>   r   r`  openjoinr5  tobytesmemmapr   r   rl   r  r  rP   r   rN   )tmpdirr  fhmms       r'   test_memmap_takes_fast_router    s   
 		#U###A	fkk*%%u	-	- +
Yr888]:-GHHH 	+ 	+Ibbhqkk****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]:-GHHH 	+ 	+Ibbhqkk****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	++ + + + + + + + + + + + + + + + + +sZ   A$E#)CEC	EC	 E>)D3'E3D7	7E:D7	;EEE)9r-   r   	functoolsr   rl   numpyr>   numpy._core.numericr   numpy.exceptionsr   r   numpy.lib._nanfunctions_implr   r   numpy.testingr	   r
   r   r   r   r   r   r   rt   r   r  r  r    rq   r  _TEST_ARRAYSr0   _vsetflagsrm   rn   r  keysr9  rS  rh  ru  r  _TIME_UNITSr   r  r  r
  rY  r  rq  	complex64rn  rv  thread_unsafer  r"   r)   r'   <module>r     s                4 4 4 4 4 4 6 6 6 6 6 6 6 6 @ @ @ @ @ @ @ @                	62666266B7BFFFFC626266267C26266626BD 	E 	E 
222	3	3	;;;	<	<	67#	$	$	***	+	+	- RXAAAEEE<<<>>>@ A A
 bhBBBFFF===???A B B,
 ,
 ,
 ,
 ,
 ,
 ,
 ,
^m% m% m% m% m% m% m% m%`^$ ^$ ^$ ^$ ^$ ^$ ^$ ^$D "(1++
"((((
)
)  



  BKKeK Lj!99C?   3 3 5 5<;L;L;N;NOOR/ R/ R/ R/ R/ R/ R/ PO	 
R/jf1 f1 f1 f1 f1 f1 f1 f1R8$ 8$ 8$ 8$ 8$; 8$ 8$ 8$vF. F. F. F. F."> F. F. F.RB* B* B* B* B*"> B* B* B*J
 d2<
+,, 66+666 6DB DB DB DB DB DB DB DBNE& E& E& E& E& E& E& E&P?( ?( ?( ?( ?( ?( ?( ?(B RXrvsBFBF+,,RX((())+ RXlll"(+++	 RX((())	 RX}!(*6 6 6RXt}t}   +   " "!  "% % %6 "FGG+ + HG+ + +r)   