
    9i$                         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Jr  S SKJrJrJr  \R&                  R(                  r\" SS	S
9 " S S5      5       rg)    N)suppress_warnings	variation)	AxisError)is_numpy)xp_assert_equalxp_assert_close)too_small_nd_omittoo_small_nd_not_omitSmallSampleWarningtorchzdata-apis/array-api-compat#271)reasonc                      \ rS rSrSrS r\R                  R                  SSS/5      S 5       r	\
" SS	S
9S 5       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\R                  R7                  S#5      S$ 5       r\R                  R7                  S%5      \R                  R                  S&S'/S(-  SS)\R,                  S*//5      S+ 5       5       r\R                  R                  SS/ 4S\R                  /S,-  4S-\R                  4/5      S. 5       rS/ r\
" SSS
9S0 5       r \
" SSS
9\R                  R                  S1SS/5      S2 5       5       r!\
" SSS
9\R                  R                  S3S\R                  " S45      \R                  " S55      \R,                  S\R                  S'\R                  /4SS6\R                  " S75      \R,                  S\R                  S\R                  /4S)\R                  " S65      \R                  " S85      \R,                  \R                  \R                  S\R                  /4/5      S9 5       5       r"\
" SSS
9S: 5       r#S;r$g-)<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      `/var/www/html/land-doc-ocr/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#   Tztest plain python scalar input)np_onlyr   c                 &    [        S5      S:X  d   eg )Nr+           r   r   r   s     r    test_scalarTestVariation.test_scalar"   s     ~$$$r#   znan_policy, expected	propagateomitg@r   z(`nan_policy` only supports NumPy backendc                 j    UR                  S5      nUR                  US'   [        [        XAS9U5        g )N      $@	   
nan_policy)r   nanr	   r   )r   r?   r0   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   r6   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   yr0   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   r0   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   r9   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z5ignore:divide by zero encountered:RuntimeWarning:daskc                 (   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#   z4ignore:invalid value encountered:RuntimeWarning:daskr   r5   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   s7     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   r0   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,   r:   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-   r:   rD   rq   gUUUUUU?)r   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     JJB*B*B*, - 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*   )r5   r+   r*   r(   g      r   r   )r*   r*   r*   r*   )r5   r5   r5   r5   rD   r   r:   r   )r@   r   rG   rc   r   r
   r   r	   )r   r   r0   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   r:   )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parametrizer1   skip_xp_backendsr7   rY   r@   r   rA   rJ   rO   r\   r   rh   rd   r   rk   rw   r{   r   filterwarningsr   r   r   r   r   r   r   r   __static_attributes__r   r#   r    r   r      s9   M [[UQG,1 -1 d+KL% M% [[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/" [[ WX	: Y	: [[ VW[[SB46Aq"&&!+<"=>> ? X> [[- "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._lib._array_apir   scipy._lib._array_api_no_0dr   r	   scipy.stats._axis_nan_policyr
   r   r   r   r   r   r   r#   r    <module>r      s^       + ! & * H> > ;;//  '"BCF F DFr#   