
    ,|h                     j   d dl Z d dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZmZmZmZmZmZ  e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j7                         D ]  Zej;                  d'(        ej<                  j?                  d)ej@                  d*   ej@                  d+   z   d,z         ej<                  j?                  d-ej7                         ejC                         .       G d/ d0                    Z" G d1 d2      Z# G d3 d4e#      Z$ G d5 d6e#      Z% G d7 d8e#      Z&d9Z' e(ej@                  d+         Z)e)e'D  cg c]  } d:|  d;
 c} z  Z) G d< d=      Z* G d> d?      Z+ G d@ dA      Z,ej<                  j?                  dB ej"                  ej$                  dCej$                  ejZ                  g       ej"                  g dD      f ej"                  g dEej\                  F      dGf ej"                  g dD      dGf ej"                  ej$                  dCgej$                  ejZ                  ggej^                  F       ej"                  d'dGgd'dGgg      fg      dH        Z0dI Z1yc c} w )J    N)normalize_axis_tuple)	_nan_mask_replace_nan)assert_assert_equalassert_almost_equalassert_raises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                   8   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j0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  iZ e D  cg c]  }|j                    c}} Z!e"dd       Z#e$jJ                  jM                  de jO                         e!      d        Z(d Z)yc c}} w )TestSignatureMatchc                 J   g }t        j                  |       }|j                  j                         D ][  }|j                  t         j
                  j                  u r|j                  |       ;|j                  |j                  |             ] t        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        `/var/www/html/test/engine/venv/lib/python3.12/site-packages/numpy/lib/tests/test_nanfunctions.pyget_signaturez TestSignatureMatch.get_signature;   s     %%d+	''..0 	>C{{g//555$G <=		>
   **    znan_func,funcidsc                     | j                  |      }| j                  |      }t        j                  j                  ||       y N)r-   nptestingr   )selfnan_funcr)   r!   nan_signatures        r,   test_signature_matchz'TestSignatureMatch.test_signature_matchG   s8    
 &&t,	**84


	=9r.   c                     t         j                  j                  t        | j                        t        t         j
                  j                  j                               y)z4Validate that all nan functions are actually tested.N)r3   r4   r   setIDSlibnanfunctions__all__r5   s    r,   test_exhaustivenessz&TestSignatureMatch.test_exhaustivenessP   s6    


M3rvv22::;	
r.   N)z...)*__name__
__module____qualname__r3   nanminaminnanmaxamax	nanargminargmin	nanargmaxargmaxnansumsumnanprodprod	nancumsumcumsum
nancumprodcumprodnanmeanmean	nanmedianmediannanpercentile
percentilenanquantilequantilenanvarvarnanstdstdNANFUNCSr;   staticmethodr-   pytestmarkparametrizeitemsr8   r@   ).0ks   00r,   r   r   (   s%   
		277
		277
bii
bii
		266


BGG
bii
rzz


BGG
bii
"--

		266
		266H   (
(!1::
(C	+ 	+ [[_hnn.>CH: I:
/ )s    Fr   c            
          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                   j#                  dg d      ej                   j#                  dej$                  d	         ej                   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                   j#                  dej$                  d	         d        Zej                   j#                  dej$                  d	         d        Zy)TestNanFunctions_MinMaxc                 ~    t         j                         }| j                  D ]  } ||       t        |t                 y r2   _ndatcopynanfuncsr   r5   ndatfs      r,   test_mutationz%TestNanFunctions_MinMax.test_mutation\   1    zz| 	&AdGu%	&r.   c                     t        j                  d      }t        | j                  | j                        D ]D  \  }}dD ]:  } |||d      } |||d      }t        |j                  |j                  k(         < F y N   Nr      Taxiskeepdimsr3   eyeziprn   stdfuncsr   ndimr5   matnfrfrz   tgtress          r,   test_keepdimsz%TestNanFunctions_MinMax.test_keepdimsc   q    ffQi$--7 	.FB$ .4$74$7CHH,-.	.r.   c                    t        j                  d      }t        | j                  | j                        D ]G  \  }}t        j
                  d      } ||d      } ||d|      }t        ||       t        ||       I y Nrv   rx   rz   rz   outr3   r}   r~   rn   r   zerosr   r5   r   r   r   resoutr   r   s          r,   test_outz TestNanFunctions_MinMax.test_outk   k    ffQi$--7 	*FBXXa[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          y )NefdgFDGrv   dtyperx   r   r~   rn   r   r3   r}   r   typer   r5   codesr   r   cr   r   r   s           r,   test_dtype_from_inputz-TestNanFunctions_MinMax.test_dtype_from_inputt   s    $--7 		$FB $ffQa(1o++001o++00s
#4(..334(..33s
#$		$r.   c                     t        | j                  | j                        D ]8  \  }}t        D cg c]
  } ||       }} |t        d      }t        ||       : y c c}w Nrx   r   r~   rn   r   _rdatrl   r   r5   r   r   dr   r   s         r,   test_result_valuesz*TestNanFunctions_MinMax.test_result_values   T    $--7 	*FB"'(Q2a5(C(U#CS)	*(   Arz   rw   r   AllFloatarrayrv   rv   0d2dr/   c                    |$|j                   dk(  rt        j                  d       |j                  |      }d}| j                  D ]p  }t        j
                  t        |      5   |||      }d d d        t        j                        j                         sJ |j                  |j                  k(  rpJ  y # 1 sw Y   LxY wNr   *`axis != None` not supported for 0d arraysAll-NaN slice encounteredmatchr   )r   rb   skipastypern   warnsRuntimeWarningr3   isnanallr   r5   rz   r   r   r   r)   r   s          r,   test_allnansz$TestNanFunctions_MinMax.test_allnans   s     

aKKDFU#+MM 	,DnE: -5t,-88C=$$&&&99+++		,- -s   $B::C	c                 x   t         j                  j                  t              }|j                  j                         }t         j                  fD ]i  } ||d      } |t        d      }t        ||       t        |j                  |       t        t        j                  |      j                                 k y r   )r3   mafix_invalidrl   _maskrm   rD   r   r   isinfany)r5   r   mskrq   r   r   s         r,   test_maskedz#TestNanFunctions_MinMax.test_masked   s    ee&iinn)) 	-ACa.CE"Cc"C())++,	-r.   c                 N    | j                   D ]  }t         |d      dk(          y Nr   rn   r   r5   rq   s     r,   test_scalarz#TestNanFunctions_MinMax.test_scalar   %     	!AAbERK 	!r.   c           	      j    G d dt         j                        }t        j                  d      j                  |      }| 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 ]  }t        j                  d	
      5 }t        j                  d        ||d      }t        t        ||             t        t        j                  t        j                  |                    t        t        |      dk(         d d d        t        j                  d	
      5 }t        j                  d        ||d      }t        t        ||             t        t        j                  |d         xr4 t        j                  |d          xr t        j                  |d                 t        t        |      dk(  d       t        t        |d   j                   t"                     d d d        t        j                  d	
      5 }t        j                  d        ||      }t        |j                  dk(         t        |t         j                  k7         t        t        |      dk(         d d d         y # 1 sw Y   }xY w# 1 sw Y   xY w# 1 sw Y   6xY w)Nc                       e Zd Zy)8TestNanFunctions_MinMax.test_subclass.<locals>.MyNDArrayNrA   rB   rC    r.   r,   	MyNDArrayr          r.   r   rv   r   r   rv   rx   r   Trecordalways   no warning raised)r3   ndarrayr}   viewrn   r   
isinstanceshapenanwarningscatch_warningssimplefilterr   r   len
issubclasscategoryr   )r5   r   minerq   r   ws         r,   test_subclassz%TestNanFunctions_MinMax.test_subclass   s}   	

 	
 vvay~~i( 	%ADq/CJsI./CII%&Dq/CJsI./CII%&D'CCIIO$	% &&Q 	%A((5 %%%h/1o
3	23BFF288C=112A!$% ((5 C%%h/1o
3	23Q( 1#a&1A-A 1 "Q 002A!%89
1Q4==.ABC ((5 %%%h/g		R(rvv&A!$% %#	%% %C C% %s'   A>L2C
LA)L(L	L%	(L2	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        y # 1 sw Y   y xY w)Nr   g       @      @r   r   r   Tr   r   rx   r   )r3   r   r   objectr   rD   r   r   r   listr   r   r   r   r   )r5   arrr   s      r,   test_object_arrayz)TestNanFunctions_MinMax.test_object_array   s    hhc
RVVSMBFFBFF3CDFSRYYs^S)RYYs+c3Z8$$D1 	?Q!!(+bii!45S"&&7IJCFaK!45Jqt}}n=>	? 	? 	?s   'BD??Ec                     G d dt         j                        }t        j                  d      j                  |      }t         j                  |d d | j
                  D ]k  }|t         j                  u rdnd} |||      }|j                  |k(  sJ ||k(  sJ  ||j                  |      |      }|j                  |k(  sJ ||k(  rkJ  y )Nc                       e Zd Zy)7TestNanFunctions_MinMax.test_initial.<locals>.MyNDArrayNr   r   r.   r,   r   r      r   r.   r   	      d   r   initial)	r3   r   aranger   r   rn   rF   r   r   )r5   r   r   arrq   r   ret1ret2s           r,   test_initialz$TestNanFunctions_MinMax.test_initial   s    	

 	 YYq\  '2A 		#A"))^cGR)D::&&&7?"?RWWY'9D::&&&7?"?		#r.   c                      G d dt         j                        }t        j                  d      j                  dd      j	                  |      }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  ||j                  |      |d
      }|j                  |k(  sJ ||k(  rmJ  y )Nc                       e Zd Zy)5TestNanFunctions_MinMax.test_where.<locals>.MyNDArrayNr   r   r.   r,   r   r      r   r.   r   r   rv   r   r   F      r   wherer   )r3   r   r   reshaper   r   	ones_likebool_rn   rD   r   r   )	r5   r   r   r   r   rq   	referencer   r   s	            r,   
test_wherez"TestNanFunctions_MinMax.test_where   s    	

 	 YYq\!!!Q'..u5661a4Rrxx0ad 		%A"))^IRua0D::&&&9$$$RWWY'ua@D::&&&9$$$		%r.   N)rA   rB   rC   r3   rD   rF   rn   minmaxr   rr   r   r   r   r   rb   rc   rd   	typecodesr   r   fullr   r   r   r   r   r   r  r   r.   r,   ri   ri   W   sL   		299%HH&.*$* [[V\2[[Wbll:&>?[[W' $<  
,	 @ 3
,-!)%V
? [[Wbll:&>?# @#$ [[Wbll:&>?% @%r.   ri   c            
       j   e Zd Zej                  ej
                  gZd Zd Ze	j                  j                  dg d      e	j                  j                  dej                  d         e	j                  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                  j                  dej                  d         d        Ze	j                  j                  dej                  d         d        Zy)TestNanFunctions_ArgminArgmaxc                 ~    t         j                         }| j                  D ]  } ||       t        |t                 y r2   rk   ro   s      r,   rr   z+TestNanFunctions_ArgminArgmax.test_mutation  rs   r.   c                    t        | j                  t        j                  t        j                  g      D ]  \  }}t
        D ]  }t               5 }|j                  t        d        ||      }||   }t        t        j                  |              t         |||      j                                 t        t        j                  ||d |       j                                 d d d          y # 1 sw Y   xY w)Nzinvalid value encountered in)r~   rn   r3   greaterlessrl   r   filterr   r   r   r   equal)r5   rq   fcmprowsupindvals          r,   r   z0TestNanFunctions_ArgminArgmax.test_result_values  s    4==2::rww*?@ 
	@GAt 	@&( @CJJ~/MNC&Cc(C -.S# 2 2 445c$3i 8 < < >>?@ @	@
	@@ @s   BC00C9rz   rw   r   r   r   r   r   r   r/   c                    |$|j                   dk(  rt        j                  d       |j                  |      }| j                  D ]0  }t        j
                  t        d      5   |||       d d d        2 y # 1 sw Y   =xY wr   )r   rb   r   r   rn   raises
ValueError)r5   rz   r   r   r)   s        r,   r   z*TestNanFunctions_ArgminArgmax.test_allnans  su     

aKKDFU#MM 	'Dz1LM 'U&' '	'' 's   "A88B	c                     t        j                  d      }| j                  D ]L  }dD ]  }t        t        |||        dD ]+  } |||      }t        |t        j                  d             - N y )Nr   rv   r   Nr   rx   r   )r3   r   rn   r	   r  r   )r5   r   rq   rz   r   s        r,   
test_emptyz(TestNanFunctions_ArgminArgmax.test_empty.  sm    hhv 	/A! =j!St<= /$'S"((1+./	/r.   c                 N    | j                   D ]  }t         |d      dk(          y r   r   r   s     r,   r   z)TestNanFunctions_ArgminArgmax.test_scalar7  r   r.   c                     G d dt         j                        }t        j                  d      j                  |      }| j                  D ]  } ||d      }t        t        ||             t        |j                  dk(          ||d      }t        t        ||             t        |j                  dk(          ||      }t        |j                  dk(          y )	Nc                       e Zd Zy)>TestNanFunctions_ArgminArgmax.test_subclass.<locals>.MyNDArrayNr   r   r.   r,   r   r  <  r   r.   r   rv   r   r   r   rx   r   )r3   r   r}   r   rn   r   r   r   )r5   r   r   rq   r   s        r,   r   z+TestNanFunctions_ArgminArgmax.test_subclass;  s    	

 	
 vvay~~i( 	%ADq/CJsI./CII%&Dq/CJsI./CII%&D'CCIIO$	%r.   c                    t        j                  d      j                  |      }t         j                  |d d | j                  D ]D  }|t         j
                  u rdnd} ||d      }|j                  |j                  k(  sJ ||k(  rDJ  y )Nr   r   r   T)r{   )r3   r   r   r   rn   rH   r   r5   r   r   rq   r   rets         r,   r   z+TestNanFunctions_ArgminArgmax.test_keepdimsL  s~    YYq\  '2A 	$A",,.AIB&C88rww&&&)###		$r.   c                 8   t        j                  d      j                  |      }t         j                  |d d | j                  D ]T  }t        j
                  dt         j                        }|t         j                  u rdnd} |||      }||u sJ ||k(  rTJ  y )Nr   r   r   r   r   r   )r3   r   r   r   rn   r   intprH   )r5   r   r   rq   r   r   r!  s          r,   r   z&TestNanFunctions_ArgminArgmax.test_outW  s    YYq\  '2A 	$A((2RWW-C",,.AIBC.C#::)###	$r.   N)rA   rB   rC   r3   rH   rJ   rn   rr   r   rb   rc   rd   r  r   r   r  r   r  r   r   r   r   r   r.   r,   r  r    s&   bll+H&@ [[V\2[[Wbll:&>?[[W' $<  '	 @ 3'/!%" [[Wbll:&>?$ @$ [[Wbll:&>?	$ @	$r.   r  r   )   '   ]   W   .   )r   1dF)writer   
AllIntegerr   Or   r/   c                   D   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j0                  ej2                  ej4                  ej6                  iZeD  cg c]  }|j                    c}} Zej>                  jA                  dejC                         e       ejD                  d      d               Z#ej>                  jA                  dejH                  ejJ                  fejL                  ejN                  fgddg      d        Z(ej>                  jA                  dej0                  ej2                  fej4                  ej6                  fgd	d
g      d        Z)yc c}} w )TestNanFunctions_NumberTypesznanfunc,funcr/   ignore)overc                     |j                  |      } ||      } ||      }t        ||       |dk(  rt        |      t        |      u sJ y |j                  |j                  k(  sJ y )Nr-  r   r   r   r   r5   r   r   nanfuncr)   r   r   s          r,   test_nanfuncz)TestNanFunctions_NumberTypes.test_nanfunc  sa     jj3iclC%C<9S	)))99		)))r.   rZ   rX   c                 X   |j                  |      }|j                  j                  dk(  r't        t        ||d       t        t        ||d       y  ||d      } ||d      }t        ||       |dk(  rt        |      t        |      u sJ y |j                  |j                  k(  sJ y )Nr   rx   qr-  )r   r   kindr	   	TypeErrorr   r   r4  s          r,   test_nanfunc_qz+TestNanFunctions_NumberTypes.test_nanfunc_q  s     jj99>>S )T3!4)WcQ7 sa.C##CS)|CyDI---yyCII---r.   r\   r^   c                     |j                  |      } ||d      } ||d      }t        ||       |dk(  rt        |      t        |      u sJ y |j                  |j                  k(  sJ y )N      ?ddofr-  r3  r4  s          r,   test_nanfunc_ddofz.TestNanFunctions_NumberTypes.test_nanfunc_ddof  sg     jj3S!c$C%C<9S	)))99		)))r.   N)*rA   rB   rC   r3   rD   r  rF   r  rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   r\   r]   r^   r_   rn   nanfunc_idsrb   rc   rd   re   errstater6  rZ   r[   rX   rY   r<  rA  )rf   is   00r,   r/  r/  m  s    			266
		266
bii
bii
		266


BGG
bii
rzz


BGG
bii
		266
		266H (00!1::0K[[^X^^-=;OR[[h	*   P	* [[
.."++	&)9)92==(IJO,  
.
." [[
))RVV	ryy"&&12x   
	*
	*U 1s   Hr/  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)SharedNanFunctionsTestsMixinc                 ~    t         j                         }| j                  D ]  } ||       t        |t                 y r2   rk   ro   s      r,   rr   z*SharedNanFunctionsTestsMixin.test_mutation  rs   r.   c                     t        j                  d      }t        | j                  | j                        D ]D  \  }}dD ]:  } |||d      } |||d      }t        |j                  |j                  k(         < F y ru   r|   r   s          r,   r   z*SharedNanFunctionsTestsMixin.test_keepdims  r   r.   c                    t        j                  d      }t        | j                  | j                        D ]G  \  }}t        j
                  d      } ||d      } ||d|      }t        ||       t        ||       I y r   r   r   s          r,   r   z%SharedNanFunctionsTestsMixin.test_out  r   r.   c           	      &   t        j                  d      }d}t        | j                  | j                        D ]I  \  }}|D ]=  }t               5 }|t         j                  t         j                  hv r#|dv r|j                  t         j                          ||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        @ L y # 1 sw Y   OxY wNrv   r   FDGrx   )r   rz   r3   r}   r~   rn   r   r   r^   r\   r  ComplexWarningr   r   r   	r5   r   r   r   r   r   r  r   r   s	            r,   test_dtype_from_dtypez2SharedNanFunctionsTestsMixin.test_dtype_from_dtype  s4   ffQi$--7 	(FB (&( 
(Cbii33U


2#4#45S!<BBGGCS!<BBGGCC3J'S$?EEJJCS$?EEJJCC3J'
( 
((	(
( 
(s   D(FFc                    t        j                  d      }d}t        | j                  | j                        D ]  \  }}|D ]  }t               5 }|t         j                  t         j                  hv r#|dv r|j                  t         j                          |||d      j                  j                  } |||d      j                  j                  }t        ||u         |||d       j                  j                  } |||d       j                  j                  }t        ||u        d d d          y # 1 sw Y   xY wrK  rM  rO  s	            r,   test_dtype_from_charz1SharedNanFunctionsTestsMixin.test_dtype_from_char  s   ffQi$--7 	(FB (&( 
(Cbii33U


2#4#45S288==CS288==CC3J'S5;;@@CS5;;@@CC3J'
( 
((	(
( 
(s   CD66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          y )Nr   rv   r   rx   r   zres z, tgt r   r   s           r,   r   z2SharedNanFunctionsTestsMixin.test_dtype_from_input  s    $--7 		$FB $ffQa(1o++001o++00s
S$AB4(..334(..33s
#$		$r.   c                     t        | j                  | j                        D ]8  \  }}t        D cg c]
  } ||       }} |t        d      }t        ||       : y c c}w r   r   r   s         r,   r   z/SharedNanFunctionsTestsMixin.test_result_values  r   r   c                 N    | j                   D ]  }t         |d      dk(          y r   r   r   s     r,   r   z(SharedNanFunctionsTestsMixin.test_scalar  r   r.   c                 ^    G d dt         j                        }t        j                  d      }|j                  |      }| j                  D ]  } ||d      j
                  } ||d      }t        t        ||             t        |j
                  |k(          ||d      j
                  } ||d      }t        t        ||             t        |j
                  |k(          ||      j
                  } ||      }t        t        ||             t        |j
                  |k(          y )Nc                       e Zd Zy)=SharedNanFunctionsTestsMixin.test_subclass.<locals>.MyNDArrayNr   r   r.   r,   r   rX  
  r   r.   r   rv   r   r   rx   )r3   r   r}   r   rn   r   r   r   )r5   r   r   r   rq   expected_shaper   s          r,   r   z*SharedNanFunctionsTestsMixin.test_subclass	  s    	

 	
 q	zz)$ 	1Au1-33NDq/CJsI./CII/0u1-33NDq/CJsI./CII/0uX^^ND'CJsI./CII/0	1r.   N)rA   rB   rC   rr   r   r   rP  rR  r   r   r   r   r   r.   r,   rF  rF    s/    &.*("("$*!1r.   rF  c            
          e Zd Zej                  ej
                  gZej                  ej                  gZ	e
j                  j                  dg d      e
j                  j                  dej                  d         e
j                  j                  d ej                  ej                         ej                   dej                        gddg	      d
                      Zd Ze
j                  j                  dej                  d         d        Ze
j                  j                  dej                  d         d        Zy)TestNanFunctions_SumProdrz   rw   r   r   r   r   r   r   r/   c                 0   |$|j                   dk(  rt        j                  d       |j                  |      }t	        | j
                  ddg      D ]D  \  }} |||      }t        j                  ||k(        sJ |j                  |j                  k(  rDJ  y )Nr   r   rx   r   	r   rb   r   r   r~   rn   r3   r   r   r5   rz   r   r   r)   identityr   s          r,   r   z%TestNanFunctions_SumProd.test_allnans%  s     

aKKDFU#!$--!Q8 	,ND(u4(C66#/***99+++	,r.   c                 .   t        t        j                  t        j                  gddg      D ]f  \  }}t        j                  d      }|gdz  } ||d      }t        ||       g } ||d      }t        ||       |} ||d       }t        ||       h y )Nr   rx   r  rv   r   )r~   r3   rL   rN   r   r   r5   rq   	tgt_valuer   r   r   s         r,   r  z#TestNanFunctions_SumProd.test_empty5  s    BJJ 7!Q@ 
	#LAy((6"C+a-CCa.Cc"CCa.Cc"CCd#Cc"
	#r.   c                    t        j                  d      j                  |      }t         j                  |d d | j                  D ]:  }|t         j
                  u rdnd} ||d      }|j                  |k(  sJ ||k(  r:J  y )Nr   r      i   r   r   )r3   r   r   r   rn   rL   r   r   s         r,   r   z%TestNanFunctions_SumProd.test_initialB  sy    YYq\  '2A 	$A299n$IB"C99%%%)###		$r.   c                    t        j                  d      j                  dd      j                  |      }t         j                  |dd d f<   t        j
                  |t         j                        }d|d d df<   | j                  D ];  }|t         j                  u rdnd} |||d	      }|j                  |k(  sJ ||k(  r;J  y )
Nr   rv   r   r   F   i  r   r   )
r3   r   r   r   r   r   r   rn   rL   r   )r5   r   r   r   rq   r   r!  s          r,   r  z#TestNanFunctions_SumProd.test_whereM  s    YYq\!!!Q'..u5661a4Rrxx0ad 	$A299n$IBeQ/C99%%%)###		$r.   N)rA   rB   rC   r3   rL   rN   rn   rM   rO   r   rb   rc   rd   r  r   r   r  r   r  r   r  r   r.   r,   r[  r[     s!   		2::&H H[[V\2[[Wbll:&>?[[W' $<  ,	 @ 3,# [[Wbll:&>?$ @$ [[Wbll:&>?
$ @
$r.   r[  c            
          e Zd Zej                  ej
                  gZej                  ej                  gZ	e
j                  j                  dg d      e
j                  j                  dej                  d         e
j                  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y)TestNanFunctions_CumSumProdrz   rw   r   r   r   r   r   r   r/   c                 ,   |$|j                   dk(  rt        j                  d       |j                  |      }t	        | j
                  ddg      D ]B  \  }} ||      }t        j                  ||k(        sJ |j                  |j                  k(  rBJ  y )Nr   r   rx   r]  r^  s          r,   r   z(TestNanFunctions_CumSumProd.test_allnans`  s     

