
    G/Phg                        d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
mZ d dlmZmZ d dlmZmZmZmZmZmZmZ  e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>          Z0 G d? d@          Z1 G dA dB          Z2ej$        %                    dC ej        ej        dDej        ej3        g           ej        g dE          f ej        g dFej4        G          dHf ej        g dE          dHf ej        ej        dDgej        ej3        ggej5        G           ej        d)dHgd)dHgg          fg          dI             Z6dJ Z7dS )K    N)partial)normalize_axis_tuple)	AxisErrorComplexWarning)	_nan_mask_replace_nan)assert_assert_equalassert_almost_equalassert_raisesassert_raises_regexassert_array_equalsuppress_warningss?&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     a/var/www/html/test/jupyter/venv/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_signature=   s     %d++	'..00 	> 	>C{g/555$$$$G < <==== ***r*   znan_func,funcidsc                     |                      |          }|                      |          }t          j                            ||           d S N)r:   nptestingr
   )selfnan_funcr7   r/   nan_signatures        r(   test_signature_matchz'TestSignatureMatch.test_signature_matchI   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__rA   s    r(   test_exhaustivenessz&TestSignatureMatch.test_exhaustivenessR   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NANFUNCSrG   staticmethodr:   pytestmarkparametrizeitemsrD   rL   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
   rA   ndatfs      r(   test_mutationz%TestNanFunctions_MinMax.test_mutation^   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ziprw   stdfuncsr	   ndimrA   matnfrfr   tgtress          r(   test_keepdimsz%TestNanFunctions_MinMax.test_keepdimse       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   rw   r   zerosr   rA   r   r   r   resoutr   r   s          r(   test_outz TestNanFunctions_MinMax.test_outm       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   rw   r   r?   r   r   typer	   rA   codesr   r   cr   r   r   s           r(   test_dtype_from_inputz-TestNanFunctions_MinMax.test_dtype_from_inputv   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   rw   r   _rdatru   r   rA   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   rm   skipastyperw   warnsRuntimeWarningr?   isnanallr   rA   r   r   r   r   r7   r   s          r(   test_allnansz$TestNanFunctions_MinMax.test_allnans   s    
aKEFFF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_invalidru   _maskrv   rO   r
   r	   isinfany)rA   r   mskrz   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   rw   r	   rA   rz   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%   rM   rN   r#   r*   r(   	MyNDArrayr              Dr*   r   r   r   r   r   r   r#   Trecordalways   no warning raised)r?   ndarrayr   viewrw   r	   
isinstanceshapenanwarningscatch_warningssimplefilterr   r   len
issubclasscategoryr   )rA   r   minerz   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
   rO   r   r   r   listr	   r   r   r   r   )rA   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   rw   rQ   r   r   )rA   r   r   arrz   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boolrw   rO   r   r   )	rA   r   r   r   r  rz   	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%   rM   rN   r?   rO   rQ   rw   minmaxr   r{   r   r   r   r   rm   rn   ro   	typecodesr   r   fullr   r   r   r   r   r   r  r#   r*   r(   rr   rr   Y   s       	29%HH& & &. . .* * *$ $ $* * * [V\\\22[Wbl:&>??[W' $<   
, 
,	  @? 32
,- - -! ! !)% )% )%V
? 
? 
? [Wbl:&>??# # @?#$ [Wbl:&>??% % @?% % %r*   rr   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>   rt   rx   s      r(   r{   z+TestNanFunctions_ArgminArgmax.test_mutation  r|   r*   c                 :   t          | j        t          j        t          j        g          D ]\  }}t
          D ]}t                      5 }|                    t          d            ||          }||         }t          t          j
        |                      t           |||                                                      t          t          j        ||d |                                                               d d d            n# 1 swxY w Y   d S )Nzinvalid value encountered in)r   rw   r?   greaterlessru   r   filterr   r	   r   r   equal)rA   rz   fcmprowsupindvals          r(   r   z0TestNanFunctions_ArgminArgmax.test_result_values  s\   4=2:rw*?@@ 
	@ 
	@GAt 	@ 	@&(( @CJJ~/MNNN!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   rm   r   r   rw   raises
ValueError)rA   r   r   r   r7   s        r(   r   z*TestNanFunctions_ArgminArgmax.test_allnans!  s     
aKEFFF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   rw   r   r   r
   )rA   r   rz   r   r   s        r(   
test_emptyz(TestNanFunctions_ArgminArgmax.test_empty0  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_scalar<  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)  A  r   r*   r   r   r   r   r   r   r#   )r?   r   r   r   rw   r	   r   r   )rA   r   r   rz   r   s        r(   r   z+TestNanFunctions_ArgminArgmax.test_subclass@  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   rw   rS   r   rA   r   r   rz   r  rets         r(   r   z+TestNanFunctions_ArgminArgmax.test_keepdimsQ  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   rw   r   intprS   )rA   r   r   rz   r   r  r,  s          r(   r   z&TestNanFunctions_ArgminArgmax.test_out\  s    Yq\\  ''2A2 	$ 	$A(2RW---C",..AI!BC...C#::::)#####	$ 	$r*   N)r%   rM   rN   r?   rS   rU   rw   r{   r   rm   rn   ro   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;   ignore)overc                     |                     |          } ||          } ||          }t          ||           |dk    r"t          |          t          |          u sJ d S |j        |j        k    sJ d S )Nr8  r   r   r   r   rA   r   r   nanfuncr7   r   r   s          r(   test_nanfuncz)TestNanFunctions_NumberTypes.test_nanfunc  s     jjd3iigcllC%%%C<<99S		))))))9	))))))r*   re   rc   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   )qr8  )r   r   kindr   	TypeErrorr   r   rA  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*   rg   ri   c                     |                     |          } ||d          } ||d          }t          ||           |dk    r"t          |          t          |          u sJ d S |j        |j        k    sJ d S )N      ?ddofr8  r@  rA  s          r(   test_nanfunc_ddofz.TestNanFunctions_NumberTypes.test_nanfunc_ddof  s     jjd3S!!!gc$$$C%%%C<<99S		))))))9	))))))r*   rB  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 )NrJ  )
correctionrK  z5ddof and correction can't be provided simultaneously.)rL  rO  r   r   )r   r   r   r   )rA   r   r   rB  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%   rM   rN   r?   rO   r  rQ   r  rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rg   rh   ri   rj   rw   nanfunc_idsrm   rn   ro   rp   errstaterC  re   rf   rc   rd   rH  rM  rQ  r#   r*   r(   r:  r:  r  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*   r:  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>   rt   rx   s      r(   r{   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 ]5\  }}|D ]+}t                      5 }|t           j        t           j        hv r|dv r|                    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   -7d S Nr   r   FDGr   )r   r   r?   r   r   rw   r   r   ri   rg   r  r   r   r   r	   	rA   r   r   r   r   r   r  r   r   s	            r(   test_dtype_from_dtypez2SharedNanFunctionsTestsMixin.test_dtype_from_dtype  s   fQii$-77 	( 	(FB ( (&(( 
(Cbi333U



>222"S!<<<BGC"S!<<<BGCC3J'''"S$???EJC"S$???EJCC3J'''
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
((	( 	(s   
DEE Ec                 <   t          j        d          }d}t          | j        | j                  D ]\  }}|D ]}t                      5 }|t           j        t           j        hv r|dv r|                    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 rZ  r\  r]  s	            r(   test_dtype_from_charz1SharedNanFunctionsTestsMixin.test_dtype_from_char  st   fQii$-77 	( 	(FB ( (&(( 
(Cbi333U



>222"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

SS$ABBB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   rg    r   r*   r   r   r   r   r   )r?   r   r   r   rw   r   r	   r   )rA   r   r   r   rz   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%   rM   rN   r{   r   r   r^  r`  r   r   r   r   r#   r*   r(   rU  rU    s        & & &. . .* * *( ( ("( ( ("$ $ $* * *! ! !1 1 1 1 1r*   rU  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   rm   r   r   r   rw   r?   r   r   rA   r   r   r   r7   identityr   s          r(   r   z%TestNanFunctions_SumProd.test_allnans:  s     
aKEFFF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?   rW   rY   r   r
   rA   rz   	tgt_valuer   r   r   s         r(   r%  z#TestNanFunctions_SumProd.test_emptyJ  s    BJ 7!Q@@ 
	# 
	#LAy(6""C+a-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   rw   rW   r   r+  s         r(   r   z%TestNanFunctions_SumProd.test_initialW  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
  rw   rW   r   )rA   r   r   r  rz   r  r,  s          r(   r  z#TestNanFunctions_SumProd.test_whereb  s    Yq\\!!!Q''..u5561aaa4Rrw///aaad 	$ 	$A29nn$I!BeQ///C9%%%%)#####		$ 	$r*   N)r%   rM   rN   r?   rW   rY   rw   rX   rZ   r   rm   rn   ro   r  r   r   r  r   r%  r   r  r#   r*   r(   rj  rj  5  sX       	2:&H H[V\\\22[Wbl:&>??[W' $<   , ,	  @? 32,# # # [Wbl:&>??$ $ @?$ [Wbl:&>??
$ 
$ @?
$ 
$ 
$r*   rj  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   rl  rm  s          r(   r   z(TestNanFunctions_CumSumProd.test_allnansu  s     
aKEFFF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   rw   r?   r   onesr
   rp  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   rJ  r   )i  r  )r   rw   r   r?   r   r	   r   rz  randomRandomStater   randr   r
   r   )	rA   rz   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]   ru   r   r\   _ndat_zerosr[   )rA   r   r   r   s       r(   r   z.TestNanFunctions_CumSumProd.test_result_values  s    ( 	* 	*D*Zd333C-D111CS))))KT222C,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   rw   r   r   )rA   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%   rM   rN   r?   r[   r]   rw   r\   r^   r   rm   rn   ro   r  r   r   r  r   r%  r   r   r   r#   r*   r(   rw  rw  p  s       bm,H	2:&H[V\\\22[Wbl:&>??[W' $<   , ,	  @? 32,# # #7 7 7&* * *. . . . .r*   rw  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   )rw   r?   r
  int_object_r   rG  ru   )rA   rz   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   )
rw   r?   r
  r  r  r3   ru   r   r   rG  )rA   rz   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 )rK  r#   )r&   r   rL  r   s     r(   r)   z9TestNanFunctions_MeanVarStd.test_ddof.<locals>.<listcomp>  s(    777Arr!$'''777r*   r   r   rL  )	r?   rg   ri   rh   rj   r   r   ru   r   )rA   rw   r   r   r   r   rL  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                      5 }|	                    t                     |                    t                     	fd|D             } |t          d	          }t          t          j        |          |           t!          |          r&t#          t%          |j                  dk               n%t#          t%          |j                  dk               d d d            n# 1 swxY w Y   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   c                     g | ]}|k    	S r#   r#   )r&   r   rL  s     r(   r)   zATestNanFunctions_MeanVarStd.test_ddof_too_big.<locals>.<listcomp>  s    444419444r*   r   r  r   )r?   rg   ri   rh   rj   r   r   ranger   r   r   r  r   ru   r
   r   r   r	   r   log)
rA   rw   r   dsizer   r   r  r   r   rL  s
            @r(   test_ddof_too_bigz-TestNanFunctions_MeanVarStd.test_ddof_too_big  s   Iry)FBF#'''''(H-- 	3 	3FBa 
3 
3&(( 	3CJJ~...JJ~...4444e444C"U666C #4443xx 3CG 12222CG 1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3
3	3 	3s   8CEEE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   rm   r   r   rw   r   r   r?   r   r   r_   r   absr   s          r(   r   z(TestNanFunctions_MeanVarStd.test_allnans  s<    
aKEFFF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   rw   r   r   r   r	   r   r   r   r   r   r   r
   )rA   r   rz   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   rw   r   r_   realr   r@   assert_allclose)	rA   r   r   r  rz   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   rJ  )r  r   r   r   T)r   r   r   )r   r   r   r`   r   )
r?   r  r  randnr   r   r_   ri   r   r   )rA   rngAmean_outstd_outr`   rj   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%   rM   rN   r?   r_   rg   ri   rw   r`   rh   rj   r   r  r  r  r  rm   rn   ro   r  r   r   r  r   r%  r  r  r#   r*   r(   r  r    s}       
BIry1H(HH H H
D D D. . .3 3 3" [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)   C  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>   )ru   rv   r?   ra   r
   rA   ry   s     r(   r{   z%TestNanFunctions_Median.test_mutationH  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                      5 }|                    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_inputr|  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   rb   ra   r	   r   rz  r  r   r   r   r/  r   tupler   r  r   r
   rA   r   r   r   r   r   r   r  s           r(   r   z%TestNanFunctions_Median.test_keepdimsN  s=   fQii  	* 	*D)CdeLLLC,s4OOOCCH())))GM""IX&&!'):):111d7)CCHHRWf%((   	2CJJ~&&&,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#H77H;>H;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 )Nr|  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?   rz  r  r   r   r   r/  r   r  r   r   r  r3   ra   r
   )rA   r   r   	shape_outr   resultr  r   s         @@r(   test_keepdims_outz)TestNanFunctions_Median.test_keepdims_outi  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   rb   ra   r   )rA   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   r4   rb   r   ra   )rA   r  r   r   r   xnonans          r(   test_small_largez(TestNanFunctions_Median.test_small_large  s    ' 	> 	>A	1%%A	!!!QV!&A+!>>A6AGGIIaLAaaacF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?   rb   r  s     r(   r)   z>TestNanFunctions_Median.test_result_values.<locals>.<listcomp>  s     ///A29Q<<///r*   r   r   )r   r?   ra   ru   r   )rA   r   r   s      r(   r   z*TestNanFunctions_Median.test_result_values  s?    /////C,u1---CS)))))r*   r   r   c                    t          j        dt           j                                      |          }t	                      5 }|                    t                     t          j        ||          }|j        |j        k    sJ t          j	        |          
                                sJ |&t          t          |j                  dk               n%t          t          |j                  dk               t          j        t           j                                      |          d         }t          j        |          }|j        |j        k    sJ t          j	        |          sJ |&t          t          |j                  dk               n%t          t          |j                  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   r   r   r   ra   r   r   r   r	   r   r  r   )rA   r   r   r   r  outputscalaroutput_scalars           r(   r   z$TestNanFunctions_Median.test_allnans  s    gfbf%%,,U33   	+CJJ~&&&\#D111F<39,,,,8F##'')))))|CG)****CG)*** Xbf%%,,U33B7FL00M &&,66668M*****|CG)****CG)***+	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   E8GG
G
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   ra   r   r   r   r   r   r
   rA   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?   ra   rK   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 )Nr|  r   r   r  r  r   r  r   r   )r?   rz  r   r   ra   r   rA   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                      5 }|                    t                     t          j        t          j         fD ]b}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          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d	 d d d            d S # 1 swxY w Y   d S )Nr   r   r   r}  iir   r  r   r   g      @      @g      @g      $g      "g      r  g      r  r   )r   r  r   r?   infr   r   r
   ra   float32r  )rA   r  r  ar<  js         r(   test_float_specialz*TestNanFunctions_Median.test_float_special  s      +	BCJJ~&&&( )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q" 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R55R9<R9N)r%   rM   rN   r{   r   rm   rn   ro   filterwarningsr  r   r  r   _TYPE_CODESr   r%  r   r  r	  r#   r*   r(   r  r  F  sX       " " "2 2 26 [
 
 
  	 	 [ EFF. . GF	 	."& & &$> > > * * *
 [V\\\22[Wk22+ + 32 32+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   )ru   rv   r?   rc   r
   r  s     r(   r{   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                      5 }|                    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  r|  r  Z   Tr   r  r  r  r"  r  r$  r  r  r  r  )r?   r   rd   rc   r	   r   rz  r  r   r   r   r/  r   r  r   r  r   r
   r  s           r(   r   z)TestNanFunctions_Percentile.test_keepdims  sb   fQii  	* 	*D-Rd057 7 7C"3438: : :CCH())))GM""IX&&!'):):111d7)CCHHRWf%((   	2CJJ~&&&"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)H??IIrE  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 )Nr|  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>J  r  r*   Tr  )r?   rz  r  r   r   r   r/  r   r  r   r   r  r3   rc   r
   )	rA   rE  r   r   r  r   r  r  r   s	          @@r(   r  z-TestNanFunctions_Percentile.test_keepdims_out4  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t                      }t                      }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	  dictrd   rc   r   )	rA   r  r   r  r   w_args
