
    Cpj#                         S SK r S SKrS SKrS SKJr  S SKJrJrJ	r	  S SK
JrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJr  \/r\R2                  R4                  r\" \5       " S	 S
5      5       rg)    N)	AxisError)make_xp_test_caseeager_warnsis_numpy)xp_assert_equalxp_assert_close)array_api_extra)stats	variation)too_small_nd_omittoo_small_nd_not_omitSmallSampleWarningc                   r   \ 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      R+                  5       4S\R,                  " S\R                  S9R+                  5       4/5      S 5       5       r\
" SSS9\R                  R                  S S\R0                  4S\R                  4/5      S! 5       5       r\
" SSS9S" 5       rS# rS$ r\R                  R;                  S%5      S& 5       r\R                  R;                  S'5      \R                  R                  S(S)/S*-  SS+\R0                  S,//5      S- 5       5       r\R                  R;                  S.5      \R                  R                  SS/ 4S\R                  /S/-  4S0\R                  4/5      S1 5       5       r \R                  R;                  S%5      S2 5       r!\
" SS3S
9S4 5       r"\R                  R                  S5SS/5      S6 5       r#\
" SS3S
9\R                  R                  S7S\R                  " S85      \R                  " S95      \R0                  S\R                  S)\R                  /4SS:\R                  " S;5      \R0                  S\R                  S\R                  /4S+\R                  " S:5      \R                  " S<5      \R0                  \R                  \R                  S\R                  /4/5      S= 5       5       r$\
" SSS9S> 5       r%S?r&g0)@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/pdf-tiff/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_onlyreasonc                 &    [        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"lazy -> limited nan_policy support)
eager_onlyr5   c                     UR                  S5      nUR                  US'   [        [        XAS9UR	                  U5      5        g )N      $@	   
nan_policy)r   nanr   r   r   )r   rB   r1   r   r    s        r!   test_variation_nan TestVariation.test_variation_nan*   s6    
 IIcNvv!	!;RZZ=QRr$   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raiserA   )r   rC   pytestraises
ValueErrorr   r   s      r!   test_nan_policy_raise#TestVariation.test_nan_policy_raise3   sC    JJS"&&#./]]:-ABaG, CBBs   A
Az
dask.arrayzneeds `_axis_nan_policy`)r5   c                     [         R                  " [        SS9   [        UR	                  / SQ5      SS9  S S S 5        g ! , (       d  f       g = f)Nzmust be one ofrG   r   r-   r.   foobarrA   )rJ   rK   rL   r   r   r8   s     r!   test_bad_nan_policy!TestVariation.test_bad_nan_policy9   s0    ]]:-=>bjj+A ?>>s	   ?
Ac                     UR                  UR                  S5      S5      n[        USSS9nSUR                  S/S//5      -  n[	        X45        g )	N
   )r-      r   Taxiskeepdimsg;f?r*   g      @)reshaper   r   r   r   )r   r   r    yr1   s        r!   test_keepdimsTestVariation.test_keepdims>   sK    JJryy}f-aa$/BJJrd|44$r$   zaxis, expectedr   r   r   )rV   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R                  U5      5        g ! , (       d  f       N*= f)N)rV   r   r   rG   TrW   )zerosrJ   warnsr   r   r   r   r   r   rX   r1   r   r    r[   s         r!   test_keepdims_size0!TestVariation.test_keepdims_size0E   si    
 HHV1908MNaT: ON !6A2::h/0	 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)rX   r   rY   )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_incrR   sI     JJl34aaaggaj4&7$G776m7DEr$   c                 :   UR                  UR                  S5      S5      n[        R                  " U5      S   R	                  UR
                  5      n[        USSS9n[        X1R                  [        R                  " S5      S-  UR
                  /5      5        g )	Ng       @)r-   r&   r^   r   r;   rX   rB         ?      ?)rZ   r   xpxatsetrC   r   r   r   r   r   )r   r   ar0   s       r!   test_propagate_nan TestVariation.test_propagate_nanY   sq     JJryy}g.FF1IdO'aaK8::tyy~c'9266&BCDr$   c                     [        UR                  SS/SS//5      S S9n[        X!R                  [        R                  " S5      S-  5      5        g )Nr   r   r-   r.   rX   rp   rq   )r   r   r   r   r   )r   r   r[   s      r!   test_axis_noneTestVariation.test_axis_noneb   sD     bjj1a&1a&!12>::diinS&89: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)NrP   )r   rV      rU   ry   )r   rJ   rK   r   
IndexErrorr   r   s      r!   test_bad_axisTestVariation.test_bad_axish   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   ry   )r   r   r   infstack)r   r   r    r[   x2y2s         r!   test_mean_zeroTestVariation.test_mean_zeron   sq     JJ/0aL::bff-.XXq$q&k"r"JJ'789r$   z4ignore:invalid value encountered:RuntimeWarning:daskr    r7   rV   r-   r@   c                     UR                  U5      n[        U5      n[        X2R                  UR                  UR                  S95        g )N)dtype)r   r   r   rC   r   )r   r    r   r[   s       r!   test_return_nanTestVariation.test_return_nanz   s7     JJqMaL::bffAGG:<=r$   z4ignore:Invalid value encountered:RuntimeWarning:daskr.   Nc                     UR                  S5      nUS:w  a!  [        [        US9   [        XAS9nS S S 5        O	[        XAS9n[	        WUR                  U5      5        g ! , (       d  f       N*= f)N)r.   r   r   )r   ry   )emptyr   r   r   r   r   rd   s         r!   test_2d_size_zero_with_axis)TestVariation.test_2d_size_zero_with_axis   s`     HHV19 /B7a+ 87 !'A2::h/0	 87s   
A
A,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$   z(only NumPy supports ND nan_policy="omit"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                  * UR                  * /5      5        g )Nr   iir-   r<   rX   r   rB   )r   rC   r   r   r   )r   r   r   s      r!   test_neg_inf_nanTestVariation.test_neg_inf_nan   sn    ZZ"&&!S"&&1r26626624 5	"11H