aKKDFU#!$--!Q8 	,ND(u+C66#/***99+++	,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        ||        y )Nr   rx   r  r   )r~   rn   r3   r   onesr   ra  s         r,   r  z&TestNanFunctions_CumSumProd.test_emptyp  s    1v6 
	#LAy((6"CBGGFO+CCa.Cc"CCa.Cc"((A-CCd#Cc"
	#r.   c                    t        | j                  | j                        D ]Y  \  }}t        j                  d      }dD ]:  } |||d       } |||d       }t        |j                  |j                  k(         < [ | j                  D ]  }t        j                  d      }t        j                  j                  d      }t        j                  | |j                  |j                   dk  <    ||d       }t        |j                  d       t        j                  d	      D ]"  } |||      }t        |j                  d       $  y )
Nrv   rw   r   rv   r         r   r>  r   )i  r   )r~   rn   r   r3   r}   r   r   rk  randomRandomStater   randr   r   r   )	r5   rq   gr   rz   r   r   r   rss	            r,   r   z)TestNanFunctions_CumSumProd.test_keepdims}  s   t}}5 	.DAq&&)C$ .$D1$D1CHH,-.	.  		7A&A&&q)B)+Agbggqww#%&AD/CG,		! 7oSYY67		7r.   c                    dD ]  }t        j                  t        |      }t        j                  t        |      }t        ||       t        j                  t        |      }t        j                  t        |      }t        ||        y )N)r   rx   Nr   )	r3   rS   
_ndat_onesrR   rl   r   rQ   _ndat_zerosrP   )r5   rz   r   r   s       r,   r   z.TestNanFunctions_CumSumProd.test_result_values  se    ( 	*D**Zd3C--D1CS)))KT2C,,u40CS)	*r.   c                    t        j                  d      }t        | j                  | j                        D ]N  \  }}t        j                  d      }dD ]/  } |||      } ||||      }t        ||       t        ||       1 P y )Nrv   )rv  rw  r   rx   r   r   )r3   r}   r~   rn   r   r   )r5   r   r   r   r   rz   r   r   s           r,   r   z$TestNanFunctions_CumSumProd.test_out  s{    ffQi$--7 	.FBVVAYF& .4(4V4#C0#C-	.	.r.   N)rA   rB   rC   r3   rP   rR   rn   rQ   rS   r   rb   rc   rd   r  r   r   r  r   r  r   r   r   r   r.   r,   rh  rh  [  s    bmm,H		2::&H[[V\2[[Wbll:&>?[[W' $<  ,	 @ 3,#7&*.r.   rh  c            
       h   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"                  j%                  dg d      ej"                  j%                  dej&                  d         ej"                  j%                  d	 ej(                  ej*                         ej,                  d
ej*                        gddg      d                      Zd Zej"                  j%                  dej&                  d         d        Zy)TestNanFunctions_MeanVarStdc           	          | j                   D ]N  }t        j                  t        j                  t        j                  fD ]  }t        t        |t        d|        P y )Nrx   )rz   r   )rn   r3   r   int_object_r	   r;  rl   )r5   rq   r   s      r,   test_dtype_errorz,TestNanFunctions_MeanVarStd.test_dtype_error  sK     	HA((BGGRZZ8 HiEGH	Hr.   c           	         | j                   D ]v  }t        j                  t        j                  t        j                  fD ]B  }t        j
                  t        j                  d   |      }t        t        |t        d|       D x y )Nr   r   rx   r   )
