
    (ph#                         S SK r S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJr  S SKJrJrJr  \\R*                  R-                  S	5      /r\R*                  R0                  r " S
 S5      rg)    N)suppress_warnings)	variation)	AxisError)array_api_compatible)is_numpy)xp_assert_equalxp_assert_close)too_small_nd_omittoo_small_nd_not_omitSmallSampleWarningskip_xp_backendsc                   ^   \ rS rSrSrS r\R                  R                  SSS/5      S 5       r	S r
\R                  R                  S	S
\R                  4S\R                  " S5      S-  4/5      \" SSS9S 5       5       r\" SSS9S 5       r\" SSS9S 5       r\" SSS9S 5       r\" SSS9\R                  R                  SS\R&                  " S5      4S\R(                  " S\R                  S94/5      S 5       5       r\" SSS9\R                  R                  SS\R,                  4S\R                  4/5      S 5       5       r\" SSS9S 5       r\" SSS9S  5       rS! rS" r\R                  R                  S#S$/S%-  SS&\R,                  S'//5      S( 5       r\R                  R                  SS/ 4S\R                  /S)-  4S*\R                  4/5      S+ 5       rS, r\" SSS9S- 5       r\" SSS9\R                  R                  S.S
S/5      S/ 5       5       r \" SSS9\R                  R                  S0S\R                  " S15      \R                  " S25      \R,                  S\R                  S$\R                  /4SS3\R                  " S45      \R,                  S\R                  S\R                  /4S&\R                  " S35      \R                  " S55      \R,                  \R                  \R                  S\R                  /4/5      S6 5       5       r!\" SSS9S7 5       r"S8r#g*)9TestVariation   z&
Test class for scipy.stats.variation
c                     UR                  S5      n[        [        USS9UR                  [        R
                  " S5      S-  5      5        g )N      "@   ddofg      @   )aranger	   r   asarraymathsqrtselfxpxs      S/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_variation.py	test_ddofTestVariation.test_ddof   s6    IIcN	!!,bjj49J.KL    sgnr   c                     UR                  / SQ5      n[        X-  5      nUR                  U[        R                  " S5      -  S-  5      n[	        XESS9  g )N      ?       @      @      @g      @      g|=)rtol)r   r   r   r   r	   )r   r#   r   r   vexpecteds         r   	test_signTestVariation.test_sign   sG    JJ+,ce::c$))A,.q01%0r"   c                 .    [        [        S5      S5        g )Nr*           )r   r   r   r   s     r   test_scalarTestVariation.test_scalar#   s    	#,r"   znan_policy, expected	propagateomitg@r   Tz(`nan_policy` only supports NumPy backend)np_onlyreasonc                 j    UR                  S5      nUR                  US'   [        [        XAS9U5        g )N      $@	   
nan_policy)r   nanr	   r   )r   r?   r/   r   r   s        r   test_variation_nan TestVariation.test_variation_nan'   s-     IIcNvv!	!;XFr"   c                     UR                  SSUR                  S/5      n[        R                  " [        SS9   [        USS9  S S S 5        g ! , (       d  f       g = f)Nr'   r(   r)   zinput contains nanmatchraiser>   )r   r@   pytestraises
ValueErrorr   r   s      r   test_nan_policy_raise#TestVariation.test_nan_policy_raise1   sE     JJS"&&#./]]:-ABaG, CBBs   A
Ac                     [         R                  " [        SS9   [        / SQSS9  S S S 5        g ! , (       d  f       g = f)Nzmust be one ofrD   r   r+   r,   foobarr>   )rG   rH   rI   r   r4   s     r   test_bad_nan_policy!TestVariation.test_bad_nan_policy8   s)     ]]:-=>iH5 ?>>s   0
>z&`keepdims` only supports NumPy backendc                    UR                  UR                  S5      S5      n[        USSS9n[        R                  " [        R
                  " S5      S-  /[        R
                  " S5      S-  //5      n[        X45        g )N
   )r+      r   Taxiskeepdimsr+      )reshaper   r   nparrayr   r	   )r   r   r   yr/   s        r   test_keepdimsTestVariation.test_keepdims>   sf     JJryy}f-aa$/88bggajl^ ggajl^- .$r"   zaxis, expectedr   r   r   )rS   r   
fill_valuec                     UR                  S5      nUS:X  a1  [        R                  " [        [        S9   [        XASS9nS S S 5        O
[        XASS9n[        WU5        g ! , (       d  f       N= f)N)rS   r   r   rD   TrT   )zerosrG   warnsr   r   r   r   )r   rU   r/   r   r   r[   s         r   test_keepdims_size0!TestVariation.test_keepdims_size0G   s`     HHV1908MNaT: ON !6A8$	 ONs   A  
A.zincr, expected_fillc                     UR                  / SQ/ SQ/5      n[        USUR                  S   U-   SS9n[        XSR	                  SUS95        g )N)r   r   r+   r+   )r   r+   r,   r,   r   T)rU   r   rV   )r+   r   r_   )r   r   shaper   full)r   increxpected_fillr   r   r[   s         r   'test_keepdims_and_ddof_eq_len_plus_incr5TestVariation.test_keepdims_and_ddof_eq_len_plus_incrU   sI     JJl34aaaggaj4&7$G776m7DEr"   c                     UR                  UR                  S[        S9S5      nUR                  US'   [	        USSS9n[        U[        R                  " S5      S	-  UR                  /S
S9  g )N   dtype)r+   r$   r^   r   r7   rU   r?         ?      ?gV瞯<)atol)rX   r   floatr@   r   r	   r   r   )r   r   ar.   s       r   test_propagate_nan TestVariation.test_propagate_nan]   s^    
 JJryy%y0':&&$aaK8DIIcN3.7eDr"   z$Python list input uses NumPy backendc                 j    [        SS/SS//S S9n[        U[        R                  " S5      S-  5        g )Nr   r   r+   r,   rU   rr   rs   )r   r	   r   r   )r   r   r[   s      r   test_axis_noneTestVariation.test_axis_noneg   s4     1v1v&T2499S>#-.r"   c                     UR                  / SQ/ SQ/5      n[        R                  " [        [        45         [        USS9  S S S 5        g ! , (       d  f       g = f)NrM   )r   rS      rR   rz   )r   rG   rH   r   
IndexErrorr   r   s      r   test_bad_axisTestVariation.test_bad_axisn   s<    JJ	9-.]]Iz23ab! 433s   A
Ac                 (   UR                  / SQ5      n[        U5      n[        X1R                  UR                  5      5        UR	                  USU-  /5      n[        USS9n[        XQR                  UR                  UR                  /5      5        g )N)r<         r'         r   g      $r   rz   )r   r   r   infstack)r   r   r   r[   x2y2s         r   test_mean_zeroTestVariation.test_mean_zerot   sq     JJ/0aL::bff-.XXq$q&k"r"JJ'789r"   r   r3   rS   r+   r=   c                     UR                  U5      n[        U5      n[        X2R                  UR                  UR                  S95        g )Nro   )r   r   r   r@   rp   )r   r   r   r[   s       r   test_return_nanTestVariation.test_return_nan   s5    JJqMaL::bffAGG:<=r"   r,   Nc                    UR                  S5      n[        5        nUR                  [        S5        US:w  aF  [	        U5      (       a,  [
        R                  " [        SS9   [        XAS9nS S S 5        O[        XAS9nO	[        XAS9nS S S 5        [        WUR                  U5      5        g ! , (       d  f       N2= f! , (       d  f       N;= f)N)r,   r   zstd*r   zSee documentation...rD   rz   )emptyr   filterUserWarningr   rG   rc   r   r   r   r   )r   rU   r/   r   r   supr[   s          r   test_2d_size_zero_with_axis)TestVariation.test_2d_size_zero_with_axis   s     HHV CJJ{F+qyB<<&8@VW%a3 XW "!/Aa+ ! 	2::h/0 XW ! s$   AB="
B,,B=,
B:	6B==
Cc                     UR                  SS/5      n[        [        USS9UR                  UR                  * 5      5        g )Nr   g      r+   r   )r   r   r   r   )r   r   x1s      r   test_neg_infTestVariation.test_neg_inf   s6     ZZc
#	"1-rzz266'/BCr"   c           	          UR                  UR                  SSUR                  /SSUR                  UR                  //5      n[        [        USSSS9UR                  * UR                  * /5        g )Nr   iir+   r8   rU   r   r?   )r   r@   r   r   r   )r   r   r   s      r   test_neg_inf_nanTestVariation.test_neg_inf_nan   sg     ZZ"&&!S"&&1r26626624 5	"11H&&266'*	,r"   r?   c           	         UR                  SSUR                  S/SSUR                  S/SSUR                  S//5      nUS:X  a2  [        R                  " [        [
        S9   [        USUS	9nS S S 5        O[        USUS	9n[        WUR                  UR                  UR                  [        R                  " S
5      S-  /5        g ! , (       d  f       NT= f)Nr   rR   r   r+   r,   r8   rD   rq   gUUUUUU?)rZ   r@   rG   rc   r   r
   r   r	   r   r   r   )r   r?   r   r   r[   s        r   test_combined_edge_cases&TestVariation.test_combined_edge_cases   s     HHq"bffa("bffa("bffa(* + 08IJaaJ? KJ !!
;ABFFBFFBFFDIIcN14DEF	 KJs   "C
Czddof, expectedgUUUUUU?g      ?      ?g?rr   c           
         UR                   nUR                  SSUS// SQUSSU/USSU/XDXD// SQ/ S	Q/5      n[        R                  " [        [
        S
9   [        USUSS9nS S S 5        [        WU5        g ! , (       d  f       N= f)Nr'   r(   r)   )r3   r*   r)   r'   g      r   r   )r)   r)   r)   r)   )r3   r3   r3   r3   rD   r   r8   r   )r@   r   rG   rc   r   r
   r   r	   )r   r   r/   r   r@   r   r.   s          r   test_more_nan_policy_omit_tests-TestVariation.test_more_nan_policy_omit_tests   s     ffJJc3,,c3,c3,3,,,. / \\,4EF!!$6BA G8$ GFs   A88
Bc           	          UR                  / SQ5      nUR                  SSSUR                  SSUR                  /5      n[        USS9n[        USSS	9n[        U[        R
                  " S
5      S-  5        XE:X  d   eg )Nr&   r   r+   r,   r   rS   r   r8   )r?   r   g      @)r   r@   r   r	   r   r   )r   r   rv   nan_ar[   nan_ys         r   test_variation_ddof!TestVariation.test_variation_ddof   ss    
 JJ+,

Aq!RVVQ266:;aa %F;499S>!+,zzr"    )$__name__
__module____qualname____firstlineno____doc__r    rG   markparametrizer0   r5   rY   r@   r   r   rA   rJ   rO   r\   r   rh   rd   r   rk   rw   r{   r   r   r   r   r   r   r   r   r   __static_attributes__r   r"   r   r   r      s   M [[UQG,1 -1- [[3*BFF3%rwwt}Q79: dGIGI:
G
 dGI-I-
 dGI6I6 dEG%G% dEG[[- "((6"23 "''&RVV"DEGH%HG
% dEG[[2a[1bff+4NOF PGF
 dGIEIE d+QR/ S/"	: [[SB46Aq"&&!+<"=>> ?> [[- "gBFF8A:rvvGI1I1D dGI,I, dGI[[\K+@A	G BI	G dGI[[
bggclBGGCL"&&!RVVS"&&I	J
c2773<BFFArvv>	?
bggclBGGCL"&&"&&"&&!RVVL	M	O%I%" dGIIr"   r   )r   numpyrY   rG   numpy.testingr   scipy.statsr   scipy._lib._utilr   scipy.conftestr   scipy._lib._array_apir   scipy._lib._array_api_no_0dr   r	   scipy.stats._axis_nan_policyr
   r   r   r   usefixtures
pytestmarkr   r   r   r"   r   <module>r      sb       + ! & / * H> > #FKK$;$;<N$OP
;;// C Cr"   