L i$ddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z mZddlmZmZmZej&j(Zedd Gd d Zy) N)suppress_warnings variation) AxisError)is_numpy)xp_assert_equalxp_assert_close)too_small_nd_omittoo_small_nd_not_omitSmallSampleWarningtorchzdata-apis/array-api-compat#271)reasonc6eZdZdZdZej jdddgdZe dd d Z ej jd d e jfd e jddz fge dd dZe dd dZe dd dZe dd dZe dd ej jdde j$dfde j&de jfgdZe dd ej jdde j*fde jfgdZe dd dZe dd d Zd!Zej j5d"d#Zej j5d$ej jd%d&gd'zdd(e j*d)ggd*Zej jddgfde jgd+zfd,e jfgd-Zd.Ze dd d/Ze dd ej jd0d d gd1Z e dd ej jd2de jd3e jd4e j*de jd&e jgfdd5e jd6e j*de jde jgfd(e jd5e jd7e j*e je jde jgfgd8Z!e dd d9Z"y,): TestVariationz. Test class for scipy.stats.variation c|jd}tt|d|jt j ddz y)N"@ddofg@)aranger rasarraymathsqrtselfxpxs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/stats/tests/test_variation.py test_ddofzTestVariation.test_ddofs6 IIcN !!,bjj49J.KLsgnrc|jgd}t||z}|j|tjdzdz }t ||dy)N?@@@g@g|=)rtol)rrrrr )rr"rrvexpecteds r test_signzTestVariation.test_signsK JJ+ , c!e ::c$))A,.q018%0r!Tztest plain python scalar input)np_onlyrc$tddk(sJy)Nr)rrrs r test_scalarzTestVariation.test_scalar"s~$$$r!znan_policy, expected propagateomitg@rz(`nan_policy` only supports NumPy backendcr|jd}|j|d<tt|||y)N$@  nan_policy)rnanr r)rr;r.rrs rtest_variation_nanz TestVariation.test_variation_nan's/ IIcNvv! ! ;XFr!c|jdd|jdg}tjtd5t |ddddy#1swYyxYw)Nr&r'r(zinput contains nanmatchraiser:)rr<pytestraises ValueErrorrrs rtest_nan_policy_raisez#TestVariation.test_nan_policy_raise1sM JJS"&&#. / ]]:-A B - aG , - - -s AActjtd5tgdddddy#1swYyxYw)Nzmust be one ofr?rr*r+foobarr:)rBrCrDrr3s rtest_bad_nan_policyz!TestVariation.test_bad_nan_policy8s2]]:-= > 6 iH 5 6 6 6s5>z&`keepdims` only supports NumPy backendc|j|jdd}t|dd}tjtj ddz gtj ddz gg}t ||y)N )r*rTaxiskeepdimsr*)reshaperrnparrayrr )rrryr.s r test_keepdimszTestVariation.test_keepdims>sh JJryy}f - aa$ /88bggajl^ ggajl^-.8$r!zaxis, expectedrrr)rLr fill_valuec|jd}|dk(r7tjtt5t ||d}dddnt ||d}t |y#1swYxYw)N)rLrrr?TrM)zerosrBwarnsr r rr)rrNr.rrrTs rtest_keepdims_size0z!TestVariation.test_keepdims_size0Gsk HHV  1908MN ;adT: ; ;!$6A8$  ; ;s A))A2zincr, expected_fillc|jgdgdg}t|d|jd|zd}t||j d|y)N)rrr*r*)rr*r+r+rT)rNrrO)r*rrW)rrshaperfull)rincr expected_fillrrrTs r'test_keepdims_and_ddof_eq_len_plus_incrz5TestVariation.test_keepdims_and_ddof_eq_len_plus_incrUsK JJ l3 4 aaaggaj4&7$ G2776m7DEr!c|j|jdtd}|j|d<t |dd}t |t jdd z |jgd y) Ndtype)r*r#rVrr5rNr;??gV瞯<)atol)rQrfloatr<rr rr)rrar-s rtest_propagate_nanz TestVariation.test_propagate_nan]s^ JJryy%y0' :&&$ aaK 8DIIcN3.7eDr!z$Python list input uses NumPy backendcntddgddggd}t|tjddz y)Nrrr*r+rNrhri)rr rr)rrrTs rtest_axis_nonezTestVariation.test_axis_nonegs4 1v1v&T 2499S>#-.r!c|jgdgdg}tjttf5t |ddddy#1swYyxYw)NrG)rrLrKro)rrBrCr IndexErrorrrs r test_bad_axiszTestVariation.test_bad_axisnsE JJ 9- . ]]Iz2 3 " ab ! " " "s AAz5ignore:divide by zero encountered:RuntimeWarning:daskc2|jgd}t|}t||j|j|j |d|zg}t|d}t||j|j|jgy)N)r8r&rwg$rro)rrrinfstack)rrrrTx2y2s rtest_mean_zerozTestVariation.test_mean_zerotsu JJ/ 0 aL2::bff-. XXq$q&k " r "BJJ'789r!z4ignore:invalid value encountered:RuntimeWarning:daskrr2rLr*r9c|j|}t|}t||j|j|jy)Nre)rrrr<rf)rrrrTs rtest_return_nanzTestVariation.test_return_nans9 JJqM aL2::bffAGG:<=r!r+Nc|jd}t5}|jtd|dk7rKt |r2t j td5t||}dddnt||}n t||}dddt|j|y#1swY-xYw#1swY1xYw)N)r+rzstd*rzSee documentation...r?ro) emptyrfilter UserWarningrrBr[r rrr)rrNr.rrsuprTs rtest_2d_size_zero_with_axisz)TestVariation.test_2d_size_zero_with_axiss HHV   ,C JJ{F +qyB<&8@VW4%ad344"!$/Aad+ , 2::h/0 44 , ,s$ACB4,$C4B= 9CC c|jddg}tt|d|j|j y)Nrvgr*r)rrrrx)rrx1s r test_neg_infzTestVariation.test_neg_infs6ZZc # "1-rzz266'/BCr!c|j|jdd|jgdd|j|jgg}tt|ddd|j |j gy)Nriir*r6rNrr;)rr<rrrx)rrrzs rtest_neg_inf_nanzTestVariation.test_neg_inf_nansgZZ"&&!S"&&1r266266245 "11H&&266'* ,r!r;c |jdd|jdgdd|jdgdd|jdgg}|dk(r7tjtt 5t |d| }dddnt |d| }t|j|j|jtjd dz gy#1swYNxYw) NrrKrr*r+r6r?rggUUUUUU?) rr<rBr[r r rr rxrr)rr;rrrTs rtest_combined_edge_casesz&TestVariation.test_combined_edge_casess JJB*B*B*, -  08IJ @aaJ? @ @!! ;ABFFBFFBFFDIIcN14DEF  @ @s #CCzddof, expectedgUUUUUU?g??g?rhc |j}|jdd|dggd|dd|g|dd|g||||ggdgd g}tjtt 5t |d |d }dddt|y#1swYxYw)Nr&r'r()r2r)r(r&grr)r(r(r(r()r2r2r2r2r?rr6r)r<rrBr[r r rr )rrr.rr<rr-s rtest_more_nan_policy_omit_testsz-TestVariation.test_more_nan_policy_omit_testssff JJc3,,c3,c3,c3,,, . /\\,4E F C!!$6BA C8$ C Cs A??Bc  |jgd}|jddd|jdd|jg}t|d}t|dd }t|t j d dz ||k(sJy) Nr%rr*r+rrLrr6)r;rg@)rr<rr rr)rrrlnan_arTnan_ys rtest_variation_ddofz!TestVariation.test_variation_ddofsu JJ+ , Aq!RVVQ266:; aa %F;499S>!+,Ezzr!)#__name__ __module__ __qualname____doc__r rBmark parametrizer/skip_xp_backendsr4rRr<rr=rErIrUrr_r\rxrbrmrprtfilterwarningsr|r~rrrrrrr!rrrsIM [[UQG,1-1 d+KL%M% [[3*BFF3%wrwwt}Q79:dGIGI: G dGI-I- dGI6I6dEG%G%dEG [[- ("((6"23 '"''&RVV"DEGH%HG %dEG [[2a[1bff+4NOFPGF dGIEIEd+QR/S/ "  [[ WX :Y : [[ VW [[SB46Aq"&&!+<"=>>?X>  [[- "gBFF8A:rvvGI 1I 1D dGI,I, dGI [[\K+@A GBI GdGI [[ gbggclGBGGCL"&&!RVVS"&& I J c72773<BFFArvv > ? gbggclGBGGCL"&&"&&"&&!RVV L M O % I%"dGIIr!r)rnumpyrRrB numpy.testingr scipy.statsrscipy._lib._utilrscipy._lib._array_apirscipy._lib._array_api_no_0drr scipy.stats._axis_nan_policyr r r rrrrr!rrs^  +!&*H>>;;//'"BCFFDFr!