+
    :iL                     "   ^ RI HtHt ^ RIt^ RIHtHtHt ^ RI	H
t
 ^ RIHtHtHtHt ^ RItR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R  t+R! t,R" t-R# t.R$ t/R% t0R& t1R' t2R( t3R) t4R* t5R+ t6R, t7R- t8R. t9R/ t:R0 t;R1 t<R2 t=R3 t>R4 t?R5 t@ ! R6 R7]]4      tA]AP                  4         ! R8 R9]]4      tC]CP                  4        ]ER:8X  d   ]P                  ! 4        R# R# );    )productcombinations_with_replacementN)jitnjittypeof)numpy_version)TestCaseMemoryLeakMixintagskip_if_numpy_2c                 "    V P                  4       # N)allarrs   &_/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_array_reductions.py	array_allr          779    c                 .    \         P                  ! V 4      # r   )npr   r   s   &r   array_all_globalr          66#;r   c                 "    V P                  4       # r   )anyr   s   &r   	array_anyr      r   r   c                 .    \         P                  ! V 4      # r   )r   r   r   s   &r   array_any_globalr      r   r   c                 "    V P                  4       # r   )cumprodr   s   &r   array_cumprodr!      s    ;;=r   c                 .    \         P                  ! V 4      # r   )r   r    r   s   &r   array_cumprod_globalr#          ::c?r   c                 .    \         P                  ! V 4      # r   )r   
nancumprodr   s   &r   array_nancumprodr'      s    ==r   c                 "    V P                  4       # r   )cumsumr   s   &r   array_cumsumr*           ::<r   c                 .    \         P                  ! V 4      # r   )r   r)   r   s   &r   array_cumsum_globalr-   #       99S>r   c                 .    \         P                  ! V 4      # r   )r   	nancumsumr   s   &r   array_nancumsumr1   &       <<r   c                 "    V P                  4       # r   )sumr   s   &r   	array_sumr5   )   r   r   c                 .    \         P                  ! V 4      # r   )r   r4   r   s   &r   array_sum_globalr7   ,   r   r   c                 "    V P                  4       # r   )prodr   s   &r   
array_prodr:   /       88:r   c                 .    \         P                  ! V 4      # r   )r   r9   r   s   &r   array_prod_globalr=   2       773<r   c                 "    V P                  4       # r   )meanr   s   &r   
array_meanrA   5   r;   r   c                 .    \         P                  ! V 4      # r   )r   r@   r   s   &r   array_mean_globalrC   8   r>   r   c                 "    V P                  4       # r   )varr   s   &r   	array_varrF   ;   r   r   c                 .    \         P                  ! V 4      # r   )r   rE   r   s   &r   array_var_globalrH   >   r   r   c                 "    V P                  4       # r   )stdr   s   &r   	array_stdrK   A   r   r   c                 .    \         P                  ! V 4      # r   )r   rJ   r   s   &r   array_std_globalrM   D   r   r   c                 "    V P                  4       # r   )minr   s   &r   	array_minrP   G   r   r   c                 .    \         P                  ! V 4      # r   )r   rO   r   s   &r   array_min_globalrR   J   r   r   c                 .    \         P                  ! V 4      # r   )r   aminr   s   &r   
array_aminrU   M   r>   r   c                 "    V P                  4       # r   )maxr   s   &r   	array_maxrX   P   r   r   c                 .    \         P                  ! V 4      # r   )r   rW   r   s   &r   array_max_globalrZ   S   r   r   c                 .    \         P                  ! V 4      # r   )r   amaxr   s   &r   
array_amaxr]   V   r>   r   c                 "    V P                  4       # r   argminr   s   &r   array_argminra   Y   r+   r   c                 .    \         P                  ! V 4      # r   r   r`   r   s   &r   array_argmin_globalrd   \   r.   r   c                 "    V P                  4       # r   argmaxr   s   &r   array_argmaxrh   _   r+   r   c                 .    \         P                  ! V 4      # r   r   rg   r   s   &r   array_argmax_globalrk   b   r.   r   c                 .    \         P                  ! V 4      # r   )r   medianr   s   &r   array_median_globalrn   e   r.   r   c                 .    \         P                  ! V 4      # r   )r   nanminr   s   &r   array_nanminrq   h   r.   r   c                 .    \         P                  ! V 4      # r   )r   nanmaxr   s   &r   array_nanmaxrt   k   r.   r   c                 .    \         P                  ! V 4      # r   )r   nanmeanr   s   &r   array_nanmeanrw   n   r$   r   c                 .    \         P                  ! V 4      # r   )r   nansumr   s   &r   array_nansumrz   q   r.   r   c                 .    \         P                  ! V 4      # r   )r   nanprodr   s   &r   array_nanprodr}   t   r$   r   c                 .    \         P                  ! V 4      # r   )r   nanstdr   s   &r   array_nanstdr   w   r.   r   c                 .    \         P                  ! V 4      # r   )r   nanvarr   s   &r   array_nanvarr   z   r.   r   c                 .    \         P                  ! V 4      # r   )r   	nanmedianr   s   &r   array_nanmedian_globalr   }   r2   r   c                 .    \         P                  ! W4      # r   )r   
percentiler   qs   &&r   array_percentile_globalr      s    ==  r   c                 .    \         P                  ! W4      # r   )r   nanpercentiler   s   &&r   array_nanpercentile_globalr      s    C##r   c                 .    \         P                  ! V 4      # r   )r   ptpas   &r   array_ptp_globalr      s    66!9r   c                 "    V P                  4       # r   )r   r   s   &r   	array_ptpr      s    557Nr   c                 .    \         P                  ! W4      # r   )r   quantiler   s   &&r   array_quantile_globalr      s    ;;sr   c                 .    \         P                  ! W4      # r   )r   nanquantiler   s   &&r   array_nanquantile_globalr      s    >>#!!r   c                 D  a  S \         P                  8X  d   R  pMV 3R lpV! ^
4      pV! ^
4      P                  ^^4      pV! ^4      RRR1,          P                  RRR7      pVP                  P                  '       g   VP                  P
                  '       d   Q hW#V.# )c                 n    V ^,          ^ 8X  g   Q h\         P                  ! ^ ^.V ^,          ,          4      #    )r   bool_)ns   &r   factory!base_test_arrays.<locals>.factory   s.    q5A::88QFa1f-..r   c                 B   < \         P                  ! V SR 7      ^,           # )dtype)r   arange)r   r   s   &r   r   r      s    99Qe,q00r   NA)order)r      r   )r   r   reshapeflagsc_contiguousf_contiguous)r   r   a1a2a3s   f    r   base_test_arraysr      s    	/	1 
B			Q	"B
"+tt		$	$Yc	$	:B%%%)>)>)>??B<r   c                    \        V 4      pV \        P                  8X  d   Y Uu. uF  q"^
,          NK  	  up,          pV \        P                  8X  dl   . pV FR  pV^
,          RV,          ^,          ,           p\        P                  ! VR,          4      VR&   VP                  V4       KT  	  VP                  V4       V F*  pVP                  \        P                  ! V 4      8X  d   K*  Q h	  V# u upi )
                 ?:NNr   )r   r   float32	complex64conjappendextendr   )r   
