+
    nDj#                         ^ RI t ^ RIt^ RIt^ RIHt ^ RIHtHtH	t	 ^ RI
HtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHt ].t]P2                  P4                  t]! ]4       ! R	 R
4      4       tR# )    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                     a  ] tR t^t o RtR t]P                  P                  R^R0.4      R 4       t	]
! RRR7      R 4       t]P                  P                  R	R
]P                  3R]P                  ! R14      ^,          3.4      ]
! RRR7      R 4       4       t]
! RRR7      R 4       t]
! RRR7      R 4       t]
! RRR7      R 4       t]
! RRR7      ]P                  P                  R^ ]P(                  ! R24      P+                  4       3^]P,                  ! R3]P                  R7      P+                  4       3.4      R 4       4       t]
! RRR7      ]P                  P                  R^ ]P0                  3^]P                  3.4      R 4       4       t]
! RRR7      R 4       tR tR t]P                  P;                  R4      R 4       t]P                  P;                  R4      ]P                  P                  R R!.^,          ^^]P0                  ^	..4      R" 4       4       t]P                  P;                  R#4      ]P                  P                  R^ . 3^]P                  .^,          3R$]P                  3.4      R% 4       4       t ]P                  P;                  R4      R& 4       t!]
! RR'R7      R( 4       t"]P                  P                  R)R
R.4      R* 4       t#]
! RR'R7      ]P                  P                  R+^ ]P                  ! R44      ]P                  ! R54      ]P0                  ^ ]P                  R!]P                  .3^R,]P                  ! R64      ]P0                  ^ ]P                  ^ ]P                  .3^]P                  ! R,4      ]P                  ! R74      ]P0                  ]P                  ]P                  ^ ]P                  .3.4      R- 4       4       t$]
! RRR7      R. 4       t%R/t&V t'R$# )8TestVariationz&
Test class for scipy.stats.variation
c                    VP                  R 4      p\        \        V^R7      VP                  \        P
                  ! R4      ^,          4      4       R# )      "@ddofNg      @)aranger   r   asarraymathsqrtselfxpxs   && Z/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/stats/tests/test_variation.py	test_ddofTestVariation.test_ddof   s6    IIcN	!!,bjj49J.KL    sgnc                    VP                  . RO4      p\        W,          4      pVP                  V\        P                  ! ^4      ,          ^,          4      p\	        WERR7       R# )      ?g|=)rtolNr$          @      @      @g      @)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                *    \        R 4      R8X  g   Q hR# )r)           Nr   r   r   s   &&r   test_scalarTestVariation.test_scalar%   s     ~$$$r!   znan_policy, expected	propagateomitz"lazy -> limited nan_policy support)
eager_onlyr/   c                    VP                  R 4      pVP                  V^	&   \        \        WAR7      VP	                  V4      4       R# )      $@
nan_policyN)r   nanr   r   r   )r   r;   r+   r   r   s   &&&& r   test_variation_nan TestVariation.test_variation_nan*   s6    
 IIcNvv!	!;RZZ=QRr!   c                    VP                  R RVP                  R.4      p\        P                  ! \        RR7      ;_uu_ 4        \        VRR7       RRR4       R#   + '       g   i     R# ; i)r$   r'   r(   zinput contains nanmatchraiser:   N)r   r<   pytestraises
ValueErrorr   r   s   && r   test_nan_policy_raise#TestVariation.test_nan_policy_raise3   sI    JJS"&&#./]]:-ABBaG, CBBBs   AA-	z
dask.arrayzneeds `_axis_nan_policy`)r/   c                    \         P                  ! \        R R7      ;_uu_ 4        \        VP	                  . RO4      RR7       RRR4       R#   + '       g   i     R# ; i)zmust be one ofr@   foobarr:   N         )rC   rD   rE   r   r   r2   s   &&r   test_bad_nan_policy!TestVariation.test_bad_nan_policy9   s6    ]]:-=>>bjj+A ?>>>s   AA	c                    VP                  VP                  ^
4      R4      p\        V^RR7      pRVP                  R.R..4      ,          p\	        W44       R# )
   Taxiskeepdimsr'   g      @N)rL      g;f?)reshaper   r   r   r   )r   r   r   yr+   s   &&   r   test_keepdimsTestVariation.test_keepdims>   sK    JJryy}f-aa$/BJJrd|44$r!   zaxis, expected
fill_valuec                *   VP                  R4      pV^8X  d@   \        P                  ! \        \        R7      ;_uu_ 4        \        WARR7      pRRR4       M\        WARR7      p\        XVP                  V4      4       R#   + '       g   i     L-; i)rU   r@   TrR   N)rU   r   )zerosrC   warnsr   r   r   r   r   r   rS   r+   r   r   rW   s   &&&&  r   test_keepdims_size0!TestVariation.test_keepdims_size0E   sl    
 HHV1908MNNaT: ON !6A2::h/0	 ONs   BB	zincr, expected_fillc                    VP                  . RO. RO.4      p\        V^VP                  ^,          V,           RR7      p\        WSP	                  RVR7      4       R# )rK   T)rS   r   rT   rZ   N)rK   rK   rL   rL   )rK   rL   rM   rM   )rL   rK   )r   r   shaper   full)r   increxpected_fillr   r   rW   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                R   VP                  VP                  R 4      R4      p\        P                  ! V4      R,          P	                  VP
                  4      p\        V^RR7      p\        W1P                  \        P                  ! R4      R,          VP
                  .4      4       R# )g       @r5   rS   r;         ?N)rL   rK   r         ?)rV   r   xpxatsetr<   r   r   r   r   r   )r   r   ar*   s   &&  r   test_propagate_nan TestVariation.test_propagate_nanY   sq     JJryy}g.FF1IdO'aaK8::tyy~c'9266&BCDr!   c                    \        VP                  ^ ^.^^..4      RR7      p\        W!P                  \        P                  ! R4      R,          4      4       R# )r   NrS   rk   rn   )r   r   r   r   r   )r   r   rW   s   && r   test_axis_noneTestVariation.test_axis_noneb   sD     bjj1a&1a&!12>::diinS&89:r!   c                    VP                  . RO. RO.4      p\        P                  ! \        \        34      ;_uu_ 4        \        V^
