
    doi$                         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	J
r
  S SKJrJr  S SKJrJrJr  \R$                  R&                  r\	" \5       " S S5      5       rg)	    N	variation)	AxisError)make_xp_test_caseeager_warns)xp_assert_equalxp_assert_close)too_small_nd_omittoo_small_nd_not_omitSmallSampleWarningc                   b   \ 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                  R7                  S,5      \R                  R                  SS/ 4S\R                  /S--  4S.\R                  4/5      S/ 5       5       r\R                  R7                  S#5      S0 5       r\
" SSS
9S1 5       r \
" SSS
9\R                  R                  S2SS/5      S3 5       5       r!\
" SSS
9\R                  R                  S4S\R                  " S55      \R                  " S65      \R,                  S\R                  S'\R                  /4SS7\R                  " S85      \R,                  S\R                  S\R                  /4S)\R                  " S75      \R                  " S95      \R,                  \R                  \R                  S\R                  /4/5      S: 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-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_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(`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>   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 ofrC   r   r*   r+   foobarr=   )rF   rG   rH   r   r5   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   )rR   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)rR   r   r   rC   TrS   )zerosrF   warnsr   r   r   r   r   rT   r.   r   r   rZ   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)rT   r   rU   )r*   r   r^   )r   r   shaper   full)r   increxpected_fillr   r   rZ   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   r8   rT   r>         ?      ?gV瞯<)atol)rW   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+   rT   rr   rs   )r   r	   r   r   )r   r   rZ   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)NrL   )r   rR      rQ   rz   )r   rF   rG   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   rZ   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   r4   rR   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   rZ   s       r   test_return_nanTestVariation.test_return_nan   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   rz   )emptyr   r   r   r   r   rc   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!   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*   r9   rT   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   rQ   r   r*   r+   r9   rC   rq   gUUUUUU?)r   r?   rF   rb   r   r
   r   r	   r   r   r   )r   r>   r   r   rZ   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(   )r4   r)   r(   r&   g      r   r   )r(   r(   r(   r(   )r4   r4   r4   r4   rC   r   r9   r   )r?   r   rF   rb   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   rR   r   r9   )r>   r   g      @)r   r?   r   r	   r   r   )r   r   rv   nan_arZ   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   rF   markparametrizer/   skip_xp_backendsr6   rX   r?   r   r@   rI   rN   r[   r   rh   rd   r   rk   rw   r{   r   filterwarningsr   r   r   r   r   r   r   r   __static_attributes__r   r!   r   r   r      ss   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> [[ VW[[- "gBFF8A:rvvGI	1I X	1 [[ WXD Y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   numpyrX   rF   scipy.statsr   scipy._lib._utilr   scipy._lib._array_apir   r   scipy._lib._array_api_no_0dr   r	   scipy.stats._axis_nan_policyr
   r   r   r   r   r   r   r!   r   <module>r      sW       ! & @ H> > ;;//  9D D Dr!   