nan_w_argsr   r   s	            r(   r   z$TestNanFunctions_Percentile.test_outS  s   innQ"")C!Qa888! 	 !#c!2!2nMMF<00N JJ VVF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   rJ  r  F)r?   r   r   rG  rc   rA   arr_cs     r(   test_complexz(TestNanFunctions_Percentile.test_complexr  s    777sCCCi!15#>>>777sCCCi!15#>>>777sCCC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 )rs  r  r#   r&   r   r+  rd   s     r(   r)   zBTestNanFunctions_Percentile.test_result_values.<locals>.<listcomp>  s2    HHHQzz!RQ888HHHr*   rs  r   )r   r  r   c           	      >    g | ]} |d  |                    S )rs  b   r.  r#   r/  s     r(   r)   zBTestNanFunctions_Percentile.test_result_values.<locals>.<listcomp>  sB     , , , ! 'Jq(KKNNKKK , , ,r*   r1  )	r   r?   rd   rc   r   
empty_likeru   r   	transpose)	rA   r  r&  rc   r   r   r   r+  rd   s	          @@r(   r   z.TestNanFunctions_Percentile.test_result_valuesz  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   rm   r   r   r   r   r?   rc   r   r   r   rA   r   r   r   r   s        r(   r   z(TestNanFunctions_Percentile.test_allnans  s     
aKEFFF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   rc   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?   rc   r   r	   isscalar)rA   r  rs      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 )	Nr|  r   r  rE  r   r  r  r  r   )r?   rz  r   r   rc   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                      5 }|                    t
          d           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=  )r   r   r   )r   r   r=  )
