
    Bwg`                        d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
mZ d dlmZmZ d dlmZmZmZmZmZmZmZ  ej.                  dej0                  dd	ej0                  d
gddej0                  dddgej0                  ej0                  ej0                  dej0                  dgdej0                  ej0                  ddej0                  gg      Z ej.                  g d       ej.                  g d       ej.                  ddg       ej.                  g d      gZ ej.                  g dg dg dg dg      Z ej.                  g dg dg dg dg      Z G d  d!      Z G d" d#      Z G d$ d%      Z ej.                  d&       ej.                  g d'      d(Z e jC                         D ]  Z"e"jG                  d)*        ejH                  jK                  d+ejL                  d,   ejL                  d-   z   d.z         ejH                  jK                  d/e jC                         e jO                         0       G d1 d2                    Z( G d3 d4      Z) G d5 d6e)      Z* G d7 d8e)      Z+ G d9 d:e)      Z,d;Z- e.ejL                  d-         Z/e/e-D  cg c]  } d<|  d=
 c} z  Z/ G d> d?      Z0 G d@ dA      Z1 G dB dC      Z2ejH                  jK                  dD ej.                  ej0                  dEej0                  ejf                  g       ej.                  g dF      f ej.                  g dGejh                  H      dIf ej.                  g dF      dIf ej.                  ej0                  dEgej0                  ejf                  ggejj                  H       ej.                  d)dIgd)dIgg      fg      dJ        Z6dK Z7yc c} w )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                   8   e Zd Zej                  ej
                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                   ej"                  ej$                  ej&                  ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  iZ e D  cg c]  }|j                    c}} Z!e"dd       Z#e$jJ                  jM                  de jO                         e!      d        Z(d Z)yc c}} w )TestSignatureMatchc                 J   g }t        j                  |       }|j                  j                         D ][  }|j                  t         j
                  j                  u r|j                  |       ;|j                  |j                  |             ] t        j                  |      S )z?Construct a signature and replace all default parameter-values.)default)
inspect	signature
parametersvaluesr#   	Parameteremptyappendreplace	Signature)funcr#   prm_listr%   prms        X/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/lib/tests/test_nanfunctions.pyget_signaturez TestSignatureMatch.get_signature=   s     %%d+	''..0 	>C{{g//555$G <=		>
   **    znan_func,funcidsc                     | j                  |      }| j                  |      }t        j                  j                  ||       y N)r1   nptestingr
   )selfnan_funcr-   r%   nan_signatures        r0   test_signature_matchz'TestSignatureMatch.test_signature_matchI   s8    
 &&t,	**84


	=9r2   c                     t         j                  j                  t        | j                        t        t         j
                  j                  j                               y)z4Validate that all nan functions are actually tested.N)r7   r8   r
   setIDSlib_nanfunctions_impl__all__r9   s    r0   test_exhaustivenessz&TestSignatureMatch.test_exhaustivenessR   s6    


M3rvv88@@A	
r2   N)z...)*__name__
__module____qualname__r7   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?   staticmethodr1   pytestmarkparametrizeitemsr<   rD   ).0ks   00r0   r!   r!   *   s%   
		277
		277
bii
bii
		266


BGG
bii
rzz


BGG
bii
"--

		266
		266H   (
(!1::
(C	+ 	+ [[_hnn.>CH: I:
/ )s    Fr!   c            
          e Zd Zej                  ej
                  gZej                  ej                  gZ	d Z
d Zd Zd Zd Zej                   j#                  dg d      ej                   j#                  dej$                  d	         ej                   j#                  d
 ej&                  ej(                         ej*                  dej(                        gddg      d                      Zd Zd Zd Zd Zej                   j#                  dej$                  d	         d        Zej                   j#                  dej$                  d	         d        Zy)TestNanFunctions_MinMaxc                 ~    t         j                         }| j                  D ]  } ||       t        |t                 y r6   _ndatcopynanfuncsr
   r9   ndatfs      r0   test_mutationz%TestNanFunctions_MinMax.test_mutation^   1    zz| 	&AdGu%	&r2   c                     t        j                  d      }t        | j                  | j                        D ]D  \  }}dD ]:  } |||d      } |||d      }t        |j                  |j                  k(         < F y N   Nr      Taxiskeepdimsr7   eyeziprr   stdfuncsr	   ndimr9   matnfrfr~   tgtress          r0   test_keepdimsz%TestNanFunctions_MinMax.test_keepdimse   q    ffQi$--7 	.FB$ .4$74$7CHH,-.	.r2   c                    t        j                  d      }t        | j                  | j                        D ]G  \  }}t        j
                  d      } ||d      } ||d|      }t        ||       t        ||       I y Nrz   r|   r~   r~   outr7   r   r   rr   r   zerosr   r9   r   r   r   resoutr   r   s          r0   test_outz TestNanFunctions_MinMax.test_outm   k    ffQi$--7 	*FBXXa[FSq/CSqf-CV,S)	*r2   c                    d}t        | j                  | j                        D ]  \  }}|D ]  }t        j                  d|      } ||d      j
                  j                  } ||d      j
                  j                  }t        ||u         ||d       j
                  j                  } ||d       j
                  j                  }t        ||u          y )NefdgFDGrz   dtyper|   r   r   rr   r   r7   r   r   typer	   r9   codesr   r   cr   r   r   s           r0   test_dtype_from_inputz-TestNanFunctions_MinMax.test_dtype_from_inputv   s    $--7 		$FB $ffQa(1o++001o++00s
#4(..334(..33s
#$		$r2   c                     t        | j                  | j                        D ]8  \  }}t        D cg c]
  } ||       }} |t        d      }t        ||       : y c c}w Nr|   r   r   rr   r   _rdatrp   r   r9   r   r   dr   r   s         r0   test_result_valuesz*TestNanFunctions_MinMax.test_result_values   T    $--7 	*FB"'(Q2a5(C(U#CS)	*(   Ar~   r{   r   AllFloatarrayrz   rz   0d2dr3   c                    |$|j                   dk(  rt        j                  d       |j                  |      }d}| j                  D ]p  }t        j
                  t        |      5   |||      }d d d        t        j                        j                         sJ |j                  |j                  k(  rpJ  y # 1 sw Y   LxY wNr   *`axis != None` not supported for 0d arraysAll-NaN slice encounteredmatchr   )r   rf   skipastyperr   warnsRuntimeWarningr7   isnanallr   r9   r~   r   r   r   r-   r   s          r0   test_allnansz$TestNanFunctions_MinMax.test_allnans   s     

aKKDEU#+MM 	,DnE: -5t,-88C=$$&&&99+++		,- -s   $B::C	c                 x   t         j                  j                  t              }|j                  j                         }t         j                  fD ]i  } ||d      } |t        d      }t        ||       t        |j                  |       t        t        j                  |      j                                 k y r   )r7   mafix_invalidrp   _maskrq   rH   r
   r	   isinfany)r9   r   mskru   r   r   s         r0   test_maskedz#TestNanFunctions_MinMax.test_masked   s    ee&iinn)) 	-ACa.CE"Cc"C())++,	-r2   c                 N    | j                   D ]  }t         |d      dk(          y Nr   rr   r	   r9   ru   s     r0   test_scalarz#TestNanFunctions_MinMax.test_scalar   %     	!AAbERK 	!r2   c           	      j    G d dt         j                        }t        j                  d      j                  |      }| j                  D ]  } ||d      }t        t        ||             t        |j                  dk(          ||d      }t        t        ||             t        |j                  dk(          ||      }t        |j                  dk(          t         j                  |d<   | j                  D ]  }t        j                  d	
      5 }t        j                  d        ||d      }t        t        ||             t        t        j                  t        j                  |                    t        t        |      dk(         d d d        t        j                  d	
      5 }t        j                  d        ||d      }t        t        ||             t        t        j                  |d         xr4 t        j                  |d          xr t        j                  |d                 t        t        |      dk(  d       t        t        |d   j                   t"                     d d d        t        j                  d	
      5 }t        j                  d        ||      }t        |j                  dk(         t        |t         j                  k7         t        t        |      dk(         d d d         y # 1 sw Y   }xY w# 1 sw Y   xY w# 1 sw Y   6xY w)Nc                       e Zd Zy)8TestNanFunctions_MinMax.test_subclass.<locals>.MyNDArrayNrE   rF   rG    r2   r0   	MyNDArrayr          r2   r   rz   r   r   rz   r|   r   Trecordalways   no warning raised)r7   ndarrayr   viewrr   r	   
isinstanceshapenanwarningscatch_warningssimplefilterr   r   len
issubclasscategoryr   )r9   r   mineru   r   ws         r0   test_subclassz%TestNanFunctions_MinMax.test_subclass   s}   	

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

 	 YYq\  '2A 		#A"))^cGR)D::&&&7?"?RWWY'9D::&&&7?"?		#r2   c                      G d dt         j                        }t        j                  d      j                  dd      j	                  |      }t         j
                  |dd d f<   t        j                  |t         j                        }d|d d df<   | j                  D ]m  }|t         j                  u rdnd	} |||d
      }|j                  |k(  sJ ||k(  sJ  ||j                  |      |d
      }|j                  |k(  sJ ||k(  rmJ  y )Nc                       e Zd Zy)5TestNanFunctions_MinMax.test_where.<locals>.MyNDArrayNr   r   r2   r0   r   r      r   r2   r   r   rz   r   r   F      r   wherer   )r7   r   r   reshaper   r   	ones_likeboolrr   rH   r   r   )	r9   r   r   r   r  ru   	referencer   r   s	            r0   
test_wherez"TestNanFunctions_MinMax.test_where   s    	

 	 YYq\!!!Q'..u5661a4Rrww/ad 		%A"))^IRua0D::&&&9$$$RWWY'ua@D::&&&9$$$		%r2   N)rE   rF   rG   r7   rH   rJ   rr   minmaxr   rv   r   r   r   r   rf   rg   rh   	typecodesr   r   fullr   r   r   r   r   r   r  r   r2   r0   rm   rm   Y   sL   		299%HH&.*$* [[V\2[[Wbll:&>?[[W' $<  
,	 @ 3
,-!)%V
? [[Wbll:&>?# @#$ [[Wbll:&>?% @%r2   rm   c            
       j   e Zd Zej                  ej
                  gZd Zd Ze	j                  j                  dg d      e	j                  j                  dej                  d         e	j                  j                  d ej                  ej                         ej                  dej                        gd	d
g      d                      Zd Zd Zd Ze	j                  j                  dej                  d         d        Ze	j                  j                  dej                  d         d        Zy)TestNanFunctions_ArgminArgmaxc                 ~    t         j                         }| j                  D ]  } ||       t        |t                 y r6   ro   rs   s      r0   rv   z+TestNanFunctions_ArgminArgmax.test_mutation  rw   r2   c                    t        | j                  t        j                  t        j                  g      D ]  \  }}t
        D ]  }t               5 }|j                  t        d        ||      }||   }t        t        j                  |              t         |||      j                                 t        t        j                  ||d |       j                                 d d d          y # 1 sw Y   xY w)Nzinvalid value encountered in)r   rr   r7   greaterlessrp   r   filterr   r	   r   r   equal)r9   ru   fcmprowsupindvals          r0   r   z0TestNanFunctions_ArgminArgmax.test_result_values  s    4==2::rww*?@ 
	@GAt 	@&( @CJJ~/MNC&Cc(C -.S# 2 2 445c$3i 8 < < >>?@ @	@
	@@ @s   BC00C9r~   r{   r   r   r   r   r   r   r3   c                    |$|j                   dk(  rt        j                  d       |j                  |      }| j                  D ]0  }t        j
                  t        d      5   |||       d d d        2 y # 1 sw Y   =xY wr   )r   rf   r   r   rr   raises
ValueError)r9   r~   r   r   r-   s        r0   r   z*TestNanFunctions_ArgminArgmax.test_allnans!  su     

aKKDEU#MM 	'Dz1LM 'U&' '	'' 's   "A88B	c           	          t        j                  d      }| j                  D ]M  }dD ]  }t        t        d|||        dD ]+  } |||      }t        |t        j                  d             - O y )Nr   rz   r   Nz*attempt to get argm.. of an empty sequencer   r|   r   )r7   r   rr   r   r  r
   )r9   r   ru   r~   r   s        r0   
test_emptyz(TestNanFunctions_ArgminArgmax.test_empty0  sv    hhv 	/A! +#"D3T++
  /$'S"((1+./	/r2   c                 N    | j                   D ]  }t         |d      dk(          y r   r   r   s     r0   r   z)TestNanFunctions_ArgminArgmax.test_scalar<  r   r2   c                     G d dt         j                        }t        j                  d      j                  |      }| j                  D ]  } ||d      }t        t        ||             t        |j                  dk(          ||d      }t        t        ||             t        |j                  dk(          ||      }t        |j                  dk(          y )	Nc                       e Zd Zy)>TestNanFunctions_ArgminArgmax.test_subclass.<locals>.MyNDArrayNr   r   r2   r0   r   r#  A  r   r2   r   rz   r   r   r   r|   r   )r7   r   r   r   rr   r	   r   r   )r9   r   r   ru   r   s        r0   r   z+TestNanFunctions_ArgminArgmax.test_subclass@  s    	

 	
 vvay~~i( 	%ADq/CJsI./CII%&Dq/CJsI./CII%&D'CCIIO$	%r2   c                    t        j                  d      j                  |      }t         j                  |d d | j                  D ]D  }|t         j
                  u rdnd} ||d      }|j                  |j                  k(  sJ ||k(  rDJ  y )Nr   r   r   T)r   )r7   r   r   r   rr   rL   r   r9   r   r   ru   r  rets         r0   r   z+TestNanFunctions_ArgminArgmax.test_keepdimsQ  s~    YYq\  '2A 	$A",,.AIB&C88rww&&&)###		$r2   c                 8   t        j                  d      j                  |      }t         j                  |d d | j                  D ]T  }t        j
                  dt         j                        }|t         j                  u rdnd} |||      }||u sJ ||k(  rTJ  y )Nr   r   r   r   r   r   )r7   r   r   r   rr   r   intprL   )r9   r   r   ru   r   r  r&  s          r0   r   z&TestNanFunctions_ArgminArgmax.test_out\  s    YYq\  '2A 	$A((2RWW-C",,.AIBC.C#::)###	$r2   N)rE   rF   rG   r7   rL   rN   rr   rv   r   rf   rg   rh   r	  r   r   r
  r   r  r   r   r   r   r   r2   r0   r  r  	  s&   bll+H&@ [[V\2[[Wbll:&>?[[W' $<  '	 @ 3'
/!%" [[Wbll:&>?$ @$ [[Wbll:&>?	$ @	$r2   r  r   )   '   ]   W   .   )r   1dF)writer   
AllIntegerr   Or   r3   c                      e Zd Zej                  ej
                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                   ej"                  ej$                  ej&                  ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  iZeD  cg c]  }|j                    c}} Zej>                  jA                  dejC                         e       ejD                  d      d               Z#ej>                  jA                  dejH                  ejJ                  fejL                  ejN                  fgddg      d        Z(ej>                  jA                  dej0                  ej2                  fej4                  ej6                  fgd	d
g      d        Z)ej>                  jA                  dej0                  ej4                  g      d        Z*yc c}} w )TestNanFunctions_NumberTypesznanfunc,funcr3   ignore)overc                     |j                  |      } ||      } ||      }t        ||       |dk(  rt        |      t        |      u sJ y |j                  |j                  k(  sJ y )Nr2  r   r   r   r   r9   r   r   nanfuncr-   r   r   s          r0   test_nanfuncz)TestNanFunctions_NumberTypes.test_nanfunc  sa     jj3iclC%C<9S	)))99		)))r2   r^   r\   c                 X   |j                  |      }|j                  j                  dk(  r't        t        ||d       t        t        ||d       y  ||d      } ||d      }t        ||       |dk(  rt        |      t        |      u sJ y |j                  |j                  k(  sJ y )Nr   r|   )qr2  )r   r   kindr   	TypeErrorr   r   r9  s          r0   test_nanfunc_qz+TestNanFunctions_NumberTypes.test_nanfunc_q  s     jj99>>S )T3!4)WcQ7 sa.C##CS)|CyDI---yyCII---r2   r`   rb   c                     |j                  |      } ||d      } ||d      }t        ||       |dk(  rt        |      t        |      u sJ y |j                  |j                  k(  sJ y )N      ?ddofr2  r8  r9  s          r0   test_nanfunc_ddofz.TestNanFunctions_NumberTypes.test_nanfunc_ddof  sg     jj3S!c$C%C<9S	)))99		)))r2   r:  c                 "   |j                  |      }t         ||d       ||d             d}t        t        |      5   ||dd       d d d        t        t        |      5   ||dd       d d d        y # 1 sw Y   .xY w# 1 sw Y   y xY w)NrB  )
correctionrC  z5ddof and correction can't be provided simultaneously.)rD  rG  r|   r   )r   r   r   r  )r9   r   r   r:  err_msgs        r0   test_nanfunc_correctionz4TestNanFunctions_NumberTypes.test_nanfunc_correction  s     jjCC('#C*@	
 J W5 	3Ccc2	3 !W5 	/CaA.	/ 	/	3 	3	/ 	/s    A9$B9BBN)+rE   rF   rG   r7   rH   r  rJ   r  rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r`   ra   rb   rc   rr   nanfunc_idsrf   rg   rh   ri   errstater;  r^   r_   r\   r]   r@  rE  rI  )rj   is   00r0   r4  r4  r  s    			266
		266
bii
bii
		266


BGG
bii
rzz


BGG
bii
		266
		266H (00!1::0K[[^X^^-=;OR[[h	*   P	* [[
.."++	&)9)92==(IJO,  
.
." [[
))RVV	ryy"&&12x   
	*
	* [[BIIryy)//q 1s   Ir4  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)SharedNanFunctionsTestsMixinc                 ~    t         j                         }| j                  D ]  } ||       t        |t                 y r6   ro   rs   s      r0   rv   z*SharedNanFunctionsTestsMixin.test_mutation  rw   r2   c                     t        j                  d      }t        | j                  | j                        D ]D  \  }}dD ]:  } |||d      } |||d      }t        |j                  |j                  k(         < F y ry   r   r   s          r0   r   z*SharedNanFunctionsTestsMixin.test_keepdims  r   r2   c                    t        j                  d      }t        | j                  | j                        D ]G  \  }}t        j
                  d      } ||d      } ||d|      }t        ||       t        ||       I y r   r   r   s          r0   r   z%SharedNanFunctionsTestsMixin.test_out  r   r2   c           	         t        j                  d      }d}t        | j                  | j                        D ]?  \  }}|D ]3  }t               5 }|t         j                  t         j                  hv r|dv r|j                  t                ||t        j                  |      d      j                  j                  } ||t        j                  |      d      j                  j                  }t        ||u         ||t        j                  |      d       j                  j                  } ||t        j                  |      d       j                  j                  }t        ||u        d d d        6 B y # 1 sw Y   ExY wNrz   r   FDGr|   )r   r~   r7   r   r   rr   r   r   rb   r`   r  r   r   r   r	   	r9   r   r   r   r   r   r  r   r   s	            r0   test_dtype_from_dtypez2SharedNanFunctionsTestsMixin.test_dtype_from_dtype  s.   ffQi$--7 	(FB (&( 
(Cbii33U


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

>2S288==CS288==CC3J'S5;;@@CS5;;@@CC3J'
( 
((	(
( 
(s   CD,,D5c           	         d}t        | j                  | j                        D ]  \  }}|D ]  }t        j                  d|      } ||d      j
                  j                  } ||d      j
                  j                  }t        ||u d|d|        ||d       j
                  j                  } ||d       j
                  j                  }t        ||u          y )Nr   rz   r   r|   r   zres z, tgt r   r   s           r0   r   z2SharedNanFunctionsTestsMixin.test_dtype_from_input  s    $--7 		$FB $ffQa(1o++001o++00s
S$AB4(..334(..33s
#$		$r2   c                     t        | j                  | j                        D ]8  \  }}t        D cg c]
  } ||       }} |t        d      }t        ||       : y c c}w r   r   r   s         r0   r   z/SharedNanFunctionsTestsMixin.test_result_values  r   r   c                 N    | j                   D ]  }t         |d      dk(          y r   r   r   s     r0   r   z(SharedNanFunctionsTestsMixin.test_scalar  r   r2   c                 ^    G d dt         j                        }t        j                  d      }|j                  |      }| j                  D ]  } ||d      j
                  } ||d      }t        t        ||             t        |j
                  |k(          ||d      j
                  } ||d      }t        t        ||             t        |j
                  |k(          ||      j
                  } ||      }t        t        ||             t        |j
                  |k(          y )Nc                       e Zd Zy)=SharedNanFunctionsTestsMixin.test_subclass.<locals>.MyNDArrayNr   r   r2   r0   r   r_    r   r2   r   rz   r   r   r|   )r7   r   r   r   rr   r   r	   r   )r9   r   r   r   ru   expected_shaper   s          r0   r   z*SharedNanFunctionsTestsMixin.test_subclass  s    	

 	
 q	zz)$ 	1Au1-33NDq/CJsI./CII/0u1-33NDq/CJsI./CII/0uX^^ND'CJsI./CII/0	1r2   N)rE   rF   rG   rv   r   r   rW  rY  r   r   r   r   r   r2   r0   rN  rN    s/    &.*("("$*!1r2   rN  c            
          e Zd Zej                  ej
                  gZej                  ej                  gZ	e
