
    Kh`                     |   S SK r S SKrS SKrS SKJr  S SKrS SKJr  S SK	J
r
Jr  S SKJrJr  S SKJrJrJrJrJrJrJr  \R.                  " S\R0                  SS	\R0                  S
/SS\R0                  SSS/\R0                  \R0                  \R0                  S\R0                  S/S\R0                  \R0                  SS\R0                  //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 \ RC                  5        H  r"\"RG                  S)S*9  M     \RH                  RK                  S+\RL                  S,   \RL                  S-   -   S.-   5      \RH                  RK                  S/\ RC                  5       \ RO                  5       S09 " S1 S25      5       5       r( " S3 S45      r) " S5 S6\)5      r* " S7 S8\)5      r+ " S9 S:\)5      r,S;r-\." \RL                  S-   5      r/\/\- V s/ s H	  n S<U  S=3PM     sn -  r/ " S> S?5      r0 " S@ SA5      r1 " SB SC5      r2\RH                  RK                  SD\R.                  " \R0                  SE\R0                  \Rf                  /5      \R.                  " / SFQ5      4\R.                  " / SGQ\Rh                  SH9SI4\R.                  " / SFQ5      SI4\R.                  " \R0                  SE/\R0                  \Rf                  //\Rj                  SH9\R.                  " S)SI/S)SI//5      4/5      SJ 5       r6SK r7gs  sn f )L    N)partial)normalize_axis_tuple)	AxisErrorComplexWarning)	_nan_mask_replace_nan)assert_assert_equalassert_almost_equalassert_raisesassert_raises_regexassert_array_equalsuppress_warningss?&S:??ʡE?	?绸zG?L
F%u?6<R!?[B>٬?:MS㥛?z):?	h"?)r   r   r   r   )r   r   r   r   r   )r   r   r   )r         ?r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r           r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   c                   @   \ 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        S/var/www/html/env/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)r2   nptestingr
   )selfnan_funcr.   r&   nan_signatures        r1   test_signature_match'TestSignatureMatch.test_signature_matchI   s6    
 &&t,	**84


	9r4   c                     [         R                  R                  [        U R                  5      [        [         R
                  R                  R                  5      5        g)z4Validate that all nan functions are actually tested.N)r9   r:   r
   setIDSlib_nanfunctions_impl__all__r;   s    r1   test_exhaustiveness&TestSignatureMatch.test_exhaustivenessR   s6    


M3rvv88@@A	
r4    N)z...),__name__
__module____qualname____firstlineno__r9   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NANFUNCSrB   staticmethodr2   pytestmarkparametrizeitemsr>   rG   __static_attributes__).0ks   00r1   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_MinMaxY   c                     [         R                  5       nU R                   H  nU" U5        [        U[         5        M     g r8   _ndatcopynanfuncsr
   r;   ndatfs      r1   test_mutation%TestNanFunctions_MinMax.test_mutation^   ,    zz|AdGu% r4   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r9   eyeziprz   stdfuncsr	   ndimr;   matnfrfr   tgtress          r1   test_keepdims%TestNanFunctions_MinMax.test_keepdimse   a    ffQi$--7FB$$7$7CHH,- % 8r4   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r9   r   r   rz   r   zerosr   r;   r   r   r   resoutr   r   s          r1   test_out TestNanFunctions_MinMax.test_outm   `    ffQi$--7FBXXa[FSq/CSqf-C,) 8r4   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   rz   r   r9   r   r   typer	   r;   codesr   r   cr   r   r   s           r1   test_dtype_from_input-TestNanFunctions_MinMax.test_dtype_from_inputv   s    $--7FBffQa(1o++001o++00
#4(..334(..33
#  8r4   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   rz   r   _rdatrx   r   r;   r   r   dr   r   s         r1   test_result_values*TestNanFunctions_MinMax.test_result_values   L    $--7FB"'(%Q2a5%C(U#C) 8(   Ar   r   r   AllFloatarrayr   r   0d2dr5   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   rl   skipastyperz   warnsRuntimeWarningr9   isnanallr   r;   r   r   r   r   r.   r   s          r1   test_allnans$TestNanFunctions_MinMax.test_allnans   s     

aKKDE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   )r9   mafix_invalidrx   _maskry   rN   r
   r	   isinfany)r;   r   mskr}   r   r   s         r1   test_masked#TestNanFunctions_MinMax.test_masked   s    ee&iinn))ACa.CE"C"C())++, r4   c                 R    U R                    H  n[        U" S5      S:H  5        M     g Nr   rz   r	   r;   r}   s     r1   test_scalar#TestNanFunctions_MinMax.test_scalar        AAbERK  r4   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   rI   NrJ   rK   rL   rM   rp   rI   r4   r1   	MyNDArrayr          r4   r   r   r   r   r   r   rI   Trecordalways   no warning raised)r9   ndarrayr   viewrz   r	   
