L i_dZddlZddlZddlmZmZddlZddlm Z ddl m Z m Z mZddlmZmZmZmZmZ ddlZGddZGd d ZGd d Zd ZdZdZd2dZdZd2dZdZ ejBjDe edGddZ#gdZ$ejBjKde$e$Dcgc]}|d c}dZ&dZ'dZ(dZ)dZ*ejBjKdgd gd!gd"gd#gd$gd%gd&gd'gd(gd)gd*gd+g d,Z+ejBjKd-gd.d/Z,Gd0d1Z-y#e$r e dZY.wxYwcc}w)3z Test cdflib functions versus mpmath, if available. The following functions still need tests: - ncfdtridfn - ncfdtridfd - ncfdtrinc - nbdtrik - nbdtrin - pdtrik - nctdtridf - nctdtrinc N) assert_equalassert_allclose) MissingModule check_versionFuncData)ArgIntArgget_args mpf2floatassert_mpmath_equalmpmathceZdZdZdZdZy)ProbArgz*Generate a set of probabilities on [0, 1].c d|_d|_y)Nr)abselfs e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/special/tests/test_cdflib.py__init__zProbArg.__init__%scbtd|dz}tjdtjd|}tjdd|dzddd}dtjtjdd |z }tj |||f}tj |S) z3Return an array containing approximately n numbers.ri333333?gffffff?F)endpointNi)maxnplogspacelog10linspacer_unique)rnmv1v2v3vs rvalueszProbArg.values*s 1a4L [[bhhsmQ / [[c1q55 9!" = RXXc]C3 3 EE"b"* yy|rN)__name__ __module__ __qualname____doc__rr*rrrr"s4 rrceZdZdZdZy)EndpointFilterc<||_||_||_||_yN)rrrtolatol)rrrr4r5s rrzEndpointFilter.__init__5s  rctj||jz |jtj|jz|jzk}tj||j z |jtj|j z|jzk}tj ||zddS)NFT)rabsrr4r5rwhere)rxmask1mask2s r__call__zEndpointFilter.__call__;sq466z"TYYrvvdff~%= %IIq466z"TYYrvvdff~%= %IIxx ud33rN)r+r,r-rr<r/rrr1r14s  4rr1c,eZdZ ddZdZdZdZy)_CDFDataNc ||_||_||_||_||_||_||_||_| |_t|tsd|_ d|_ y| | mt| tr| |_ n| gt|jz|_ t| tr| |_ y| gt|jz|_ yd|_ d|_ yr3)spfuncmpfuncindexargspec spfunc_firstdpsr$r4r5 isinstancelist endpt_rtol endpt_atollen) rr@rArBrCrDrEr$r4r5rHrIs rrz_CDFData.__init__Bs    (  '4("DO"DO  #z'=*d+",#-,s4< #DOOT__dll S G D$| t$ NN>$&&$&&$E F Grc t|j|j}|j}t t |j d}|j d}tj||dd|jfj|j ddf}t|j||||j|jd|jy)NrrF) param_columnsresult_columnsr4r5 vectorized param_filter)r rCr$rZrOrangeshaperhstackrBreshaperrSr4r5check)rrQr_r\r]s rrdz_CDFData.checks dff-,,. eDJJqM23 Ayy$Q ] 3 ; ;DJJqM1 MNOT,^iidiiE* ,-2EGr)TiNNNN)r+r,r-rrSrZrdr/rrr>r>AsDH15-1#:(" 4rr>c:t|i|}|jyr3)r>rd)rkwds r_assert_invertsris!rAGGIrcVtj|tj|tj|}}}|dkrtjdS||k\rtjdStjd|d}tj||z |dz|dS)NrrT)exactx2 regularized)r mpffsubbetainc)kr$ponemps r _binomial_cdfrusjjmVZZ]FJJqM!qAAvzz!} azz!} KK1D )E >>!a%Q5d CCrc|dkrtjdStj|tj|tj|}}}||z||z|zz }tj|dz |dz |d}|S)NrTrl)r rorq)dfndfdr9ubrRs r_f_cdfr{ss1uzz!}**S/6::c?FJJqMaC QA B ..QA"$ ?C Jrc|tjj}tj|5tj|tj|}}tj dd|dzzd|dz |z }||tj d|dzzzz}|tjtj|ztj d|zzz}d|zcdddS#1swYyxYw)N?r?rw) r mprErNrohyp2f1gammasqrtpi)dftrEfacs r_student_t_cdfrs {iimm   2 1 AmmCb1fsQTE"H= qc26l+++ v{{699R<(c"f)===Sy s B7C33C<ctj|dz dz tj||z}|tj||z dz ||z |dz dz zzdz z}|S)Nrwrr})r besselirexp)rrncrRs r_noncentral_chi_pdfrsd ..A6;;r!t#4 5C6::Bik "AbDBqD3J#7 7 99C JrcP|tjj}tj|tjtjc}tj|5tj fdd|g}|cdddS#1swYyxYw)Nct|Sr3)r)rrrs rz%_noncentral_chi_cdf..s$72r$Brr)r rrErorNquad)r9rrrErRs `` r_noncentral_chi_cdfrsu {iimm 1 vzz"~vzz"~IAr2  kkBQFKs 4BB%c$||zd|z |zz |z S)Nrr/)rslmbdas r_tukey_lmbda_quantilers uHA~ %u ,,rz0.19c@eZdZejj ddZdZdZdZ ejj ddZ dZ d Z d Z d Zd Zd Zejj ddZdZdZejj ddZejj ddZdZdZdZejj ddZejj5dgddZy) TestCDFlibF)runc ttjtdt t ddt gdy)Nrr-C6?r4)rispbdtrikrurr rs r test_bdtrikzTestCDFlib.test_bdtriks- II   6!T?GI6  rc ttjtdt ddt t gdgdy)Nrrr)NNư>r4rI)rirbdtrinrur rrs r test_bdtrinzTestCDFlib.test_bdtrins0 II  q$GI6"4  6rc ttjddtt dddt ddddgd y) Nc4tj|||dSNTrlr rqrrr9s rrz)TestCDFlib.test_btdtria..FNN1aA4HrrY@F inclusive_arr inclusive_brr)rirbtdtriarrrs r test_btdtriazTestCDFlib.test_btdtrias= JJ H  3q#59Aqe?A  rc ttjddtdddt tddddgdgd  y) Nc4tj|||dSrrrs rrz)TestCDFlib.test_btdtrib..rrrrrFrrHz>)NgC]r2<V瞯+ -rc ttjtdt ddt t dddgdy)NrdrFrrr)rirfdtridfdr{r rrrs r test_fdtridfdzTestCDFlib.test_fdtridfds5 KK  As^WYAs(F G  rc ttjddtt dddt dddgdgd y) Nc8tj|||zdSNTrrnr gammaincrs rrz(TestCDFlib.test_gdtria..FOOA1$Grr@@Frg@rNr绽|=r)rirgdtriarrrs r test_gdtriazTestCDFlib.test_gdtrias> II G YAs6 CU + -* ,rc ttjddtdddt tdddgd y) Nc8tj|||zdSrrrs rrz(TestCDFlib.test_gdtrib..rrrrrFrrh㈵>r)rirgdtribrrrs r test_gdtribzTestCDFlib.test_gdtribs; II G CU +WY CU + -  rc ttjddtdddtdddt gdgd y) Nc8tj|||zdSrrrs rrz(TestCDFlib.test_gdtrix..rrrwrrFrrrr)rirgdtrixrrrs r test_gdtrixzTestCDFlib.test_gdtrix s> II G CU +SCU-K Y * ,rc ttjddtt dt j ddt ddgd y) Nc0tj|||Sr3r ncdfr9yzs rrz*TestCDFlib.test_nrdtrimn..FKK1a0rr皙?Frg _g _Brr)rirnrdtrimnrrrinfrs r test_nrdtrimnzTestCDFlib.test_nrdtrimnsB KK 0 Y bff%U C    rc ttjddttj dddt tddgdy) Nc0tj|||Sr3rrs rrz*TestCDFlib.test_nrdtrisd..)rrr Frg}Ô%ITrr)rirnrdtrisdrrrrrs r test_nrdtrisdzTestCDFlib.test_nrdtrisd&sC KK 0 "&&"%U C Y U^  rc ttjtt ddt dt jgdy)Nrrrrr)r rstdtrrr rrrrs r test_stdtrzTestCDFlib.test_stdtr0s/ HH  As^S/ 0t =rclttjtdt t gdy)Nrrr)rirstdtridfrrrrs r test_stdtridfzTestCDFlib.test_stdtridf7s$ KK   35! .rc vttjtdt ddt gdddgy)Nrrrrr)rirstdtritrr rrs r test_stdtritzTestCDFlib.test_stdtrit>s/ JJ  q# *e}  &rc jttjddtt ddgdy)Nc>tj|dz |dz dS)NrwTrr)r)r9s rrz)TestCDFlib.test_chdtriv..Hs1!Frrrrrr)rirchdtrivrr rs r test_chdtrivzTestCDFlib.test_chdtrivEs( JJ F  6!S>* 7rc ttjtdt dddt t dddgddd y) NrrrFrrrrr$r4r5)rir chndtridfrrrrs rtest_chndtridfzTestCDFlib.test_chndtridfKs@  LL  As. As.0E  +rc ttjtdt dddt ddt gddd y) NrwrrFrrrrrr)rir chndtrincrrr rrs rtest_chndtrinczTestCDFlib.test_chndtrincUs:  LL  As.q# JE  +rc ttjtdt t ddt dddgdddgd  y) NrrrFrrrr)rNN)r$r4r5rI)rirchndtrixrrr rrs r test_chndtrixzTestCDFlib.test_chndtrix^s; KK   6!S>3q#5+IJE)  +rchtjdtdfdtgdy)Nrc.tj|dS)Nr)rtklmbdar9s rrz4TestCDFlib.test_tklmbda_zero_shape..ksbjjA&rc<tj| zz Sr3)r r)r9ones rrz4TestCDFlib.test_tklmbda_zero_shape..lsc6::qb>C/0rrr)r ror r)rrs @rtest_tklmbda_zero_shapez"TestCDFlib.test_tklmbda_zero_shapegs'jjm & 0 UG$ rc |ttjtdt t dddgddddgy)NriF)rrg& .>)rDr4rIrirrrrrrs rtest_tklmbda_neg_shapez!TestCDFlib.test_tklmbda_neg_shapeos5 JJ !  3sA59:Td|  %rc vttjtdt t dddgddy)NrrFrr)rDr4rrs rtest_tklmbda_pos_shapez!TestCDFlib.test_tklmbda_pos_shapews. JJ !  3q#59:T  +rr)r}?g @cXd|z }ttj| |g|ddgy)NrrUr)rrr)rrbounds rtest_tklmbda_lmbda1zTestCDFlib.test_tklmbda_lmbda1s*%RZZ%7#sDrN)r+r,r-pytestmarkxfailrrrrrrrrrrrrrrrrrrrr parametrizerr/rrrrsS [[5!"6 - [[5!",, = [[5!.". &7  [[5!+"+ [[5!+"++ % [[5!+"+ [[Wo6E7Err))rr)rr)rr)rr)rrw)chndtrr)rr)rr)rr)rr)ncfdtrr)ncfdtrir) ncfdtridfnr) ncfdtridfdr) ncfdtrincr)rr)rr)rr)nbdtrikr)nbdtrinr)rr)rr)pdtrikrw)rrw)rrw)rrw)nctdtrr)nctdtritr) nctdtridfr) nctdtrincr)rrwz func,numargs)idsctjjd}tt|}|j|Dcgc]<}t |tj tjtj f>}}tj|D]4}||}td|Drt|tj 56ycc}w)Nl7'}?J-0c3FK|]}tj|ywr3)rrL).0r9s r z!test_nonfinite..s)qrxx{)s!) rrandom default_rnggetattrrfloatrMr itertoolsproductanyr)funcnumargsrngr9 args_choicesrQrRs rtest_nonfiniter*s ))   0 1C 2t DADGATUAU1Xrvvrvvw7ULU!!<0 Dk )D) ) bff %  VsACc~tjddtjddz}gd}t ||y)Ng !?rw4@r)gyY;@g A@gʾC@g-E@g-oG@gNCEI@g0_{J@gY-L@gjrM@gZǧ9N@g-]f P@gmj#P@ggAQ@gl@Q@gndhR@g$܂R@g@FTxS@gēT@g]gϖT@gc$ U@)rrraranger)rRres_exps rtest_chndtrix_gh2158r/s4 ++h299S>$#6 7C 5GC!rcpgd}gd}gd}gd}tj|||}t||ddy)N) MbP?\(\?皙#@bi'r4r3r2r1) r1rr皙?+?r1rrr6r7) ~jtX?333333?r~,r8r9r~r:r;) K ˸@gtI?x9"@g .$Bt+@gO,oq@r<gZc^?r=g @gjgdy=rUr4r5)rrr)dfarrparrtarrdesiredactuals rtest_nctdtrinc_gh19896rDs= EE ED CD#G\\%t ,FFG%c:rc tjtjtjtj tj dddtj gsJtjtjtj tj gdsJy)NrUr)rUg?r}g?r)rallrLrrrrr/rrtest_stdtr_stdtrit_neg_infrHsp 66"((288RVVGrvvgtS#rvv-NOP QQ Q 66"((2::rvvg/JKL MM Mrc rtjtjtj ddddddddtjg }|dddf}tjtjtj ddddddtjg }tj tj tj|tj|sJtj tj tj|tj|sJy) Ng$rFrUrr}gH.?r$@) rarrayrMr atleast_2drGrLrrr)rrss rtest_bdtrik_nbdtrik_infrMs  tS&"fc4P RA !D& A "&&%sFBRVVD FA 66"((299Q23 44 4 66"((2::a34 55 5rzdfn,dfd,nc,f,expected_cdf)rrrrg,]?)rr{Gz?rgsCr:)rrNrrNgnhUg?)rJrNrrg%g{E?)rrrNrNg  1)rrrrgڞ^)k;)rrNrrJglB?)rrNrJrNg)Dt^\,?)rJrrrg|?)rrrrg?)rrrrJr)rrrrJg*}?cttj|||||ddd|cxkrdkr(nyttj|||||dyy)NvIh%<=rr>rg|=r)rrrr)rxryrf expected_cdfs rtest_ncfdtr_ncfdtrirSsQtBIIc3A. 5qQ <! 3R>NrrQ))rFrrr})rrFrr})rrrFr})rrrr)rrrctjd5tjtjd5tj |ddddddy#1swYxYw#1swYyxYw)Nraise)domainrW)match)rerrstater raisesSpecialFunctionErrorr)rQs rtest_ncfdtri_domain_errorr\,s_ G $ ]]222( C  JJ    s"&A-A!A-!A* &A--A6c eZdZejj dgdddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?ej d@dAdBdCejjdDEFdGdHZdIZ ejj dJgdKgdLgdMgdNdOdOe jdOdPgdOdOe j dPdPggdQZ ejj dgdRdSZ yT)UTestNoncentralTFunctionszdf, nc, x, expected_cdf)r2ffffffr8gDi?)r2r_r9g?)r2r_r~g7?r2r_r:gU?)r2RQ?r8g?)r2rar9gx$p?)r2rar~g7?)r2rar:g]ŧe?)r2ffffff@r8g樼?)r2rbr9g:GF ?)r2rbr~gpa?)r2rbr:gfO!t?)r2&r8g)r2rcr9gQb]r2rcr~gy+)r2rcr:guQRm?)r3r_r8g/C*i?)r3r_r9g.b?)r3r_r~gI'v?)r3r_r:g?)r3rar8g?)r3rar9gD-?)r3rar~gy0 ?)r3rar:gC?)r3rbr8g?)r3rbr9g:e!?)r3rbr~gh?)r3rbr:g?)r3rcr8g+)r3rcr9gPDp)r3rcr~gM r3rcr:ggS>^X#>)r4r_r8gNG0i?)r4r_r9g%Wح?)r4r_r~g?)r4r_r:r)r4rar8gaYҏ?)r4rar9gpku+?)r4rar~gZVq?)r4rar:r)r4rbr8g_a?)r4rbr9g+,!?)r4rbr~gqgb?)r4rbr:g?)r4rcr8gQ)r4rcr9g%Q)r4rcr~gTh-1)r4rcr:g¤5)r5r_r8geK0i?)r5r_r9g ?)r5r_r~gjS?)r5r_r:r)r5rar8g|S׏?)r5rar9gfG-?)r5rar~g^"?)r5rar:r)r5rbr8gm?)r5rbr9g|q]/!?)r5rbr~g+%αs?)r5rbr:r)r5rcr8gn)r5rcr9gmr5rcr~gDdz+Bug in underlying Boost math implementation)reason)marks)r5rcr:g>H*cPtj|||}t||ddy)NrPgr>)rrr)rrrr9rR nctdtr_results r test_gh19896z%TestNoncentralTFunctions.test_gh19896as%R "b!,  |%fMrcZd\}}}d}ttj||||dy)N) rr -^?g+=rrrr)rrrr9expecteds rtest_nctdtr_gh8344z+TestNoncentralTFunctions.test_nctdtr_gh8344s+ B( "b!,hUCrzdf, nc, x, expected, rtol)g@g@ggG>g:0y5>)rrJrg'$ 0?C9@ -AC9B /CC9D -EC9F ,GC9H IC9J 0KC9L .MC9N ,OC9P QC9R 1SC9T /UC9V -WC9X *YC9Z *[C9\ *]C9^ /_C9` -aC9b 0cC9d .eC9f -gC9h iC9j 0kC9l .mC9n -oC9p qC9r 2sC9t 1uC9v .wC9x yC9z *{C9| +}C9~  S"c#:!;;,,L-N OC9D .EC9CHNICHND  [[# 4 8 3 7 b"&&#s # b266'3 $   C C [[69JJrr^r3).r.r#numpyr numpy.testingrrr  scipy.specialspecialrscipy.special._testutilsrrrscipy.special._mptestutilsrr r r r r ImportErrorrr1r>rirur{rrrrr slowrfuncsr r*r/rDrHrMrSr\r^rs0rrs7 ,,;;% $ 4 4M4M4` D - vvxExExEv F54IaQqT4IJK$"$ ;N 6263175310-#1 3/O/Ob  OJOJw% 8 $F%V 5JsE= E,  E)(E)