L i ddlZddlZddlZddlmZddlZddlZddlZddlZ ddl m Z m Z m Z ddlmZmZmZmZmZmZmZmZddlmZddlmZddlmZddlmZmZdd lm Z m!Z!dd l"m#Z#Gd d Z$d de$ifddgdifddgdifdde$ifdde$ifde$ddfgZ%ejLjNdk(rejLjPdkrdZ)ndZ)dedfde*e)fde+dfdedfd edfd!e*d"fgZ,d#edfd$edfd%e*e)fd&e+dfd'e*d"fgZ-d(e*e)fd)e+dfd*edfd+edfd,e*d"fgZ.gd-fd.d/ggd0fd1d2e j^d3gd4fd1d2e j`d3gd4fd/d/gd5fgZ1d6e2d7fd8e2d7fgZ3d9ed:fd;ed:fgZ4de4e3ze6zejnjqd?e%d@Z9ejnjqd?e%dAZ:dBZ;dCZdHZ?d_dIZ@d`dJZAdKZBejnjqdLgdMdNZCejnjqdLddgGdOdPZDGdQdRZEGdSdTZFGdUdVZGGdWdXZHGdYdZZIGd[d\ZJGd]d^ZKy)aN)deepcopy)assert_allclose assert_equalsuppress_warnings)TransformedDensityRejectionDiscreteAliasUrnDiscreteGuideTableNumericalInversePolynomialNumericalInverseHermite RatioUniformsSimpleRatioUniforms UNURANError)raises)stats)special) chisquarecramervonmises) distdiscretedistcont)check_random_stateceZdZdZdZdZy)StandardNormalcdtjdtjzz tjd|z|zzSN?@࿩npsqrtpiexpselfxs e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/stats/tests/test_sampling.pypdfzStandardNormal.pdf!s4"''"RUU(##bffTAXaZ&888cdtjdtjzz | ztjd|z|zzSrrr#s r&dpdfzStandardNormal.dpdf%s;"''"RUU(##qb(266$(1*+===r(c,tj|SN)rndtrr#s r&cdfzStandardNormal.cdf(s||Ar(N__name__ __module__ __qualname__r'r*r.r(r&rr s9>r(rrdistr){Gz? ףp= ?皙?r r r r )r4modepypy) z.unsupported operand type for float\(\): 'list'zmust be real number, not listc| Sr,r3r%s r&r?@srr(z...cgSr,r3r>s r&r?r?Brr(ctSr,foor>s r&r?r?Dsr(name 'foo' is not definedc"tjSr,rinfr>s r&r?r?F rvvr(c"tjSr,rnanr>s r&r?r?HrJr(cyNrr3r3r(r&r?r?Jr(,takes 0 positional arguments but 1 was givenc"tjSr,rHr>s r&r?r?QrJr(c"tjSr,rLr>s r&r?r?SrJr(cgSr,r3r>s r&r?r?UrAr(ctSr,rCr>s r&r?r?WrEr(cyrOr3r3r(r&r?r?YrPr(cgSr,r3r>s r&r?r?`rAr(ctSr,rCr>s r&r?r?brEr(c"tjSr,rHr>s r&r?r?drJr(c"tjSr,rLr>s r&r?r?frJr(cyrOr3r3r(r&r?r?hrPr(z!must contain at least one elementrz0wrong number of dimensions \(expected 1, got 2\)皙?皙?r7)must contain only finite / non-nan values(must contain at least one non-zero value)r;zmust be a length 2 tupler3)rbraz left >= right)rara)r<r<zonly non-nan valuesdomain, err, msgzmethod, kwargscttj|}tj||5|di|d|idddy#1swYyxYw)Nmatchdomainr3)getattrrsamplingpytestr)rgerrmsgmethodkwargsMethods r&test_bad_domainrpsG U^^V ,F s# &('''(((s AAc8ttj|}d}|di|d|i}|di|d|i}t|j d|j dt j jd}|di|}|j d|}t j jd|di|ddi}|j d}t||t j jt j jd} t j jt j jd} |di|d| i}|di|d| i}t|j d|j dy)N{ random_statedrsr3) rhrrirrvsrrandom RandomStateseedMT19937 Generator) rmrnroryrng1rng2rngrvs1rvs2seed1seed2s r&test_random_statersK U^^V ,F D  .F . .D  .F . .D# . ))   $C  F D 88Cc8 *DIINN4  -F - -D 88C=Dt II ! !"))"3"3C"8 9E II   1 1# 6 7E  /F / /D  /F / /D# .r(crttd}tt}|jdt|j d|j dttd}|j d}|jd|j d}t||y)Nrrrurt)rrset_random_staterrv)r|r}r~rrs r&test_set_random_staters &~'7c JD &~'7 8D## . %n&6S IC 773dddGddfd}fd}tj|}tj|}|j|j|j|jddk(sJd d k(sJy) N)err1err2ceZdZdZdZdZy).test_threading_behaviour..Distributionc||_yr,)pdf_msg)r$rs r&__init__z7test_threading_behaviour..Distribution.__init__s "DLr(cNd|cxkrdkrn|St|j|S)Ng33333H@gI@) ValueErrorrr#s r&r'z2test_threading_behaviour..Distribution.pdfs(a$H!..Hr(cyNrar3r#s r&r*z3test_threading_behaviour..Distribution.dpdfsr(N)r0r1r2rr'r*r3r(r& Distributionrs #   r(rcd}t|dd} |jdy#t$r}|jdd<Yd}~yd}~wwxYw)NrDr<rt rgrs順rrrrvrargsr4r~ererrorss r&func1z'test_threading_behaviour..func1sOE")$y79; ' GGFO 'VVAYF6N '+ AA  Acd}t|dd} |jdy#t$r}|jdd<Yd}~yd}~wwxYw)Nbarrrbrrrrrrs r&func2z'test_threading_behaviour..func2sOE")$y78: ' GGFO 'VVAYF6N 'r)targetrrDrr) threadingThreadstartjoin)rrt1t2rrs @@r&test_threading_behaviourrsD )F  ''    'B    'BHHJHHJGGIGGI &>U "" " &>U "" "r(cttj|}|di|ddi}tj|}tj |}t |jd|jdy)Nrsrrrtr3)rhrripickledumpsloadsrrv)rmrnror|objr}s r& test_picklersZ U^^V ,F  -F - -D ,,t C << D# .r(size)Nr)rra)r<r;)rbr;)rr)rractt}|'tj|j |sJytj|r|f}|j |j |k(sJyr,)rrrisscalarrvshape)rr~s r& test_rvs_sizers_ &n&6 7C |{{3774=))) ;;t 8Dwwt}""d***r(ctj}tjj d}t ||}tj ddd}t|||jt|j||j|tjdd}t ||}t|||jt|j||j|tjd d }t||}|j}|jtj|d|ddz}t|||jy) Nrrurartnum$@@)locscaler<r])rnormrrw default_rngr linspacecheck_cont_samplesrppfbinomrsupportpmfarangecheck_discr_samples)r4urngr~urgpvs r&test_with_scipy_distributionrs ::#3AfMN nC 0D">#3FCDDNNDDsA7B7BB rm)r r rcttj|}d}tjt |5|t dddddy#1swYyxYw)Nz17 : mode not in domainrerr)r8rg)rhrrirjrrr)rmrorls r&test_error_mode_not_in_domainrPsKU^^V ,F #C {# .8~a7888s AAceZdZdZdej j ddej jddgZde fddd d gZ de fde fd gZ e jjd ee jjd e e jjde e jjdZdZy)TestQRVScd}tjt|5ttj |}|t }|jddddttj |}|t }d}tjt|5|jdtjjddddy#1swYxYw#1swYyxYw) Nz&`qmc_engine` must be an instance of...rer) qmc_engine6`d` must be consistent with dimension of `qmc_engine`.r;rbdr) rjrrrhrrirqrvsqmcHalton)r$rmrfrogens r&test_input_validationzTestQRVS.test_input_validationas8 ]]:U 3 #U^^V4F)*C HHH " # 0^%&H ]]:U 3 : HHqUYY%5%5a%8H 9 : : # # : :s=C$*1C0$C-0C9Nrarryr;)rara)rr)rr)rbrr)r;r;qrngsize_in, size_outz d_in, d_outc"tjdk(xrtjddk(}|r|dk(rtjdt }t tj|} | |} |L|J|j|k7r;d} tjt| 5| j|||dddy|||jd k7r |jf}||z} t|} | j||| }||j| k(sJ| e| jt!j"|xsd }tj$j'|j)| }t+||d yy#1swYyxYw) Nwin32r32bitr z4NumericalInversePolynomial.qrvs fails for Win 32-bitrrerrarrr-q=r)sysplatform architecturerjxfailrrhrrirrrrrrrwrprodrrreshaper)r$rsize_insize_outd_ind_outrmw32r4rorrfshape_expectedqrng2runiformqrvs2s r&test_QRVS_shape_consistencyz$TestQRVS.test_QRVS_shape_consistencywsk llg%O(*?*?*A!*D*O 699 LL" #0Tl   0TVVt^LEz7 ;DT: ;    ::/ //  ll2777#3#8q9GJJNN7+33NCE D%e 4  ; s (FFct}ttj|}||}d}d}tjj |d}tjj |d}|j tj|} |j|||} tjj| } t|D]/} | d| f} | dd| fj|}t| |d1y) N)r;rrrrr.rr)rrhrrirrrwrrrrrranger r)r$rmr4rorrrrrrrrisamplesample2s r&test_QRVS_size_tuplezTestQRVS.test_QRVS_size_tuples0Tl yy*    +,,rwwt}-xxTQ4x8 w'q 9A#q&\FAqDk))$/G FG% 8 9r()r0r1r2rrrSobolrqrngstuplesizesdsrjmark parametrize thread_unsaferrr3r(r&rr^s :599??11?-uyy/?/?/?/J KEEG_i + -E /Auw< 3B [[VU+ [[0%8 [[]B/ [[ 509, 5D9r(rc eZdZGddZGddZGddZeeededgZdd gZdd gZde jgZ de jgZ eee e gZ ejj!d eee ejj$d Zd edfgZeez Zejj!dedZejj!dedZejj!dedZejj!dgddZdZejj!dde j<e jddgdZe j@ddd !ggge j<ge j e j<e jgde j<d"dgd#d$e jggd%ggZ!ejj!d&e!d'Z"d(Z#y))*TestTransformedDensityRejectionc$eZdZdZdZdZdZy)%TestTransformedDensityRejection.dist0cdd||zz zSN?rar3r#s r&r'z)TestTransformedDensityRejection.dist0.pdf!AaC%= r(cdd|zzS)Nr(r3r#s r&r*z*TestTransformedDensityRejection.dist0.dpdfs"Q$< r(c$d||dzdz z dzzSNr(r;gUUUUUU?r3r#s r&r.z)TestTransformedDensityRejection.dist0.cdf!ad1f*s*+ +r(cyN)rar3r$s r&rz-TestTransformedDensityRejection.dist0.supportr(Nr0r1r2r'r*r.rr3r(r&dist0r%s !  , r(r5ceZdZdZdZdZy)%TestTransformedDensityRejection.dist1cFtjj|dz SNrrr_pdfr#s r&r'z)TestTransformedDensityRejection.dist1.pdf::??1s7+ +r(cT| dz tjj|dz zS)N{Gz?rr:r#s r&r*z*TestTransformedDensityRejection.dist1.dpdfs$29uzzq3w77 7r(cFtjj|dz Sr9rr_cdfr#s r&r.z)TestTransformedDensityRejection.dist1.cdfr<r(Nr/r3r(r&dist1r7s , 8 ,r(rBc$eZdZdZdZdZdZy)%TestTransformedDensityRejection.dist2c||_yr,shiftr$rGs r&rz.TestTransformedDensityRejection.dist2.__init__s DJr(cR||jz}dt|dzz }d|z|zSNr?rGabsr$r%ys r&r'z)TestTransformedDensityRejection.dist2.pdf/ OAc!frk"A7Q; r(cf||jz}dt|dzz }||z|z}|dkr|S| S)Nrr\rLrNs r&r*z*TestTransformedDensityRejection.dist2.dpdfsA OAc!frk"AA AR1 (qb (r(cP||jz}|dkrdd|z z Sddd|zz z SNr\rKrrFr#s r&r.z)TestTransformedDensityRejection.dist2.cdf7 OABwb1f~%C26N**r(N)r0r1r2rr'r*r.r3r(r&dist2rDs    )  +r(rUr\@?r> dist, mv_exct5}|jtt|d}dddt ||y#1swYxYwN*ru)rfilterrrr)r$r4rsupr~s r& test_basicz*TestTransformedDensityRejection.test_basicsK  EC JJ~ &-dDC E 3e,  E Es #AA cy)Nrr3r>s r&r?z(TestTransformedDensityRejection.rPr(50 : bad construction points. pdf, err, msgcGdd}||_d|_tj||5t |dddy#1swYyxYw)Nc eZdZy):TestTransformedDensityRejection.test_bad_pdf..distNr0r1r2r3r(r&r4rd r(r4cyrr3r>s r&r?z>TestTransformedDensityRejection.test_bad_pdf.. rPr(rer'r*rjrrr$r'rkrlr4s r& test_bad_pdfz,TestTransformedDensityRejection.test_bad_pdfsE   ]]3c * . ' - . . .s AAzdpdf, err, msgcGdd}d|_||_tj||5t |ddddy#1swYyxYw)Nc eZdZy);TestTransformedDensityRejection.test_bad_dpdf..distNrer3r(r&r4rmrfr(r4c|Sr,r3r>s r&r?z?TestTransformedDensityRejection.test_bad_dpdf..sQr(rerar<rrh)r$r*rkrlr4s r& test_bad_dpdfz-TestTransformedDensityRejection.test_bad_dpdfsG   ]]3c * > 'W = > > >s AArcctj||5tt|dddy#1swYyxYwNrer)rjrrrr$rgrkrls r&test_inf_nan_domainsz4TestTransformedDensityRejection.test_inf_nan_domainss6 ]]3c * I '(8 H I I I 7Aconstruction_points)r1rrctjtd5tt |dddy#1swYyxYw)Nz1`construction_points` must be a positive integer.rervrjrrrrr$rvs r&#test_bad_construction_points_scalarzCTestTransformedDensityRejection.test_bad_construction_points_scalars= ]]:.DE  ' 6I    s ;Acg}tjtd5tt |dddgd}tj t d5tt |dddtjtjtjg}tjtd5tt |dddddg}tj t d 5tt d | dddy#1swYxYw#1swYxYw#1swY`xYw#1swYyxYw) NzC`construction_points` must either be a scalar or a non-empty array.rerx)rarararararaz:33 : starting points not strictly monotonically increasingr`r<z!50 : starting point out of domain)r;)rgrv) rjrrrrrrrrMrrzs r&"test_bad_construction_points_arrayzBTestTransformedDensityRejection.test_bad_construction_points_array's(  ]]:.MN  ( 6I  1 \\.1>?  ( 6I   "vvrvvrvv6 ]];/9:  ' 6I   #Bi \\.1:;  ' $7   5        s/D D,D8E D),D58EE crrcd}tjt|5tt ddddy#1swYyxYw)Nz`c` must either be -0.5 or 0.rer)rry)r$rrls r& test_bad_cz*TestTransformedDensityRejection.test_bad_cKs;. ]]:S 1 A '(8C @ A A A =ArrarrKr]r^r+r;rrcttd}t5}|jtd|jtd|jtd|jtd|j |}t jj|}dddtdd |j|jk(sJy#1swY4xYw) NgH.?)max_squeeze_hat_ratio$invalid value encountered in greater*invalid value encountered in greater_equal!invalid value encountered in less'invalid value encountered in less_equalMbP?h㈵>r) rrrr\rppf_hatrrrrr)r$rr~r]resexpecteds r& test_ppf_hatz,TestTransformedDensityRejection.test_ppf_hatUs*.*:@FH  )C JJ~'M N JJ~(7 8 JJ~'J K JJ~(4 5++a.Czz~~a(H ) XDt<yyHNN*** ) )s B CC%c Gdd}d}tjt|5t|dddGdd}d}tjt|5t|dddy#1swYExYw#1swYyxYw)Nc eZdZy);TestTransformedDensityRejection.test_bad_dist..distNrer3r(r&r4rks r(r4z`pdf` required but not found.receZdZdZy)rcd||zz Srr3r>s r&r?zDTestTransformedDensityRejection.test_bad_dist..dist.tsAacEr(Nr0r1r2r'r3r(r&r4z;TestTransformedDensityRejection.test_bad_dist..distss!Cr(z`dpdf` required but not found.)rjrrr)r$r4rls r& test_bad_distz-TestTransformedDensityRejection.test_bad_distis  / ]]:S 1 . ' - . " "0 ]]:S 1 . ' - . . . . . .s A8# B8BB N)$r0r1r2r5rBrUdistsmv0mv1rrImv2mv3mvsrjrr zipr!r^rbad_pdfsbad_pdfs_commonrjbad_dpdf_commonrpinf_nan_domainsrtr{rrMrrrrrr3r(r&r#r#s;  ,,++,WeguRy%- 8E v,C t*C rvv,C 266 C S# C [[] _. [[-.-k+KLMH H [[_h7.8. [[-?>@> [[/AIBI [[2LAB"H [[S3R"@AABA Qt $b2$ 66'266266 "A 663 sC0* = ?A [[S!$+%+&.r(r#c eZdZhdZej j dedZde dfde dfde dfd e d fd e d fd e dfde dfgZ ej j de dZej j dgdgdgdZej j dedZej& ej&fej&ej&fej& ej& fdej&fej& dfgZej j dedZdZdZdZy) TestDiscreteAliasUrn>randintnchypergeom_fishernchypergeom_walleniusdistname, paramsc||jvrd}tj|t|ts|}nt t |}||}|j}tj|d|dz stjdtj|d|ddz}|j|}|j d}t|d} t| ||y)NzYDAU fails on these probably because of large domains and small computation errors in PMF.rarz$DAU only works with a finite domain.rr[ru)basic_fail_distsrjskip isinstancestrrhrrrrrrrr r$distnameparamsrlr4rgkrrr~s r&r^zTestDiscreteAliasUrn.test_basics t,, ,:C KK (C(D5(+DV}{{6!9vay01 KK> ? IIfQi1 - XXa[ 4 t"5CU+r(c"tjSr,rHr>s r&r?zTestDiscreteAliasUrn. 266r(r_c"tjSr,rLr>s r&r?zTestDiscreteAliasUrn.rr(cy)Nr\r3r>s r&r?zTestDiscreteAliasUrn.rPr(r`ctSr,rCr>s r&r?zTestDiscreteAliasUrn.s3r(rFcgSr,r3r>s r&r?zTestDiscreteAliasUrn.s2r(z)setting an array element with a sequence.c| Sr,r3r>s r&r?zTestDiscreteAliasUrn.sA2r(z50 : probability < 0cyrOr3r3r(r&r?zTestDiscreteAliasUrn.rPr(rQz pmf, err, msgcGdd}||_tj||5t|ddddy#1swYyxYw)Nc eZdZy)/TestDiscreteAliasUrn.test_bad_pmf..distNrer3r(r&r4rrfr(r4reror)rrjrr)r$rrkrlr4s r& test_bad_pmfz!TestDiscreteAliasUrn.test_bad_pmfs@   ]]3c * 3 T' 2 3 3 3s AA r)r6r5r7)rrg@@rg@cxtj|tj}t|d}|j d||j z }tj dt|}tj||}tj||z dz|}||f}t|||y)N)dtyperrrurr)weightsrb) rasarrayfloat64rrvrrlenaverager)r$rr~variates m_expected v_expected mv_expecteds r&test_sampling_with_pvz*TestDiscreteAliasUrn.test_sampling_with_pvsZZ"** -r4  "&&(]99QB(ZZ"5 ZZJ!61 ? B U[[S1& A B B B "AActjtd5tddgddddy#1swYyxYw)Nzrelative urn size < 1.rerKr1) urn_factor)rjrrrr2s r&test_bad_urn_factorz(TestDiscreteAliasUrn.test_bad_urn_factors4 \\.0I J 8 c3ZB 7 8 8 8s5>cd}Gdd}tjt|5t|dddy#1swYyxYw)NzG`domain` must be provided when the probability vector is not available.ceZdZdZy)0TestDiscreteAliasUrn.test_bad_args..distc|Sr,r3r#s r&rz4TestDiscreteAliasUrn.test_bad_args..dist.pmfsr(N)r0r1r2rr3r(r&r4rs r(r4rer)r$rlr4s r& test_bad_argsz"TestDiscreteAliasUrn.test_bad_argss@7  ]]:S 1 # T " # # #s =Actjtjd}t |d}t ||ddy)N)ir[ru)g@g Ag{Gzt?)r)rsoftmaxronesrr)r$rr~s r& test_gh19359z!TestDiscreteAliasUrn.test_gh19359s7 __RWWW- .r3C%C!% 'r(N)r0r1r2rrjrr rr^r NameErrorr TypeErrorbad_pmfrr bad_pv_commonrrrI inf_domainrrrrr3r(r&rr{s  [[/>,?,2 : 5 7 : 5 7  4 6  % ' z 5 7 {  " i 8 :)G0 [[_g6373 [[T$5$B$DE 2E 2 [[Y 6!7! FF7BFF#bffbff%5"&&7Ibff+|-J [[Xz2B3B8 #'r(rc JeZdZGddZGddZGddZGddZeeeegZd d gZd d gZ d e jz d de jdzz z gZ d e jz dde jdzz z gZ ee e e gZej j#deeedZej j(ej j#dedZej j#dedZej j#dedZej j#dedZe j:dddggge j<ge j> e j<e j>gde j<dd gd!d"e j>ggd#ggZ ej j#d$e d%Z!e j:d&d'dggge j<ge j> e j<e j>gde j<dd gd!d"e j>ge j> d(d)gggZ"ej j#d*e"d+Z#ej jHd,Z%dd-d.e j>e j<gZ&d/d e j>e j<gZ'ej j#d0e&d1Z(ej j#d2e'd3Z)d4Z*d5Z+y6)7TestNumericalInversePolynomialceZdZdZdZdZy)$TestNumericalInversePolynomial.dist0cdd||zz zSr'r3r#s r&r'z(TestNumericalInversePolynomial.dist0.pdfr)r(c$d||dzdz z dzzSr-r3r#s r&r.z(TestNumericalInversePolynomial.dist0.cdfr.r(cyr0r3r2s r&rz,TestNumericalInversePolynomial.dist0.supportr3r(Nr0r1r2r'r.rr3r(r&r5rs ! , r(r5ceZdZdZdZy)$TestNumericalInversePolynomial.dist1cFtjj|dz Sr9r:r#s r&r'z(TestNumericalInversePolynomial.dist1.pdfr<r(cFtjj|dz Sr9r@r#s r&r.z(TestNumericalInversePolynomial.dist1.cdfr<r(N)r0r1r2r'r.r3r(r&rBrs  , ,r(rBceZdZdZdZdZy)$TestNumericalInversePolynomial.dist2cfdddtjdtjz|zzzzS)N皙??rarbrsinr!r#s r&r'z(TestNumericalInversePolynomial.dist2.pdf s,$!bffQruuWQY&7"788 8r(cd|dzzdddtjzd|zzztjdtjz|zz zdtjzz zS)Nrrag?rrrrr!cosr#s r&r.z(TestNumericalInversePolynomial.dist2.cdf s_!a%LbhA..255 1CCDX r(cyr0r3r2s r&rz,TestNumericalInversePolynomial.dist2.supportr3r(Nrr3r(r&rUr s 9  r(rUceZdZdZdZdZy)$TestNumericalInversePolynomial.dist3clddddtjdtjz|zzzzzS)Nr]rrrarbrr#s r&r'z(TestNumericalInversePolynomial.dist3.pdfs1$RVVAbeeGAI->)>!??@ @r(c|dz dzddtjzz tjdtjztjdtjz|zz zzS)NrrKg ףp= ?rbr<rr#s r&r.z(TestNumericalInversePolynomial.dist3.cdfs^S53;qw266"RUU(3C3566!BEE'!)3D4E"FF Fr(cy)N)rr3r2s r&rz,TestNumericalInversePolynomial.dist3.support"r3r(Nrr3r(r&dist3rs A F r(rr\rWr>gܿUUUUUU?gQ?rbg @rXc8t|d}t|||yrZ)r rr$r4rr~s r&r^z)TestNumericalInversePolynomial.test_basic.s)B?3e,r(rcgd}gd}dg}||vrtjd|||vrtjd|t|trt t |n|}||}t 5}|jtt|d}ddd||vryt||j|jgy#1swY:xYw)N) anglit gausshyperkappa4ksonekstwolevy_l levy_stablestudentized_range trapezoidtriangvonmises) chi2 fatiguelifegibrat halfgennormlognormncfncx2paretotrel_breitwignerzPINV too slow for zPINV fails for r[ru) rjrrrrhrrr\rr rrr) r$rrvery_slow_dists fail_distsskip_sample_moment_checkr4r]r~s r&test_basic_all_scipy_distsz9TestNumericalInversePolynomial.test_basic_all_scipy_dists4s>- %6#6  & KK,XJ7 8 z ! KK/(4 5h,x( V}   DC JJ~ &,TCC D / / 3tyy{DHHJ&?@  D Ds 5#CCracGdd}||_tj||5t|ddgdddy#1swYyxYw)Nc eZdZy)9TestNumericalInversePolynomial.test_bad_pdf..distNrer3r(r&r4r'Xrfr(r4rerrr)r'rjrr ris r&rjz+TestNumericalInversePolynomial.test_bad_pdfVsD   ]]3c * < &tQF ; < < < AA zlogpdf, err, msgcGdd}||_tj||5t|ddgdddy#1swYyxYw)Nc eZdZy).distNrer3r(r&r4r+`rfr(r4rerrr)logpdfrjrr )r$r,rkrlr4s r&test_bad_logpdfz.TestNumericalInversePolynomial.test_bad_logpdf^sD   ]]3c * < &tQF ; < < yyHNN*** ) ) B CC'r}r<r;rr%ct}t|d}t5}|jtd|jtd|jtd|jtd|j |}t jj |}dddtdd|j|jk(sJy#1swY4xYwr1) rr rr\rr.rrrr)r$r%r4r~r]rrs r&test_cdfz'TestNumericalInversePolynomial.test_cdfr7r8ct}t|d}|j\}}|dksJ||ksJt|d}|j\}}|dksJ||ksJyNg|=r3r2)rr u_error)r$r4r~ max_errormaes r& test_u_errorz+TestNumericalInversePolynomial.test_u_errorsx(EB 35   i(EB 35   ir(g@g#B ;orderct}d}tjt|5t ||dddy#1swYyxYw)Nz2`order` must be an integer in the range \[3, 17\].rerB)rrjrrr )r$rBr4rls r&test_bad_ordersz.TestNumericalInversePolynomial.test_bad_orderss<C ]]:S 1 : &t5 9 : : :s ?Ar4cd}tjt|5tt |dddy#1swYyxYw)Nz.`u_resolution` must be between 1e-15 and 1e-5.rer3)rjrrr r)r$r4rls r&test_bad_u_resolutionz4TestNumericalInversePolynomial.test_bad_u_resolutions?? ]]:S 1 B &~'74@ B B B Brc Gdd}|}d}tjt|5t|}dddt }t|}d}tjt|5|j ddddGdd}|}t|}d }tjt|5|j dddy#1swYxYw#1swYhxYw#1swYyxYw) NceZdZdZy)=TestNumericalInversePolynomial.test_bad_args..BadDistc@tjj|Sr,r@r#s r&r.zATestNumericalInversePolynomial.test_bad_args..BadDist.cdfszzq))r(N)r0r1r2r.r3r(r&BadDistrJ *r(rLz9Either of the methods `pdf` or `logpdf` must be specifiedrez4`sample_size` must be greater than or equal to 1000.r<ceZdZdZy)BTestNumericalInversePolynomial.test_bad_args..Distributionc8tjd|z|zS)Nrrr"r#s r&r'zFTestNumericalInversePolynomial.test_bad_args..Distribution.pdfsvvdQhqj))r(Nrr3r(r&rrOrMr(rz!Exact CDF required but not found.)rjrrr rr=)r$rLr4rlr~rs r&rz,TestNumericalInversePolynomial.test_bad_argss * *yJ ]]:S 1 3,T2C 3(.E ]]:S 1  KKO  * *~(.2 ]]:S 1  KKM  ! 3 3     s# C"5C.C:"C+.C7:DcGdd}|}d|_t|}|}d|_t|}tjddd}t |j ||j |y) Nc eZdZy)JTestNumericalInversePolynomial.test_logpdf_pdf_consistency..MyDistNrer3r(r&MyDistrTrfr(rUc:tj| |zdz SNrb)mathr"r>s r&r?zLTestNumericalInversePolynomial.test_logpdf_pdf_consistency..s1"Q$q&!1r(c| |zdz SrWr3r>s r&r?zLTestNumericalInversePolynomial.test_logpdf_pdf_consistency..sr!tAvr(rgwJ?rtr)r'r r,rrrr)r$rUdist_pdfr| dist_logpdfr}qs r&test_logpdf_pdf_consistencyz:TestNumericalInversePolynomial.test_logpdf_pdf_consistencysm  81 )(3h - )+6 KKf# . TXXa[1r(N),r0r1r2r5rBrUrrrrrr!rrrrjrr rr^xslowrr$rrjbad_logpdfs_commonr-rrtrrMrIrr6r%r:slowr@ bad_ordersbad_u_resolutionrErGrr]r3r(r&rrsO,,  "  Weguw 0E v,C t*C ;'"%%("22 3C ;)GBEE1H,<< =C S# C [[] _.-.- [[ [[/:A;A@ [[_o><?< [[/1CD<E< [[/AHBH  Aqe$ RD BFF7BFFBFF+  &&#s c3/< A [[S!$+%+" S"% ("rdRVVH 66'266266 "A 663 sC0BFF7Aq/ B DA [[S!$+%+" [[    S"bffbff-JtRVVRVV4 [[Wj1:2: [[^-=>B?B 62r(rc eZdZGddZGddZeegZddejzz ddd ejzejzz z gZd d ddejzejzz z d z gZ ee gZ e jjd eee e jjdddge jjdZe jjdedZdZe jj)de jj*e jjdedZe jj1de jj)ddZdZddej6j9dgZej=ej6j?dde fddgZ!e jjdee jjde!e jjd Z"d!Z#d"Z$ejJd#d$d%&gggejLgejN ejLejNgdejLd'd(gd)d*ejNggd+ggZ(e jjd,e(d-Z)e jjTd.Z+y)/TestNumericalInverseHermitec$eZdZdZdZdZdZy)!TestNumericalInverseHermite.dist0c`ddtjdtjz|zzzS)NrKrrrr#s r&r'z%TestNumericalInverseHermite.dist0.pdfs'RVVBruuHQJ//0 0r(cvtjtjdtjz|zzS)Nrrr#s r&r*z&TestNumericalInverseHermite.dist0.dpdfs&55255 ++ +r(cddtjzd|zzztjdtjz|zz dtjzz S)Nrrrarrr#s r&r.z%TestNumericalInverseHermite.dist0.cdfsEBEE1q5))BFF2bee8A:,>>2bee8L Lr(cyr0r3r2s r&rz)TestNumericalInverseHermite.dist0.supportr3r(Nr4r3r(r&r5rfs 1 , M r(r5c$eZdZdZdZdZdZy)!TestNumericalInverseHermite.dist1c|dkr=tjdtjz|zdztjzS|dkry|dkr=tjdtjz|zdztjzSy)NrrrKr\rr#s r&r'z%TestNumericalInverseHermite.dist1.pdf ssT vvrBEEzQ./#5==BSvvrBEEzQ./#5==r(cP|dkrKtjdtjz|ztjztjzS|dkry|dkrKtjdtjz|ztjztjzSy)Nrrr\rKrrr!r#s r&r*z&TestNumericalInverseHermite.dist1.dpdfs{T vvrBEEzQ./"%%7"%%??BSvvrBEEzQ./"%%7"%%??r(c|dkr/ddtjdtjz|zz zS|dkry|dkr/ddtjdtjz|zzz Sy)Nr?rarr\rKr(ror#s r&r.z%TestNumericalInverseHermite.dist1.cdfskT q2662:*:#;;<<BSdRVVR"%%Z1,<%====r(cy)N)r1rKr3r2s r&rz)TestNumericalInverseHermite.dist1.support!sr(Nr4r3r(r&rBrls > @ > r(rBr1rbrrargпg?g?rXrBr;rc:t||d}t|||y)Nr[)rBrs)r r)r$r4rrBr~s r&r^z&TestNumericalInverseHermite.test_basic+s &d%bI3e,r(rcctj||5tt|dddy#1swYyxYwrr)rjrr rrss r&rtz0TestNumericalInverseHermite.test_inf_nan_domains5s6 ]]3c * E #N$4V D E E Eruc hd}hd}||vrtjd||vrtjdtjj dt t||}t|}tjjd}tjtj|j||j|z tj|j|z }tjtj|j|j||z } |dksJ| dksJy) N>rrskewnormr> rnctbetawaldrinvgaussrr  geninvgauss norminvgauss genhyperbolicrzDistribution is too slowz)Fails - usually due to inaccurate CDF/PDFrr<:0yE>r)rjrrrrwryrhrr randmaxrMrr.) r$rshapes slow_distsr"r4fnir%p_tolu_tols r&basic_test_all_scipy_distsz6TestNumericalInverseHermite.basic_test_all_scipy_dists:sB @  z ! KK2 3 z ! LLD E q'wuh'0%d+ IINN2 rvvdhhqk#''!*45bffTXXa[6IIJrvvdhhswwqz2Q678t||u}}r(zignore::RuntimeWarning)rrc(|j||yr,r)r$rrs r&r$z6TestNumericalInverseHermite.test_basic_all_scipy_distsSs ''&9r(c(|jddy)N truncnorm)rrbrr2s r&test_basic_truncnorm_gh17155z8TestNumericalInverseHermite.test_basic_truncnorm_gh17155[s '' X>r(cd}tjt|5tt ddddd}tjt|5tddddd}tjt|5tt d dddy#1swYvxYw#1swYQxYw#1swYyxYw) Nz"`order` must be either 1, 3, or 5.rerbrDz`cdf` required but not foundrz!could not convert string to floatekkir3)rjrrr r)r$rfs r&rz1TestNumericalInverseHermite.test_input_validation`s5 ]]:U 3 ? #N$4A > ?/ ]]:U 3 , #F + ,4 ]]:U 3 9 #N$417 9 9 9 ? ? , , 9 9s#B) B5 C)B25B>C Nr))r)rrrr~rc&t}t|}t|}|j||}||j|k(sJ|It |}|j |}tjj|} t|| yy)N)rrsr) rr rrvrrrrrrr) r$r~r r r4rr}rvrrs r&test_RVSz$TestNumericalInverseHermite.test_RVSrs%d+}gg7g5  99( ((  %d+Dlll0G::>>'*D C & r(cd}d}tjt|5tt j |dddtt j |dy#1swY'xYw)N)gdsz@g@e?zg98 : one or more intervals very short; possibly due to numerical problems with a pole or very flat tailrer~r3)rjrrr rrx)r$rrfs r&test_inaccurate_CDFz/TestNumericalInverseHermite.test_inaccurate_CDFs\:D\\. 6 9 #EJJ$7 8 9  F 3$G  9 9s A""A+ct}t|}tj}t|}t |j d|j dy)Nrru)rr rrrrv)r$rBfni1rUfni2s r&test_custom_distributionz4TestNumericalInverseHermite.test_custom_distributionsI &u- &u-a0$(((2JKr(r\rr/rrKrr]r^rrct}t|d}t5}|jtd|jtd|jtd|jtd|j |}t jj |}dddtdd |j|jk(sJy#1swY4xYw) Nrr3rrrrg& .>gLa㧝=r) rr rr\rrrrrrr5s r&r6z$TestNumericalInverseHermite.test_ppfs%d?  )C JJ~'M N JJ~(7 8 JJ~'J K JJ~(4 5''!*Czz~~a(H ) XDu=yyHNN*** ) )r8c8t}t|d}|j\}}|dksJ||ksJt5}|j t t|d}ddd|j\}}|dksJ||ksJy#1swY+xYwr<)rr r=rr\r)r$r4r~r>r?r]s r&r@z(TestNumericalInverseHermite.test_u_errors%d? 35   i   DC JJ~ &)$UCC D 35   i  D Ds #BB),r0r1r2r5rBrrr!rrrrjrr rr!r^rrtrfilterwarningsr^rr$ fail_slowrrrwrxrngsappendrrrrrrrrMrIrr6r`r@r3r(r&rdrds  "8Weg E qw<q!BEE'"%%-00 1C Q"%% &&- .C *C [[] _. [[Wq!f- [[-..-  [[/AEBE2 [[ 89 [[ [[3X>:?::  [[1 [[ 89?:? 9 !RYY**1- .DKK %%a()EG_i)? @E [[UD) [[0%8 [[ '9* ' HL  B& RD BFF7BFFBFF+  &&#s c3/< A [[S!$+%+" [[    r(rdc eZdZhdZdZdZdZejjde dZ e jddd ggge jge j e je jgde jd d gd de jggdggZejjdedZejjdedZe j e jfe je jfe j e j fde jfe j dfgZejjdedZy)TestDiscreteGuideTable>rrrcgd}tjj}tjt 5t ||ddddy#1swYyxYw)Nrg333333?g333333?r:rs guide_factorrrwrrjrrr r$rrs r&$test_guide_factor_gt3_raises_warningz;TestDiscreteGuideTable.test_guide_factor_gt3_raises_warningJ yy$$& \\. ) F r1 E F F F AAcgd}tjj}tjt 5t ||ddddy#1swYyxYw)Nrrrrrs r&%test_guide_factor_zero_raises_warningz ? IIfQi1 - XXa[ 4  B7CU+r(rrar/rrKrr]r^rrcd\}}tj||}t|d}t5}|j t d|j t d|j t d|j t d|j |}tjj |||}dddtjjt||y#1swY6xYw)N)rrr[rurrrr) rrr rr\rrrr) r$rnpr4r~r]rrs r&r6zTestDiscreteGuideTable.test_ppfs1{{1a  B7 0C JJ~'M N JJ~(7 8 JJ~'J K JJ~(4 5''!*C{{q!Q/H 0 SYY/S(# 0 0s B C33C<rcztjt|5t|dddy#1swYyxYwr)rjrrr rs r&rz"TestDiscreteGuideTable.test_bad_pv%s- ]]:S 1 # r " # # #rrgctjtd5tt j dd|dddy#1swYyxYwr)rjrrr rrrs r&rz&TestDiscreteGuideTable.test_inf_domain/s? ]]:-> ? D u{{2s3F C D D DrN)r0r1r2rrrrrjrr rr^rrrMrIrr6rrrrr3r(r&rrsn F F G [[/>,?,6  Aqe$ RD BFF7BFFBFF+  &&#s c3/< A [[S!$$%$( [[Y 6#7# FF7BFF#bffbff%5"&&7Ibff+|-J [[Xz2D3Dr(rcNeZdZGddZededgZdej gZdej gZeegZ e jjde ee e jjdZe jjdedZd Zy ) TestSimpleRatioUniformsceZdZdZdZdZy)TestSimpleRatioUniforms.distc ||_||_yr,)rGr8rHs r&rz%TestSimpleRatioUniforms.dist.__init__:sDJDIr(cR||jz}dt|dzz }d|z|zSrJrLrNs r&r'z TestSimpleRatioUniforms.dist.pdf>rPr(cP||jz}|dkrdd|z z Sddd|zz z SrSrFr#s r&r.z TestSimpleRatioUniforms.dist.cdfCrTr(N)r0r1r2rr'r.r3r(r&r4r9s    +r(r4r\rVrXct||jd}t|||t||j|j|jd}t|||y)Nr[)r8rs)r8 cdf_at_moders)r r8rr.r s r&r^z"TestSimpleRatioUniforms.test_basicQsU"$TYYRH3e,!$TYY.2hhtyy.A/13 3e,r(rcctj||5tt|dddy#1swYyxYwrr)rjrr rrss r&rtz,TestSimpleRatioUniforms.test_inf_nan_domains^s6 ]]3c * A  0 @ A A Aructjtd5tt dddddy#1swYyxYw)Nz`pdf_area` must be > 0rerr1)r8pdf_area)rjrrr rr2s r&rz%TestSimpleRatioUniforms.test_bad_argscs9 ]]:-F G G  0q2 F G G Gs <AN)r0r1r2r4rrrIrrrrjrr rr!r^rrtrr3r(r&rr5s++""XtF| $E rvv,C 266 C *C [[] _. [[-.- [[/AABAGr(rc$eZdZdZdZdZdZy)TestRatioUniformsc :tjj}tj|tjdtjdz}tj|d}t ||| |d}t tj|jddddkDd t d dddtjd zd}t tj|jd d ddkDd y)Nrbri90umaxvminvmaxrsi rrarqTc.tj| Sr,rQr>s r&r?z6TestRatioUniforms.test_rv_generation..tsbffaRjr(r1rexpon) rrr'rr r rkstestrvr")r$fvrrs r&test_rv_generationz$TestRatioUniforms.test_rv_generationjs JJNN GGAbggajM "RWWQZ / GGAaDMAAQBQUKU\\#''$-8;dBDI0q!"266":EKU\\#''$-9!C'C$C  CC!$C-N)r0r1r2rrrrr3r(r&rris K8  9r(r)gHz>r)rr)LrrrjcopyrrrrXnumpyr numpy.testingrrrscipy.stats.samplingrrr r r r r rrrscipyrr scipy.statsrrscipy.stats._distr_paramsrrscipy._lib._utilrr all_methodsimplementationnameversionfloaterrrrrrr_rMrIrrbad_sized_domains bad_domainsr nan_domainsrr rprrrrrrrrrrrr#rrrdrrrr3r(r&rs  JJ   +1</  #V^-=$>?&"345F$567!FN,<#=>)9 :;^%5qAB  v%    & & 3@H/H ;'9h'I;<{F+{F+)LM &{F+{F+9h'I;<)LM "9h'I;<{F+{F+)LM  -. Cj\FG 3JK 3JK 3Z<=   7801  [*+ [*+ {,-ffbff{$45 vvgw&67ffrvvg %56 vvgrvv $:;ffbffz#9: [*45ffbffz#9: +$'88$%&);7(8&( );7/8/8 .#b);7/8/"23 +3 +/*   D$CD8D8$=$@$BCY9Y9CY9x|.|.~r'r'j22DW W tfDfDR1G1GhA9A9r(