j                  j                  dg d      e
j                  j                  dej                  d         e
j                  j                  d ej                  ej                         ej                   dej                        gddg	      d
                      Zd Ze
j                  j                  dej                  d         d        Ze
j                  j                  dej                  d         d        Zy)TestNanFunctions_SumProdr~   r{   r   r   r   r   r   r   r3   c                 0   |$|j                   dk(  rt        j                  d       |j                  |      }t	        | j
                  ddg      D ]D  \  }} |||      }t        j                  ||k(        sJ |j                  |j                  k(  rDJ  y )Nr   r   r|   r   	r   rf   r   r   r   rr   r7   r   r   r9   r~   r   r   r-   identityr   s          r0   r   z%TestNanFunctions_SumProd.test_allnans:  s     

aKKDEU#!$--!Q8 	,ND(u4(C66#/***99+++	,r2   c                 .   t        t        j                  t        j                  gddg      D ]f  \  }}t        j                  d      }|gdz  } ||d      }t        ||       g } ||d      }t        ||       |} ||d       }t        ||       h y )Nr   r|   r  rz   r   )r   r7   rP   rR   r   r
   r9   ru   	tgt_valuer   r   r   s         r0   r  z#TestNanFunctions_SumProd.test_emptyJ  s    BJJ 7!Q@ 
	#LAy((6"C+a-CCa.Cc"CCa.Cc"CCd#Cc"
	#r2   c                    t        j                  d      j                  |      }t         j                  |d d | j                  D ]:  }|t         j
                  u rdnd} ||d      }|j                  |k(  sJ ||k(  r:J  y )Nr   r      i   r   r   )r7   r   r   r   rr   rP   r   r%  s         r0   r   z%TestNanFunctions_SumProd.test_initialW  sy    YYq\  '2A 	$A299n$IB"C99%%%)###		$r2   c                    t        j                  d      j                  dd      j                  |      }t         j                  |dd d f<   t        j
                  |t         j                        }d|d d df<   | j                  D ];  }|t         j                  u rdnd} |||d	      }|j                  |k(  sJ ||k(  r;J  y )
Nr   rz   r   r   F   i  r   r   )
r7   r   r  r   r   r  r  rr   rP   r   )r9   r   r   r  ru   r  r&  s          r0   r  z#TestNanFunctions_SumProd.test_whereb  s    YYq\!!!Q'..u5661a4Rrww/ad 	$A299n$IBeQ/C99%%%)###		$r2   N)rE   rF   rG   r7   rP   rR   rr   rQ   rS   r   rf   rg   rh   r	  r   r   r
  r   r  r   r  r   r2   r0   rb  rb  5  s!   		2::&H H[[V\2[[Wbll:&>?[[W' $<  ,	 @ 3,# [[Wbll:&>?$ @$ [[Wbll:&>?
$ @
$r2   rb  c            
          e Zd Zej                  ej
                  gZej                  ej                  gZ	e
j                  j                  dg d      e
j                  j                  dej                  d         e
j                  j                  d ej                  ej                         ej                   dej                        gddg	      d
                      Zd Zd Zd Zd Zy)TestNanFunctions_CumSumProdr~   r{   r   r   r   r   r   r   r3   c                 ,   |$|j                   dk(  rt        j                  d       |j                  |      }t	        | j
                  ddg      D ]B  \  }} ||      }t        j                  ||k(        sJ |j                  |j                  k(  rBJ  y )Nr   r   r|   rd  re  s          r0   r   z(TestNanFunctions_CumSumProd.test_allnansu  s     

aKKDEU#!$--!Q8 	,ND(u+C66#/***99+++	,r2   c                 P   t        | j                  ddg      D ]  \  }}t        j                  d      }|t        j                  d      z  } ||d      }t        ||       |} ||d      }t        ||       t        j                  d      } ||d       }t        ||        y )Nr   r|   r  r   )r   rr   r7   r   onesr
   rh  s         r0   r  z&TestNanFunctions_CumSumProd.test_empty  s    1v6 
	#LAy((6"CBGGFO+CCa.Cc"CCa.Cc"((1+CCd#Cc"
	#r2   c                    t        | j                  | j                        D ]Y  \  }}t        j                  d      }dD ]:  } |||d       } |||d       }t        |j                  |j                  k(         < [ | j                  D ]  }t        j                  d      }t        j                  j                  d      }t        j                  | |j                  |j                   dk  <    ||d       }t        |j                  d       t        j                  d	      D ]"  } |||      }t        |j                  d       $  y )
Nrz   r{   r   rz   r         r   rB  r   )i  r   )r   rr   r   r7   r   r	   r   rr  randomRandomStater   randr   r
   r   )	r9   ru   gr   r~   r   r   r   rss	            r0   r   z)TestNanFunctions_CumSumProd.test_keepdims  s   t}}5 	.DAq&&)C$ .$D1$D1CHH,-.	.  		7A&A&&q)B)+Agbggqww#%&AD/CG,		! 7oSYY67		7r2   c                    dD ]  }t        j                  t        |      }t        j                  t        |      }t        ||       t        j                  t        |      }t        j                  t        |      }t        ||        y )N)r   r|   Nr   )	r7   rW   