array_listr   acctmps   &    r   full_test_arraysr      s    !%(J 

z2z!2vvz22
 Ab&26B;&Cwws3x(CHJJsO  	#ww"((5/)))  3s   C1c                 >    \        V 4      pV ! V4      pV! V4      pW43# r   )r   )compare_func
test_arraycfuncnumpy_resultnumba_results   &&   r   run_comparativer      s)    E
+L$L%%r   c                     a a ] tR t^t oRtV 3R ltR tR t]3R lt	R t
R t]3R ltR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"]#R 4       t$R t%R  t&R^R! lt'R" t(R# t)R$ t*R% t+R& t,R' t-R( t.R) t/R* t0R+ t1R, t2R- t3R. t4R/ t5R0 t6R1 t7R2 t8R_R3 lt9R4 t:R5 t;R6 t<R7 t=R8 t>R9 t?R: t@R; tAR< tBR= tCR> tDR? tER@ tFRA tGRB tHRC tIRD tJRE tKRF tLRG tMRH tNRI tORJ tPRK tQ]RRL 4       tSRM tTRN tURO tVRP tWRQ tXRR tYRS tZRT t[RU t\RV t]RW t^RX t_RY t`RZ taR[ tb]cR\ 4       tdR]teVtfV ;tg# )`TestArrayReductionszI
Test array reduction methods and functions such as .sum(), .max(), etc.
c                j   < \         \        V `  4        \        P                  P                  ^*4       R# )*   N)superr   setUpr   randomseed)self	__class__s   &r   r   TestArrayReductions.setUp   s!    !4.0
		rr   c                  a aaa \        R R7      ! S4      oVVVV 3R lp\        P                  ! . RO4      pV! V4       \        P                  ! RR.4      pV! V4       \        P                  ! . RO4      pV! V4       \        P                  ! . R	O4      pV! V4       \        P                  ! . R
O4      pV! V4       \        P                  ! . RO4      pV! V4       \        P                  ! . RO4      pV! V4       \        P                  ! . RO4      pV! V4       \        P                  ! RR.4      pV! V4       R# )Tnopythonc                 H   < SP                   ! S! V 4      S! V 4      3/ SB  R # r   assertPreciseEqualr   r   kwargspyfuncr   s   &r   check8TestArrayReductions.check_reduction_basic.<locals>.check        ##F3KsFvFr   nanN             )      ?       @        r   r   r   )r         @inf)r   r   -inf)r   r   r   r   )r   r   r   r         @)r   r   r   r   r   r   r   )g      @r   r   r   )r   r   float64)r   r   r   r   r   r   s   ffl  @r   check_reduction_basic)TestArrayReductions.check_reduction_basic   s    T"6*	G 	G jj9:c
jj$&c
jj+,c
jj,-c
jj34c
jj78c
jjFGc
jj23c
jj%(c
r   c                  a aaa \        R R7      ! S4      oVVVV 3R lp\        P                  ! R4      pV! V4       \        P                  ! R	4      pV! V4       \        P                  ! R4      pV! V4       \        P                  ! R
4      pV! V4       \        P                  ! ^4      pV! V4       \        P                  ! R4      pV! V4       \        P                  ! \        P
                  4      pV! V4       \        P                  ! \        P
                  ) 4      pV! V4       \        P                  ! R4      pV! V4       \        P                  ! R 4      pV! V4       \        P                  ! R4      pV! V4       S P                  4       ;_uu_ 4       pS! R4       RRR4       R#   + '       g   i     R# ; i)Tr   c                 H   < SP                   ! S! V 4      S! V 4      3/ SB  R # r   r   r   s   &r   r   5TestArrayReductions.check_scalar_basic.<locals>.check   r   r   r   g      5@r   FstringNr   g      5i)r   r   r   r   int32r   r   assertTypingError)r   r   r   r   r   er   s   ffl   @r   check_scalar_basic&TestArrayReductions.check_scalar_basic   s9   T"6*	G 	G jjoc
jjc
jjc
jjc
hhrlc
hhsmc
 jj c
jj"&&!c
jjc
 hhtnc
hhuoc
 ##%%(O &%%%   	F22G	c                2  a aa \        R R7      ! S4      oVVV 3R lp\        P                  ! RR\        R4      \        R4      .4      pV! V4       R	V^&   V! V4       RV^&   V! V4       VP	                  R
4      pV! V4       V! VRRR1,          4       R# )Tr   c                 D   < SP                  S! V 4      S! V 4      4       R # r   r   r   r   r   r   s   &r   r   1TestArrayReductions.test_all_basic.<locals>.check      ##F3Ks<r   r   r   r   r         ?Nr   r   r   r   r   r   r   floatr   r   r   r   r   r   s   ff  @r   test_all_basic"TestArrayReductions.test_all_basic  s    T"6*	= jj#sE%L%,?@c
Ac
Ac
kk&!c
c$B$ir   c                  a a \        R R7      ! \        4      oVV 3R lpV! \        P                  ! . RO4      4       V! \        P                  ! . RO4      4       V! \        P                  ! . RO4      4       V! \        P                  ! . RO4      4       S P	                  4       ;_uu_ 4       pS! R4       RRR4       R#   + '       g   i     R# ; i)	Tr   c                 P   < \        V 4      pS! V 4      pSP                  W!4       R # r   )r   r   argexpectedgotr   r   s   &  r   r   1TestArrayReductions.test_array_all.<locals>.check  #     ~H*C##C2r   helloNTTTTFTr   r   r   r   r   r   )r   r   r   arrayr   r   r   r   r   s   f  @r   test_array_all"TestArrayReductions.test_array_all  s    T"9-	3 	bhh)*+bhh*+,bhh'(bhh'(##%%'N &%%%   0	CC	c                (  a a \        R R7      ! \        4      oVV 3R lpV! \        P                  ! R4      4       V! \        P                  ! R4      4       V! \        P                  ! R 4      4       V! \        P                  ! R4      4       V! \        P
                  4       V! \        P                  4       V! \        P                  ) 4       V! R4       V! \        P                  ! . RO4      4       V! \        P                  ! . R	O4      4       V! \        P                  ! . R
O4      4       V! \        P                  ! . RO4      4       S P                  4       ;_uu_ 4       pS! . RO4       RRR4       R#   + '       g   i     R# ; i)Tr   c                 P   < \        V 4      pS! V 4      pSP                  W!4       R # r   )r   r   r  s   &  r   r   .TestArrayReductions.test_np_all.<locals>.check)  $    ',H*C##C2r   r   皙?FNr   r
  r  r  r     r   r   )	r   r   r   r   r   r   r   r  r   r  s   f  @r   test_np_allTestArrayReductions.test_np_all&      T"#34	3 	bjjobjjobhhtnbhhuo 	bffbffrvvgd 	bhh)*+bhh*+,bhh'(bhh'(##%%'N &%%%   +F  F	c                H  a aa \        R R7      ! S4      oVVV 3R lp\        P                  ! . RO4      pV! V4       \        R4      V^&   V! V4       \        R4      V^&   V! V4       RV^&   V! V4       VP	                  R4      pV! V4       V! VRRR	1,          4       R# )
Tr   c                 D   < SP                  S! V 4      S! V 4      4       R # r   r   r   s   &r   r   1TestArrayReductions.test_any_basic.<locals>.checkE  r   r   r   r   r   N)r   r   r   r   r   r   r   r   s   ff  @r   test_any_basic"TestArrayReductions.test_any_basicC  s    T"6*	= jj./c
uAc
uAc
Ac
kk&!c
c$B$ir   c                  a a \        R R7      ! \        4      oVV 3R lpV! \        P                  ! . RO4      4       V! \        P                  ! . RO4      4       V! \        P                  ! . RO4      4       V! \        P                  ! . RO4      4       S P	                  4       ;_uu_ 4       pS! R4       RRR4       R#   + '       g   i     R# ; i)	Tr   c                 P   < \        V 4      pS! V 4      pSP                  W!4       R # r   )r   r   r  s   &  r   r   1TestArrayReductions.test_array_any.<locals>.checkV  r  r   r	  Nr
  r  r  r  )r   r   r   r  r   r  s   f  @r   test_array_any"TestArrayReductions.test_array_anyT  s    T"9-	3 	bhh)*+bhh*+,bhh'(bhh'(##%%'N &%%%r  c                (  a a \        R R7      ! \        4      oVV 3R lpV! \        P                  ! R4      4       V! \        P                  ! R4      4       V! \        P                  ! R 4      4       V! \        P                  ! R4      4       V! \        P
                  4       V! \        P                  4       V! \        P                  ) 4       V! R4       V! \        P                  ! . RO4      4       V! \        P                  ! . R	O4      4       V! \        P                  ! . R
O4      4       V! \        P                  ! . RO4      4       S P                  4       ;_uu_ 4       pS! . RO4       RRR4       R#   + '       g   i     R# ; i)Tr   c                 P   < \        V 4      pS! V 4      pSP                  W!4       R # r   )r   r   r  s   &  r   r   .TestArrayReductions.test_np_any.<locals>.checkg  r  r   r   r  FNr   r
  r  r  r  r  )	r   r   r   r   r   r   r   r  r   r  s   f  @r   test_np_anyTestArrayReductions.test_np_anyd  r  r  c                0    V P                  \        4       R # r   )r   r5   r   s   &r   test_sum_basic"TestArrayReductions.test_sum_basic      ""9-r   c                0    V P                  \        4       R # r   )r   rA   r.  s   &r   test_mean_basic#TestArrayReductions.test_mean_basic  s    "":.r   c                  a a \        R R7      ! \        4      oVV 3R lpV! \        P                  ! ^4      4       V! \        P                  ! R	4      4       V! \        P
                  ! ^4      4       V! \        P                  ! R 4      4       V! \        P                  ! R4      4       V! \        P                  ! R4      4       V! \        P                  ! R
4      4       V! \        P                  ! R4      4       V! \        P                  ! R4      4       V! \        P                  4       V! \        P                  4       V! \        P                  ) 4       V! R4       V! R4       V! ^ 4       V! R4       V! R4       S P                  4       ;_uu_ 4        S! R4       RRR4       R#   + '       g   i     R# ; i)Tr   c                 P   < \        V 4      pS! V 4      pSP                  W!4       R # r   )rC   r   r  s   &  r   r   6TestArrayReductions.test_np_mean_scalar.<locals>.check  $    (-H*C##C2r   Fg      ?r   gӋ5>ztest StringNg      y      @        y     N@     R@r   g>dп)r   rC   r   r   int64uint32r   r   r   r   
complex128r   r   r   r   r   r   s   f @r   test_np_mean_scalar'TestArrayReductions.test_np_mean_scalar  s#   T"#45	3 	bhhqkbhhrlbiilbhhtnbhhuo 	bjjbjj 	bll4 !bmmF#$ 	bffbffrvvgdc
aih ##%%-  &%%%r   c                4    V P                  \        R R7       R# double)precN)r   rF   r.  s   &r   test_var_basic"TestArrayReductions.test_var_basic  s    ""98"<r   c                0    V P                  \        4       R # r   )r   rK   r.  s   &r   test_std_basic"TestArrayReductions.test_std_basic  r1  r   c                Z    V P                  \        4       V P                  \        4       R # r   )r   rR   r   rP   r.  s   &r   test_min_basic"TestArrayReductions.test_min_basic  s     01""9-r   c                Z    V P                  \        4       V P                  \        4       R # r   )r   rU   r   r.  s   &r   test_amin_basic#TestArrayReductions.test_amin_basic  s    
+"":.r   c                Z    V P                  \        4       V P                  \        4       R # r   )r   rX   r   rZ   r.  s   &r   test_max_basic"TestArrayReductions.test_max_basic  s    ""9- 01r   c                Z    V P                  \        4       V P                  \        4       R # r   )r   r]   r   r.  s   &r   test_amax_basic#TestArrayReductions.test_amax_basic  s    "":.
+r   c                0    V P                  \        4       R # r   )r   ra   r.  s   &r   test_argmin_basic%TestArrayReductions.test_argmin_basic      ""<0r   c                0    V P                  \        4       R # r   )r   rh   r.  s   &r   test_argmax_basic%TestArrayReductions.test_argmax_basic  rX  r   c                0    V P                  \        4       R # r   )r   rq   r.  s   &r   test_nanmin_basic%TestArrayReductions.test_nanmin_basic  rX  r   c                0    V P                  \        4       R # r   )r   rt   r.  s   &r   test_nanmax_basic%TestArrayReductions.test_nanmax_basic  rX  r   c                0    V P                  \        4       R # r   )r   rw   r.  s   &r   test_nanmean_basic&TestArrayReductions.test_nanmean_basic      ""=1r   c                0    V P                  \        4       R # r   )r   rz   r.  s   &r   test_nansum_basic%TestArrayReductions.test_nansum_basic  rX  r   c                0    V P                  \        4       R # r   )r   r}   r.  s   &r   test_nanprod_basic&TestArrayReductions.test_nanprod_basic  re  r   c                0    V P                  \        4       R # r   )r   r   r.  s   &r   test_nanstd_basic%TestArrayReductions.test_nanstd_basic  rX  r   c                4    V P                  \        R R7       R# rA  )r   r   r.  s   &r   test_nanvar_basic%TestArrayReductions.test_nanvar_basic  s    ""<h"?r   c                Z  a aaa \        R R7      ! S4      oVVV 3R loS! \        P                  ! . 4      4       V3R lpV! \        P                  ! ^?4      R,           4       F  pV! V4       K  	  V3R lpV! \        P                  ! ^@4      R,           4       F  pV! V4       K  	  R# )Tr   c                 J   < S! V 4      pS! V 4      pSP                  W!4       R # r   r   )r   r  r  r   r   r   s   &  r   r   5TestArrayReductions.check_median_basic.<locals>.check  s#    c{H*C##C2r   c                 n   < S! V 4       V P                  R4      p S! V 4       S! V P                  4       R# )	   N)rv     r   Tr   r   s   &r   	check_odd9TestArrayReductions.check_median_basic.<locals>.check_odd  s*    !H		&!A!H!##Jr   g      %@c                 n   < S! V 4       V P                  R4      p S! V 4       S! V P                  4       R# )   N)r~     rx  rz  s   &r   
check_even:TestArrayReductions.check_median_basic.<locals>.check_even  s*    !H		'"A!H!##Jr   N)r   r   r  r   )r   r   array_variationsr{  r   r  r   r   s   ff&   @@r   check_median_basic&TestArrayReductions.check_median_basic  s}    T"6*	3 	bhhrl	
 ""))B-$"67AaL 8	
 ""))B-$"67AqM 8r   c              #  *  "   V x  V R R R1,          P                  4       p V x  \        P                  P                  V 4       V x  RW ^,          ^8  &   V x  \        P                  W ^,          ^8  &   V x  \        P                  V R&   V x  R # 5i)N      @:NNNr   )copyr   r   shuffler   r   s   &r   _array_variations%TestArrayReductions._array_variations  sy      ddGLLN
		!a%1*a%1*vv!s   BBc                :    \         pR  pV P                  W4       R# )c              3      "   V x  V R R R1,          P                  4       p V x  \        P                  P                  V 4       V x  RW ^,          ^8  &   V x  R # 5i)Nr  r   )r  r   r   r  r   s   &r   
variations9TestArrayReductions.test_median_basic.<locals>.variations  sM     G$B$AGIIa GA!eqjMGs   AAN)rn   r  )r   r   r  s   &  r   test_median_basic%TestArrayReductions.test_median_basic  s    $	 	3r   c           	     8	  a aa \        R R7      ! S4      oR
VVV 3R llpS P                  P                  ^4      P                  ^^^4      p\        P
                  ! ^ V^4      RRR1,          pV! WE4       V! V^ 4       V! WB^,          4       V! WB4       \        P                  \        P                  ) \        P                  .pS P                  P                  V^
4      VP                  R&   S P                  P                  V4       S P                  P                  V4       V! WE4       VP                  4       P                  4       pVP                  4       P                  4       pV! WE4       V! \        V4      \        V4      4       S P                  P                  . RO^
4      p\        P
                  ! ^ V^4      pV! WE4       \        P                  ! ^4      R,          p\        P                  P!                  S! V^ 4      R4       \        P                  P!                  S! Wr4      R4       \        P                  P!                  S! Wr^,          4      R4       \        P                  ! ^4      P                  ^^4      p\        P"                  ! R4      V,          p\        P                  P!                  S! Wu4      . RO4       \        P                  ! R4      P                  ^^^^4      p\        P"                  ! R4      V,          p\        P                  P!                  S! Wu4      P$                  R4       \        P"                  ! R4      V,          p\        P                  P!                  S! Wu4      P$                  R4       \        P                  ! ^4      P                  ^^4      p\        P                  P!                  S! Wr^,          4      R	4       S P'                  \        P(                  ! S! Wr^,          4      4      4       \        P                  P!                  S! . RO^ 4      ^4       \        P"                  ! . RO4      pS! WB^,          .4       \        P                  P!                  V\        P"                  ! . RO4      4       R# )Tr   c                    < S! W4      pS! W4      p\         P                  ! V4      p\         P                  ! V4      '       d   SP                  WCVR 7       R# SP                  WE,          W5,          VR 7       R# )abs_tolNr   isfiniter   r   	r   r   r  r  r  finiter   r   r   s	   &&&   r   r   @TestArrayReductions.check_percentile_and_quantile.<locals>.check#  d    a|H+C [[*Fvvf~~''w'G''X5E07 ( 9r   N:Nr   N      ?r   r  g      ?      @)g-q=r   )r  r   r   r~  )      ?r  r   )g      @r  g      &@ih  )r  r  r   )r  r  g      ?)r   r  )r   r   r~  r  )r   r   randnr   r   linspacer   r   choiceflatr  flattentolisttupler   testingassert_equalr  shape
assertTrueisscalar)	r   r   q_upper_boundr   r   r   
not_finitexr   s	   ff&     @r   check_percentile_and_quantile1TestArrayReductions.check_percentile_and_quantile   s/   T"6*
	9 
	9 KKb!))!Q2KK="-dd3aaa"#affrvvgrvv.
kk((R8sAAaIIK IIK aeAha!KK|R0KK=!,a IIaL3


aR0


a 7=


a): ;TBIIbM!!!Q'HH%&6


a->?IIm$,,Q1a8HH\"]2


a 1 148HH'(=8


a 1 148IIbM!!!Q'


a): ;SAE!Q->$?@A


i 3Q7HH\"a!#$%


288L#9:r   c                  a aa
 \        R R7      ! S4      o
RV
VV 3R llpRV
VV 3R llpR p^ RV,          RV,          V3p^R	\        P                  \        P                  \        P                  ) 3pV! V4       F  pV! W4       K  	  V^8X  d   Tp	MTp	\        P                  ! ^4      p\        P                  ! ^4      pV	! W4       ^pV^,          pV	! W4       R# )
Tr   c                    < S! W4      pS! W4      p\         P                  ! V4      p\         P                  ! V4      '       d   SP                  WCVR 7       R# SP                  WE,          W5,          VR 7       R# r  r  r  s	   &&&   r   r   >TestArrayReductions.check_percentile_edge_cases.<locals>.checkd  r  r   c                    < S! W4      P                  \        P                  4      pS! W4      pSP                  WCVR 7       R# r  )astyper   r   r   )r   r   r  r  r  r   r   r   s   &&&  r   convert_to_float_and_checkSTestArrayReductions.check_percentile_edge_cases.<locals>.convert_to_float_and_checkp  s7    a|**2::6H+C##C7#Cr   c              3      "   \        ^^
4       F-  p\        W4       F  p\        P                  ! V4      x  K  	  K/  	  R# 5i)r  N)ranger   r   r  )elementsicombs   &  r   _array_combinationsLTestArrayReductions.check_percentile_edge_cases.<locals>._array_combinationsu  s3     1b\9(FD((4.( G "s   A A皙?r  N)g+=r   )r   r   r   r   r  )r   r   r  r   r  r  r   element_poolr   _checkr   s   ff&       @r   check_percentile_edge_cases/TestArrayReductions.check_percentile_edge_casesa  s    T"6*
	9 
	9	D 	D
	) m#S=%8-H2rvvrvvw7$\2A!K 3
 A/FFHHQKHHQKqAqr   c                  a a \        R R7      ! V4      oVV 3R lpS P                  4        \        P                  ! ^4      pV! VR4       V! VR4       V! V^^
\        P                  34       S P                  4       ;_uu_ 4       p\        P                  ! ^4      R,          pRpS! W54       RRR4       S P                  R\        XP                  4      4       R#   + '       g   i     L7; i)	Tr   c                    < SP                  \        4      ;_uu_ 4       pS! W4       R R R 4       SP                  R\        XP                  4      4       R #   + '       g   i     L7; i)Nz)Percentiles must be in the range [0, 100]assertRaises
ValueErrorassertEqualstr	exceptionr   r   raisesr   r   s   && r   	check_errBTestArrayReductions.check_percentile_exceptions.<locals>.check_err  sJ    "":..&a /;F$$% /.   	AA'	r   r  NNot supported for complex dtype)r  r   i   	r   disable_leak_checkr   r   r   r   assertInr  r  r   r   r  r   r   r   r   s   f&    @r   check_percentile_exceptions/TestArrayReductions.check_percentile_exceptions  s    T"6*	 	!IIaL!R!\"!aRVV_%##%%		!r!AA!K &
 	7Q[[9IJ &%   (CC-	c                  a a \        R R7      ! V4      oVV 3R lpS P                  4        \        P                  ! ^4      pV! VR4       V! VR4       V! VRR\        P                  34       S P                  4       ;_uu_ 4       p\        P                  ! ^4      R,          pRpS! W54       RRR4       S P                  R\        XP                  4      4       R#   + '       g   i     L7; i)	Tr   c                    < SP                  \        4      ;_uu_ 4       pS! W4       R R R 4       SP                  R\        XP                  4      4       R #   + '       g   i     L7; i)Nz%Quantiles must be in the range [0, 1]r  r  s   && r   r  @TestArrayReductions.check_quantile_exceptions.<locals>.check_err  sJ    "":..&a /7F$$% /.r  r  r   Nr  g      )r  r  g?r  r  s   f&    @r   check_quantile_exceptions-TestArrayReductions.check_quantile_exceptions  s    T"6*	 	!IIaL!T!&'!c4()##%%		!r!AA!K &
 	7Q[[9IJ &%r  c                    \         pV P                  V^dR7       V P                  V^dR7       V P                  V4       R# d   r  N)r   r  r  r  r   r   s   & r   test_percentile_basic)TestArrayReductions.test_percentile_basic  s;    (**6*E((s(C((0r   c                    \         pV P                  V^dR7       V P                  V^dR7       V P                  V4       R# r  )r   r  r  r  r  s   & r   test_nanpercentile_basic,TestArrayReductions.test_nanpercentile_basic  s;    +**6*E((s(C((0r   c                    \         pV P                  V^R7       V P                  V^R7       V P                  V4       R# r  r  N)r   r  r  r  r  s   & r   test_quantile_basic'TestArrayReductions.test_quantile_basic  s;    &**6*C((q(A&&v.r   c                    \         pV P                  V^R7       V P                  V^R7       V P                  V4       R# r  )r   r  r  r  r  s   & r   test_nanquantile_basic*TestArrayReductions.test_nanquantile_basic  s;    )**6*C((q(A&&v.r   c                H    \         pV P                  WP                  4       R # r   )r   r  r  r  s   & r   test_nanmedian_basic(TestArrayReductions.test_nanmedian_basic  s    '(>(>?r   c                \   \         P                  ! ^
\         P                  R7      p\        V4      pV P	                  VP
                  ^4       V P	                  VP                  R4       \        V34      ! \        4      pV P	                  \         P                  ! V4      V! V4      4       R# r   r   CN)
r   r   r   r   r  ndimlayoutr   r7   r4   r   r   arrtyr   s   &   r   test_array_sum_global)TestArrayReductions.test_array_sum_global  st    ii"((+sQ's+eX 01eCj1r   c                ^   \         P                  ! ^
\         P                  R7      ^,           p\        V4      pV P	                  VP
                  ^4       V P	                  VP                  R4       \        V34      ! \        4      pV P	                  VP                  4       V! V4      4       R# r  )
r   r   r   r   r  r  r  r   r:   r9   r  s   &   r   test_array_prod_int_1d*TestArrayReductions.test_array_prod_int_1d  sv    ii"((+a/sQ's+eXz*U3Z0r   c                z   \         P                  ! ^
\         P                  R7      R,           p\        V4      pV P	                  VP
                  ^4       V P	                  VP                  R4       \        V34      ! \        4      p\         P                  P                  VP                  4       V! V4      4       R# )r   r   r  Nr  )r   r   r   r   r  r  r  r   r:   r  assert_allcloser9   r  s   &   r   test_array_prod_float_1d,TestArrayReductions.test_array_prod_float_1d  sz    ii"**-6sQ's+eXz*


""388:uSz:r   c                x   \         P                  ! ^
\         P                  R7      p\        V4      pV P	                  VP
                  ^4       V P	                  VP                  R4       \        V34      ! \        4      p\         P                  P                  \         P                  ! V4      V! V4      4       R# r  )r   r   r   r   r  r  r  r   r=   r  r  r9   r  s   &   r   test_array_prod_global*TestArrayReductions.test_array_prod_global  sx    ii"((+sQ's+eX01


""2773<s<r   c                .  a a S P                  \        4       \        R R7      ! \        4      oVV 3R lpV! \        P                  ! ^4      4       V! \        P
                  ! ^4      4       V! \        P                  ! ^4      4       V! \        P                  ! ^4      4       V! \        P                  ! ^4      4       V! \        P                  ! ^4      4       V! \        P                  ! R4      4       V! \        P                  ! R4      4       R# )Tr   c                 P   < \        V 4      pS! V 4      pSP                  W!4       R # r   )r=   r   r  s   &  r   r   6TestArrayReductions.test_np_prod_scalar.<locals>.check  r8  r   r   y                N)r   r=   r   r   int8uint8int16uint16r   r;  r   r<  r=  s   f @r   test_np_prod_scalar'TestArrayReductions.test_np_prod_scalar  s     12T"#45	3 	bggajbhhqkbhhqkbiilbhhqkbiil 	bll2bmmB r   c                Z   \         P                  ! ^^
\         P                  R7      p\        W4      w  r4V P	                  WC4       \         P
                  ! ^^^4      p\        W4      w  r4V P	                  WC4       VP                  R4      p\        W4      w  r4V P	                  WC4       R# )r   r   N)r   r   )r   r   r
  r   r   r  r   )r   r   r   r  r  s   &&   r   check_cumulative$TestArrayReductions.check_cumulative  s    ii2RXX.'4.kk!Q"'4.kk&!'4.r   c                0    V P                  \        4       R # r   )r  r*   r.  s   &r   test_array_cumsum%TestArrayReductions.test_array_cumsum$  s    l+r   c                0    V P                  \        4       R # r   )r  r-   r.  s   &r   test_array_cumsum_global,TestArrayReductions.test_array_cumsum_global'  s    12r   c                0    V P                  \        4       R # r   )r  r!   r.  s   &r   test_array_cumprod&TestArrayReductions.test_array_cumprod*  s    m,r   c                0    V P                  \        4       R # r   )r  r#   r.  s   &r   test_array_cumprod_global-TestArrayReductions.test_array_cumprod_global-  s    23r   c                   V'       d   ^M^
p\         P                  ! V4      R,           P                  R4      p\        W4      w  rVV P	                  WV4       \         P                  ! ^
4      R,           P                  R4      p\        W4      w  rVV P	                  WV4       VP                  R4      p\        W4      w  rVV P	                  WV4       R# )z8
Check that integer overflows are avoided (issue #931).
i@  r
  r:  uint64Nl            )r   r   r  r   r   )r   r   is_prodn_itemsr   nprnbrs   &&&    r   check_aggregation_magnitude/TestArrayReductions.check_aggregation_magnitude0  s     !Byy!E)11':"6/) yy}u$,,W5"6/)jj""6/)r   c                Z    V P                  \        4       V P                  \        4       R # r   )r#  r5   r7   r.  s   &r   test_sum_magnitude&TestArrayReductions.test_sum_magnitudeC      ((3(()9:r   c                Z    V P                  \        4       V P                  \        4       R # r   )r#  r*   r-   r.  s   &r   test_cumsum_magnitude)TestArrayReductions.test_cumsum_magnitudeG  s    ((6(()<=r   c                4    V P                  \        R R7       R# T)r  N)r#  r1   r.  s   &r   test_nancumsum_magnitude,TestArrayReductions.test_nancumsum_magnitudeK  s    (($(Gr   c                b    V P                  \        R R7       V P                  \        R R7       R# r-  )r#  r:   r=   r.  s   &r   test_prod_magnitude'TestArrayReductions.test_prod_magnitudeN  s)    ((T(B(():D(Ir   c                b    V P                  \        R R7       V P                  \        R R7       R# r-  )r#  r!   r#   r.  s   &r   test_cumprod_magnitude*TestArrayReductions.test_cumprod_magnitudeR  s)    (((E(()=t(Lr   c                4    V P                  \        R R7       R# r-  )r#  r'   r.  s   &r   test_nancumprod_magnitude-TestArrayReductions.test_nancumprod_magnitudeV  s    (()94(Hr   c                Z    V P                  \        4       V P                  \        4       R # r   )r#  rA   rC   r.  s   &r   test_mean_magnitude'TestArrayReductions.test_mean_magnitudeY  s    ((4(():;r   c                Z    V P                  \        4       V P                  \        4       R # r   )r#  rF   rH   r.  s   &r   test_var_magnitude&TestArrayReductions.test_var_magnitude]  r(  r   c                Z    V P                  \        4       V P                  \        4       R # r   )r#  rK   rM   r.  s   &r   test_std_magnitude&TestArrayReductions.test_std_magnitudea  r(  r   c                   \        V4      p\        R R7      ! V4      pV P                  V! V4      V! V4      4       V P                  V! VRR 4      V! VRR 4      4       VRRR1,          P                  4       pV P                  V! V4      V! V4      4       \        P
                  P                  V4       V P                  V! V4      V! V4      4       RVP                  9  d@   \        ^\        V4      ^4       F  pRW%&   K	  	  V P                  V! V4      V! V4      4       VP                  VP                  R4      4       V P                  V! V4      V! V4      4       R# )Tr   Nrm   NaTr   )r   r   r   r  r   r   r  __name__r  lenfillr   )r   r   r   r  r   r  s   &&&   r   _do_check_nptimedelta)TestArrayReductions._do_check_nptimedeltae  s   sT"6*c
F3K8c#2hCR1AB$B$innc
F3K8
		#c
F3K86??* 1c#h* +##E#Js<U#$c
F3K8r   c                t    \         P                  ! ^
4      P                  RR7      pV P                  W4       R# )r   zM8[Y]r   Nr   r   r  rG  r   r   r   s   && r   check_npdatetime$TestArrayReductions.check_npdatetime  +    iim"""1""6/r   c                t    \         P                  ! ^
4      P                  RR7      pV P                  W4       R# )r   zm8[s]r   NrJ  rK  s   && r   check_nptimedelta%TestArrayReductions.check_nptimedelta  rN  r   c                Z    V P                  \        4       V P                  \        4       R # r   )rL  rP   rP  r.  s   &r   test_min_npdatetime'TestArrayReductions.test_min_npdatetime      i(y)r   c                Z    V P                  \        4       V P                  \        4       R # r   )rL  rX   rP  r.  s   &r   test_max_npdatetime'TestArrayReductions.test_max_npdatetime  rU  r   c                Z    V P                  \        4       V P                  \        4       R # r   )rL  ra   rP  r.  s   &r   test_argmin_npdatetime*TestArrayReductions.test_argmin_npdatetime      l+|,r   c                Z    V P                  \        4       V P                  \        4       R # r   )rL  rh   rP  r.  s   &r   test_argmax_npdatetime*TestArrayReductions.test_argmax_npdatetime  r\  r   c                0    V P                  \        4       R # r   )rP  rn   r.  s   &r   test_median_npdatetime*TestArrayReductions.test_median_npdatetime  s    23r   c                0    V P                  \        4       R # r   )rP  r5   r.  s   &r   test_sum_npdatetime'TestArrayReductions.test_sum_npdatetime  s    y)r   c                0    V P                  \        4       R # r   )rP  r*   r.  s   &r   test_cumsum_npdatetime*TestArrayReductions.test_cumsum_npdatetime  s    |,r   c                0    V P                  \        4       R # r   )rP  rA   r.  s   &r   test_mean_npdatetime(TestArrayReductions.test_mean_npdatetime  s    z*r   c                :  a aa \        R R7      ! S4      oVVV 3R lpR pR pV! 4        F6  pV! V4       V! V! VP                  \        P                  4      4      4       K8  	  V! \        P                  ! . 4      4       V! \        P
                  ! ^
\        P                  4      4       \        P                  ! \        P                  ^\        P                  ^^^^^^	.	4      pVRVRRR1,          ,          ,           pVP                  ^^4      pV! V4       R# )Tr   c                 J   < S! V 4      pS! V 4      pSP                  W4       R # r   r   r   r  r  r   r   r   s   &  r   r   7TestArrayReductions.check_nan_cumulative.<locals>.check  #    ayH(C##H2r   c           	          V P                   ^,          p\        P                  ! V \        P                  P	                  \        V P                   4      VRR7      \        P                  4       V # )r   F)replace)sizer   putr   r  r  r   )r   ps   & r   _set_some_values_to_nanITestArrayReductions.check_nan_cumulative.<locals>._set_some_values_to_nan  sF    !AFF1bii&&uQVV}a&GPHr   c               3     "   \         P                  ! R^^<4      P                  ^^^4      x  \         P                  ! \         P                  ^^.4      x  \         P                  ! . RO4      x  \         P
                  ! ^^
4      x  \         P                  ! \         P
                  ! ^^@4      R,
          4      x  \         P
                  ! ^^
\         P                  R7      RRR1,          x  R# 5i)r  gfffff@@r   Nr   )TTTF)r   r  r   r  r   r   asfortranarrayr    r   r   a_variations>TestArrayReductions.check_nan_cumulative.<locals>.a_variations  s     ++b!R(00Aq99((BFFAq>**((455))Ar""##BIIa$4t$;<<))Ar4TrT::s   C1C3r   Nr   )r   r  r   r   r  fullr   r   )r   r   r   rv  r{  r   partsr   s   ff     @r   check_nan_cumulative(TestArrayReductions.check_nan_cumulative  s    T"6*	3
	
	; A!H)!((2::*>?@  
 	bhhrlbggb"&&!""&&!RVVQ1aA>?Btt$$IIaOar   c                Z    V P                  \        4       V P                  \        4       R # r   )r  r'   r  r.  s   &r   test_nancumprod_basic)TestArrayReductions.test_nancumprod_basic  s     ./!!"23r   c                Z    V P                  \        4       V P                  \        4       R # r   )r  r1   r  r.  s   &r   test_nancumsum_basic(TestArrayReductions.test_nancumsum_basic  s    o.!!/2r   c                ~   a aa \         o\        R R7      ! S4      oVVV 3R lpR pV! 4        F  pV! V4       K  	  R# )Tr   c                 J   < S! V 4      pS! V 4      pSP                  W4       R # r   r   rn  s   &  r   r   1TestArrayReductions.test_ptp_basic.<locals>.check  rp  r   c               3     "   \         P                  ! ^
4      x  \         P                  ! R\         P                  R.4      x  \         P                  ! \         P                  ) ^.4      x  Rx  Rx  \         P
                  ! ^^4      x  . ROx  \         P                  ! R	^
^4      P                  ^^^4      p V x  \         P                  ! V 4      x  V RRR
1,          x  \         P                  P                  ^ 4      P                  V 4       V x  ^x  Rx  \         P                  ) x  Rx  R\         P                  .x  R\         P                  .x  Rx  \         P
                  ! ^\         P                  4      x  ^\         P                  R,          ,           x  \         P                  \         P                  R,          ,           x  \         P                  x  R# 5i)r   皙@Ng      @r   g)r~  r      )r  )r  gffffffr  r   y      ?      @))gffffff@r   gffffff)g333333@g@g@)r   r   r  r   r   r}  r  r   ry  r   RandomStater  r   s    r   r{  8TestArrayReductions.test_ptp_basic.<locals>.a_variations  sO    ))B-((D"&&#.//((RVVGQ<((OJ''!Q-""CR(00Aq9AG##A&&DbD'MII!!!$,,Q/GGI66'ML--55''!RVV$$bffrk/!&&266B;&&&&Ls   G+G-N)r   r   )r   r   r{  r   r   r   s   f   @@r   test_ptp_basic"TestArrayReductions.test_ptp_basic  s6    !T"6*	3
	4 A!H  r   c                    \         p\        R R7      ! V4      p\        P                  ! ^
4      pV! V4      pV! V4      pV P	                  WE4       R# Tr   N)r   r   r   r   r   )r   r   r   r   r  r  s   &     r   test_ptp_method#TestArrayReductions.test_ptp_method  sE     T"6*IIbM!9Ah.r   c                  a aa	 \         o	\        R R7      ! S	4      oVV	V 3R lpR	R lp\        R R.^R7       F  w  r4V! W44      pV! V4       K  	  \        P                  ! ^4      p\        P
                  ! R
^4      pVRV,          ,           pV! V4       VRV,          ,
          pV! V4       \        P                  ! RRR7      pV! V4       R# )Tr   c                 J   < S! V 4      pS! V 4      pSP                  W4       R # r   r   rn  s   &  r   r   3TestArrayReductions.test_ptp_complex.<locals>.check  rp  r   Fc                    \         P                  ! R^^4      pV '       d   \         P                  VR&   \         P                  ! R^^4      pV'       d   \         P                  VR&   VRV,          ,           P                  ^^4      # )r~  :r~  rv  Nrw     Nr   r  )r   r  r   r   )real_nanimag_nanrealimags   &&  r   
make_array8TestArrayReductions.test_ptp_complex.<locals>.make_array	  sb    ;;r1b)DFFS	;;r1b)DVVT
29$--a33r   )repeatr   )
fill_valueN)FFr  )r~  r~  y      ?      )r   r   r   r   onesr   r}  )
r   r   r  r  r  compr  r  r   r   s
   f       @@r   test_ptp_complex$TestArrayReductions.test_ptp_complex   s    !T"6*	3
	4 #*4-"BHh1D$K #C wwqzyyQb4idb4idwwv63dr   c                <   \         p\        R R7      ! V4      pV P                  4        V P                  4       ;_uu_ 4       pV! \        P
                  ! R4      4       RRR4       RpV P                  V\        XP                  4      4       V P                  \        4      ;_uu_ 4       pV! \        P
                  ! . 4      4       RRR4       RpV P                  V\        VP                  4      4       R#   + '       g   i     L; i  + '       g   i     LL; i)Tr   Nz+Boolean dtype is unsupported (as per NumPy)z&zero-size array reduction not possible)TTF)r   r   r  r   r   r  r  r  r  r  r  )r   r   r   r   msgs   &    r   test_ptp_exceptions'TestArrayReductions.test_ptp_exceptions   s    !T"6* 	!##%%"((./0 & <c3q{{+,z**a"((2, + 7c3q{{+, &% +*s   C8*D8D	D	c                \  a aa	 \         \        3pV EF  o	\        R R7      ! S	4      oVV	V 3R lp\        P                  ! R^
^(4      pVR,          VR&   V^,          pW4R,          ,
          pV! V4       \        ^
4       F  pS P                  P                  V4       S P                  P                  V4       S P                  P                  \        P                  \        P                  .4      pW4R,          ,
          pVR,          VR&   V! VP                  V4      4       K  	  EK  	  R# )Tr   c                 J   < S! V 4      pS! V 4      pSP                  W4       R # r   r   rn  s   &  r   r   =TestArrayReductions.test_min_max_complex_basic.<locals>.check9  #    !!9Ah''6r   Nr~  Nr   Nr  r   )rR   rZ   r   r   r  r  r   r  r  r   r<  r  )
r   pyfuncsr   r  r  r   _r   r   r   s
   f       @@r   test_min_max_complex_basic.TestArrayReductions.test_min_max_complex_basic3  s    "$44F&v.E7
 ;;sB+DBxDH!8Dby A!H2Y##D)##D)**BLL"--+HI"9$""ahhuo&  r   c                  a aa \         \        3pV F  o\        R R7      ! S4      oVVV 3R lp\        P                  ! R^
^(4      pVR	,          VR&   \        P
                  VR&   V^,          p\        P
                  VR&   W4R,          ,
          pV! V4       \        ^
4       F\  pS P                  P                  V4       S P                  P                  V4       W4R,          ,
          pVR	,          VR&   V! V4       K^  	  K  	  R# )
Tr   c                 J   < S! V 4      pS! V 4      pSP                  W4       R # r   r   rn  s   &  r   r   CTestArrayReductions.test_nanmin_nanmax_complex_basic.<locals>.checkR  r  r   r  :r  rv  Nr  r   Nr  r   )	rq   rt   r   r   r  r   r  r   r  )	r   r  r   r  r  r   r  r   r   s	   f      @@r    test_nanmin_nanmax_complex_basic4TestArrayReductions.test_nanmin_nanmax_complex_basicL  s    ,F&v.E7
 ;;sB+DBxDHDI!8DDJby A!H2Y##D)##D)"9$""a ! r   c                   a aa \         \        3pVVV 3R  lpR pV F+  o\        RR7      ! S4      oV! 4        F  pV! V4       K  	  K-  	  R# )c                 J   < S! V 4      pS! V 4      pSP                  W4       R # r   r   rn  s   &  r   r   FTestArrayReductions.test_nanmin_nanmax_non_array_inputs.<locals>.checki  rp  r   c               3   &  "   . ROx  Rx  \         P                  ! ^4      x  Rx  Rx  Rx  \         P                  RR	R3x  \         P                  \         P                  \         P                  ) .x  \         P                  R3R
.x  R# 5i)r  gA`"	@Fr   g?N)r     r~  r   ))r  r~  i)r     ir   g)ggffffff!@)r   r  r   r   rz  r   r   r{  MTestArrayReductions.test_nanmin_nanmax_non_array_inputs.<locals>.a_variationsn  so     00((1+JKK665$,,66266BFF7++FFC=+..s   BBTr   N)rq   rt   r   )r   r  r   r{  r   r   r   s   f    @@r   #test_nanmin_nanmax_non_array_inputs7TestArrayReductions.test_nanmin_nanmax_non_array_inputsf  sE    ,	3
		/ F&v.E!^a $ r   c                   \         P                  ! . RO4      p\         P                  ! ^4      P                  ^^4      pVR;;,          ^d,          uu&   \         P                  ! ^x4      P                  ^^^^4      ^
,           pVR;;,          ^d,          uu&   VR;;,          ^3,          uu&   WV3 F  p\	        \        VP                  4      4      \        VP                  4       Uu. uF  qU^,           ) NK  	  up,           pV Uu. uF	  pV3R lNK  	  ppV U	u. uF  p	\        RR7      ! V	4      NK  	  p
p	V
 F*  pV P                  VP                  V4      V! V4      4       K,  	  K  	  R# u upi u upi u up	i )	r   c                 0    \         P                  ! WR 7      # axisrj   r   _axiss   &&r   <lambda>?TestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<lambda>      bii&>r   Tr   Nr      r   r~  r   r  r   r  r  r   r  r   r   r   