rn   r3   r   r~  r  r%   rl   r   r	   r;  )r5   rq   r   r   s       r,   test_out_dtype_errorz0TestNanFunctions_MeanVarStd.test_out_dtype_error  sc     	DA((BGGRZZ8 Dhhu{{1~U;iEsCD	Dr.   c           	      0   t         j                  t         j                  g}t         j                  t         j                  g}t        ||      D ]B  \  }}dD ]8  }t        D cg c]  } |||       }} |t        d|      }t        ||       : D y c c}w )Nr   rx   r?  rx   rz   r@  )	r3   r\   r^   r]   r_   r~   r   rl   r   )	r5   rn   r   r   r   r@  r   r   r   s	            r,   	test_ddofz%TestNanFunctions_MeanVarStd.test_ddof  s    IIryy)FFBFF#(H- 	.FB .167Ar!$'77QT2#C-.	.7s    Bc                    t         j                  t         j                  g}t         j                  t         j                  g}t
        D cg c]  }t        |       }}t        ||      D ]  \  }}t        d      D ]  }t               5 }|j                  t               |j                  t         j                         |D cg c]  }||k\  	 }	} |t        d|      }
t        t        j                   |
      |	       t#        |	      r"t%        t        |j&                        dk(         n!t%        t        |j&                        dk(         d d d          y c c}w c c}w # 1 sw Y   xY w)Nr   rx   r  r   )r3   r\   r^   r]   r_   r   r   r~   ranger   r   r   r  rN  rl   r   r   r   r   log)r5   rn   r   r   dsizer   r   r@  r  r   r   s              r,   test_ddof_too_bigz-TestNanFunctions_MeanVarStd.test_ddof_too_big  s   IIryy)FFBFF#!&'AQ''(H- 	3FBa 