r?   rz  r   r   r  r   rd   rc   r
   r   )rA   percr   r  	large_matr   keepdimr  r  nan_valmegamats              r(   test_multiple_percentilesz5TestNanFunctions_Percentile.test_multiple_percentiles  s   Cygfoo&3,GI&&	!"	!!!QqUAAA+!!!QQQ(q   	/ 	/D( / /&(( /CJJ~/JKKK-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&D,,D03D0
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   float64rc   r
   )rA   rJ  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  rS  r   )g      4@g      I@r  )r  !   P   r  )r   r  r  )r   r  rK  )r   r  r   r  )r?   r  seedrv   r   r   r   r	  r   rd   rc   r
   r3  )rA   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%   rM   rN   r{   r   rm   rn   ro   r
  r  r   r%  r   r?   r  r   r   r  r   r%  r   r  rI  rP  r\  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
 
 
8 [\+>+>+>??	) 	) @?	) [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t                      }t          t          j	        |fd	d
i|t          j
        |fd	di|           t          t          j	        |fd
dd|t          j
        |fddd|           t          t          j	        |fd
dd|t          j
        |fddd|           t          t          j	        |fd
gdd|t          j
        |fdgdd|           t          t          j	        |fg ddd|t          j
        |fg ddd|           d S )N   r   r   r  r   r   r  r  rE  rJ  r>  rB  )      ?rJ        ?)   r>  K   )r?   r   r  r   floatr   r	  r  r
   re   rc   )rA   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VVF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  rJ  r   r   r   g      @g      ?)r?   r   r
   re   )rA   r  s     r(   
test_basicz$TestNanFunctions_Quantile.test_basic-  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   rG  re   r#  s     r(   r%  z&TestNanFunctions_Quantile.test_complex3  s    777sCCCi<<<777sCCCi<<<777sCCC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   rb  ra  rJ  r   g      Y@midpointr(  )r?   r   rv   re   r   r   tolist)rA   p0rX  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   r5  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   rm   r   r   r   r   r?   re   r   r   r   r8  s        r(   r   z&TestNanFunctions_Quantile.test_allnansG  s     
aKEFFF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''''''r9  N)r%   rM   rN   rm   rn   ro   rf  rh  r%  rn  r?   r  r   r   r  r   r#   r*   r(   r^  r^    s$        [Z%77M M 87M&3 3 3= = =
" 
" 
" [V\\\22[Wbl7&;<<[W' $<   ( (	  =< 32( ( (r*   r^  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?   r3   r   r
  r   r
   r   r   )r   expectedr   actuals       r(   test__nan_maskrs  W  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)FFTrQ  r  )r?   r
  int32int64r   r   r  rM  r   r
   r   r   )r   r   r  maskarr_nan
result_nanmask_nans          r(   test__replace_nanr{  r  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*   )8r   rm   r.   	functoolsr   numpyr?   numpy._core.numericr   numpy.exceptionsr   r   numpy.lib._nanfunctions_implr   r   numpy.testingr	   r
   r   r   r   r   r   r   r   ru   r   r  r  r!   rr   r  _TEST_ARRAYSr1   _vsetflagsrn   ro   r  keysr:  rU  rj  rw  r  _TIME_UNITSr   r  r  r  r^  r  rv  	complex64rs  r{  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*H
 d2<
+,, 66+666 6FB FB FB FB FB FB FB FBRD& D& D& D& D& D& D& D&N?( ?( ?( ?( ?( ?( ?( ?(B RXrvsBFBF+,,RX((())+ RXlll"(+++	 RX((())	 RX}!(*6 6 6RXt}t}   +   " "!  "% % % % %r*   