r   r  r   r   listr  r  r   r   py_funcr   arr1darr2darr4dr   r  axesr  py_functionsr   c_functionsr   s   &           r   test_argmax_axis_1d_2d_4d-TestArrayReductions.test_argmax_axis_1d_2d_4d  J   '		!$$Q*c
c
		#&&q!Q2R7jS jR%(Cchh( %chh, /1A#, D
 ! D !%>   
 :F9EvT"6*   %''c(:E#JG % ),   (E/E4E9c                  a a \         P                  ! ^4      p\         P                  ! ^4      P                  ^^4      p\        RR7      R 4       oVV 3R lpV! V^4       V! VR4       V! VR4       V! V^4       S P	                  4        R# )r  Tr   c                 .    \         P                  ! W4      # r   rj   r   r  s   &&r   	jitargmaxDTestArrayReductions.test_argmax_axis_out_of_range.<locals>.jitargmax      99S''r   c                 $  < SP                  \        R 4      ;_uu_ 4        SP                  W4       RRR4       SP                  \        R 4      ;_uu_ 4        S! W4       RRR4       R#   + '       g   i     LA; i  + '       g   i     R# ; izaxis.*out of boundsNassertRaisesRegexr  r  )r   r  r  r   s   &&r   assert_raisesHTestArrayReductions.test_argmax_axis_out_of_range.<locals>.assert_raises  d    ''