3&( 	3CJJ~.JJr001.344194C4U6C #43xCGG 12CGG 12	3 	3
3	3 ( 5	3 	3s%   	E9E! E
A>E!E!!E*rz   rw   r   r   r   r   r   r   r/   c                    |$|j                   dk(  rt        j                  d       |j                  |      }d}| j                  D ]  }t        j
                  t        |      5   |||      }d d d        t        j                        j                         sJ |t        j                  u r|j                  |j                  k(  rJ |j                  t        j                  |      j                  k(  rJ  y # 1 sw Y   xY w)Nr   r   z:(Degrees of freedom <= 0 for slice.)|(Mean of empty slice)r   r   )r   rb   r   r   rn   r   r   r3   r   r   rT   r   absr   s          r,   r   z(TestNanFunctions_MeanVarStd.test_allnans  s     

aKKDFU#LMM 
	8DnE: -5t,-88C=$$&&& rzz!yyEKK///yyBFF5M$7$7777
	8- -s   $C;;D	c                    t        j                  d      }| j                  D ](  }dD ]  }t        j                  d      5 }t        j
                  d       t        t        j                   |||            j                                t        t        |      dk(         t        t        |d   j                  t                     d d d         d	D ]t  }t        j                  d      5 }t        j
                  d       t         |||      t        j                  g              t        t        |      dk(         d d d        v + y # 1 sw Y   1xY w# 1 sw Y   xY w
Nr  r  Tr   r   r   rx   r   r  )r3   r   rn   r   r   r   r   r   r   r   r   r   r   r   )r5   r   rq   rz   r   s        r,   r  z&TestNanFunctions_MeanVarStd.test_empty  s+   hhv 	)A! G,,D9 GQ))(3BHHQs%67;;=>CFaK(Jqt}}nEF	G GG  ),,D9 )Q))(3 3T!2BHHRLACFaK() ))	)G G) )s   BE-AEEE%c                 ,   t        j                  d      j                  dd      j                  |      }t         j                  |dd d f<   t        j
                  |t         j                        }d|d d df<   t        | j                  | j                        D ]x  \  }} |||   dd        }|t         j                  u r|n|j                  j                  } |||      }|j                  |k(  sJ t         j                  j                  ||       z y )Nr   rv   r   r   Fr   )r   )r3   r   r   r   r   r   r   r~   rn   r   rT   realr   r4   assert_allclose)	r5   r   r   r   rq   f_stdr   dtype_referencer!  s	            r,   r  z&TestNanFunctions_MeanVarStd.test_where  s    YYq\!!!Q'..u5661a4Rrxx0adDMM4==9 	7HAubim,I'(BJJeBGGMMOBe$C99///JJ&&sI6	7r.   N)rA   rB   rC   r3   rT   r\   r^   rn   rU   r]   r_   r   r  r  r  r  rb   rc   rd   r  r   r   r  r   r  r  r   r.   r,   r|  r|    s   

BIIryy1H(HH
D.3" [[V\2[[Wbll:&>?[[W' $<  8	 @ 38$) [[Wbll:&>?7 @7r.   r|  )YMWDhmsmsusnspsfsaszm8[]c                   N   e Zd Zd Zd Zej                  j                  dg d      ej                  j                  d      d               Z	d Z
d	 Zd
 Zej                  j                  dg d      ej                  j                  de      d               Zd Zd Zd Zd Zy)TestNanFunctions_Medianc                 v    t         j                         }t        j                  |       t	        |t                y r2   )rl   rm   r3   rV   r   r5   rp   s     r,   rr   z%TestNanFunctions_Median.test_mutation  s#    zz|