R7       RRR4       R#   + '       g   i     R# ; i)rK   rv   NrJ   )   rU      )r   rC   rD   r   
IndexErrorr   r   s   && r   test_bad_axisTestVariation.test_bad_axish   sB    JJ	9-.]]Iz233ab! 4333s    AA)	z5ignore:divide by zero encountered:RuntimeWarning:daskc                8   VP                  . RO4      p\        V4      p\        W1P                  VP                  4      4       VP	                  VRV,          .4      p\        V^R7      p\        WQP                  VP                  VP                  .4      4       R# )r9   rv   N)r9         r$         r   g      $)r   r   r   infstack)r   r   r   rW   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   r1   c                    VP                  V4      p\        V4      p\        W2P                  VP                  VP                  R 7      4       R# ))dtypeN)r   r   r   r<   r   )r   r   r   rW   s   &&& r   test_return_nanTestVariation.test_return_nanz   s7     JJqMaL::bffAGG:<=r!   z4ignore:Invalid value encountered:RuntimeWarning:daskNc                   VP                  R4      pV^ 8w  d0   \        \        VR7      ;_uu_ 4        \        WAR7      pRRR4       M\        WAR7      p\	        XVP                  V4      4       R#   + '       g   i     L-; i)rM   )r   rv   N)rM   r   )emptyr   r   r   r   r   r_   s   &&&&  r   test_2d_size_zero_with_axis)TestVariation.test_2d_size_zero_with_axis   sc     HHV19 /B77a+ 87 !'A2::h/0	 87s   A11B	c                    VP                  RR.4      p\        \        V^R7      VP                  VP                  ) 4      4       R# )r(   r   Nr   g      )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           	        VP                  VP                  ^RVP                  .RRVP                  VP                  ..4      p\        \        V^^RR7      VP                  VP                  ) VP                  ) .4      4       R# )rK   r6   rS   r   r;   Nii)r   r<   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!   r;   c                P   \        V4      '       g   \        P                  ! R 4       VP                  ^ ^
VP                  ^.^ RVP                  ^.^ RVP                  ^..4      pVR8X  dA   \        P
                  ! \        \        R7      ;_uu_ 4        \        V^ VR7      pRRR4       M\        V^ VR7      p\        XVP                  VP                  VP                  VP                  \        P                  ! R4      ^,          .4      4       R#   + '       g   i     Lj; i)z(Only NumPy supports ND nan_policy='omit'r6   r@   rj   NgUUUUUU?)r   rC   skipr   r<   r^   r   r   r   r   r   r   r   )r   r;   r   r   rW   s   &&&  r   test_combined_edge_cases&TestVariation.test_combined_edge_cases   s    ||KKBCJJB*B*B*, - 08IJJaaJ? KJ !!
;A2::rvvrvvrvvtyy~a?O&PQR	 KJs   DD%	zddof, expected      ?c           
     4   VP                   pVP                  R RVR.. R	OVR
RV.VRRV.WDWD.. RO. RO.4      p\        P                  ! \        \
        R7      ;_uu_ 4        \        V^VRR7      pRRR4       \        XV4       R#   + '       g   i     L; i)r$   r'   r(   r   r   r@   r6   r   N)r1   r)   r(   r$   g      )r(   r(   r(   r(   )r1   r1   r1   r1   )r<   r   rC   r^   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F!!$6BA G8$ GFs   !BB	c           	     4   VP                  . RO4      pVP                  ^^^VP                  ^^VP                  .4      p\        V^R7      p\        VR^R7      p\        WAP                  \        P
                  ! R4      ^,          4      4       WE8X  g   Q hR# )r$   r   r6   )r;   r   Nr&   g      @)r   r<   r   r   r   r   )r   r   rr   nan_arW   nan_ys   &&    r   test_variation_ddof!TestVariation.test_variation_ddof   sz     JJ+,

Aq!RVVQ266:;aa %F;::diinQ&678zzr!    rl   g@rm   )rU   rK   gUUUUUU?g      ?g?rn   )(__name__
__module____qualname____firstlineno____doc__r   rC   markparametrizer,   skip_xp_backendsr3   npr<   r   r   r=   rF   rN   rX   r   tolistrd   r`   r   rg   rs   rw   r}   filterwarningsr   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sA    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   rC   scipy._lib._utilr   scipy._lib._array_apir   r   r   scipy._lib._array_api_no_0dr   r   scipy._externalr	   ro   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!   