isinstanceshapenanwarningscatch_warningssimplefilterr   r   len
issubclasscategoryr   )r;   r   miner}   r   ws         r1   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          @      @r   r   r   Tr   r   r   r   )r9   r   r   objectr
   rN   r   r   r   listr	   r   r   r   r   )r;   arrr   s      r1   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   rI   Nr   rI   r4   r1   r   r     r   r4   r   	      d   r   initial)	r9   r   aranger   r   rz   rP   r   r   )r;   r   r   arr}   r  ret1ret2s           r1   test_initial$TestNanFunctions_MinMax.test_initial   s    	

 	 YYq\  '2AA"))^cGR)D::&&&?"?RWWY'9D::&&&?"? r4   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   rI   Nr   rI   r4   r1   r   r     r   r4   r   r  r   r   r   F      r  wherer  )r9   r   r	  reshaper   r   	ones_likeboolrz   rN   r   r   )	r;   r   r   r
  r  r}   	referencer  r  s	            r1   
test_where"TestNanFunctions_MinMax.test_where   s    	

 	 YYq\!!!Q'..u5661a4Rrww/adA"))^IRa0D::&&&$$$RWWY'ua@D::&&&$$$ r4   rI   N)rJ   rK   rL   rM   r9   rN   rP   rz   minmaxr   r~   r   r   r   r   rl   rm   rn   	typecodesr   r   fullr   r   r   r   r   r  r  rp   rI   r4   r1   rt   rt   Y   sH   		299%HH&.*$* [[V\2[[Wbll:&>?[[W

' $<  
,	 @ 3
,-!)%V
? [[Wbll:&>?# @#$ [[Wbll:&>?% @%r4   rt   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 r8   rw   r{   s      r1   r~   +TestNanFunctions_ArgminArgmax.test_mutation  r   r4   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   rz   r9   greaterlessrx   r   filterr   r	   r   r   equal)r;   r}   fcmprowsupindvals          r1   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   r5   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   rl   r   r   rz   raises
ValueError)r;   r   r   r   r.   s        r1   r   *TestNanFunctions_ArgminArgmax.test_allnans!  sd     

aKKDEU#MMDz1LMU& NM "MMs   #A77
B	c           
          [         R                  " S5      nU R                   HK  nS H  n[        [        SX!US9  M     S H)  nU" XS9n[        U[         R                  " S5      5        M+     MM     g )Nr   r   r   Nz*attempt to get argm.. of an empty sequencer   r   r   )r9   r   rz   r   r2  r
   )r;   r   r}   r   r   s        r1   
test_empty(TestNanFunctions_ArgminArgmax.test_empty0  sc    hhvA!#"DT+ "
 'S"((1+.  r4   c                 R    U R                    H  n[        U" S5      S:H  5        M     g r   r   r   s     r1   r   )TestNanFunctions_ArgminArgmax.test_scalar<  r   r4   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>.MyNDArrayiA  rI   Nr   rI   r4   r1   r   r>  A  r   r4   r   r   r   r   r   r   rI   )r9   r   r   r   rz   r	   r   r   )r;   r   r   r}   r   s        r1   r   +TestNanFunctions_ArgminArgmax.test_subclass@  s    	

 	
 vvay~~i(ADq/CJs./CII%&Dq/CJs./CII%&D'CCIIO$ r4   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   )r9   r	  r   r   rz   rR   r   r;   r   r
  r}   r  rets         r1   r   +TestNanFunctions_ArgminArgmax.test_keepdimsQ  sw    YYq\  '2AA",,.AIB&C88rww&&&###	 r4   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  rI   r   r  r   )r9   r	  r   r   rz   r   intprR   )r;   r   r
  r}   r   r  rB  s          r1   r   &TestNanFunctions_ArgminArgmax.test_out\  s|    YYq\  '2AA((2RWW-C",,.AIB.C::### r4   rI   N)rJ   rK   rL   rM   r9   rR   rT   rz   r~   r   rl   rm   rn   r  r   r   r   r   r8  r   r   r   r   rp   rI   r4   r1   r"  r"  	  s"   bll+H&@ [[V\2[[Wbll:&>?[[W

' $<  '	 @ 3'
/!%" [[Wbll:&>?$ @$ [[Wbll:&>?	$ @	$r4   r"  r  )   '   ]   W   .   )r   1dF)writer   
AllIntegerr   Or   r5   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                  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*\R@                  RC                  S\R2                  \R6                  /5      S 5       r+Sr,gs  snn f )TestNanFunctions_NumberTypesir  znanfunc,funcr5   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 )NrP  r   r   r   r   r;   r   r   nanfuncr.   r   r   s          r1   test_nanfunc)TestNanFunctions_NumberTypes.test_nanfunc  s_     jj3iclC%C<9S	)))99		)))r4   rd   rb   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   )qrP  )r   r   kindr   	TypeErrorr   r   rW  s          r1   test_nanfunc_q+TestNanFunctions_NumberTypes.test_nanfunc_q  s     jj99>>S )T!4)WQ7 sa.C##C)|CyDI---yyCII---r4   rf   rh   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      ?ddofrP  rV  rW  s          r1   test_nanfunc_ddof.TestNanFunctions_NumberTypes.test_nanfunc_ddof  se     jj3S!c$C%C<9S	)))99		)))r4   rX  c                    UR                  U5      n[        U" USS9U" USS95        Sn[        [        U5         U" USSS9  S S S 5        [        [        U5         U" USSS9  S S S 5        g ! , (       d  f       N0= f! , (       d  f       g = f)Nrb  )
correctionrc  z5ddof and correction can't be provided simultaneously.)rd  rh  r   r   )r   r   r   r2  )r;   r   r   rX  err_msgs        r1   test_nanfunc_correction4TestNanFunctions_NumberTypes.test_nanfunc_correction  s     jjCC('#C*@	
 J W5Ccc2 6 !W5CaA. 65 65 65s   	A-	A>-