TT5!r.   c                    t        j                  d      }dD ]V  }t        j                  ||d d      }t        j                  ||d d      }t	        |j
                  |j
                  k(         X t        j                  d      }t         j                  j                  d      t        j                  |j                        d d d f   z  }|j                  t         j                        }t         j                  |t        |      <   t               5 }|j                  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        y # 1 sw Y   y xY w)Nrv   rw   Frz   r   overwrite_inputrm  r      Try   rx   rx   rx   rx   r  rx   rx   rn  ro  r  rx   r   rn  rx   r  rv   rx   rn  ro  r   rx   r   rv   r   rx   rv   rx   rx   rn  rx   )r3   r}   rW   rV   r   r   rk  rp  r   r   r   r$  r   tupler   r  r   r   r5   r   rz   r   r   r   r   r  s           r,   r   z%TestNanFunctions_Median.test_keepdims  s   ffQi  	*D))CdeLC,,s4OCCHH()	*
 GGM"IIX&!''):1d7)CCHHRWWff%(  	2CJJ~&,,qtd;CL1,,qv=CM2,,qv=CL1,,qtd;CM2,,q|dCCL1,,qy4@CL1	2 	2 	2s   D*IIrz   Nrx   r  r  )rw  argnames	argvalues#ignore:All-NaN slice:RuntimeWarningc                 h   t        j                  d      t         j                  j                  d      t        j                  j                        d d d f   z  }|j                  t         j                        }t         j                  t        |      <   |dj                  z  }n>t        |j                        t        fdt        j                        D              }t        j                  |      }t        j                  |d|      }||u sJ t        |j                  |       y )Nrm  r  r  c              3   H   K   | ]  }|v rd nj                   |     ywrx   Nr   rf   rD  	axis_normr   s     r,   	<genexpr>z<TestNanFunctions_Median.test_keepdims_out.<locals>.<genexpr>F  +      L89Q)^3L   "Trz   r{   r   )r3   rk  rp  r   r   r   r$  r   r  r   r   r  r%   rV   r   )r5   rz   r   	shape_outr   resultr  r   s         @@r,   test_keepdims_outz)TestNanFunctions_Median.test_keepdims_out1  s     GGM"IIX&!''):1d7)CCHHRWWff%(<qvvI,T166:I L=B166]L LIhhy!adTsC}}V\\9-r.   c                 f   t         j                  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        ||       y )	Nrv   r   r   rx   r   r   r   r  )	r3   rp  rr  insertr   r   rW   rV   r   r5   r   nan_matr   r   r   s         r,   r   z TestNanFunctions_Median.test_outM  s    iinnQ"))C!Qa8!ii!$ll77C(C%"ii$'ll76:C(C%ll7V<C(C%r.   c                    dD ]   }t         j                  j                  d|      }t         j                  j                  d|j                  |j                  dz        }t         j
                  |j                         |<   d|d d df<   g }|D ]R  }t        j                  t        j                  |       |      }|j                  t        j                  |d             T t        t        j                  |d	
      |        y )N)r      3   r  i  r   r   r   )sizer   T)r  rw  r   )r3   rp  randnrandintr  r   ravelcompressr   r&   rW   r
   rV   )r5   r  r   r   r   xnonans          r,   test_small_largez(TestNanFunctions_Median.test_small_large_  s    ' 	>A		1%A		!!!QVV!&&A+!>A66AGGIaLAacFC CRXXa[L!4

299UDABC r||AB7=	>r.   c                     t         D cg c]  }t        j                  |       }}t        j                  t        d      }t        ||       y c c}w r   )r   r3   rW   rV   rl   r   r5   r   r   r   s       r,   r   z*TestNanFunctions_Median.test_result_valueso  s<    )./A299Q</C/,,u1-CS) 0s   Arw   r   c                    t        j                  dt         j                        j                  |      }t	               5 }|j                  t               t        j                  ||      }|j                  |j                  k(  sJ t        j                  |      j                         sJ |"t        t        |j                        dk(         n!t        t        |j                        dk(         t        j                  t         j                        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        y # 1 sw Y   y xY w)Nr   r   rx   rv   r   r   r   )r3   r  r   r   r   r   r   rV   r   r   r   r   r   r  r   )r5   r   rz   r   r  outputscalaroutput_scalars           r,   r   z$TestNanFunctions_Median.test_allnanst  sG    ggfbff%,,U3  	+CJJ~&\\#D1F<<399,,,88F#'')))|CGG)*CGG)* XXbff%,,U3B7FLL0M &&&,,66688M***|CGG)*CGG)*+	+ 	+ 	+s   E3F::Gc           
         t        j                  d      }dD ]  }t        j                  d      5 }t        j                  d       t        t        j                  t        j                  ||            j                                t        t        |      dk(         t        t        |d   j                  t                     d d d         d	D ]  }t        j                  d      5 }t        j                  d       t        t        j                  ||      t        j                  g              t        t        |      dk(         d d d         y # 1 sw Y   HxY w# 1 sw Y   xY wr  )r3   r   r   r   r   r   r   rV   r   r   r   r   r   r   r5   r   rz   r   s       r,   r  z"TestNanFunctions_Median.test_empty  s    hhv 	CD((5 C%%h/c!=>BBDEA!$
1Q4==.AB	C C	C  	%D((5 %%%h/R\\#D9288B<HA!$% %	%C C% %s   BE*A!E#E 	#E,	c                 F    t        t        j                  d      dk(         y r   )r   r3   rV   r?   s    r,   r   z#TestNanFunctions_Median.test_scalar  s    R B&'r.   c                    t        j                  d      }t        t         j                  t         j                  |d       t        t         j                  t         j                  |d       t        t         j                  t         j                  |d       t        t         j                  t         j                  |d       t        t
        t         j                  |d       y )Nrm  r   r   r  r   r   r   rx   rx   )r3   rk  r	   	AxisErrorrV   r  r5   r   s     r,   test_extended_axis_invalidz2TestNanFunctions_Median.test_extended_axis_invalid  sz    GGM"bllBLL!"=bllBLL!'BbllBLL!!<bllBLL!&Aj",,?r.   c           
      	   t               5 }|j                  t               t        j                  t        j                   fD ]}  }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kD  rFt        t        j                  |d      d