4IJJ!!#, K''
4IJJ#$ KJ KJJJJ   A+	A>+A;	>B	Nr9  r   r   r   r   r  )r   r  r  r  r  s   f   @r   test_argmax_axis_out_of_range1TestArrayReductions.test_argmax_axis_out_of_range  s|    		!		!$$Q*	d		( 
	(	% 	eQeR eR eQ!r   c                   \         P                  ! ^4      p\        RR7      R 4       pV P                  4       ;_uu_ 4       pV! VR4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)r  Tr   c                 .    \         P                  ! W4      # r   rj   r  s   &&r   r  GTestArrayReductions.test_argmax_axis_must_be_integer.<locals>.jitargmax  r  r   fooNaxis must be an integerr   r   r   r   r  r  r  )r   r   r  r   s   &   r    test_argmax_axis_must_be_integer4TestArrayReductions.test_argmax_axis_must_be_integer  i    iil	d		( 
	( ##%%c5! &/Q[[1AB &%   
A::B
	c                   a \         P                  ! ^4      P                  ^^4      oV3R lpV P                  V! S4      \	        RR7      ! V4      ! S4      4       R# )r  c                 (   < SP                  ^ R7      # r   r  rf   r   r  s   &r   rg   ;TestArrayReductions.test_argmax_method_axis.<locals>.argmax      <<Q<''r   Tr   Nr   r   r   r   r   r   rg   r  s   & @r   test_argmax_method_axis+TestArrayReductions.test_argmax_method_axis  K    		!$$Q*	( 	u #T 26 :5 A	Cr   c                   a \         P                  ! ^\         P                  R7      P                  ^^4      oV3R lpV P	                  V! S4      \        RR7      ! V4      ! S4      4       R# )r  r   c                 (   < SP                  ^ R7      # r  rf   r   s   &r   rg   ;TestArrayReductions.test_argmax_return_type.<locals>.argmax  r  r   Tr   Nr   r   r	  r   r   r   r  s   & @r   test_argmax_return_type+TestArrayReductions.test_argmax_return_type  R    		!288,44Q:	( 	u #T 26 :5 A	Cr   c                   \         P                  ! . RO4      p\         P                  ! ^4      P                  ^^4      pVR;;,          ^d,          uu&   \         P                  ! ^x4      P                  ^^^^4      ^
,           pVR;;,          ^d,          uu&   VR;;,          ^3,          uu&   WV3 F  p\	        \        VP                  4      4      \        VP                  4       Uu. uF  qU^,           ) NK  	  up,           pV Uu. uF	  pV3R lNK  	  ppV U	u. uF  p	\        RR7      ! V	4      NK  	  p
p	V
 F*  pV P                  VP                  V4      V! V4      4       K,  	  K  	  R# u upi u upi u up	i )	r   c                 0    \         P                  ! WR 7      # r  rc   r  s   &&r   r  ?TestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<lambda>  r  r   Tr   Nr  r  r  r  r  r  s   &           r   test_argmin_axis_1d_2d_4d-TestArrayReductions.test_argmin_axis_1d_2d_4d  r  r  c                  a a \         P                  ! ^4      p\         P                  ! ^4      P                  ^^4      p\        RR7      R 4       oVV 3R lpV! V^4       V! VR4       V! VR4       V! V^4       S P	                  4        R# )r  Tr   c                 .    \         P                  ! W4      # r   rc   r  s   &&r   	jitargminDTestArrayReductions.test_argmin_axis_out_of_range.<locals>.jitargmin  r  r   c                 $  < SP                  \        R 4      ;_uu_ 4        SP                  W4       RRR4       SP                  \        R 4      ;_uu_ 4        S! W4       RRR4       R#   + '       g   i     LA; i  + '       g   i     R# ; ir  r  )r   r  r  r   s   &&r   r  HTestArrayReductions.test_argmin_axis_out_of_range.<locals>.assert_raises  r  r  Nr  r9  r  )r   r  r  r  r  s   f   @r   test_argmin_axis_out_of_range1TestArrayReductions.test_argmin_axis_out_of_range  s~    		!		!$$Q*	d		( 
	(	% 	eQeR eR eQ 	!r   c                   \         P                  ! ^4      p\        RR7      R 4       pV P                  4       ;_uu_ 4       pV! VR4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)r  Tr   c                 .    \         P                  ! W4      # r   rc   r  s   &&r   r  GTestArrayReductions.test_argmin_axis_must_be_integer.<locals>.jitargmin  r  r   r  Nr  r  )r   r   r  r   s   &   r    test_argmin_axis_must_be_integer4TestArrayReductions.test_argmin_axis_must_be_integer  r  r  c                   a \         P                  ! ^4      P                  ^^4      oV3R lpV P                  V! S4      \	        RR7      ! V4      ! S4      4       R# )r  c                 (   < SP                  ^ R7      # r  r_   r   s   &r   r`   ;TestArrayReductions.test_argmin_method_axis.<locals>.argmin  r  r   Tr   Nr  r   r`   r  s   & @r   test_argmin_method_axis+TestArrayReductions.test_argmin_method_axis  r  r   c                   a \         P                  ! ^\         P                  R7      P                  ^^4      oV3R lpV P	                  V! S4      \        RR7      ! V4      ! S4      4       R# )r  r   c                 (   < SP                  ^ R7      # r  r_   r   s   &r   r`   ;TestArrayReductions.test_argmin_return_type.<locals>.argmin  r  r   Tr   Nr  r$  s   & @r   test_argmin_return_type+TestArrayReductions.test_argmin_return_type
  r  r   c                  a  \         \        \        \        \        \
        \        \        \        \        \        \        \        \        \        \        \         \"        \$        \&        \(        \*        \,        .p\.        \0        \2        \4        .pV\6        \8        \:        .,          pV\<        .,          p\>        P@                  \>        PB                  \>        PD                  \>        PF                  .pV 3R  lpV! VRR V4       V! W14       R# )c                   <a V  Fw  p\        V4      p\        W4       FZ  w  opR pVP                  SP                  VP                  P
                  VP                  4      pSVV3V3R llp\        SWV4       K\  	  Ky  	  R# )ztest_{0}_{1}_{2}dc                    < ^pRSP                   9   d   \        P                  ! V4      '       d   ^p\        W4      w  rVV P	                  WVVRVR7       R# )r  r9   single)r  rC  ulpsN)rD  r   iscomplexobjr   r   )r   redFunc	testArraytestNamer0  r!  r"  red_funcs   &&&&   r   new_test_function]TestArrayReductions.install_generated_tests.<locals>.install_tests.<locals>.new_test_function<  sW      !!X%6%66OOI66 $%D#27#F//h5=D 0 Jr   N)r   r   formatrD  r   namer  setattr)	dtypesfuncsdttest_arraysr   	test_namer6  r5  clss	   &&     @r   install_testsBTestArrayReductions.install_generated_tests.<locals>.install_tests1  s~    .r2,3E,G(Hj 3I ) 0 01B1B1;1A1A1F1F1;!BI 9A4>3<J C>+ -H r   Nr   )$r5   r7   r:   r=   rA   rC   rF   rH   rK   rM   r   r   r   r   rP   rR   r]   rU   rX   rZ   rt   rq   rz   ra   rd   rh   rk   rw   r   r   r}   r   r   r   r   r   )r@  reduction_funcsreduction_funcs_rspacedtypes_to_testrA  s   f    r   install_generated_tests+TestArrayReductions.install_generated_tests  s    
 %&6%'8%'8$&6$&6$&6$&6$&6%z$&6''  #/0C".0C"E 	M<FFM?*((BJJ",,G	?8 	nSb)+AB 	n6r   rz  )r  )F)hrD  