A;>
BrI   N)-rJ   rK   rL   rM   r9   rN   r  rP   r  rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rf   rg   rh   ri   rz   nanfunc_idsrl   rm   rn   ro   errstaterY  rd   re   rb   rc   r_  re  rj  rp   )rq   is   00r1   rR  rR  r  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   
	*
	* [[BIIryy)//q 1s   IrR  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 r8   rw   r{   s      r1   r~   *SharedNanFunctionsTestsMixin.test_mutation  r   r4   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          r1   r   *SharedNanFunctionsTestsMixin.test_keepdims  r   r4   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          r1   r   %SharedNanFunctionsTestsMixin.test_out  r   r4   c           	         [         R                  " S5      nSn[        U R                  U R                  5       GH;  u  p4U GH.  n[        5        nU[         R                  [         R                  1;   a  US;   a  U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M1     GM>     g ! , (       d  f       GMI  = fNr   r   FDGr   )r   r   r9   r   r   rz   r   r   rh   rf   r(  r   r   r   r	   	r;   r   r   r   r   r   r,  r   r   s	            r1   test_dtype_from_dtype2SharedNanFunctionsTestsMixin.test_dtype_from_dtype  s   ffQi$--7FB&(Cbii33U


>2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E::
F
c           	      h   [         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                  [        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rx  rz  r{  s	            r1   test_dtype_from_char1SharedNanFunctionsTestsMixin.test_dtype_from_char  s    ffQi$--7FB&(Cbii33U


>2S288==CS288==CCJ'S5;;@@CS5;;@@CCJ' )(  8((s   CD""
D1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           r1   r   2SharedNanFunctionsTestsMixin.test_dtype_from_input  s    $--7FBffQa(1o++001o++00
S$AB4(..334(..33
#  8r4   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         r1   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     r1   r   (SharedNanFunctionsTestsMixin.test_scalar  r   r4   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  rI   Nr   rI   r4   r1   r   r    r   r4   r   r   r   r   r   )r9   r   r   r   rz   r   r	   r   )r;   r   r   r   r}   expected_shaper   s          r1   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 r4   rI   N)rJ   rK   rL   rM   r~   r   r   r|  r  r   r   r   r   rp   rI   r4   r1   rp  rp    s/    &.*("("$*!1r4   rp  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_SumProdi5  r   r   r   r   r   r   r   r   r5   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   rl   r   r   r   rz   r9   r   r   r;   r   r   r   r.   identityr   s          r1   r   %TestNanFunctions_SumProd.test_allnans:  s     

aKKDEU#!$--!Q8NDu(C66#/****99+++ 9r4   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   r5  r   r   )r   r9   rV   rX   r   r
   r;   r}   	tgt_valuer   r   r   s         r1   r8  #TestNanFunctions_SumProd.test_emptyJ  s    BJJ 7!Q@LA((6"C+a-CCa.C"CCa.C"CCd#C" Ar4   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  )r9   r	  r   r   rz   rV   r   rA  s         r1   r  %TestNanFunctions_SumProd.test_initialW  sr    YYq\  '2AA299n$IB"C99%%%###	 r4   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  )
r9   r	  r  r   r   r  r  rz   rV   r   )r;   r   r
  r  r}   r  rB  s          r1   r  #TestNanFunctions_SumProd.test_whereb  s    YYq\!!!Q'..u5661a4Rrww/adA299n$IBQ/C99%%%###	 r4   rI   N)rJ   rK   rL   rM   r9   rV   rX   rz   rW   rY   r   rl   rm   rn   r  r   r   r   r   r8  r  r  rp   rI   r4   r1   r  r  5  s   		2::&H H[[V\2[[Wbll:&>?[[W

' $<  ,	 @ 3,# [[Wbll:&>?$ @$ [[Wbll:&>?
$ @
$r4   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_CumSumProdip  r   r   r   r   r   r   r   r   r5   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          r1   r   (TestNanFunctions_CumSumProd.test_allnansu  s     

aKKDEU#!$--!Q8NDu+C66#/****99+++ 9r4   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   r5  r   )r   rz   r9   r   onesr
   r  s         r1   r8  &TestNanFunctions_CumSumProd.test_empty  s    1v6LA((6"CBGGFO+CCa.C"CCa.C"((1+CCd#C" 7r4   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   rb  r   )i  r  )r   rz   r   r9   r   r	   r   r  randomRandomStater   randr   r
   r	  )	r;   r}   gr   r   r   r   r   rss	            r1   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 % r4   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   )	r9   r]   
_ndat_onesr\   rx   r   r[   _ndat_zerosrZ   )r;   r   r   r   s       r1   r   .TestNanFunctions_CumSumProd.test_result_values  s\    (D**Zd3C--D1C)))KT2C,,u40C) )r4   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   )r9   r   r   rz   r   r   )r;   r   r   r   r   r   r   r   s           r1   r   $TestNanFunctions_CumSumProd.test_out  sg    ffQi$--7FBVVAYF&(V4#C0#C-	 ' 8r4   rI   N)rJ   rK   rL   rM   r9   rZ   r\   rz   r[   r]   r   rl   rm   rn   r  r   r   r   r   r8  r   r   r   rp   rI   r4   r1   r  r  p  s    bmm,H		2::&H[[V\2[[Wbll:&>?[[W

' $<  ,	 @ 3,#7&*.r4   r  c            
       p   \ 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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   )rz   r9   r  int_object_r   r^  rx   )r;   r}   r   s      r1   test_dtype_error,TestNanFunctions_MeanVarStd.test_dtype_error  s=    A''277BJJ7iEG 8 r4   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   )