d| dg       t        t        j                  |      d       nEt        t        j                  |d      dd| dg       t        t        j                  |      d       t        t        j                  |d      dd|g       t        dd      D ]r  }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          b u  	 d d d        y # 1 sw Y   y xY w)Nr   r   rx   rn  iir   r   r   r   g      @      @g      @g      $g      "g      rw  g      
   r   )r   r  r   r3   infr   r   r   rV   float32r  )r5   r  r  arD  js         r,   test_float_specialz*TestNanFunctions_Median.test_float_special  s     +	BCJJ~&( )BHHsRVVnrvvrvv.>?@R\\!!4sRVVnER\\!!4sRVVnER\\!_c2 HHrvvrvvs3 ffbffc24 5R\\!_c2R\\!!4rvvrvvs6KLR\\!!4c: HHsCj3*56R\\!!4c:HHsAtR0"BFFBFFA6 "&&"&&#68 %'JJ0 7 aa!82rC4:LM a#6 aa!84cT3:OP a$7R\\!"5T37GHq" BA"1b\ BHHx!|	&B%Ca%GH$R\\!_c:$R\\!!%<cB$R\\!!%<')vvhlseai%?A HHx!|#
&C%Dq%HI$R\\!_sd;$R\\!!%<sdC$R\\!!%<')vvhltfqj%@BBB;)B+	B +	B +	Bs   R8SSN)rA   rB   rC   rr   r   rb   rc   rd   filterwarningsr  r   r  r   _TYPE_CODESr   r  r   r  r  r   r.   r,   r  r    s    "26 [[
  	 [[ EF. G	."&$> *
 [[V\2[[Wk2+ 3 3+2%(@,Br.   r  c            
       b   e Zd Zd Zd Zej                  j                  ddddgg      ej                  j                  dg d      ej                  j                  d	      d
                      Z	d Z
d Zd Zej                  j                  dg d      ej                  j                  dej                  d         ej                  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y)TestNanFunctions_Percentilec                 x    t         j                         }t        j                  |d       t	        |t                y )N   )rl   rm   r3   rX   r   r  s     r,   rr   z)TestNanFunctions_Percentile.test_mutation  s'    zz|
r"T5!r.   c                    t        j                  d      }dD ]X  }t        j                  |d|d d      }t        j                  |d|d d      }t	        |j
                  |j
                  k(         Z t        j                  d      }t         j                  j                  d      t        j                  |j                        d d d f   z  }|j                  t         j                        }t         j                  |t        |      <   t               5 }|j                  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        y # 1 sw Y   y xY w)Nrv   rw   F   Fr  rm  r  Z   Try   r  r  r  r  r  r  r  r  r  r  )r3   r}   rY   rX   r   r   rk  rp  r   r   r   r$  r   r  r   r  r   r   r  s           r,   r   z)TestNanFunctions_Percentile.test_keepdims  s   ffQi  	*D--Rd057C""3438:CCHH()	* GGM"IIX&!''):1d7)CCHHRWWff%(  	2CJJ~&""1btdCCL1""1bvECM2""1bvECL1""1btdCCM2""1b|dKCL1""1by4HCL1	2 	2 	2s   D0IIr9  rn  rx   rz   r  r  r  c                    t        j                  d      t         j                  j                  d      t        j                  j                        d d d f   z  }|j                  t         j                        }t         j                  t        |      <   |dj                  z  }n>t        |j                        t        fdt        j                        D              }t        j                  |      |z   }t        j                  |      }t        j                  ||d|      }||u sJ t        |j                  |       y )Nrm  r  r  c              3   H   K   | ]  }|v rd nj                   |     ywr  r  r  s     r,   r  z@TestNanFunctions_Percentile.test_keepdims_out.<locals>.<genexpr>  r  r  Tr  )r3   rk  rp  r   r   r   r$  r   r  r   r   r  r%   rX   r   )	r5   r9  rz   r   r  r   r  r  r   s	          @@r,   r  z-TestNanFunctions_Percentile.test_keepdims_out  s     GGM"IIX&!''):1d7)CCHHRWWff%(<qvvI,T166:I L=B166]L LIHHQK)+	hhy!!!!QTDcJ}}V\\9-r.   c                 p   t         j                  j                  dd      }t        j                  |ddgt         j                  d      }t        j
                  d      }t        j                  |dd      }t        j                  |dd|      }t        ||       t        ||       t        j
                  d      }t        j                  |dd       }t        j                  |dd |      }t        ||       t        ||       t        j                  |dd	|      }t        ||       t        ||       y )