_ndat_onesrV   rp   r   rU   _ndat_zerosrT   )r9   r~   r   r   s       r0   r   z.TestNanFunctions_CumSumProd.test_result_values  se    ( 	*D**Zd3C--D1CS)))KT2C,,u40CS)	*r2   c                    t        j                  d      }t        | j                  | j                        D ]N  \  }}t        j                  d      }dD ]/  } |||      } ||||      }t        ||       t        ||       1 P y )Nrz   )r}  r~  r   r|   r   r   )r7   r   r   rr   r   r   )r9   r   r   r   r   r~   r   r   s           r0   r   z$TestNanFunctions_CumSumProd.test_out  s{    ffQi$--7 	.FBVVAYF& .4(4V4#C0#C-	.	.r2   N)rE   rF   rG   r7   rT   rV   rr   rU   rW   r   rf   rg   rh   r	  r   r   r
  r   r  r   r   r   r   r2   r0   ro  ro  p  s    bmm,H		2::&H[[V\2[[Wbll:&>?[[W' $<  ,	 @ 3,#7&*.r2   ro  c            
       n   e Zd Zej                  ej
                  ej                  gZej                  ej                  ej                  gZd Zd Zd Zd Zej"                  j%                  dg d      ej"                  j%                  dej&                  d         ej"                  j%                  d	 ej(                  ej*                         ej,                  d
ej*                        gddg      d                      Zd Zej"                  j%                  dej&                  d         d        Zd Zy)TestNanFunctions_MeanVarStdc           	          | j                   D ]N  }t        j                  t        j                  t        j                  fD ]  }t        t        |t        d|        P y )Nr|   )r~   r   )rr   r7   r  int_object_r   r?  rp   )r9   ru   r   s      r0   test_dtype_errorz,TestNanFunctions_MeanVarStd.test_dtype_error  sK     	HA''277BJJ7 HiEGH	Hr2   c           	         | j                   D ]v  }t        j                  t        j                  t        j                  fD ]B  }t        j
                  t        j                  d   |      }t        t        |t        d|       D x y )Nr   r   r|   r   )
rr   r7   r  r  r  r)   rp   r   r   r?  )r9   ru   r   r   s       r0   test_out_dtype_errorz0TestNanFunctions_MeanVarStd.test_out_dtype_error  sc     	DA''277BJJ7 Dhhu{{1~U;iEsCD	Dr2   c           	      0   t         j                  t         j                  g}t         j                  t         j                  g}t        ||      D ]B  \  }}dD ]8  }t        D cg c]  } |||       }} |t        d|      }t        ||       : D y c c}w )Nr   r|   rC  r|   r~   rD  )	r7   r`   rb   ra   rc   r   r   rp   r   )	r9   rr   r   r   r   rD  r   r   r   s	            r0   	test_ddofz%TestNanFunctions_MeanVarStd.test_ddof  s    IIryy)FFBFF#(H- 	.FB .167Ar!$'77QT2#C-.	.7s    Bc                    t         j                  t         j                  g}t         j                  t         j                  g}t
        D cg c]  }t        |       }}t        ||      D ]  \  }}t        d      D ]  }t               5 }|j                  t               |j                  t               |D cg c]  }||k\  	 }	} |t        d|      }
t        t        j                   |
      |	       t#        |	      r"t%        t        |j&                        dk(         n!t%        t        |j&                        dk(         d d d          y c c}w c c}w # 1 sw Y   xY w)Nr   r|   r  r   )r7   r`   rb   ra   rc   r   r   r   ranger   r   r   r  r   rp   r
   r   r   r	   log)r9   rr   r   r   dsizer   r   rD  r  r   r   s              r0   test_ddof_too_bigz-TestNanFunctions_MeanVarStd.test_ddof_too_big  s   IIryy)FFBFF#!&'AQ''(H- 	3FBa 