__module____qualname____firstlineno____doc__r   r   r   r   r   r  r  r   r!  r&  r+  r/  r3  r>  rD  rG  rJ  rM  rP  rS  rV  rZ  r]  r`  rc  rg  rj  rm  rp  r  staticmethodr  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r#  r&  r*  r.  r1  r4  r7  r:  r=  r@  rG  rL  rP  rS  rW  rZ  r^  ra  rd  rg  rj  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r*  classmethodrF  __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r      s$    4"H %. ": %. " :./#!J=../2,11112121@8  4?;B,\K4K411//@21;=!,	/,3-4*&;>HJMI<;;9400**--4*-+!F43$L 	/ 	/@-&'242H."*	CCCH.",	CCC ;7 ;7 ;7r   r   c                   Z   a  ] tR tRt o ]P
                  ! ^ 4      tR t]R 4       t	Rt
V tR# )TestArrayReductionsExceptionsiV  c                   \        R R7      ! V4      pV P                  \        4      ;_uu_ 4        V! V P                  4       RRR4       V P                  \        4      ;_uu_ 4       pV! V P                  4       RRR4       V P                  V\        XP                  4      4       R#   + '       g   i     Lo; i  + '       g   i     LJ; ir  )r   r  BaseException	zero_sizer  r  r  r  )r   r   r  r   r   s   &&&  r   check_exception-TestArrayReductionsExceptions.check_exception[  s    T"6*}--4>>" . z**a$..! +c3q{{+, .- +*s   B*(B=*B:	=C	c                   \        4       pR pRp\        \        \        \        3 F  pW!V&   K	  	  \
        \
        \        \        3 F  pW1V&   K	  	  RpVP                  4        Fo  w  rgVP                  VP                  4      pVP                  VP                  4      p	V	P                  RR4      P                  RR4      p	Wi3R lp
\        WV
4       Kq  	  R# )z'attempt to get {0} of an empty sequencez*zero-size array to reduction operation {0}ztest_zero_size_array_{0}array_ _globalc                 (    V P                  W4       R # r   )rW  )r   funcmessages   &&&r   test_fn6TestArrayReductionsExceptions.install.<locals>.test_fnx  s    $$T3r   N)dictrh   rk   ra   rd   rX   rP   itemsr8  rD  rr  r:  )r@  	fn_to_msg	empty_seqop_no_identr  name_templatefnr  r?  lmsgr`  s   &          r   install%TestArrayReductionsExceptions.installe  s     F	=	 3\%'A$aL' Y	9=A&aL > 3 (GB%,,R[[9I::bkk*D<<,44YrBD#% 4 CG, )r   rz  N)rD  rH  rI  rJ  r   r   rV  rW  rM  rj  rN  rO  )rQ  s   @r   rS  rS  V  s-      		!I- - -r   rS  __main__)G	itertoolsr   r   numpyr   numbar   r   r   numba.np.numpy_supportr   numba.tests.supportr	   r
   r   r   unittestr   r   r   r   r!   r#   r'   r*   r-   r1   r5   r7   r:   r=   rA   rC   rF   rH   rK   rM   rP   rR   rU   rX   rZ   r]   ra   rd   rh   rk   rn   rq   rt   rw   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   rF  rS  rj  rD  mainrz  r   r   <module>rt     sa   <  # # 0 O O !$""(&Q7/8 Q7h$  + + -%-OX %-N  % % ' zMMO r   