Nrv   r   r   rx   r   *   r   r   r  )	r3   rp  rr  r  r   r   rY   rX   r   r  s         r,   r   z$TestNanFunctions_Percentile.test_out  s    iinnQ"))C!Qa8!mmC!,w?C(C%"mmC$/w6BC(C%wVDC(C%r.   c                 Z   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       y N)y      ?      @y @      ?y?ffffff@Gr   r>  r  F)r3   r   r	   r;  rX   r5   arr_cs     r,   test_complexz(TestNanFunctions_Percentile.test_complex-  sq    7sCi!1!15#>7sCi!1!15#>7sCi!1!15#>r.   c           	      |   t         D cg c]  }t        j                  |d       }}t        j                  t        dd      }t        ||       t        j                  t         D cg c]  }t        j                  |d       c}      }t        j                  t        dd      }t        ||       y c c}w c c}w )Nrd  rx   r   )rd  b   )r   r3   rY   rX   rl   r   	transposer  s       r,   r   z.TestNanFunctions_Percentile.test_result_values5  s    -23r}}Q#33ubq1C%llF1BMM!X6FGuhQ7C% 4 Gs   B4'B9rw   r   Floatr   r   r   r   r/   c                    |$|j                   dk(  rt        j                  d       |j                  |      }t        j                  t
        d      5  t        j                  |d|      }d d d        t        j                        j                         sJ |j                  |j                  k(  sJ y # 1 sw Y   JxY w)Nr   r   r   r   <   r   )r   rb   r   r   r   r   r3   rX   r   r   r   r5   rz   r   r   r   s        r,   r   z(TestNanFunctions_Percentile.test_allnans>  s     

aKKDFU#\\.0KL 	9""5"48C	9xx}  """yyEKK'''	9 	9   B55B>c                    t        j                  d      }dD ]  }t        j                  d      5 }t        j                  d       t        t        j                  t        j                  |d|            j                                t        t        |      dk(         t        t        |d	   j                  t                     d d d         d
D ]  }t        j                  d      5 }t        j                  d       t        t        j                  |d|      t        j                  g              t        t        |      d	k(         d d d         y # 1 sw Y   JxY w# 1 sw Y   xY w)Nr  r  Tr   r   (   r   rx   r   r  )r3   r   r   r   r   r   r   rX   r   r   r   r   r   r   r  s       r,   r  z&TestNanFunctions_Percentile.test_emptyN  s(   hhv 	CD((5 C%%h/!1!1#r!EFJJLMA!$
1Q4==.AB	C C	C  	%D((5 %%%h/R--c2DA288B<PA!$% %	%C C% %s   BE+A"E%E"	%E.	c                     t        t        j                  dd      d       t        j                  d      }t        j                  |dd      }t        |d       t	        t        j
                  |             y )Nr   r      2   r   r   g      @)r   r3   rX   r   r   isscalar)r5   r  rs      r,   r   z'TestNanFunctions_Percentile.test_scalar\  sT    R%%b#.3IIaLQ+QAr.   c                    t        j                  d      }t        t         j                  t         j                  |dd       t        t         j                  t         j                  |dd       t        t         j                  t         j                  |dd       t        t         j                  t         j                  |dd       t        t
        t         j                  |dd       y )	Nrm  r   r  r9  rz   r  r   r  r  )r3   rk  r	   r  rX   r  r  s     r,   r  z6TestNanFunctions_Percentile.test_extended_axis_invalidc  s    GGM"bllB$4$4a12FbllB$4$4a17KbllB$4$4a11EbllB$4$4a16Jj""2"2A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 }|j	                  t
        d       t        j                  ||||      }t        j                  ||||      }	t        |	j                  |j                         t        j                  ||||      }t        j                  ||||      }	t        |	|       d d d          t        j                  d      }