3&( 	3CJJ~.JJ~..344194C4U6C #43xCGG 12CGG 12	3 	3
3	3 ( 5	3 	3s%   	E/E6E
A>EEE r~   r{   r   r   r   r   r   r   r3   c                    |$|j                   dk(  rt        j                  d       |j                  |      }d}| j                  D ]  }t        j
                  t        |      5   |||      }d d d        t        j                        j                         sJ |t        j                  u r|j                  |j                  k(  rJ |j                  t        j                  |      j                  k(  rJ  y # 1 sw Y   xY w)Nr   r   z:(Degrees of freedom <= 0 for slice.)|(Mean of empty slice)r   r   )r   rf   r   r   rr   r   r   r7   r   r   rX   r   absr   s          r0   r   z(TestNanFunctions_MeanVarStd.test_allnans  s     

aKKDEU#LMM 
	8DnE: -5t,-88C=$$&&& rzz!yyEKK///yyBFF5M$7$7777
	8- -s   $C;;D	c                    t        j                  d      }| j                  D ](  }dD ]  }t        j                  d      5 }t        j
                  d       t        t        j                   |||            j                                t        t        |      dk(         t        t        |d   j                  t                     d d d         d	D ]t  }t        j                  d      5 }t        j
                  d       t         |||      t        j                  g              t        t        |      dk(         d d d        v + y # 1 sw Y   1xY w# 1 sw Y   xY w
Nr  r  Tr   r   r   r|   r   r  )r7   r   rr   r   r   r   r	   r   r   r   r   r   r   r
   )r9   r   ru   r~   r   s        r0   r  z&TestNanFunctions_MeanVarStd.test_empty  s+   hhv 	)A! G,,D9 GQ))(3BHHQs%67;;=>CFaK(Jqt}}nEF	G GG  ),,D9 )Q))(3 3T!2BHHRLACFaK() ))	)G G) )s   BE-AEEE%c                 ,   t        j                  d      j                  dd      j                  |      }t         j                  |dd d f<   t        j
                  |t         j                        }d|d d df<   t        | j                  | j                        D ]x  \  }} |||   dd        }|t         j                  u r|n|j                  j                  } |||      }|j                  |k(  sJ t         j                  j                  ||       z y )Nr   rz   r   r   Fr   )r  )r7   r   r  r   r   r  r  r   rr   r   rX   realr   r8   assert_allclose)	r9   r   r   r  ru   f_stdr  dtype_referencer&  s	            r0   r  z&TestNanFunctions_MeanVarStd.test_where
  s    YYq\!!!Q'..u5661a4Rrww/adDMM4==9 	7HAubim,I'(BJJeBGGMMOBe$C99///JJ&&sI6	7r2   c                 J   t         j                  j                  d      }|j                  ddd      dz   }t         j                  |d d dd d f<   t        j
                  d      }t        j
                  d      }t        j                  ||dd	      }||u sJ t        j                  ||dd|
      }||u sJ |j                  |j                  k(  sJ |j                  dk(  sJ t        j                  |dd      }|j                  |j                  k(  sJ t        ||       y )Ni  
      r   rB  )r  r|   r   r|   T)r   r~   r   )r   r~   r   rY   r}   )