rz   r9   r  r  r  r*   rx   r   r   r^  )r;   r}   r   r   s       r1   test_out_dtype_error0TestNanFunctions_MeanVarStd.test_out_dtype_error  sU    A''277BJJ7hhu{{1~U;iEsC 8 r4   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   rc  r   r   rd  )	r9   rf   rh   rg   ri   r   r   rx   r   )	r;   rz   r   r   r   rd  r   r   r   s	            r1   	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                  [        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   )r9   rf   rh   rg   ri   r   r   r   ranger   r   r   r(  r   rx   r
   r   r   r	   log)r;   rz   r   r   dsizer   r   rd  r,  r   r   s              r1   test_ddof_too_big-TestNanFunctions_MeanVarStd.test_ddof_too_big  s   IIryy)FFBFF#!&'AQ'(-FBa&(CJJ~.JJ~..34e19eC4U6C #43xxCGG 12CGG 12 )( ! . ( 5 )(s%   	E/E!7E
BE!E!!
E0r   r   r   r   r   r   r   r   r5   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   rl   r   r   rz   r   r   r9   r   r   r^   r   absr   s          r1   r   (TestNanFunctions_MeanVarStd.test_allnans  s     

aKKDE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
Nr5  r6  Tr   r   r   r   r   r7  )r9   r   rz   r   r   r   r	   r   r   r   r   r   r   r
   )r;   r   r}   r   r   s        r1   r8  &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  )r9   r	  r  r   r   r  r  r   rz   r   r^   realr   r:   assert_allclose)	r;   r   r
  r  r}   f_stdr  dtype_referencerB  s	            r1   r  &TestNanFunctions_MeanVarStd.test_where
  s    YYq\!!!Q'..u5661a4Rrww/adDMM4==9HAbim,I'(BJJeBGGMMOB$C99///JJ&&s6 :r4   c                 F   [         R                  R                  S5      nUR                  SSS5      S-   n[         R                  US S 2SS S 24'   [         R
                  " S5      n[         R
                  " S5      n[         R                  " UUSSS	9nX5L d   e[         R                  " UUSSUS
9nXFL d   eUR                  UR                  :X  d   eUR                  S:X  d   e[         R                  " USSS9nUR                  UR                  :X  d   e[        Xg5        g )Ni  
      r  rb  )r  r   r  r   T)r   r   r   )r   r   r   r_   r   )