t        t        j                  |
|d      j                  d       y # 1 sw Y   xY w)Nr  r   )r   rv   )rv   r   r   r   r   r   rv   rw   )FTr   ry   )rv   r   r   r  )rx   r   r   )r   rv   r  )
r3   rk  r   r   r  r   rY   rX   r   r   )r5   percr   r  	large_matrz   keepdimr  r  nan_valmegamats              r,   test_multiple_percentilesz5TestNanFunctions_Percentile.test_multiple_percentilesk  sZ   Cyggfo&&3,GGI&	!"	!QqUA+!Q(q   	/D( /&( /CJJ~/JK--TwOC ..w48?AG 		:--	4d18:C ..y$T8?AG #./ //	/ '','R%%gt&AGGS/ /s   ;B'E00E:N)rA   rB   rC   rr   r   rb   rc   rd   r  r  r   r  r   r3   r  r   r   r  r   r  r   r  r  r   r.   r,   r  r    s6   "2: [[S1q!f+.[[
  	 [[ EF. G	 /.&&$?& [[V\2[[Wbll7&;<[[W' $<  (	 = 3(% ITr.   r  c            
       x   e Zd Zd Zd Zd Zd Zej                  j                  dg d      ej                  j                  de
j                  d         ej                  j                  d	 e
j                  e
j                         e
j                  d
e
j                        gddg      d                      Zy)TestNanFunctions_Quantilec                    t        j                  d      j                  ddd      j                  t              }t         j
                  |d   d<   t        t        j                  |d      t        j                  |d	             t        t        j                  |dd
      t        j                  |d	d
             t        t        j                  |dd
      t        j                  |d	d
             t        t        j                  |dgd
      t        j                  |d	gd
             t        t        j                  |g dd
      t        j                  |g dd
             y )N   r   rv   r   r   rx   r>  r8  r  r  )      ?r>        ?)   r  K   )	r3   r   r   r   floatr   r   rZ   rX   )r5   r   s     r,   test_regressionz)TestNanFunctions_Quantile.test_regression  s   YYr]""1a+2259661aR^^B#.0@0@r0JKR^^B#A6%%bBQ7	9R^^B#A6%%bBQ7	9R^^B3%a8%%bRDq9	;R^^B*;!D%%bLqA	Cr.   c                     t        j                  d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       y )Nr   r>  r   r   rx   g      @g      ?)r3   r   r   rZ   )r5   r  s     r,   
test_basicz$TestNanFunctions_Quantile.test_basic  sS    IIaL3R^^Aq)2.R^^Aq)3/R^^As+T2r.   c                 Z   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       y r  )r3   r   r	   r;  rZ   r  s     r,   r  z&TestNanFunctions_Quantile.test_complex  sk    7sCi<7sCi<7sCi<r.   c                 n   t        j                  g d      }|j                         }t        j                  t        j                  d      |d       t        ||       |j                         }|j                         }t        j                  t        j                  d      |d       t        ||       y )N)r   r!  r   r>  r   g      Y@midpoint)method)r3   r   rm   rZ   r   r
   tolist)r5   p0ps      r,   test_no_p_overwritez-TestNanFunctions_Quantile.test_no_p_overwrite  sv    XX/0GGI
ryy*=1b!YY[HHJ
ryy*=1b!r.   rz   rw   r   r  r   r   r   r   r/   c                    |$|j                   dk(  rt        j                  d       |j                  |      }t        j                  t
        d      5  t        j                  |d|      }d d d        t        j                        j                         sJ |j                  |j                  k(  sJ y # 1 sw Y   JxY w)Nr   r   r   r   rx   r   )r   rb   r   r   r   r   r3   rZ   r   r   r   r
  s        r,   r   z&TestNanFunctions_Quantile.test_allnans  s     

aKKDFU#\\.0KL 	6..5C	6xx}  """yyEKK'''	6 	6r  N)rA   rB   rC   r%  r'  r  r/  rb   rc   rd   r3   r  r   r   r  r   r   r.   r,   r  r    s    C3=
" [[V\2[[Wbll7&;<[[W' $<  (	 = 3(r.   r  zarr, expectedr  )FTFT)rx   r   rn  r   r   Tc                     d t        j                  | j                  t         j                        fD ]=  }t	        | |      }t        ||       t        |      t         j                  us8|du r=J  y )Nr   r#  T)r3   r%   r   r   r   r   r   r   )r   expectedr   actuals       r,   test__nan_maskr4    s_    " bhhsyy9: "3C(VX& >+T>!>"r.   c                     t         j                  t         j                  t         j                  fD ]4  } t        j                  ddg|       }t        |d      \  }}|J ||u r4J  t         j                  t         j                  fD ]  } t        j                  ddg|       }t        |d      \  }}|dk(  j                         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	         rJ  y)
z] Test that _replace_nan returns the original array if there are no
    NaNs, not a copy.
    r   rx   r   Nr   F)FFT)r   rx   r   rw  )r3   r   int32int64r   r   r  float64r   r   r   r   )r   r   r  maskarr_nan
result_nanmask_nans          r,   test__replace_nanr=    sF    ((BHHbhh/ hh1vU+#C+||}} **bjj) %hh1vU+#C+""$$$S   VS!((Aq"&&>7+GQ7
HXrxx(<=>(((Z)!45xx$$$%r.   )2r   rb   r    numpyr3   numpy.core.numericr   numpy.lib.nanfunctionsr   r   numpy.testingr   r   r   r	   r
   r   r   r   rl   r   rx  ry  r   ri   r  _TEST_ARRAYSr#   _vsetflagsrc   rd   r  keysr/  rF  r[  rh  r|  _TIME_UNITSr   r  r  r  r  r  r7  	complex64r4  r=  )units   0r,   <module>rI     s       3 :  	6266662666B7BFFFFFC6626626662667C26626666266BD 	E 
2	3	;	<	67#	$	*	+	- RXXAE<>@ A
 bhhBF=?A B,
 ,
^m% m%`Z$ Z$~ "((1+
"(((
) 


 BKKeK LLj!99C?  3 3 5<;L;L;NOB* B* P	
B*Jf1 f1R8$; 8$vF."> F.R^7"> ^7B
 2<<
+, +6$#dV16 6FB FBRlT lT^9( 9(v RXXrvvsBFFBFF+,RXX()+ RXXl"((+	 RXX()	 RXX}!(*6RXXt}t}  +  "! "%c 7s   N0