r7   rw  rx  randnr   r   rX   rb   r   r   )r9   rngAmean_outstd_outrY   rc   std_olds           r0   test_nanstd_with_mean_keywordz9TestNanFunctions_MeanVarStd.test_nanstd_with_mean_keyword  s   ii##D)IIb"a 3&VV!Q'
88J'((:&zz!# $& 4ii "	  #~~ yyDJJ&&&yyJ&&& ))AA5}}

***C)r2   N)rE   rF   rG   r7   rX   r`   rb   rr   rY   ra   rc   r   r  r  r  r  rf   rg   rh   r	  r   r   r
  r   r  r  r  r   r2   r0   r  r    s   

BIIryy1H(HH
D.3" [[V\2[[Wbll:&>?[[W' $<  8	 @ 38$) [[Wbll:&>?7 @7"*r2   r  )YMWDhmsmsusnspsfsaszm8[]c                   N   e Zd Zd Zd Zej                  j                  dg d      ej                  j                  d      d               Z	d Z
d	 Zd
 Zej                  j                  dg d      ej                  j                  de      d               Zd Zd Zd Zd Zy)TestNanFunctions_Medianc                 v    t         j                         }t        j                  |       t	        |t                y r6   )rp   rq   r7   rZ   r
   r9   rt   s     r0   rv   z%TestNanFunctions_Median.test_mutationH  s#    zz|
TT5!r2   c                    t        j                  d      }dD ]V  }t        j                  ||d d      }t        j                  ||d d      }t	        |j
                  |j
                  k(         X t        j                  d      }t         j                  j                  d      t        j                  |j                        d d d f   z  }|j                  t         j                        }t         j                  |t        |      <   t               5 }|j                  t                t        j                  |d d      }t#        |j                  d	       t        j                  |d
d      }t#        |j                  d       t        j                  |dd      }t#        |j                  d       t        j                  |dd      }t#        |j                  d       t        j                  |dd      }t#        |j                  d	       t        j                  |dd      }t#        |j                  d       d d d        y # 1 sw Y   y xY w)Nrz   r{   Fr~   r   overwrite_inputrt  r      Tr}   r|   r|   r|   r|   r  r|   r|   ru  rv  r  r|   r   ru  r|   r  rz   r|   ru  rv  r   r|   r   rz   r   r|   rz   r|   r|   ru  r|   )r7   r   r[   rZ   r	   r   rr  rw  r   r   r   r)  r   tupler   r  r   r
   r9   r   r~   r   r   r   r   r  s           r0   r   z%TestNanFunctions_Median.test_keepdimsN  s   ffQi  	*D))CdeLC,,s4OCCHH()	*
 GGM"IIX&!''):1d7)CCHHRWWff%(  	2CJJ~&,,qtd;CL1,,qv=CM2,,qv=CL1,,qtd;CM2,,q|dCCL1,,qy4@CL1	2 	2 	2s   D*IIr~   Nr|   r  r  )r~  argnames	argvalues#ignore:All-NaN slice:RuntimeWarningc                 h   t        j                  d      t         j                  j                  d      t        j                  j                        d d d f   z  }|j                  t         j                        }t         j                  t        |      <   |dj                  z  }n>t        |j                        t        fdt        j                        D              }t        j                  |      }t        j                  |d|      }||u sJ t        |j                  |       y )Nrt  r  r  c              3   H   K   | ]  }|v rd nj                   |     ywr|   Nr   rj   rL  	axis_normr   s     r0   	<genexpr>z<TestNanFunctions_Median.test_keepdims_out.<locals>.<genexpr>~  +      L89Q)^3L   "Tr~   r   r   )r7   rr  rw  r   r   r   r)  r   r  r   r   r  r)   rZ   r
   )r9   r~   r   	shape_outr   resultr  r   s         @@r0   test_keepdims_outz)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-r2   c                 f   t         j                  j                  dd      }t        j                  |ddgt         j                  d      }t        j
                  d      }t        j                  |d      }t        j                  |d|      }t        ||       t        ||       t        j
                  d      }t        j                  |d       }t        j                  |d |      }t        ||       t        ||       t        j                  |d|      }t        ||       t        ||       y )	Nrz   r   r   r|   r   r   r   r  )	r7   rw  ry  insertr   r   r[   rZ   r   )r9   r   nan_matr   r   r   s         r0   r   z TestNanFunctions_Median.test_out  s    iinnQ"))C!Qa8!ii!$ll77C(C%"ii$'ll76:C(C%ll7V<C(C%r2   c                    dD ]   }t         j                  j                  d|      }t         j                  j                  d|j                  |j                  dz        }t         j
                  |j                         |<   d|d d df<   g }|D ]R  }t        j                  t        j                  |       |      }|j                  t        j                  |d             T t        t        j                  |d	
      |        y )N)r   r  3   r  i  r   r   r   sizer   T)r  r~  r   )r7   rw  r  randintr  r   ravelcompressr   r*   r[   r   rZ   )r9   r  r   r   r   xnonans          r0   test_small_largez(TestNanFunctions_Median.test_small_large  s    ' 	>A		1%A		!!!QVV!&&A+!>A66AGGIaLAacFC CRXXa[L!4

299UDABC r||AB7=	>r2   c                     t         D cg c]  }t        j                  |       }}t        j                  t        d      }t        ||       y c c}w r   )r   r7   r[   rZ   rp   r   )r9   r   r   r   s       r0   r   z*TestNanFunctions_Median.test_result_values  s<    )./A299Q</C/,,u1-CS) 0s   Ar{   r   c                    t        j                  dt         j                        j                  |      }t	               5 }|j                  t               t        j                  ||      }|j                  |j                  k(  sJ t        j                  |      j                         sJ |"t        t        |j                        dk(         n!t        t        |j                        dk(         t        j                  t         j                        j                  |      d   }t        j                  |      }|j                  |j                  k(  sJ t        j                  |      sJ |"t        t        |j                        dk(         n!t        t        |j                        dk(         d d d        y # 1 sw Y   y xY w)Nr   r   r|   rz   r   r   r   )r7   r
  r   r   r   r   r   rZ   r   r   r   r	   r   r  r   )r9   r   r~   r   r  outputscalaroutput_scalars           r0   r   z$TestNanFunctions_Median.test_allnans  sG    ggfbff%,,U3  	+CJJ~&\\#D1F<<399,,,88F#'')))|CGG)*CGG)* XXbff%,,U3B7FLL0M &&&,,66688M***|CGG)*CGG)*+	+ 	+ 	+s   E3F::Gc           
         t        j                  d      }dD ]  }t        j                  d      5 }t        j                  d       t        t        j                  t        j                  ||            j                                t        t        |      dk(         t        t        |d   j                  t                     d d d         d	D ]  }t        j                  d      5 }t        j                  d       t        t        j                  ||      t        j                  g              t        t        |      dk(         d d d         y # 1 sw Y   HxY w# 1 sw Y   xY wr  )r7   r   r   r   r   r	   r   rZ   r   r   r   r   r   r
   r9   r   r~   r   s       r0   r  z"TestNanFunctions_Median.test_empty  s    hhv 	CD((5 C%%h/c!=>BBDEA!$
1Q4==.AB	C C	C  	%D((5 %%%h/R\\#D9288B<HA!$% %	%C C% %s   BE*A!E#E 	#E,	c                 F    t        t        j                  d      dk(         y r   )r	   r7   rZ   rC   s    r0   r   z#TestNanFunctions_Median.test_scalar  s    R B&'r2   c                 x   t        j                  d      }t        t        t         j                  |d       t        t        t         j                  |d       t        t        t         j                  |d       t        t        t         j                  |d       t        t
        t         j                  |d       y )Nrt  r   r   r  r   r   r   r|   r|   )r7   rr  r   r   rZ   r  r9   r   s     r0   test_extended_axis_invalidz2TestNanFunctions_Median.test_extended_axis_invalid  sj    GGM"iqr:iqw?iqq9iqv>j",,?r2   c           
      	   t               5 }|j                  t               t        j                  t        j                   fD ]}  }t        j
                  |t        j                  gt        j                  t        j                  gg      }t        t        j                  |d      |t        j                  g       t        t        j                  |d      |t        j                  g       t        t        j                  |      |       t        j
                  t        j                  t        j                  |gt        j                  t        j                  |gg      }t        t        j                  |      |       t        t        j                  |d      t        j                  t        j                  |g       t        t        j                  |d      |       t        j
                  ||g||gg      }t        t        j                  |d      |       t        j
                  |d| dgdt        j                  t        j                  dgdt        j                  t        j                  |ggt        j                  	      }|dkD  rFt        t        j                  |d      d
d| dg       t        t        j                  |      d       nEt        t        j                  |d      dd| dg       t        t        j                  |      d       t        t        j                  |d      dd|g       t        dd      D ]r  }t        dd      D ]_  }t        j
                  t        j                  g|z  |g|z  z   gdz        }t        t        j                  |      |       t        t        j                  |d      |       t        t        j                  |d      t        j                  g|z  |g|z  z          t        j
                  t        j                  g|z  | g|z  z   gdz        }t        t        j                  |      |        t        t        j                  |d      |        t        t        j                  |d      t        j                  g|z  | g|z  z          b u  	 d d d        y # 1 sw Y   y xY w)Nr   r   r|   ru  iir   r   r   r   g      @      @g      @g      $g      "g      r~  g      r  r   )r   r  r   r7   infr   r   r
   rZ   float32r  )r9   r  r  arL  js         r0   test_float_specialz*TestNanFunctions_Median.test_float_special  s     +	BCJJ~&( )BHHsRVVnrvvrvv.>?@R\\!!4sRVVnER\\!!4sRVVnER\\!_c2 HHrvvrvvs3 ffbffc24 5R\\!_c2R\\!!4rvvrvvs6KLR\\!!4c: HHsCj3*56R\\!!4c:HHsAtR0"BFFBFFA6 "&&"&&#68 %'JJ0 7 aa!82rC4:LM a#6 aa!84cT3:OP a$7R\\!"5T37GHq" BA"1b\ BHHx!|	&B%Ca%GH$R\\!_c:$R\\!!%<cB$R\\!!%<')vvhlseai%?A HHx!|#
&C%Dq%HI$R\\!_sd;$R\\!!%<sdC$R\\!!%<')vvhltfqj%@BBB;)B+	B +	B +	Bs   R8SSN)rE   rF   rG   rv   r   rf   rg   rh   filterwarningsr  r   r  r   _TYPE_CODESr   r  r   r  r  r   r2   r0   r  r  F  s    "26 [[
  	 [[ EF. G	."&$> *
 [[V\2[[Wk2+ 3 3+2%(@,Br2   r  c            
          e Zd Zd Zd Zej                  j                  ddddgg      ej                  j                  dg d      ej                  j                  d	      d
                      Z	ej                  j                  dddg      d        Z
d Zej                  j                  dddg      ej                  j                  dddg      d               Zej                  j                  dg d      ej                  j                  dej                  d         ej                  j                  d ej                  ej                          ej"                  dej                         gddg      d                      Zd Zd Zd Zd Zej                  j                  dg d       d!        Zej                  j                  dg d"      d#        Zy$)%TestNanFunctions_Percentilec                 x    t         j                         }t        j                  |d       t	        |t                y )N   )rp   rq   r7   r\   r
   r  s     r0   rv   z)TestNanFunctions_Percentile.test_mutation  s'    zz|
r"T5!r2   c                    t        j                  d      }dD ]X  }t        j                  |d|d d      }t        j                  |d|d d      }t	        |j
                  |j
                  k(         Z t        j                  d      }t         j                  j                  d      t        j                  |j                        d d d f   z  }|j                  t         j                        }t         j                  |t        |      <   t               5 }|j                  t                t        j                  |dd d	
      }t#        |j                  d       t        j                  |ddd	
      }t#        |j                  d       t        j                  |ddd	
      }t#        |j                  d       t        j                  |ddd	
      }t#        |j                  d       t        j                  |ddd	
      }t#        |j                  d       t        j                  |ddd	
      }t#        |j                  d       d d d        y # 1 sw Y   y xY w)Nrz   r{   F   Fr  rt  r  Z   Tr}   r  r  r  r  r  r  r  r  r  r  )r7   r   r]   r\   r	   r   rr  rw  r   r   r   r)  r   r  r   r  r   r
   r  s           r0   r   z)TestNanFunctions_Percentile.test_keepdims  s   ffQi  	*D--Rd057C""3438:CCHH()	* GGM"IIX&!''):1d7)CCHHRWWff%(  	2CJJ~&""1btdCCL1""1bvECM2""1bvECL1""1btdCCM2""1b|dKCL1""1by4HCL1	2 	2 	2s   D0IIr=  ru  r|   r~   r  r  r  c                    t        j                  d      t         j                  j                  d      t        j                  j                        d d d f   z  }|j                  t         j                        }t         j                  t        |      <   |dj                  z  }n>t        |j                        t        fdt        j                        D              }t        j                  |      |z   }t        j                  |      }t        j                  ||d|      }||u sJ t        |j                  |       y )Nrt  r  r  c              3   H   K   | ]  }|v rd nj                   |     ywr  r  r  s     r0   r  z@TestNanFunctions_Percentile.test_keepdims_out.<locals>.<genexpr>J  r  r  Tr  )r7   rr  rw  r   r   r   r)  r   r  r   r   r  r)   r\   r
   )	r9   r=  r~   r   r  r   r  r  r   s	          @@r0   r  z-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!!!!QTDcJ}}V\\9-r2   weightedFTc                    t         j                  j                  dd      }t        j                  |ddgt         j                  d      }t        j
                  d      }|r1t        j                  |      dd}t        j                  |      dd}nt               }t               }t        j                  |dfd	di|}t        j                  |dfd|d
|}t        ||       t        ||       t        j
                  d      }t        j                  |dfd	d i|}t        j                  |dfd |d
|}t        ||       t        ||       t        j                  |dfd|d
|}t        ||       t        ||       y )Nrz   r   r   r|   r   inverted_cdfweightsmethod*   r~   r   r   r  )r7   rw  ry  r  r   r   r  dictr]   r\   r   )	r9   r  r   r  r   w_args
nan_w_argsr   r   s	            r0   r   z$TestNanFunctions_Percentile.test_outS  sg   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%r2   c                 Z   t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       y N)y      ?      @y @      ?y?ffffff@Gr   rB  r  F)r7   r   r   r?  r\   r9   arr_cs     r0   test_complexz(TestNanFunctions_Percentile.test_complexr  sq    7sCi!1!15#>7sCi!1!15#>7sCi!1!15#>r2   use_outc                    |r:t        t        j                  d      }t        t        j                  d      }d }n#t        j                  }t        j                  }d }t        D cg c]  } ||d ||             }}|rt        j
                  |      nd } |t        dd |t              |      }	t        |	|       t        j                  t        D cg c]  } ||d	 ||             c}      }|rt        j
                  |      nd } |t        d	d |t              |      }	t        |	|       y c c}w c c}w )
Nr	  r  c                 ,    t        j                  |       S r6   )r7   r  r   s    r0   gen_weightszCTestNanFunctions_Percentile.test_result_values.<locals>.gen_weights  s    ||A&r2   c                      y r6   r   r  s    r0   r  zCTestNanFunctions_Percentile.test_result_values.<locals>.gen_weights  s    r2   rk  )r  r|   )r~   r  r   )rk  b   )	r   r7   r]   r\   r   
empty_likerp   r   	transpose)
r9   r  r  r]   r\   r  r   r   r   r   s
             r0   r   z.TestNanFunctions_Percentile.test_result_valuesz  s     ~FJ#B$4$4^LM' J,,M CHHQz!RQ8HH$+bmmC E2A$/$6CAC%ll%*, ! 'q(KNK , -$+bmmC E8!$/$6CAC% I,s   (D9D>r{   r   Floatr   r   r   r   r3   c                    |$|j                   dk(  rt        j                  d       |j                  |      }t        j                  t
        d      5  t        j                  |d|      }d d d        t        j                        j                         sJ |j                  |j                  k(  sJ y # 1 sw Y   JxY w)Nr   r   r   r   <   r   )r   rf   r   r   r   r   r7   r\   r   r   r   r9   r~   r   r   r   s        r0   r   z(TestNanFunctions_Percentile.test_allnans  s     

aKKDEU#\\.0KL 	9""5"48C	9xx}  """yyEKK'''	9 	9   B55B>c                    t        j                  d      }dD ]  }t        j                  d      5 }t        j                  d       t        t        j                  t        j                  |d|            j                                t        t        |      dk(         t        t        |d	   j                  t                     d d d         d
D ]  }t        j                  d      5 }t        j                  d       t        t        j                  |d|      t        j                  g              t        t        |      d	k(         d d d         y # 1 sw Y   JxY w# 1 sw Y   xY w)Nr  r  Tr   r   (   r   r|   r   r  )r7   r   r   r   r   r	   r   r\   r   r   r   r   r   r
   r  s       r0   r  z&TestNanFunctions_Percentile.test_empty  s(   hhv 	CD((5 C%%h/!1!1#r!EFJJLMA!$
1Q4==.AB	C C	C  	%D((5 %%%h/R--c2DA288B<PA!$% %	%C C% %s   BE+A"E%E"	%E.	c                     t        t        j                  dd      d       t        j                  d      }t        j                  |dd      }t        |d       t	        t        j
                  |             y )Nr   r      2   r   r   g      @)r
   r7   r\   r   r	   isscalar)r9   r  rs      r0   r   z'TestNanFunctions_Percentile.test_scalar  sT    R%%b#.3IIaLQ+QAr2   c                    t        j                  d      }t        t        t         j                  |dd       t        t        t         j                  |dd       t        t        t         j                  |dd       t        t        t         j                  |dd       t        t
        t         j                  |dd       y )	Nrt  r   r  r=  r~   r  r   r  r  )r7   rr  r   r   r\   r  r  s     r0   r  z6TestNanFunctions_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Hr2   c           	         ddg}t        j                  d      }t         j                  |z  }t        j                  d      }d|d d dddd d f<   |d d d d dd fxx   dz  cc<   d	D ]  }d
D ]  }t               5 }|j	                  t
        d       t        j                  ||||      }t        j                  ||||      }	t        |	j                  |j                         t        j                  ||||      }t        j                  ||||      }	t        |	|       d d d          t        j                  d      }
t        t        j                  |
|d      j                  d       y # 1 sw Y   xY w)Nr+  r   )r   rz   )rz   r   r   r   r   r   rz   r{   )FTr   r}   )rz   r   r   r*  )r|   r   r   )r   rz   r*  )
r7   rr  r   r   r  r   r]   r\   r
   r   )r9   percr   r  	large_matr~   keepdimr  r  nan_valmegamats              r0   test_multiple_percentilesz5TestNanFunctions_Percentile.test_multiple_percentiles  s]   Cyggfo&&3,GGI&	!"	!QqUA+!Q(q   	/D( /&( /CJJ~/JK--TwOC ..w48?AG 		:--	4d18:C ..y$T8?AG #./ //	/ '','Wd8>>		
/ /s   ;B'E00E:
nan_weight)r   r|   r   rz   Zbtic                     dt         j                  ddg}t        j                  d      }t        j                  |dd      }t	        ||       d|ddg}t        j                  |d|d	      }t	        ||       y )
Nr|   r   rz   r   r+  r	  r  r   r
  )r7   r   float64r\   r
   )r9   r7  r  r  q_unweightedr   
q_weighteds          r0   test_nan_value_with_weightz6TestNanFunctions_Percentile.test_nan_value_with_weight  so    1C''2nE\6* *c3'%%aQ~N
Z(r2   r   r|   r   c                 (   t         j                  j                  d       t         j                  j                  d      }|j                         }t         j                  |t        j
                  d      t        j
                  d      df<   t        j                  g dg dg      }t        j                  |      }d|t        j                  |      <   t        j                  ||||d	      }t        j                  |||d
      }t        ||       d|t        j                  |      <   t        j                  ||||d	      }t        ||       t        j                  |      }	t        j                  |||||	d      }
|
|	u sJ t        |	|       y )Nr|   )r   c   r   r  r@  r   )g      4@g      I@r  )r  !   P   r	  )r~   r  r  )r~   r  r8  )r~   r  r   r  )r7   rw  seedrq   r   r   r   r  r   r]   r\   r
   r   )r9   r~   x_no_nanr  pr  
p_expectedp_unweighted
p_weightedr   r   s              r0   test_nan_value_with_weight_ndimz;TestNanFunctions_Percentile.test_nan_value_with_weight_ndim  sP    			q99###6 MMO-/VV"))B-2
)*HHnl34 ,,q/
  !]]adGNL
 ''qtN4 	\:.$%%qtW^E
Z,mmJ'qtW#nN czzS*%r2   N)rE   rF   rG   rv   r   rf   rg   rh   r  r  r   r  r   r7   r	  r   r   r
  r   r  r   r  r6  r=  rI  r   r2   r0   r  r    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%&r2   r  c            
          e Zd Zej                  j                  dddg      d        Zd Zd Zd Z	ej                  j                  dg d	      ej                  j                  d
e
j                  d         ej                  j                  d e
j                  e
j                         e
j                  de
j                        gddg      d                      Zy)TestNanFunctions_Quantiler  FTc           	      8   t        j                  d      j                  ddd      j                  t              }t         j
                  |d   d<   |rt        j                  |      dd}n
t               }t        t        j                  |fd	d
i|t        j                  |fd	di|       t        t        j                  |fd
dd|t        j                  |fddd|       t        t        j                  |fd
dd|t        j                  |fddd|       t        t        j                  |fd
gdd|t        j                  |fdgdd|       t        t        j                  |fg ddd|t        j                  |fg ddd|       y )N   r   rz   r   r   r|   r	  r
  r=  rB  r+  r/  )      ?rB        ?)   r+  K   )r7   r   r  r   floatr   r  r  r
   r^   r\   )r9   r  r   r  s       r0   test_regressionz)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r2   c                     t        j                  d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       y )Nr   rB  r   r   r|   g      @g      ?)r7   r   r
   r^   )r9   r  s     r0   
test_basicz$TestNanFunctions_Quantile.test_basic-  sS    IIaL3R^^Aq)2.R^^Aq)3/R^^As+T2r2   c                 Z   t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       y r  )r7   r   r   r?  r^   r  s     r0   r  z&TestNanFunctions_Quantile.test_complex3  sk    7sCi<7sCi<7sCi<r2   c                 n   t        j                  g d      }|j                         }t        j                  t        j                  d      |d       t        ||       |j                         }|j                         }t        j                  t        j                  d      |d       t        ||       y )N)r   rO  rN  rB  r   g      Y@midpointr  )r7   r   rq   r^   r   r   tolist)r9   p0rE  s      r0   test_no_p_overwritez-TestNanFunctions_Quantile.test_no_p_overwrite;  sv    XX/0GGI
ryy*=1b!YY[HHJ
ryy*=1b!r2   r~   r{   r   r"  r   r   r   r   r3   c                    |$|j                   dk(  rt        j                  d       |j                  |      }t        j                  t
        d      5  t        j                  |d|      }d d d        t        j                        j                         sJ |j                  |j                  k(  sJ y # 1 sw Y   JxY w)Nr   r   r   r   r|   r   )r   rf   r   r   r   r   r7   r^   r   r   r   r%  s        r0   r   z&TestNanFunctions_Quantile.test_allnansG  s     

aKKDEU#\\.0KL 	6..5C	6xx}  """yyEKK'''	6 	6r&  N)rE   rF   rG   rf   rg   rh   rS  rU  r  r[  r7   r	  r   r   r
  r   r   r2   r0   rK  rK    s     [[Z%7M 8M&3=
" [[V\2[[Wbll7&;<[[W' $<  (	 = 3(r2   rK  zarr, expectedr  )FTFT)r|   r   ru  r   r   Tc                     d t        j                  | j                  t         j                        fD ]=  }t	        | |      }t        ||       t        |      t         j                  us8|du r=J  y )Nr   r(  T)r7   r)   r   r  r   r
   r   r   )r   expectedr   actuals       r0   test__nan_maskr`  W  s_    " bhhsyy89 "3C(VX& >+T>!>"r2   c                     t         j                  t         j                  t         j                  fD ]4  } t        j                  ddg|       }t        |d      \  }}|J ||u r4J  t         j                  t         j                  fD ]  } t        j                  ddg|       }t        |d      \  }}|dk(  j                         sJ ||usJ t        ||       t        j                  ddt         j                  g|       }t        |d      \  }}t        |t        j                  g d             ||usJ t        |t        j                  g d             t        j                  |d	         rJ  y)
z] Test that _replace_nan returns the original array if there are no
    NaNs, not a copy.
    r   r|   r   Nr   F)FFTr>  r~  )r7   r  int32int64r   r   r  r:  r   r
   r   r   )r   r   r  maskarr_nan
result_nanmask_nans          r0   test__replace_nanrh  r  sF    ''288RXX. hh1vU+#C+||}} **bjj) %hh1vU+#C+""$$$S   VS!((Aq"&&>7+GQ7
HXrxx(<=>(((Z)!45xx$$$%r2   )8r   rf   r$   	functoolsr   numpyr7   numpy._core.numericr   numpy.exceptionsr   r   numpy.lib._nanfunctions_implr   r   numpy.testingr	   r
   r   r   r   r   r   r   r   rp   r   r  r  r!   rm   r  _TEST_ARRAYSr'   _vsetflagsrg   rh   r	  keysr4  rN  rb  ro  r  _TIME_UNITSr   r  r  r  rK  r  rc  	complex64r`  rh  )units   0r0   <module>rv     s        4 6 @   	6266662666B7BFFFFFC6626626662667C26626666266BD 	E 
2	3	;	<	67#	$	*	+	- RXXAE<>@ A
 bhh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 RXXrvvsBFFBFF+,RXX()+ RXXl"((+	 RXX()	 RXX}!(*6RXXt}t}  +  "! "%_ 7s   O 