r9   r  r  randnr   r   r^   rh   r   r   )r;   rngAmean_outstd_outr_   ri   std_olds           r1   test_nanstd_with_mean_keyword9TestNanFunctions_MeanVarStd.test_nanstd_with_mean_keyword  s   ii##D)IIb"a 3&VV!Q'
88J'((:&zz!# $& ii "	  ~~ yyDJJ&&&yyJ&&& ))AA5}}

***C)r4   rI   N)rJ   rK   rL   rM   r9   r^   rf   rh   rz   r_   rg   ri   r   r  r  r  r  rl   rm   rn   r  r   r   r   r   r8  r  r  rp   rI   r4   r1   r  r    s   

BIIryy1H(HH
D.3" [[V\2[[Wbll:&>?[[W

' $<  8	 @ 38$) [[Wbll:&>?7 @7"*r4   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_MedianiF  c                 x    [         R                  5       n[        R                  " U5        [	        U[         5        g r8   )rx   ry   r9   r`   r
   r;   r|   s     r1   r~   %TestNanFunctions_Median.test_mutationH  s#    zz|
TT5!r4   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  r5  r   r  r  r   r7  r   r   r  r  r   r   r   r   r   r   r   r   r   r  r   )r9   r   ra   r`   r	   r   r  r  r   r   r   rF  r   tupler   r(  r   r
   r;   r   r   r   r   r   r   r,  s           r1   r   %TestNanFunctions_Median.test_keepdimsN  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   r7  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  r7  c              3   P   >#    U  H  oT;   a  S OTR                   U   v   M     g7fr   Nr   rq   rn  	axis_normr   s     r1   	<genexpr><TestNanFunctions_Median.test_keepdims_out.<locals>.<genexpr>~  &      L=J)^3]   #&Tr   r   r   )r9   r  r  r   r   r   rF  r   r  r   r   r  r*   r`   r
   )r;   r   r   	shape_outr   resultr  r   s         @@r1   test_keepdims_out)TestNanFunctions_Median.test_keepdims_outi  s     GGM"IIX&!''):1d7)CCHHRWWff%(<qvvI,T166:I L=B166]L LIhhy!adTsC}}V\\9-r4   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   rI   r  )	r9   r  r  insertr   r   ra   r`   r   )r;   r   nan_matr   r   r   s         r1   r    TestNanFunctions_Median.test_out  s    iinnQ"))C!Qa8!ii!$ll77C(C%"ii$'ll76:C(C%ll7V<C(C%r4   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  r  3   r  i  r  r   r  sizer   T)r  r  r   )r9   r  r  randintr   r   ravelcompressr   r+   ra   r   r`   )r;   r  r   r   r   xnonans          r1   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= (r4   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   r9   ra   r`   rx   r   )r;   r   r   r   s       r1   r   *TestNanFunctions_Median.test_result_values  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   rI   r   r  )r9   r   r   r   r   r   r   r`   r   r   r   r	   r   r  r   )r;   r   r   r   r,  outputscalaroutput_scalars           r1   r   $TestNanFunctions_Median.test_allnans  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  )r9   r   r   r   r   r	   r   r`   r   r   r   r   r   r
   r;   r   r   r   s       r1   r8  "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	   r9   r`   rF   s    r1   r   #TestNanFunctions_Median.test_scalar  s    R B&'r4   c                 \   [         R                  " S5      n[        [        [         R                  USS9  [        [        [         R                  USS9  [        [        [         R                  USS9  [        [        [         R                  USS9  [        [
        [         R                  USS9  g )Nr  r   r   r5  r  r   r  r   r   )r9   r  r   r   r`   r2  r;   r   s     r1   test_extended_axis_invalid2TestNanFunctions_Median.test_extended_axis_invalid  sj    GGM"iqr:iqw?iqq9iqv>j",,?r4   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(  r   r9   infr   r   r
   r`   float32r  )r;   r,  r>  arn  js         r1   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rI   N)rJ   rK   rL   rM   r~   r   rl   rm   rn   filterwarningsr  r   r&  r   _TYPE_CODESr   r8  r   r:  rB  rp   rI   r4   r1   r  r  F  s    "26 [[
  	 [[ EF. G	."&$> *
 [[V\2[[Wk2+ 3 3+2%(@,Br4   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
\R                  R                  SSS/5      S 5       rS r\R                  R                  SSS/5      \R                  R                  SSS/5      S 5       5       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 / S!Q5      S" 5       r\R                  R                  S/ S#Q5      S$ 5       rS%rg&)'TestNanFunctions_Percentilei  c                 z    [         R                  5       n[        R                  " US5        [	        U[         5        g )N   )rx   ry   r9   rb   r
   r  s     r1   r~   )TestNanFunctions_Percentile.test_mutation  s'    zz|
r"T5!r4   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  r5  r  r7  r  r  r  r   )r9   r   rc   rb   r	   r   r  r  r   r   r   rF  r   r  r   r(  r   r
   r  s           r1   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r\  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  r7  c              3   P   >#    U  H  oT;   a  S OTR                   U   v   M     g7fr  r  r  s     r1   r  @TestNanFunctions_Percentile.test_keepdims_out.<locals>.<genexpr>J  r  r  Tr  )r9   r  r  r   r   r   rF  r   r  r   r   r  r*   rb   r
   )	r;   r\  r   r   r  r   r  r  r   s	          @@r1   r  -TestNanFunctions_Percentile.test_keepdims_out4  s     GGM"IIX&!''):1d7)CCHHRWWff%(<qvvI,T166:I L=B166]L LIHHQK)+	hhy!!!!QDcJ}}V\\9-r4   weightedFTc                    [         R                  R                  SS5      n[         R                  " USS/[         R                  SS9n[         R
                  " S5      nU(       a3  [         R                  " U5      SS.n[         R                  " U5      SS.nO[        5       n[        5       n[         R                  " US4S	S0UD6n[         R                  " US4SUS
.UD6n[        X5        [        X5        [         R
                  " S5      n[         R                  " US4S	S 0UD6n[         R                  " US4S US
.UD6n[        X5        [        X5        [         R                  " US4SUS
.UD6n[        X5        [        X5        g )Nr   r   r   r   r   inverted_cdfweightsmethodr"   r   r   rI   r  )r9   r  r  r  r   r   r  dictrc   rb   r   )	r;   rS  r   r  r   w_args
nan_w_argsr   r   s	            r1   r   $TestNanFunctions_Percentile.test_outS  s[   iinnQ"))C!Qa8!!#c!2nMF<<0NJ VFJmmC6!6v6wMM*MC(C%"mmC9$9&9R
"
2<
 	C(C%R
$&
4>
 	C(C%r4   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   rb  r  F)r9   r   r   r^  rb   r;   arr_cs     r1   test_complex(TestNanFunctions_Percentile.test_complexr  sq    7sCi!1!15#>7sCi!1!15#>7sCi!1!15#>r4   use_outc                    U(       a4  [        [        R                  SS9n[        [        R                  SS9nS nO#[        R                  n[        R                  nS n[         Vs/ s H  oc" USU" U5      S9PM     nnU(       a  [        R
                  " U5      OS nU" [        SSU" [        5      US9n	[        X5        [        R                  " [         Vs/ s H  nU" US	U" U5      S9PM     sn5      nU(       a  [        R
                  " U5      OS nU" [        S	SU" [        5      US9n	[        X5        g s  snf s  snf )
NrU  rX  c                 .    [         R                  " U 5      $ r8   )r9   r  r   s    r1   gen_weightsCTestNanFunctions_Percentile.test_result_values.<locals>.gen_weights  s    ||A&r4   c                     g r8   rI   ri  s    r1   rj  rk    s    r4   r  )rW  r   )r   rW  r   )r  b   )	r   r9   rc   rb   r   
empty_likerx   r   	transpose)
r;   rS  re  rc   rb   rj  r   r   r   r   s
             r1   r   .TestNanFunctions_Percentile.test_result_valuesz  s     ~FJ#B$4$4^LM' J,,M CHH%Qz!RQ8%H$+bmmC E2A$/$6CAC%ll%*,%* 'q(KNK%*, -$+bmmC E8!$/$6CAC% I,s   'D<Er   r   Floatr   r   r   r   r5   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   rl   r   r   r   r   r9   rb   r   r   r   r;   r   r   r   r   s        r1   r   (TestNanFunctions_Percentile.test_allnans  s     

aKKDE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)Nr5  r6  Tr   r   (   r   r   r   r7  )r9   r   r   r   r   r	   r   rb   r   r   r   r   r   r
   r0  s       r1   r8  &TestNanFunctions_Percentile.test_empty  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
   r9   rb   r	  r	   isscalar)r;   r@  rs      r1   r   'TestNanFunctions_Percentile.test_scalar  sT    R%%b#.3IIaLQ+QAr4   c                 f   [         R                  " S5      n[        [        [         R                  USSS9  [        [        [         R                  USSS9  [        [        [         R                  USSS9  [        [        [         R                  USSS9  [        [
        [         R                  USSS9  g )	Nr  r  r5  r\  r   r6  r  r7  r8  )r9   r  r   r   rb   r2  r9  s     r1   r:  6TestNanFunctions_Percentile.test_extended_axis_invalid  s~    GGM"i!1!11Ci!1!11Hi!1!11Bi!1!11Gj""2"2AHr4   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{  )
r9   r  r   r   r(  r   rc   rb   r
   r   )r;   percr   r  	large_matr   keepdimr,  r.  nan_valmegamats              r1   test_multiple_percentiles5TestNanFunctions_Percentile.test_multiple_percentiles  s<   Cyggfo&&3,GGI&	!"	!QqUA+!Q(q  D(&(CJJ~/JK--OC ..w48?AG 		:--	d18:C ..yT8?AG . )( ) ! '','W8>>		
 )(s   =BE&&
E6
nan_weight)r   r   r   r   Zbtic                     S[         R                  SS/n[         R                  " S5      n[         R                  " USSS9n[	        XC5        SUSS/n[         R                  " USUSS	9n[	        Xc5        g )
Nr   r   r   r   r|  rU  rg  r   rV  )r9   r   float64rb   r
   )r;   r  r$  r  q_unweightedr   
q_weighteds          r1   test_nan_value_with_weight6TestNanFunctions_Percentile.test_nan_value_with_weight  sk    1C''2nE\* *c3'%%aQ~N
Z(r4   r   r   r   c           	         [         R                  R                  S5        [         R                  R                  SS9nUR                  5       n[         R                  U[         R
                  " S5      [         R
                  " S5      S4'   [         R                  " / SQ/ SQ/5      n[         R                  " U5      nSU[         R                  " U5      '   [         R                  " X$XSS	9n[         R                  " X4USS
9n[        Xv5        SU[         R                  " U5      '   [         R                  " X4XSS	9n[        X5        [         R                  " U5      n	[         R                  " X4XU	SS9n
XL d   e[        X5        g )Nr   )r  c   r   r  r  r   )g      4@g      I@rI  )rL  !   P   rU  )r   rW  rX  )r   rX  r  )r   rW  r   rX  )r9   r  seedry   r   r	  r   r  r   rc   rb   r
   rn  )r;   r   x_no_nanr$  prW  
p_expectedp_unweighted
p_weightedr   r   s              r1   test_nan_value_with_weight_ndim;TestNanFunctions_Percentile.test_nan_value_with_weight_ndim  s:    			q99###6 MMO-/VV"))B-2
)*HHnl34 ,,q/
  !]]dNL
 ''tN4 	\.$%%t^E
Z,mmJ't#nN zzS%r4   rI   N)rJ   rK   rL   rM   r~   r   rl   rm   rn   rD  r  r   rc  r   r9   r  r   r   r   r   r8  r   r:  r  r  r  rp   rI   r4   r1   rG  rG    s   "2: [[S1q!f+.[[
  	 [[ EF. G	 /.& [[Z%7& 8&<? [[Z%7[[Y6& 7 8&8 [[V\2[[Wbll7&;<[[W

' $<  (	 = 3(% I
8 [[\+>?	) @	) [[VY/%& 0%&r4   rG  c            
          \ rS rSr\R
                  R                  SSS/5      S 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g)TestNanFunctions_Quantilei  rS  FTc           	      Z   [         R                  " S5      R                  SSS5      R                  [        5      n[         R
                  US   S'   U(       a  [         R                  " U5      SS.nO
[        5       n[        [         R                  " U4S	S
0UD6[         R                  " U4S	S0UD65        [        [         R                  " U4S
SS.UD6[         R                  " U4SSS.UD65        [        [         R                  " U4S
SS.UD6[         R                  " U4SSS.UD65        [        [         R                  " U4S
/SS.UD6[         R                  " U4S/SS.UD65        [        [         R                  " U4/ SQSS.UD6[         R                  " U4/ SQSS.UD65        g )N   r   r   r  r   r   rU  rV  r\  rb  r|  r  )      ?rb        ?)   r|  K   )r9   r	  r  r   floatr   r  rY  r
   rd   rb   )r;   rS  r
  rZ  s       r1   test_regression)TestNanFunctions_Quantile.test_regression  sy   YYr]""1a+2259661a!#b!1^LFVFR^^B8#88%%b9B9&9	;R^^B@#A@@%%bABQA&A	CR^^B@#A@@%%bABQA&A	CR^^BB3%aB6B%%bCRDqCFC	ER^^BN*;!NvN%%bKLqKFK	Mr4   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  rb  r   r   r   g      @g      ?)r9   r	  r
   rd   )r;   r$  s     r1   
test_basic$TestNanFunctions_Quantile.test_basic-  sS    IIaL3R^^Aq)2.R^^Aq)3/R^^As+T2r4   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 r^  )r9   r   r   r^  rd   ra  s     r1   rc  &TestNanFunctions_Quantile.test_complex3  sk    7sCi<7sCi<7sCi<r4   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   r  r  rb  r   g      Y@midpointrg  )r9   r   ry   rd   r	  r   tolist)r;   p0r  s      r1   test_no_p_overwrite-TestNanFunctions_Quantile.test_no_p_overwrite;  sr    XX/0GGI
ryy*=1!YY[HHJ
ryy*=1!r4   r   r   r   rq  r   r   r   r   r5   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   rl   r   r   r   r   r9   rd   r   r   r   rt  s        r1   r   &TestNanFunctions_Quantile.test_allnansG  s     

aKKDEU#\\.0KL..5C Mxx}  """"yyEKK''' MLrv  rI   N)rJ   rK   rL   rM   rl   rm   rn   r  r  rc  r  r9   r  r   r   r   r   rp   rI   r4   r1   r  r    s     [[Z%7M 8M&3=
" [[V\2[[Wbll7&;<[[W

' $<  (	 = 3(r4   r  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   rE  T)r9   r*   r   r  r   r
   r   r   )r   expectedr   actuals       r1   test__nan_maskr  W  sV    " bhhsyy893(V& >+T>!> :r4   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)FFTr  r  )r9   r  int32int64r   r   r?  r  r   r
   r   r   )r   r   r  maskarr_nan
result_nanmask_nans          r1   test__replace_nanr  r  s4    ''288RXX.hh1vU+#C+||}} / **bjj)hh1vU+#C+""$$$$   V!((Aq"&&>7+GQ7
Xrxx(<=>(((Z)!45xx$$$$ *r4   )8r   rl   r%   	functoolsr   numpyr9   numpy._core.numericr   numpy.exceptionsr   r   numpy.lib._nanfunctions_implr   r   numpy.testingr	   r
   r   r   r   r   r   r   r   rx   r   r  r  r!   rt   r"  _TEST_ARRAYSr(   _vsetflagsrm   rn   r  keysrR  rp  r  r  r  _TIME_UNITSr   rE  r  rG  r  r>  r  	complex64r  r  )units   0r1   <module>r     s        4 6 @   	6266662666B7BFFFFFC6626626662667C26626666266BD 	E 
2	3	;	<	67#	$	*	+	- XXAE<>@ A
 hhBF=?A B,
 ,
^m% m%`]$ ]$D ((1+
(((
) 


BKKeK   LLj!99C?  3 3 5<;L;L;NOR/ R/ P	
R/jf1 f1R8$; 8$vF."> F.RB*"> B*H
 2<<
+, +6+$#dV1+6 6FB FBRD& D&N?( ?(B XXrvvsBFFBFF+,XX()+ XXl"((+	 XX()	 XX}!(*6XXt}t}  +  "! "%_ 7s   N9