
    (ph                     \   S SK r S SKrS SKrS SKrS SKJr  S SKJrJ	r	  S SK
JrJrJrJrJrJr  \R"                  " S\R$                  SS\R$                  S/S	S
\R$                  SSS/\R$                  \R$                  \R$                  S\R$                  S/S\R$                  \R$                  SS\R$                  //5      r\R"                  " / SQ5      \R"                  " / SQ5      \R"                  " SS/5      \R"                  " / SQ5      /r\R"                  " / SQ/ SQ/ SQ/ SQ/5      r\R"                  " / SQ/ SQ/ SQ/ SQ/5      r " S S5      r " S  S!5      r " S" S#5      r\R"                  " S$5      \R"                  " / S%Q5      S&.r\R7                  5        H  r\R;                  S'S(9  M     \R<                  R?                  S)\R@                  S*   \R@                  S+   -   S,-   5      \R<                  R?                  S-\R7                  5       \RC                  5       S.9 " S/ S05      5       5       r" " S1 S25      r# " S3 S4\#5      r$ " S5 S6\#5      r% " S7 S8\#5      r&S9r'\(" \R@                  S+   5      r)\)\' V s/ s H	  n S:U  S;3PM     sn -  r) " S< S=5      r* " S> S?5      r+ " S@ SA5      r,\R<                  R?                  SB\R"                  " \R$                  SC\R$                  \RZ                  /5      \R"                  " / SDQ5      4\R"                  " / SEQ\R\                  SF9SG4\R"                  " / SDQ5      SG4\R"                  " \R$                  SC/\R$                  \RZ                  //\R^                  SF9\R"                  " S'SG/S'SG//5      4/5      SH 5       r0SI r1gs  sn f )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                   @   \ rS rSr\R
                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                   \R"                  \R$                  \R&                  \R(                  \R*                  \R,                  \R.                  \R0                  \R2                  \R4                  \R6                  \R8                  \R:                  \R<                  \R>                  \R@                  0r!\! V Vs/ s H  oR                   PM     snn r"\#S	S j5       r$\%RL                  RO                  S\!RQ                  5       \"S9S 5       r)S r*Sr+gs  snn f )
TestSignatureMatch(   c                 P   / n[         R                  " U 5      nUR                  R                  5        H[  nUR                  [         R
                  R                  L a  UR                  U5        M=  UR                  UR                  US95        M]     [         R                  " U5      $ )z?Construct a signature and replace all default parameter-values.)default)
inspect	signature
parametersvaluesr    	Parameteremptyappendreplace	Signature)funcr    prm_listr"   prms        T/var/www/html/venv/lib/python3.13/site-packages/numpy/lib/tests/test_nanfunctions.pyget_signature TestSignatureMatch.get_signature;   s     %%d+	''..0C{{g//555$G <=	 1
   **    znan_func,funcidsc                     U R                  U5      nU R                  U5      n[        R                  R                  X45        g N)r.   nptestingr   )selfnan_funcr*   r"   nan_signatures        r-   test_signature_match'TestSignatureMatch.test_signature_matchG   s6    
 &&t,	**84


	9r0   c                     [         R                  R                  [        U R                  5      [        [         R
                  R                  R                  5      5        g)z4Validate that all nan functions are actually tested.N)r5   r6   r   setIDSlibnanfunctions__all__r7   s    r-   test_exhaustiveness&TestSignatureMatch.test_exhaustivenessP   s6    


M3rvv22::;	
r0    N)z...),__name__
__module____qualname____firstlineno__r5   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itemsr:   rC   __static_attributes__).0ks   00r-   r   r   (   s'   
		277
		277
bii
bii
		266


BGG
bii
rzz


BGG
bii
"--

		266
		266H   (
(x!::x
(C	+ 	+ [[_hnn.>CH: I:
/ )s   Fr   c            
          \ rS rSr\R
                  \R                  /r\R                  \R                  /r
S rS rS rS rS r\R"                  R%                  S/ SQ5      \R"                  R%                  S	\R&                  S
   5      \R"                  R%                  S\R(                  " \R*                  5      \R,                  " S\R*                  5      /SS/S9S 5       5       5       rS rS rS rS r\R"                  R%                  S	\R&                  S
   5      S 5       r\R"                  R%                  S	\R&                  S
   5      S 5       rSrg)TestNanFunctions_MinMaxW   c                     [         R                  5       nU R                   H  nU" U5        [        U[         5        M     g r4   _ndatcopynanfuncsr   r7   ndatfs      r-   test_mutation%TestNanFunctions_MinMax.test_mutation\   ,    zz|AdGu% r0   c                     [         R                  " S5      n[        U R                  U R                  5       H>  u  p#S H3  nU" XSS9nU" XSS9n[        UR                  UR                  :H  5        M5     M@     g N   Nr      Taxiskeepdimsr5   eyeziprv   stdfuncsr   ndimr7   matnfrfr   tgtress          r-   test_keepdims%TestNanFunctions_MinMax.test_keepdimsc   a    ffQi$--7FB$$7$7CHH,- % 8r0   c                     [         R                  " S5      n[        U R                  U R                  5       H@  u  p#[         R
                  " S5      nU" USS9nU" USUS9n[        Xd5        [        Xe5        MB     g Nr   r   r   r   outr5   r   r   rv   r   zerosr   r7   r   r   r   resoutr   r   s          r-   test_out TestNanFunctions_MinMax.test_outk   `    ffQi$--7FBXXa[FSq/CSqf-C,) 8r0   c                    Sn[        U R                  U R                  5       H  u  p#U H  n[        R                  " SUS9nU" USS9R
                  R                  nU" USS9R
                  R                  n[        XvL 5        U" US S9R
                  R                  nU" US S9R
                  R                  n[        XvL 5        M     M     g )NefdgFDGr   dtyper   r   r   rv   r   r5   r   r   typer   r7   codesr   r   cr   r   r   s           r-   test_dtype_from_input-TestNanFunctions_MinMax.test_dtype_from_inputt   s    $--7FBffQa(1o++001o++00
#4(..334(..33
#  8r0   c                     [        U R                  U R                  5       H6  u  p[         Vs/ s H
  o2" U5      PM     nnU" [        SS9n[        XT5        M8     g s  snf Nr   r   r   rv   r   _rdatrt   r   r7   r   r   dr   r   s         r-   test_result_values*TestNanFunctions_MinMax.test_result_values   L    $--7FB"'(%Q2a5%C(U#C) 8(   Ar   r   r   AllFloatarrayr   r   0d2dr1   c                    Ub&  UR                   S:X  a  [        R                  " S5        UR                  U5      nSnU R                   Hr  n[        R
                  " [        US9   U" X1S9nS S S 5        [        R                  " W5      R                  5       (       d   eUR                  UR                  :X  a  Mr   e   g ! , (       d  f       NZ= fNr   *`axis != None` not supported for 0d arraysAll-NaN slice encounteredmatchr   )r   rh   skipastyperv   warnsRuntimeWarningr5   isnanallr   r7   r   r   r   r   r*   r   s          r-   test_allnans$TestNanFunctions_MinMax.test_allnans   s     

aKKDFU#+MMDnE:5, ;88C=$$&&&&99+++	 "::s   %C  
C	c                 x   [         R                  R                  [        5      nUR                  R                  5       n[         R                  4 Hh  nU" USS9nU" [        SS9n[        XE5        [        UR                  U5        [        [         R                  " U5      R                  5       (       + 5        Mj     g r   )r5   mafix_invalidrt   _maskru   rJ   r   r   isinfany)r7   r   mskry   r   r   s         r-   test_masked#TestNanFunctions_MinMax.test_masked   s    ee&iinn))ACa.CE"C"C())++, r0   c                 R    U R                    H  n[        U" S5      S:H  5        M     g Nr   rv   r   r7   ry   s     r-   test_scalar#TestNanFunctions_MinMax.test_scalar        AAbERK  r0   c           	          " S S[         R                  5      n[         R                  " S5      R                  U5      nU R                   H  nU" USS9n[        [        XA5      5        [        UR                  S:H  5        U" USS9n[        [        XA5      5        [        UR                  S:H  5        U" U5      n[        UR                  S:H  5        M     [         R                  US'   U R                   GH  n[        R                  " S	S
9 n[        R                  " S5        U" USS9n[        [        XA5      5        [        [         R                  " [         R                  " U5      5      (       + 5        [        [        U5      S:H  5        S S S 5        [        R                  " S	S
9 n[        R                  " S5        U" USS9n[        [        XA5      5        [        [         R                  " US   5      =(       aC    [         R                  " US   5      (       + =(       a    [         R                  " US   5      (       + 5        [        [        U5      S:H  S5        [        [        US   R                   ["        5      5        S S S 5        [        R                  " S	S
9 n[        R                  " S5        U" U5      n[        UR                  S:H  5        [        U[         R                  :g  5        [        [        U5      S:H  5        S S S 5        GM"     g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       GMX  = f)Nc                       \ rS rSrSrg)8TestNanFunctions_MinMax.test_subclass.<locals>.MyNDArray   rE   NrF   rG   rH   rI   rl   rE   r0   r-   	MyNDArrayr          r0   r   r   r   r   r   r   rE   Trecordalways   no warning raised)r5   ndarrayr   viewrv   r   
isinstanceshapenanwarningscatch_warningssimplefilterr   r   len
issubclasscategoryr   )r7   r   minery   r   ws         r-   test_subclass%TestNanFunctions_MinMax.test_subclass   sN   	

 	
 vvay~~i(ADq/CJs./CII%&Dq/CJs./CII%&D'CCIIO$  &&QA((5%%h/1o
323BFF288C=112A!$ 6 ((5%%h/1o
323Q( 1#a&1A-A 1 "Q 002A!%89
1Q4==.AB 6 ((5%%h/g		R(rvv&A!$ 65# 55 65 65s'   BL,CL.$A*L?
L+	.
L<	?
M	c           
         [         R                  " SS/[         R                  S/[         R                  [         R                  //[        S9n[	        [         R
                  " U5      S5        [	        [         R
                  " USS9SS/5        [        R                  " SS9 n[        R                  " S	5        [	        [        [         R
                  " US
S95      SS[         R                  /5        [        [        U5      S
:H  S5        [        [        US   R                  [        5      5        S S S 5        g ! , (       d  f       g = f)Nr   g       @      @r   r   r   Tr   r   r   r   )r5   r   r   objectr   rJ   r   r   r   listr   r   r   r   r   )r7   arrr   s      r-   test_object_array)TestNanFunctions_MinMax.test_object_array   s    hhc
RVVSMBFFBFF3CDFSRYYs^S)RYYs+c3Z8$$D1Q!!(+bii!45S"&&7IJCFaK!45Jqt}}n=> 211s   "BD99
Ec                     " S S[         R                  5      n[         R                  " S5      R                  U5      n[         R                  US S& U R
                   Hh  nU[         R                  L a  SOSnU" X5S9nUR                  U:X  d   eXe:X  d   eU" UR                  U5      US9nUR                  U:X  d   eXu:X  a  Mh   e   g )Nc                       \ rS rSrSrg)7TestNanFunctions_MinMax.test_initial.<locals>.MyNDArray   rE   Nr   rE   r0   r-   r   r      r   r0   r   	      d   r   initial)	r5   r   aranger   r   rv   rL   r   r   )r7   r   r   arry   r  ret1ret2s           r-   test_initial$TestNanFunctions_MinMax.test_initial   s    	

 	 YYq\  '2AA"))^cGR)D::&&&?"?RWWY'9D::&&&?"? r0   c                     " S S[         R                  5      n[         R                  " S5      R                  SS5      R	                  U5      n[         R
                  USS S 24'   [         R                  " U[         R                  S9nSUS S 2S4'   U R                   Hj  nU[         R                  L a  SOS	nU" X4S
S9nUR                  U:X  d   eXv:X  d   eU" UR                  U5      US
S9nUR                  U:X  d   eX:X  a  Mj   e   g )Nc                       \ rS rSrSrg)5TestNanFunctions_MinMax.test_where.<locals>.MyNDArray   rE   Nr   rE   r0   r-   r   r     r   r0   r   r   r   r   r   F      r   wherer  )r5   r   r  reshaper   r   	ones_likebool_rv   rJ   r   r   )	r7   r   r   r  r  ry   	referencer  r  s	            r-   
test_where"TestNanFunctions_MinMax.test_where   s    	

 	 YYq\!!!Q'..u5661a4Rrxx0adA"))^IRa0D::&&&$$$RWWY'ua@D::&&&$$$ r0   rE   N)rF   rG   rH   rI   r5   rJ   rL   rv   minmaxr   rz   r   r   r   r   rh   ri   rj   	typecodesr   r   fullr   r   r   r   r   r  r  rl   rE   r0   r-   rp   rp   W   sH   		299%HH&.*$* [[V\2[[Wbll:&>?[[W

' $<  
,	 @ 3
,-!)%V
? [[Wbll:&>?# @#$ [[Wbll:&>?% @%r0   rp   c            
       l   \ rS rSr\R
                  \R                  /rS rS r	\
R                  R                  S/ SQ5      \
R                  R                  S\R                  S   5      \
R                  R                  S\R                  " \R                  5      \R                   " S	\R                  5      /S
S/S9S 5       5       5       rS rS rS r\
R                  R                  S\R                  S   5      S 5       r\
R                  R                  S\R                  S   5      S 5       rSrg)TestNanFunctions_ArgminArgmaxi  c                     [         R                  5       nU R                   H  nU" U5        [        U[         5        M     g r4   rs   rw   s      r-   rz   +TestNanFunctions_ArgminArgmax.test_mutation  r|   r0   c                     [        U R                  [        R                  [        R                  /5       H  u  p[
         H  n[        5        nUR                  [        S5        U" U5      nX5   n[        [        R                  " U5      (       + 5        [        U" Xc5      R                  5       (       + 5        [        [        R                  " XcS U 5      R                  5       (       + 5        S S S 5        M     M     g ! , (       d  f       M  = f)Nzinvalid value encountered in)r   rv   r5   greaterlessrt   r   filterr   r   r   r   equal)r7   ry   fcmprowsupindvals          r-   r   0TestNanFunctions_ArgminArgmax.test_result_values  s    4==2::rww*?@GA&(CJJ~/MNC&C(C -.S 2 2 445$3i 8 < < >>? )(  A((s   B C>>
Dr   r   r   r   r   r   r   r   r1   c                    Ub&  UR                   S:X  a  [        R                  " S5        UR                  U5      nU R                   H+  n[        R
                  " [        SS9   U" X1S9  S S S 5        M-     g ! , (       d  f       M?  = fr   )r   rh   r   r   rv   raises
ValueError)r7   r   r   r   r*   s        r-   r   *TestNanFunctions_ArgminArgmax.test_allnans  sd     

aKKDFU#MMDz1LMU& NM "MMs   #A77
B	c           	          [         R                  " S5      nU R                   HJ  nS H  n[        [        X!US9  M     S H)  nU" XS9n[        U[         R                  " S5      5        M+     ML     g )Nr   r   r   Nr   r   r   )r5   r   rv   r	   r-  r   )r7   r   ry   r   r   s        r-   
test_empty(TestNanFunctions_ArgminArgmax.test_empty.  sZ    hhvA!j!t< "'S"((1+.  r0   c                 R    U R                    H  n[        U" S5      S:H  5        M     g r   r   r   s     r-   r   )TestNanFunctions_ArgminArgmax.test_scalar7  r   r0   c                     " S S[         R                  5      n[         R                  " S5      R                  U5      nU R                   H  nU" USS9n[        [        XA5      5        [        UR                  S:H  5        U" USS9n[        [        XA5      5        [        UR                  S:H  5        U" U5      n[        UR                  S:H  5        M     g )	Nc                       \ rS rSrSrg)>TestNanFunctions_ArgminArgmax.test_subclass.<locals>.MyNDArrayi<  rE   Nr   rE   r0   r-   r   r9  <  r   r0   r   r   r   r   r   r   rE   )r5   r   r   r   rv   r   r   r   )r7   r   r   ry   r   s        r-   r   +TestNanFunctions_ArgminArgmax.test_subclass;  s    	

 	
 vvay~~i(ADq/CJs./CII%&Dq/CJs./CII%&D'CCIIO$ r0   c                    [         R                  " S5      R                  U5      n[         R                  US S& U R                   HD  nU[         R
                  L a  SOSnU" USS9nUR                  UR                  :X  d   eXT:X  a  MD   e   g )Nr   r   r  T)r   )r5   r  r   r   rv   rN   r   r7   r   r  ry   r  rets         r-   r   +TestNanFunctions_ArgminArgmax.test_keepdimsL  sw    YYq\  '2AA",,.AIB&C88rww&&&###	 r0   c                 4   [         R                  " S5      R                  U5      n[         R                  US S& U R                   HP  n[         R
                  " S[         R                  S9nU[         R                  L a  SOSnU" X$S9nXdL d   eXe:X  a  MP   e   g )Nr   r   rE   r   r  r   )r5   r  r   r   rv   r   intprN   )r7   r   r  ry   r   r  r=  s          r-   r   &TestNanFunctions_ArgminArgmax.test_outW  s|    YYq\  '2AA((2RWW-C",,.AIB.C::### r0   rE   N)rF   rG   rH   rI   r5   rN   rP   rv   rz   r   rh   ri   rj   r  r   r   r  r   r3  r   r   r   r   rl   rE   r0   r-   r  r    s"   bll+H&@ [[V\2[[Wbll:&>?[[W

' $<  '	 @ 3'/!%" [[Wbll:&>?$ @$ [[Wbll:&>?	$ @	$r0   r  r   )   '   ]   rq   .   )r   1dF)writer   
AllIntegerr   Or   r1   c                   8   \ rS rSr\R
                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                   \R"                  \R$                  \R&                  \R(                  \R*                  \R,                  \R.                  \R0                  \R2                  \R4                  \R6                  \R8                  0r\ V Vs/ s H  oR                   PM     snn r\R@                  RC                  S\RE                  5       \S9\RF                  " SS9S 5       5       r$\R@                  RC                  S\RJ                  \RL                  4\RN                  \RP                  4/SS/S9S	 5       r)\R@                  RC                  S\R2                  \R4                  4\R6                  \R8                  4/S
S/S9S 5       r*Sr+gs  snn f )TestNanFunctions_NumberTypesim  znanfunc,funcr1   ignore)overc                     UR                  U5      nU" U5      nU" U5      n[        Xe5        US:X  a  [        U5      [        U5      L d   eg UR                  UR                  :X  d   eg )NrJ  r   r   r   r   r7   r   r   nanfuncr*   r   r   s          r-   test_nanfunc)TestNanFunctions_NumberTypes.test_nanfunc  s_     jj3iclC%C<9S	)))99		)))r0   r`   r^   c                 B   UR                  U5      nUR                  R                  S:X  a  [        [        XASS9  [        [        X1SS9  g U" USS9nU" USS9n[        Xe5        US:X  a  [        U5      [        U5      L d   eg UR                  UR                  :X  d   eg )Nr   r   qrJ  )r   r   kindr	   	TypeErrorr   r   rQ  s          r-   test_nanfunc_q+TestNanFunctions_NumberTypes.test_nanfunc_q  s     jj99>>S )T!4)WQ7 sa.C##C)|CyDI---yyCII---r0   rb   rd   c                     UR                  U5      nU" USS9nU" USS9n[        Xe5        US:X  a  [        U5      [        U5      L d   eg UR                  UR                  :X  d   eg )N      ?ddofrJ  rP  rQ  s          r-   test_nanfunc_ddof.TestNanFunctions_NumberTypes.test_nanfunc_ddof  se     jj3S!c$C%C<9S	)))99		)))r0   rE   N),rF   rG   rH   rI   r5   rJ   r  rL   r  rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   rb   rc   rd   re   rv   nanfunc_idsrh   ri   rj   rk   errstaterS  r`   ra   r^   r_   rZ  r`  rl   )rm   is   00r-   rL  rL  m  s    			266
		266
bii
bii
		266


BGG
bii
rzz


BGG
bii
		266
		266H (00x!::x0K[[^X^^-=;O[[h	*   P	* [[
.."++	&)9)92==(IJO,  
.
." [[
))RVV	ryy"&&12x   
	*
	*U 1s   HrL  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)SharedNanFunctionsTestsMixini  c                     [         R                  5       nU R                   H  nU" U5        [        U[         5        M     g r4   rs   rw   s      r-   rz   *SharedNanFunctionsTestsMixin.test_mutation  r|   r0   c                     [         R                  " S5      n[        U R                  U R                  5       H>  u  p#S H3  nU" XSS9nU" XSS9n[        UR                  UR                  :H  5        M5     M@     g r~   r   r   s          r-   r   *SharedNanFunctionsTestsMixin.test_keepdims  r   r0   c                     [         R                  " S5      n[        U R                  U R                  5       H@  u  p#[         R
                  " S5      nU" USS9nU" USUS9n[        Xd5        [        Xe5        MB     g r   r   r   s          r-   r   %SharedNanFunctionsTestsMixin.test_out  r   r0   c           	      .   [         R                  " S5      nSn[        U R                  U R                  5       GHE  u  p4U GH8  n[        5        nU[         R                  [         R                  1;   a%  US;   a  UR                  [         R                  5        U" U[         R                  " U5      SS9R                  R                  nU" U[         R                  " U5      SS9R                  R                  n[        XL 5        U" U[         R                  " U5      S S9R                  R                  nU" U[         R                  " U5      S S9R                  R                  n[        XL 5        S S S 5        GM;     GMH     g ! , (       d  f       GMS  = fNr   r   FDGr   )r   r   r5   r   r   rv   r   r   rd   rb   r#  ComplexWarningr   r   r   	r7   r   r   r   r   r   r'  r   r   s	            r-   test_dtype_from_dtype2SharedNanFunctionsTestsMixin.test_dtype_from_dtype  s   ffQi$--7FB&(Cbii33U


2#4#45S!<BBGGCS!<BBGGCCJ'S$?EEJJCS$?EEJJCCJ' )(  8((s   D"F
Fc           	      |   [         R                  " S5      nSn[        U R                  U R                  5       H  u  p4U H  n[        5        nU[         R                  [         R                  1;   a%  US;   a  UR                  [         R                  5        U" XSS9R                  R                  nU" XSS9R                  R                  n[        XL 5        U" XS S9R                  R                  nU" XS S9R                  R                  n[        XL 5        S S S 5        M     M     g ! , (       d  f       M  = frn  rp  rr  s	            r-   test_dtype_from_char1SharedNanFunctionsTestsMixin.test_dtype_from_char  s    ffQi$--7FB&(Cbii33U


2#4#45S288==CS288==CCJ'S5;;@@CS5;;@@CCJ' )(  8((s   CD,,
D;c           	         Sn[        U R                  U R                  5       H  u  p#U H  n[        R                  " SUS9nU" USS9R
                  R                  nU" USS9R
                  R                  n[        XvL SU< SU< 35        U" US S9R
                  R                  nU" US S9R
                  R                  n[        XvL 5        M     M     g )Nr   r   r   r   r   zres z, tgt r   r   s           r-   r   2SharedNanFunctionsTestsMixin.test_dtype_from_input  s    $--7FBffQa(1o++001o++00
S$AB4(..334(..33
#  8r0   c                     [        U R                  U R                  5       H6  u  p[         Vs/ s H
  o2" U5      PM     nnU" [        SS9n[        XT5        M8     g s  snf r   r   r   s         r-   r   /SharedNanFunctionsTestsMixin.test_result_values  r   r   c                 R    U R                    H  n[        U" S5      S:H  5        M     g r   r   r   s     r-   r   (SharedNanFunctionsTestsMixin.test_scalar  r   r0   c                 F    " S S[         R                  5      n[         R                  " S5      nUR                  U5      nU R                   H  nU" USS9R
                  nU" USS9n[        [        Xa5      5        [        UR
                  U:H  5        U" USS9R
                  nU" USS9n[        [        Xa5      5        [        UR
                  U:H  5        U" U5      R
                  nU" U5      n[        [        Xa5      5        [        UR
                  U:H  5        M     g )Nc                       \ rS rSrSrg)=SharedNanFunctionsTestsMixin.test_subclass.<locals>.MyNDArrayi
  rE   Nr   rE   r0   r-   r   r  
  r   r0   r   r   r   r   r   )r5   r   r   r   rv   r   r   r   )r7   r   r   r   ry   expected_shaper   s          r-   r   *SharedNanFunctionsTestsMixin.test_subclass	  s    	

 	
 q	zz)$Au1-33NDq/CJs./CII/0u1-33NDq/CJs./CII/0uX^^ND'CJs./CII/0 r0   rE   N)rF   rG   rH   rI   rz   r   r   rs  rv  r   r   r   r   rl   rE   r0   r-   rf  rf    s/    &.*("("$*!1r0   rf  c            
          \ rS rSr\R
                  \R                  /r\R                  \R                  /r
\R                  R                  S/ SQ5      \R                  R                  S\R                  S   5      \R                  R                  S\R                  " \R                   5      \R"                  " S\R                   5      /SS	/S
9S 5       5       5       rS r\R                  R                  S\R                  S   5      S 5       r\R                  R                  S\R                  S   5      S 5       rSrg)TestNanFunctions_SumProdi   r   r   r   r   r   r   r   r   r1   c                 <   Ub&  UR                   S:X  a  [        R                  " S5        UR                  U5      n[	        U R
                  SS/5       HF  u  pEU" X1S9n[        R                  " Xe:H  5      (       d   eUR                  UR                  :X  a  MF   e   g )Nr   r   r   r   	r   rh   r   r   r   rv   r5   r   r   r7   r   r   r   r*   identityr   s          r-   r   %TestNanFunctions_SumProd.test_allnans%  s     

aKKDFU#!$--!Q8NDu(C66#/****99+++ 9r0   c                    [        [        R                  [        R                  /SS/5       H[  u  p[        R                  " S5      nU/S-  nU" USS9n[        XT5        / nU" USS9n[        XT5        UnU" US S9n[        XT5        M]     g )Nr   r   r0  r   r   )r   r5   rR   rT   r   r   r7   ry   	tgt_valuer   r   r   s         r-   r3  #TestNanFunctions_SumProd.test_empty5  s    BJJ 7!Q@LA((6"C+a-CCa.C"CCa.C"CCd#C" Ar0   c                    [         R                  " S5      R                  U5      n[         R                  US S& U R                   H:  nU[         R
                  L a  SOSnU" USS9nUR                  U:X  d   eXT:X  a  M:   e   g )Nr   r      i   r   r  )r5   r  r   r   rv   rR   r   r<  s         r-   r  %TestNanFunctions_SumProd.test_initialB  sr    YYq\  '2AA299n$IB"C99%%%###	 r0   c                    [         R                  " S5      R                  SS5      R                  U5      n[         R                  USS S 24'   [         R
                  " U[         R                  S9nSUS S 2S4'   U R                   H:  nU[         R                  L a  SOSnU" X#SS	9nUR                  U:X  d   eXe:X  a  M:   e   g )
Nr   r   r   r   F   i  r   r  )
r5   r  r  r   r   r  r  rv   rR   r   )r7   r   r  r  ry   r  r=  s          r-   r  #TestNanFunctions_SumProd.test_whereM  s    YYq\!!!Q'..u5661a4Rrxx0adA299n$IBQ/C99%%%###	 r0   rE   N)rF   rG   rH   rI   r5   rR   rT   rv   rS   rU   r   rh   ri   rj   r  r   r   r  r   r3  r  r  rl   rE   r0   r-   r  r     s   		2::&H H[[V\2[[Wbll:&>?[[W

' $<  ,	 @ 3,# [[Wbll:&>?$ @$ [[Wbll:&>?
$ @
$r0   r  c            
          \ rS rSr\R
                  \R                  /r\R                  \R                  /r
\R                  R                  S/ SQ5      \R                  R                  S\R                  S   5      \R                  R                  S\R                  " \R                   5      \R"                  " S\R                   5      /SS	/S
9S 5       5       5       rS rS rS rS rSrg)TestNanFunctions_CumSumProdi[  r   r   r   r   r   r   r   r   r1   c                 @   Ub&  UR                   S:X  a  [        R                  " S5        UR                  U5      n[	        U R
                  SS/5       HH  u  pEU" U5      n[        R                  " Xe:H  5      (       d   eUR                  UR                  :X  a  MH   e   g )Nr   r   r   r  r  s          r-   r   (TestNanFunctions_CumSumProd.test_allnans`  s     

aKKDFU#!$--!Q8NDu+C66#/****99+++ 9r0   c                 @   [        U R                  SS/5       H  u  p[        R                  " S5      nU[        R                  " S5      -  nU" USS9n[        XT5        UnU" USS9n[        XT5        [        R                  " S5      nU" US S9n[        XT5        M     g )Nr   r   r0  r   )r   rv   r5   r   onesr   r  s         r-   r3  &TestNanFunctions_CumSumProd.test_emptyp  s    1v6LA((6"CBGGFO+CCa.C"CCa.C"((A-CCd#C" 7r0   c                    [        U R                  U R                  5       HT  u  p[        R                  " S5      nS H3  nU" X4S S9nU" X4S S9n[        UR                  UR                  :H  5        M5     MV     U R                   H  n[        R                  " S5      n[        R                  R                  S5      n[        R                  XxR                  " UR                  6 S:  '   U" US S9n[        UR                  S5        [        R                  " S	5       H  nU" XtS9n[        UR                  S5        M!     M     g )
Nr   r   r   r   r         r   r]  r   )i  r  )r   rv   r   r5   r   r   r   r  randomRandomStater   randr   r   r  )	r7   ry   gr   r   r   r   r   rss	            r-   r   )TestNanFunctions_CumSumProd.test_keepdims}  s    t}}5DA&&)C$D1D1CHH,- % 6 A&A&&q)B)+Aggqww#%&AD/CG,		!oSYY6 % r0   c                 
   S H}  n[         R                  " [        US9n[         R                  " [        US9n[        X25        [         R                  " [        US9n[         R                  " [        US9n[        X25        M     g )N)r   r   Nr   )	r5   rY   
_ndat_onesrX   rt   r   rW   _ndat_zerosrV   )r7   r   r   r   s       r-   r   .TestNanFunctions_CumSumProd.test_result_values  s\    (D**Zd3C--D1C)))KT2C,,u40C) )r0   c                    [         R                  " S5      n[        U R                  U R                  5       HG  u  p#[         R                  " S5      nS H&  nU" XS9nU" XUS9n[        Xt5        [        Xv5        M(     MI     g )Nr   )r  r  r   r   r   r   )r5   r   r   rv   r   r   )r7   r   r   r   r   r   r   r   s           r-   r   $TestNanFunctions_CumSumProd.test_out  sg    ffQi$--7FBVVAYF&(V4#C0#C-	 ' 8r0   rE   N)rF   rG   rH   rI   r5   rV   rX   rv   rW   rY   r   rh   ri   rj   r  r   r   r  r   r3  r   r   r   rl   rE   r0   r-   r  r  [  s    bmm,H		2::&H[[V\2[[Wbll:&>?[[W

' $<  ,	 @ 3,#7&*.r0   r  c            
       j   \ rS rSr\R
                  \R                  \R                  /r\R                  \R                  \R                  /rS rS rS rS r\R$                  R'                  S/ SQ5      \R$                  R'                  S\R(                  S	   5      \R$                  R'                  S
\R*                  " \R,                  5      \R.                  " S\R,                  5      /SS/S9S 5       5       5       rS r\R$                  R'                  S\R(                  S	   5      S 5       rSrg)TestNanFunctions_MeanVarStdi  c           
          U R                    HN  n[        R                  [        R                  [        R                  4 H  n[        [        U[        SUS9  M     MP     g )Nr   )r   r   )rv   r5   r  int_object_r	   rY  rt   )r7   ry   r   s      r-   test_dtype_error,TestNanFunctions_MeanVarStd.test_dtype_error  s=    A((BGGRZZ8iEG 9 r0   c           
         U R                    Ht  n[        R                  [        R                  [        R                  4 H>  n[        R
                  " [        R                  S   US9n[        [        U[        SUS9  M@     Mv     g )Nr   r   r   r   )
rv   r5   r  r  r  r&   rt   r   r	   rY  )r7   ry   r   r   s       r-   test_out_dtype_error0TestNanFunctions_MeanVarStd.test_out_dtype_error  sU    A((BGGRZZ8hhu{{1~U;iEsC 9 r0   c           
      (   [         R                  [         R                  /n[         R                  [         R                  /n[        X5       H>  u  p4S H3  n[         Vs/ s H  od" XeS9PM
     nnU" [        SUS9n[        X5        M5     M@     g s  snf )Nr   r   r^  r   r   r_  )	r5   rb   rd   rc   re   r   r   rt   r   )	r7   rv   r   r   r   r_  r   r   r   s	            r-   	test_ddof%TestNanFunctions_MeanVarStd.test_ddof  ss    IIryy)FFBFF#(-FB167Ar!'7QT2#C-  .7s   Bc           	         [         R                  [         R                  /n[         R                  [         R                  /n[
         Vs/ s H  n[        U5      PM     nn[        X5       H  u  pV[        S5       H  n[        5        nUR                  [        5        UR                  [         R                  5        U Vs/ s H  o7U:  PM	     n	nU" [        SUS9n
[        [         R                   " U
5      U	5        [#        U	5      (       a"  [%        [        UR&                  5      S:H  5        O![%        [        UR&                  5      S:H  5        S S S 5        M     M     g s  snf s  snf ! , (       d  f       M  = f)Nr   r   r  r   )r5   rb   rd   rc   re   r   r   r   ranger   r   r   r#  rq  rt   r   r   r   r   log)r7   rv   r   r   dsizer   r   r_  r'  r   r   s              r-   test_ddof_too_big-TestNanFunctions_MeanVarStd.test_ddof_too_big  s   IIryy)FFBFF#!&'AQ'(-FBa&(CJJ~.JJr001.34e19eC4U6C #43xxCGG 12CGG 12 )( ! . ( 5 )(s%   	E!9E+E&
BE+&E++
E:r   r   r   r   r   r   r   r   r1   c                 ,   Ub&  UR                   S:X  a  [        R                  " S5        UR                  U5      nSnU R                   H  n[        R
                  " [        US9   U" X1S9nS S S 5        [        R                  " W5      R                  5       (       d   eU[        R                  L a  UR                  UR                  :X  d   eM  UR                  [        R                  " U5      R                  :X  a  M   e   g ! , (       d  f       N= f)Nr   r   z:(Degrees of freedom <= 0 for slice.)|(Mean of empty slice)r   r   )r   rh   r   r   rv   r   r   r5   r   r   rZ   r   absr   s          r-   r   (TestNanFunctions_MeanVarStd.test_allnans  s     

aKKDFU#LMMDnE:5, ;88C=$$&&&& rzz!yyEKK///yyBFF5M$7$7777 "::s   %D
D	c                    [         R                  " S5      nU R                   GH%  nS H  n[        R                  " SS9 n[        R
                  " S5        [        [         R                  " U" XS95      R                  5       5        [        [        U5      S:H  5        [        [        US   R                  [        5      5        S S S 5        M     S	 Hq  n[        R                  " SS9 n[        R
                  " S5        [        U" XS9[         R                  " / 5      5        [        [        U5      S:H  5        S S S 5        Ms     GM(     g ! , (       d  f       GM5  = f! , (       d  f       M  = f
Nr0  r1  Tr   r   r   r   r   r2  )r5   r   rv   r   r   r   r   r   r   r   r   r   r   r   )r7   r   ry   r   r   s        r-   r3  &TestNanFunctions_MeanVarStd.test_empty  s    hhvA!,,D9Q))(3BHHQs%67;;=>CFaK(Jqt}}nEF	 :9 " ,,D9Q))(3 3!2BHHRLACFaK( :9  99 :9s    BE*AE!
E!
E0c                 $   [         R                  " S5      R                  SS5      R                  U5      n[         R                  USS S 24'   [         R
                  " U[         R                  S9nSUS S 2S4'   [        U R                  U R                  5       Ht  u  pEU" X#   SS  5      nU[         R                  L a  UOUR                  R                  nU" X#S9nUR                  U:X  d   e[         R                  R                  X5        Mv     g )Nr   r   r   r   Fr   )r  )r5   r  r  r   r   r  r  r   rv   r   rZ   realr   r6   assert_allclose)	r7   r   r  r  ry   f_stdr  dtype_referencer=  s	            r-   r  &TestNanFunctions_MeanVarStd.test_where  s    YYq\!!!Q'..u5661a4Rrxx0adDMM4==9HAbim,I'(BJJeBGGMMOB$C99///JJ&&s6 :r0   rE   N)rF   rG   rH   rI   r5   rZ   rb   rd   rv   r[   rc   re   r   r  r  r  r  rh   ri   rj   r  r   r   r  r   r3  r  rl   rE   r0   r-   r  r    s   

BIIryy1H(HH
D.3" [[V\2[[Wbll:&>?[[W

' $<  8	 @ 38$) [[Wbll:&>?7 @7r0   r  )YMWDhmsmsusnspsfsaszm8[]c                   P   \ rS rSrS rS r\R                  R                  S/ SQS9\R                  R                  S5      S 5       5       r
S	 rS
 rS r\R                  R                  S/ SQ5      \R                  R                  S\5      S 5       5       rS rS rS rS rSrg)TestNanFunctions_Mediani  c                 x    [         R                  5       n[        R                  " U5        [	        U[         5        g r4   )rt   ru   r5   r\   r   r7   rx   s     r-   rz   %TestNanFunctions_Median.test_mutation  s#    zz|
TT5!r0   c                    [         R                  " S5      nS HQ  n[         R                  " XS SS9n[         R                  " XS SS9n[	        UR
                  UR
                  :H  5        MS     [         R                  " S5      n[         R                  R                  S5      [         R                  " UR                  5      S S 2S 4   -  nUR                  [         R                  5      n[         R                  U[        U5      '   [        5        nUR                  [         5        [         R                  " US SS9n[#        UR                  S	5        [         R                  " US
SS9n[#        UR                  S5        [         R                  " USSS9n[#        UR                  S5        [         R                  " USSS9n[#        UR                  S5        [         R                  " USSS9n[#        UR                  S	5        [         R                  " USSS9n[#        UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr   r   Fr   r   overwrite_inputr  r     Tr   r   r   r   r   r  r   r   r  r  r0  r   r   r  r   r2  r   r   r  r  r   r   r   r   r   r   r   r   r   r  r   )r5   r   r]   r\   r   r   r  r  r   r   r   rA  r   tupler   r#  r   r   r7   r   r   r   r   r   r   r'  s           r-   r   %TestNanFunctions_Median.test_keepdims  s   ffQi D))CeLC,,s4OCCHH() !
 GGM"IIX&!''):1d7)CCHHRWWff%( C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 !  s   DH77
Ir   Nr   r2  r  )r  argnames	argvalues#ignore:All-NaN slice:RuntimeWarningc                 n  ^^ [         R                  " S5      m[         R                  R                  S5      [         R                  " TR                  5      S S 2S 4   -  nUR                  [         R                  5      n[         R                  T[        U5      '   Uc  STR                  -  nO?[        UTR                  5      m[        UU4S j[        TR                  5       5       5      n[         R                  " U5      n[         R                  " TUSUS9nXTL d   e[        UR                  U5        g )Nr  r  r2  c              3   P   >#    U  H  oT;   a  S OTR                   U   v   M     g7fr   Nr   rm   rd  	axis_normr   s     r-   	<genexpr><TestNanFunctions_Median.test_keepdims_out.<locals>.<genexpr>F  &      L=J)^3]   #&Tr   r   r   )r5   r  r  r   r   r   rA  r   r  r   r   r  r&   r\   r   )r7   r   r   	shape_outr   resultr  r   s         @@r-   test_keepdims_out)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-r0   c                 F   [         R                  R                  SS5      n[         R                  " USS/[         R                  SS9n[         R
                  " S5      n[         R                  " USS9n[         R                  " USUS9n[        XS5        [        XT5        [         R
                  " S5      n[         R                  " US S9n[         R                  " US US9n[        XS5        [        XT5        [         R                  " USUS9n[        XS5        [        XT5        g )	Nr   r   r   r   r   r   rE   r  )	r5   r  r  insertr   r   r]   r\   r   r7   r   nan_matr   r   r   s         r-   r    TestNanFunctions_Median.test_outM  s    iinnQ"))C!Qa8!ii!$ll77C(C%"ii$'ll76:C(C%ll7V<C(C%r0   c           	      
   S H  n[         R                  R                  SU5      n[         R                  R                  SUR                  UR                  S-  S9n[         R
                  UR                  5       U'   SUS S 2S4'   / nU HS  n[         R                  " [         R                  " U5      ) U5      nUR                  [         R                  " USS95        MU     [        [         R                  " US	S
9U5        M     g )N)r      3   r  i  r  r   r   )sizer   T)r  r  r   )r5   r  randnrandintr  r   ravelcompressr   r'   r]   r
   r\   )r7   r  r   r   r   xnonans          r-   test_small_large(TestNanFunctions_Median.test_small_large_  s    'A		1%A		!!!QVV!&&A+!>A66AGGIaLAacFCRXXa[L!4

299UDAB  r||AB7= (r0   c                     [          Vs/ s H  n[        R                  " U5      PM     nn[        R                  " [        SS9n[        X25        g s  snf r   )r   r5   r]   r\   rt   r   r7   r   r   r   s       r-   r   *TestNanFunctions_Median.test_result_valueso  s;    )./A299Q<C/,,u1-C) 0s    Ar   r   c                    [         R                  " S[         R                  5      R                  U5      n[	        5        nUR                  [        5        [         R                  " X2S9nUR                  UR                  :X  d   e[         R                  " U5      R                  5       (       d   eUc"  [        [        UR                  5      S:H  5        O![        [        UR                  5      S:H  5        [         R                  " [         R                  5      R                  U5      S   n[         R                  " U5      nUR                  UR                  :X  d   e[         R                  " U5      (       d   eUc"  [        [        UR                  5      S:H  5        O![        [        UR                  5      S:H  5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   rE   r   r  )r5   r  r   r   r   r   r   r\   r   r   r   r   r   r  r   )r7   r   r   r   r'  outputscalaroutput_scalars           r-   r   $TestNanFunctions_Median.test_allnanst  sB    ggfbff%,,U3 CJJ~&\\#1F<<399,,,88F#''))))|CGG)*CGG)* XXbff%,,U3B7FLL0M &&&,,66688M****|CGG)*CGG)*+ !  s   FG


Gc                    [         R                  " S5      nS H  n[        R                  " SS9 n[        R                  " S5        [        [         R                  " [         R                  " XS95      R                  5       5        [        [        U5      S:H  5        [        [        US   R                  [        5      5        S S S 5        M     S	 H  n[        R                  " SS9 n[        R                  " S5        [        [         R                  " XS9[         R                  " / 5      5        [        [        U5      S:H  5        S S S 5        M     g ! , (       d  f       GML  = f! , (       d  f       M  = fr  )r5   r   r   r   r   r   r   r\   r   r   r   r   r   r   r7   r   r   r   s       r-   r3  "TestNanFunctions_Median.test_empty  s    hhvD((5%%h/c!=>BBDEA!$
1Q4==.AB	 65  D((5%%h/R\\#9288B<HA!$ 65  65 65s   BE(A E(
E%	(
E7	c                 H    [        [        R                  " S5      S:H  5        g r   )r   r5   r\   rB   s    r-   r   #TestNanFunctions_Median.test_scalar  s    R B&'r0   c                    [         R                  " S5      n[        [         R                  [         R                  USS9  [        [         R                  [         R                  USS9  [        [         R                  [         R                  USS9  [        [         R                  [         R                  USS9  [        [
        [         R                  USS9  g )Nr  r   r   r$  r  r   r  r   r   )r5   r  r	   	AxisErrorr\   r-  r7   r   s     r-   test_extended_axis_invalid2TestNanFunctions_Median.test_extended_axis_invalid  sz    GGM"bllBLL!"=bllBLL!'BbllBLL!!<bllBLL!&Aj",,?r0   c                 	   [        5        nUR                  [        5        [        R                  [        R                  * 4 GHr  n[        R
                  " U[        R                  /[        R                  [        R                  //5      n[        [        R                  " USS9U[        R                  /5        [        [        R                  " USS9U[        R                  /5        [        [        R                  " U5      U5        [        R
                  " [        R                  [        R                  U/[        R                  [        R                  U//5      n[        [        R                  " U5      U5        [        [        R                  " USS9[        R                  [        R                  U/5        [        [        R                  " USS9U5        [        R
                  " X"/X"//5      n[        [        R                  " USS9U5        [        R
                  " USU* S/S[        R                  [        R                  S/S[        R                  [        R                  U//[        R                  S	9nUS:  aE  [        [        R                  " USS9S
SU* S/5        [        [        R                  " U5      S5        OD[        [        R                  " USS9SSU* S/5        [        [        R                  " U5      S5        [        [        R                  " USS9SSU/5        [        SS5       GHq  n[        SS5       GH\  n[        R
                  " [        R                  /U-  U/U-  -   /S-  5      n[        [        R                  " U5      U5        [        [        R                  " USS9U5        [        [        R                  " USS9[        R                  /U-  U/U-  -   5        [        R
                  " [        R                  /U-  U* /U-  -   /S-  5      n[        [        R                  " U5      U* 5        [        [        R                  " USS9U* 5        [        [        R                  " USS9[        R                  /U-  U* /U-  -   5        GM_     GMt     GMu     S S S 5        g ! , (       d  f       g = f)Nr   r   r   r  iir   r  r   r   g      @      @g      @g      $g      "g      r  g      
   r   )r   r#  r   r5   infr   r   r   r\   float32r  )r7   r'  r/  ard  js         r-   test_float_special*TestNanFunctions_Median.test_float_special  sd    CJJ~&(HHsRVVnrvvrvv.>?@R\\!!4sRVVnER\\!!4sRVVnER\\!_c2 HHrvvrvvs3 ffbffc24 5R\\!_c2R\\!!4rvvrvvs6KLR\\!!4c: HHsj3*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"A"1b\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 * &; ) !  s   R.S
SrE   N)rF   rG   rH   rI   rz   r   rh   ri   rj   filterwarningsr  r   r  r   _TYPE_CODESr   r3  r   r*  r3  rl   rE   r0   r-   r  r    s    "26 [[
  	 [[ EF. G	."&$> *
 [[V\2[[Wk2+ 3 3+2%(@,Br0   r  c            
       ^   \ rS rSrS rS r\R                  R                  SSSS//5      \R                  R                  S/ SQS	9\R                  R                  S
5      S 5       5       5       r
S rS rS r\R                  R                  S/ SQ5      \R                  R                  S\R                  S   5      \R                  R                  S\R                   " \R"                  5      \R$                  " S\R"                  5      /SS/S9S 5       5       5       rS rS rS rS rSrg)TestNanFunctions_Percentilei  c                 z    [         R                  5       n[        R                  " US5        [	        U[         5        g )N   )rt   ru   r5   r^   r   r  s     r-   rz   )TestNanFunctions_Percentile.test_mutation  s'    zz|
r"T5!r0   c           	         [         R                  " S5      nS HU  n[         R                  " USUS SS9n[         R                  " USUS SS9n[	        UR
                  UR
                  :H  5        MW     [         R                  " S5      n[         R                  R                  S5      [         R                  " UR                  5      S S 2S 4   -  nUR                  [         R                  5      n[         R                  U[        U5      '   [        5        nUR                  [         5        [         R                  " USS S	S
9n[#        UR                  S5        [         R                  " USSS	S
9n[#        UR                  S5        [         R                  " USSS	S
9n[#        UR                  S5        [         R                  " USSS	S
9n[#        UR                  S5        [         R                  " USSS	S
9n[#        UR                  S5        [         R                  " USSS	S
9n[#        UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr   r   F   Fr  r  r  Z   Tr   r  r  r  r0  r  r2  r  r  r  r  )r5   r   r_   r^   r   r   r  r  r   r   r   rA  r   r  r   r#  r   r   r  s           r-   r   )TestNanFunctions_Percentile.test_keepdims  s   ffQi D--Rd057C""3438:CCHH() ! GGM"IIX&!''):1d7)CCHHRWWff%( C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 !  s   D$I
IrW  r  r   r   r  r  r  c                   ^^ [         R                  " S5      m[         R                  R                  S5      [         R                  " TR                  5      S S 2S 4   -  nUR                  [         R                  5      n[         R                  T[        U5      '   Uc  STR                  -  nO?[        UTR                  5      m[        UU4S j[        TR                  5       5       5      n[         R                  " U5      U-   n[         R                  " U5      n[         R                  " TXSUS9nXeL d   e[        UR                  U5        g )Nr  r  r2  c              3   P   >#    U  H  oT;   a  S OTR                   U   v   M     g7fr  r  r  s     r-   r  @TestNanFunctions_Percentile.test_keepdims_out.<locals>.<genexpr>  r  r  Tr   )r5   r  r  r   r   r   rA  r   r  r   r   r  r&   r^   r   )	r7   rW  r   r   r  r   r  r  r   s	          @@r-   r  -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!!!!QDcJ}}V\\9-r0   c                 P   [         R                  R                  SS5      n[         R                  " USS/[         R                  SS9n[         R
                  " S5      n[         R                  " USSS9n[         R                  " USSUS9n[        XS5        [        XT5        [         R
                  " S5      n[         R                  " USS S9n[         R                  " USS US9n[        XS5        [        XT5        [         R                  " USS	US9n[        XS5        [        XT5        g )
Nr   r   r   r   r   *   r   rE   r  )	r5   r  r  r  r   r   r_   r^   r   r  s         r-   r   $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%r0   c                 N   [         R                  " / SQSS9n[        [        [         R                  US5        [         R                  " / SQSS9n[        [        [         R                  US5        [         R                  " / SQSS9n[        [        [         R                  US5        g N)y      ?      @y @      ?y?ffffff@Gr   r]  r  F)r5   r   r	   rY  r^   r7   arr_cs     r-   test_complex(TestNanFunctions_Percentile.test_complex-  sq    7sCi!1!15#>7sCi!1!15#>7sCi!1!15#>r0   c           	         [          Vs/ s H  n[        R                  " US5      PM     nn[        R                  " [        SSS9n[        X25        [        R                  " [          Vs/ s H  n[        R                  " US5      PM     sn5      n[        R                  " [        SSS9n[        X25        g s  snf s  snf )Nr  r   r   )r  b   )r   r5   r_   r^   rt   r   	transposer  s       r-   r   .TestNanFunctions_Percentile.test_result_values5  s    -23Ur}}Q#U3ubq1C%llF1BMM!X6FGuhQ7C% 4 Gs   !B7)!B<r   r   Floatr   r   r   r   r1   c                    Ub&  UR                   S:X  a  [        R                  " S5        UR                  U5      n[        R                  " [
        SS9   [        R                  " USUS9nS S S 5        [        R                  " W5      R                  5       (       d   eUR                  UR                  :X  d   eg ! , (       d  f       NV= f)Nr   r   r   r   <   r   )r   rh   r   r   r   r   r5   r^   r   r   r   r7   r   r   r   r   s        r-   r   (TestNanFunctions_Percentile.test_allnans>  s     

aKKDFU#\\.0KL""5"48C Mxx}  """"yyEKK''' ML   B;;
C	c                    [         R                  " S5      nS H  n[        R                  " SS9 n[        R                  " S5        [        [         R                  " [         R                  " USUS95      R                  5       5        [        [        U5      S:H  5        [        [        US	   R                  [        5      5        S S S 5        M     S
 H  n[        R                  " SS9 n[        R                  " S5        [        [         R                  " USUS9[         R                  " / 5      5        [        [        U5      S	:H  5        S S S 5        M     g ! , (       d  f       GMP  = f! , (       d  f       M  = f)Nr0  r1  Tr   r   r   r   r   r   r2  )r5   r   r   r   r   r   r   r^   r   r   r   r   r   r   r  s       r-   r3  &TestNanFunctions_Percentile.test_emptyN  s   hhvD((5%%h/!1!1#r!EFJJLMA!$
1Q4==.AB	 65  D((5%%h/R--c2DA288B<PA!$ 65  65 65s   BE*A"E,
E)	,
E;	c                     [        [        R                  " SS5      S5        [        R                  " S5      n[        R                  " USSS9n[        US5        [	        [        R
                  " U5      5        g )Nr   r     2   r   r   g      @)r   r5   r^   r  r   isscalar)r7   r1  rs      r-   r   'TestNanFunctions_Percentile.test_scalar\  sT    R%%b#.3IIaLQ+QAr0   c                    [         R                  " S5      n[        [         R                  [         R                  USSS9  [        [         R                  [         R                  USSS9  [        [         R                  [         R                  USSS9  [        [         R                  [         R                  USSS9  [        [
        [         R                  USSS9  g )	Nr  r   r$  rW  r   r%  r  r&  r'  )r5   r  r	   r(  r^   r-  r)  s     r-   r*  6TestNanFunctions_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Hr0   c           
         SS/n[         R                  " S5      n[         R                  U-  n[         R                  " S5      nSUS S 2SSS2S S 24'   US S 2S S 2SS 24==   S-  ss'   S	 H  nS
 H  n[        5        nUR	                  [
        S5        [         R                  " X!XVS9n[         R                  " X1UUS9n	[        U	R                  UR                  5        [         R                  " XAUUS9n[         R                  " XAUUS9n	[        X5        S S S 5        M     M     [         R                  " S5      n
[        [         R                  " XSS9R                  S5        g ! , (       d  f       GM  = f)Nr]  r  )r  r   )r   r  r   r   r   r  r   r   )FTr   r   )r   r  r   r\  )r   r   r   )r   r   r\  )
r5   r  r   r   r#  r   r_   r^   r   r   )r7   percr   r  	large_matr   keepdimr'  r)  nan_valmegamats              r-   test_multiple_percentiles5TestNanFunctions_Percentile.test_multiple_percentilesk  s9   Cyggfo&&3,GGI&	!"	!QqUA+!Q(q  D(&(CJJ~/JK--OC ..w48?AG 		:--	d18:C ..yT8?AG . )( ) ! '','R%%g&AGGS )(s   =BE&&
E6rE   N)rF   rG   rH   rI   rz   r   rh   ri   rj   r5  r  r   rM  r   r5   r  r   r   r  r   r3  r   r*  rj  rl   rE   r0   r-   r8  r8    s2   "2: [[S1q!f+.[[
  	 [[ EF. G	 /.&&$?& [[V\2[[Wbll7&;<[[W

' $<  (	 = 3(% ITr0   r8  c            
       z   \ rS rSrS rS rS rS r\R                  R                  S/ SQ5      \R                  R                  S\R                  S	   5      \R                  R                  S
\R                  " \R                  5      \R                  " S\R                  5      /SS/S9S 5       5       5       rSrg)TestNanFunctions_Quantilei  c           	         [         R                  " S5      R                  SSS5      R                  [        5      n[         R
                  US   S'   [        [         R                  " USS9[         R                  " US	S95        [        [         R                  " USSS
9[         R                  " US	SS
95        [        [         R                  " USSS
9[         R                  " US	SS
95        [        [         R                  " US/SS
9[         R                  " US	/SS
95        [        [         R                  " U/ SQSS
9[         R                  " U/ SQSS
95        g )N   r   r   r  r   r   r]  rV  r]  rb  )      ?r]        ?)   r]  K   )	r5   r  r  r   floatr   r   r`   r^   )r7   r  s     r-   test_regression)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r0   c                     [         R                  " S5      S-  n[        [         R                  " US5      S5        [        [         R                  " US5      S5        [        [         R                  " US5      S5        g )Nr  r]  r   r   r   g      @g      ?)r5   r  r   r`   )r7   r  s     r-   
test_basic$TestNanFunctions_Quantile.test_basic  sS    IIaL3R^^Aq)2.R^^Aq)3/R^^As+T2r0   c                 N   [         R                  " / SQSS9n[        [        [         R                  US5        [         R                  " / SQSS9n[        [        [         R                  US5        [         R                  " / SQSS9n[        [        [         R                  US5        g rH  )r5   r   r	   rY  r`   rK  s     r-   rM  &TestNanFunctions_Quantile.test_complex  sk    7sCi<7sCi<7sCi<r0   c                 h   [         R                  " / SQ5      nUR                  5       n[         R                  " [         R                  " S5      USS9  [        X!5        UR                  5       nUR                  5       n[         R                  " [         R                  " S5      USS9  [        X!5        g )N)r   rq  rp  r]  r   g      Y@midpoint)method)r5   r   ru   r`   r  r
   tolist)r7   p0ps      r-   test_no_p_overwrite-TestNanFunctions_Quantile.test_no_p_overwrite  sr    XX/0GGI
ryy*=1!YY[HHJ
ryy*=1!r0   r   r   r   rS  r   r   r   r   r1   c                    Ub&  UR                   S:X  a  [        R                  " S5        UR                  U5      n[        R                  " [
        SS9   [        R                  " USUS9nS S S 5        [        R                  " W5      R                  5       (       d   eUR                  UR                  :X  d   eg ! , (       d  f       NV= f)Nr   r   r   r   r   r   )r   rh   r   r   r   r   r5   r`   r   r   r   rV  s        r-   r   &TestNanFunctions_Quantile.test_allnans  s     

aKKDFU#\\.0KL..5C Mxx}  """"yyEKK''' MLrX  rE   N)rF   rG   rH   rI   ru  rx  rM  r  rh   ri   rj   r5   r  r   r   r  r   rl   rE   r0   r-   rm  rm    s    C3=
" [[V\2[[Wbll7&;<[[W

' $<  (	 = 3(r0   rm  zarr, expectedr-  )FTFT)r   r   r  r   r   Tc                     S [         R                  " U R                  [         R                  S94 H<  n[	        XS9n[        X15        [        U5      [         R                  Ld  M5  USL a  M<   e   g )Nr   r@  T)r5   r&   r   r  r   r   r   r   )r   expectedr   actuals       r-   test__nan_maskr    sV    " bhhsyy9:3(V& >+T>!> ;r0   c                     [         R                  [         R                  [         R                  4 H3  n [         R                  " SS/U S9n[        US5      u  p#Ub   eX!L a  M3   e   [         R                  [         R                  4 H  n [         R                  " SS/U S9n[        US5      u  p#US:H  R                  5       (       d   eX!Ld   e[        X!5        [         R                  " SS[         R                  /U S9n[        US5      u  pV[        U[         R                  " / SQ5      5        XTLd   e[        U[         R                  " / SQ5      5        [         R                  " US	   5      (       a  M   e   g)
zTTest that _replace_nan returns the original array if there are no
NaNs, not a copy.
r   r   r   Nr   F)FFT)r   r   r   r  )r5   r  int32int64r   r   r0  float64r   r   r   r   )r   r   r  maskarr_nan
result_nanmask_nans          r-   test__replace_nanr    s4    ((BHHbhh/hh1vU+#C+||}} 0 **bjj)hh1vU+#C+""$$$$   V!((Aq"&&>7+GQ7
Xrxx(<=>(((Z)!45xx$$$$ *r0   )2r   rh   r!   numpyr5   numpy.core.numericr   numpy.lib.nanfunctionsr   r   numpy.testingr   r   r   r	   r
   r   r   r   rt   r   r  r  r   rp   r  _TEST_ARRAYSr$   _vsetflagsri   rj   r  keysrL  rf  r  r  r  _TIME_UNITSr   r6  r  r8  rm  r/  r  	complex64r  r  )units   0r-   <module>r     s       3 :  	6266662666B7BFFFFFC6626626662667C26626666266BD 	E 
2	3	;	<	67#	$	*	+	- XXAE<>@ A
 hh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 XXrvvsBFFBFF+,XX()+ XXl"((+	 XX()	 XX}!(*6XXt}t}  +  "! "%c 7s    N)