RVVGbffW#56	8r$   rB   c                    [        U5      (       d  [        R                  " S5        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                  UR                  [        R                  " S5      S-  /5      5        g ! , (       d  f       Nc= f)Nz(Only NumPy supports ND nan_policy='omit'r   rU   r   r-   r.   r<   rG   ro   gUUUUUU?)r   rJ   skipr   rC   rc   r   r   r   r   r   r   r   )r   rB   r   r    r[   s        r!   test_combined_edge_cases&TestVariation.test_combined_edge_cases   s    ||KKBCJJB*B*B*, - 08IJaaJ? KJ !!
;A2::rvvrvvrvvtyy~a?O&PQR	 KJs   C==
Dzddof, expectedgUUUUUU?g      ?      ?g?rp   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+   )r7   r,   r+   r)   g      r   r   )r+   r+   r+   r+   )r7   r7   r7   r7   rG   r   r<   r   )rC   r   rJ   rc   r   r   r   r   )r   r   r1   r   rC   r    r0   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[        XAR                  [        R
                  " S
5      S-  5      5        XE:X  d   eg )Nr(   r   r-   r.   r   rV   r   r<   )rB   r   g      @)r   rC   r   r   r   r   )r   r   ru   nan_ar[   nan_ys         r!   test_variation_ddof!TestVariation.test_variation_ddof   sz     JJ+,

Aq!RVVQ266:;aa %F;::diinQ&678zzr$    )'__name__
__module____qualname____firstlineno____doc__r"   rJ   markparametrizer2   skip_xp_backendsr9   nprC   r   r   rD   rM   rR   r\   r   tolistri   re   r   rl   rv   rz   r   filterwarningsr   r   r   r   r   r   r   r   __static_attributes__r   r$   r!   r   r      s>   M [[UQG,1 -1 d+KL% M% [[3*BFF3%tyyq'89;< .RSS T<S
 .RS- T-
 l+EFB GB l+EF% G% l+EF[[- "((6"2"9"9";< "''&RVV"D"K"K"MNPQ1Q G1 l+EF[[2a[1bff+4NOF P GF
 l+EFE GE;" [[ WX	: Y	: [[ VW[[SB46Aq"&&!+<"=>> ? X> [[ VW[[- "gBFF8A:rvvGI	1I X	1 [[ WXD YD d+UV8 W8 [[\K+@AS BS d+UV[[
bggclBGGCL"&&!RVVS"&&I	J
c2773<BFFArvv>	?
bggclBGGCL"&&"&&"&&!RVVL	M	O% W%" .RS Tr$   r   )r   numpyr   rJ   scipy._lib._utilr   scipy._lib._array_apir   r   r   scipy._lib._array_api_no_0dr   r   scipy._externalr	   rr   scipyr
   scipy.statsr   scipy.stats._axis_nan_policyr   r   r   lazy_xp_modulesr   r   r   r   r$   r!   <module>r      sg       & J J H 2  !> > ';;//  9x x xr$   