L idZddlZddlmZddlmZmZmZmZm Z m Z ddl Z ddl m Z ddlmZddlZddlZddlmZmZmZdd lmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4dd lm5Z5m6Z6dd l7m8Z9dd lm:Z:dd l;mZ>ddl;m?Z?m@Z@mAZAmBZBddlCmDZDddlCmEZEddlFmGZGddlHmIZIddlJmKZKdZLGddZMdAdZNdZOeGddZPeGddZQGddZRGddZSGd d!ZTd"ZUGd#d$ZVGd%d&ZWGd'd(ZXGd)d*ZYGd+d,ZZGd-d.Z[Gd/d0Z\Gd1d2Z]Gd3d4Z^Gd5d6Z_Gd7d8Z`d9Zae jjd:ZdGd;d<ZeGd=d>ZfGd?d@Zgy)Bz8 Test functions for multivariate normal distributions. N) dataclass)assert_allcloseassert_almost_equalassert_array_almost_equal assert_equalassert_array_lessassert_)raises)check_distribution_rvs)_PSD_lnBmultivariate_normal_frozen)multivariate_normalmultivariate_hypergeom matrix_normalspecial_ortho_group ortho_grouprandom_correlation unitary_group dirichletbetawishart multinomial invwishartchi2invgammanormuniformks_2sampkstestbinom hypergeommultivariate_tcauchy normaltest random_tableuniform_directionvonmises_fisherdirichlet_multinomialvonmises) _covariance Covariance) _norm_pdf)stats)tanhsinhcubaturequad)rombqmc_quaddblquadtplquad) multigammaln)check_random_state_property)_qsimvtv)patchctj|tj|}}t||g|i|t|j|jyN)npasarrayrrshape)resrefargskwargss i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/stats/tests/test_multivariate.py assert_closerE/sAzz# 3CC.t.v.CII&ceZdZdZej ej jej jej jddZ eje e Z ej gdgdgdgdgej gdgd gd gd gd Ze e d de gde ddd Zej"j%de dddZej"j%de eej"j%de dZej"j%dded dgej"j%de eej"j%de dZej"j%dedgej"j%de dZdZej"j3ddZdZy)TestCovariancec d}tjt|5tjt j ddddd}tjt|5tjt jdt jddddd}tjt|5tjddddd }tjt|5tjt j ddddd }tjt|5tjdt jdfdddd }tjt|5tjt j ddfdddd }tjt|5tjgd t jdfdddy#1swYxYw#1swYxYw#1swYexYw#1swY$xYw#1swYxYw#1swYxYw#1swYyxYw)Nz:The input `precision` must be a square, two-dimensional...matchz0`precision.shape` must equal `covariance.shape`.) covariancez7The input `diagonal` must be a one-dimensional array...alpacaz9The input `cholesky` must be a square, two-dimensional...z4The input `eigenvalues` must be a one-dimensional...z,The input `eigenvectors` must be a square...z9The shapes of `eigenvalues` and `eigenvectors` must be...r rLrM) pytestr ValueErrorr,CovViaPrecisionr=oneseyeCovViaDiagonalCovViaCholeskyCovViaEigendecompositionselfmessages rDtest_input_validationz$TestCovariance.test_input_validation7sN ]]:W 5 4  ' ' 3 4E ]]:W 5 I  ' 'q bffQi H IL ]]:W 5 1  & &x 0 1N ]]:W 5 3  & &rwwqz 2 3I ]]:W 5 H  0 0(BFF1I1F G HA ]]:W 5 I  0 0"''!*h1G H IN ]]:W 5 I  0 0)RVVAY1G H I I1 4 4 I I 1 1 3 3 H H I I I IsS)H.,>H;I )I+I"(+I.8-I:.H8;III"I+.I7:Jct|dS)NTallow_singular)r )xs rDzTestCovariance.Ys%)!D%ArF)Diagonal PrecisionCholeskyEigendecompositionPSDrP)r rM)r )rMri)r rrM)rgr)rkrgrrrr)diagonal full rankzgeneral full rankzdiagonal singularzgeneral singularr N)rrkrn cov_type_namerkc|tjgd}gd}ttd|}|j|}tt d|j }|||}|||}t|t|usJt|j||j|y)NrP)rLrgCovViafrom_) r=diaggetattrr,_covariance_preprocessingr-lowertyperwhiten) rZroAr`cov_type preprocessingfactoryr@rAs rDtest_factorieszTestCovariance.test_factorieses GGI  ;&(@A66}E *m.A.A.C-D&EFmA&'}Q'(CyDI%%% 1 szz!}5rF matrix_typecd|d|d}||j|vrtj||j|}t t d|}|j |}t|d}|||}t|j|jt|j|jt|jtj|jt|jtj|tj j#d} | j!d} |j%| } | |j&z} t| | z| | zt)|d rd |vrt|j+| | | j!d } |j%| } | |j&z} t| d zj-d | d zj-d t)|d rd |vrt|j+| | t)|d rG|j+tj.t1|} t| j2| z|yy)Nrr does not support matricesTr^VGiVKrMsize _colorizesingularrLrirMrLrkaxis) _cov_typesrQskip _matricesrur,rvr rElog_pdetrrankr?r=r>rNrandom default_rngryUhasattrcolorizesumrUlenT) rZrror[rzr{r|psd cov_objectrngr`r@rAs rDtest_covariancezTestCovariance.test_covariancessM?*<[MJ  < < KK NN; ';&(@A66}E 1T*mA./ Z((#,,7Z__chh/Z%%rzz!}':':;Z**BJJqM:ii##$78 JJAJ "#%%iS3Yc * :{ + +0M ,,S11 5 JJIJ &"#%%ic1f\\r\*S!VLLbL,AB :{ + +0M ,,S11 5 :{ +%%bffSVn5C a ( ,rFrrcd|d|d}||j|vrtj||j|}t t d|}|j |}gd}|||} t} t||d} t|| d} tjjd} | j|||}tjjd} | j|| || }tjjd} | || | j|}t| t jr?t|tj|t|tj|nLt!|j"|j"t!|j"|j"t||t| j%||| | j%|t| j%|| j%|t| j'||| | j'|t| j'|| j'|t| j)|| | j)t| j)| j)y) Nrrrr皙?皙?333333?Tr^rrr random_stateseed)rrQrrrur,rvrr=rrrvs isinstance CovViaPSDrEsqueezerr?pdflogpdfentropy)rZrrror[rzr{r|meanrmvndist0dist1rr`x1x2s rDtest_mvn_with_covariancez'TestCovariance.test_mvn_with_covariances/M?*<[MJ  < < KK NN; ';&(@A66}E mA./ !#D!DA#D*TJii##$78  # #D!$ # 7ii##$78 WWT:DsW Cii##$78 z , 0 0d 0 ; j+"7"7 8 RZZ] + RZZ] + 177 + 177 + R SWWQj1599Q<@UYYq\599Q<0SZZ44ell1oFU\\!_ell1o6S[[z2EMMODU]]_emmo6rFcd}|j|}ttd|}|j|}gd}|||}t} t ||d} t ||d} t j jd} | j |||} t| j| ||| j| t| j| | j| t| j| ||| j| t| j| | j| y)NrmrrrTr^rr) rrur,rvrr=rrrEcdflogcdf)rZrrorrzr{r|rrrrrrr`s rDtest_mvn_with_covariance_cdfz+TestCovariance.test_mvn_with_covariance_cdfs + NN; ';&(@A66}E mA./ !#D!DA#D*TJii##$78  # #D!$ # 7SWWQj1599Q<@UYYq\599Q<0SZZ44ell1oFU\\!_ell1o6rFc|d}tjt|5tdddy#1swYyxYw)Nz7The `Covariance` class cannot be instantiated directly.rJ)rQr NotImplementedErrorr-rYs rDtest_covariance_instantiationz,TestCovariance.test_covariance_instantiations0K ]].g >  L   s 2;zignore::RuntimeWarningcvtjgd}|jd}tj|}t j t d5t||jdddd}tjj|}tjj|}tjtjj|}t||}|j|} tj|||} t| | y#1swYxYw)N)r rLg:0yErzThe input matrix must be...rJl.ypGw r)r=rtr?zerosrQr rRrrrrr-from_eigendecompositionlinalgeighr) rZrznrrrng1rng2covrvr@rAs rD test_gh9942zTestCovariance.test_gh9942s GGM " GGAJxx{]]:-J K / a ( , , . /#yy$$T*yy$$T*001BC s +ff$f'!%%dCdCS# / /s D//D8crtjd}tjtjdtj df}t jj||}|jd}t||t jjjtjddgtjddgddggf}t jj||}|jd}|d|dk7sJ|d|dk(sJy) NrLrrr?gy@rr ) r=rTr-rrrUscipyr/rrrarray)rZrrdistrs rD test_gh19197zTestCovariance.test_gh19197s wwqz00"((1+rvvay1IJ{{..Dc.BhhDh!S$kk$$<< XXr2h B8b$Z*@!A BD{{..Dc.BhhDh!1va   1va   rF)__name__ __module__ __qualname__r\r=rtrinvcholeskyrrvrlist_all_covariance_typesrrrQmark parametrizer~rtuplerrrfilterwarningsrrrFrDrHrH5sI<.0WW.0iimm-/YY-?-?79yy~~)B !C %BHHT*C%DE'.rwwy'9'0)Y&G&-bggi&8&0*i%HJI)>'>! DAqJJCJ(1, i bggen qss "C JrFctjj||}tjj |\}}}|Sr<)r=rrandnrrsvd)rMusrs rD_sample_orthonormal_matrixr#s5 1Allq!GAq! HrFceZdZUdZeed<ejed<ejed<ejed<ejed<eed<eed<d Z ed zed <fd Z e dd Z e dd Z e ddZdZdZdZdZxZS) MVNProblemaPInstantiate a multivariate normal integration problem with special structure. When covariance matrix is a correlation matrix where the off-diagonal entries ``covar[i, j] == lambdas[i]*lambdas[j]`` for ``i != j``, then the multidimensional integral reduces to a simpler univariate integral that can be numerically integrated easily. The ``generate_*()`` classmethods provide a few options for creating variations of this problem. References ---------- .. [1] Tong, Y.L. "The Multivariate Normal Distribution". Springer-Verlag. p192. 1990. ndimlowhighlambdascovar target_val target_errNtrue_valct|||_||_||_||_t j|j |j |_t j|jd|jyNr) super__init__rrrrr=outerr fill_diagonal find_target)rZrrrr __class__s rDrzMVNProblem.__init__Fsd    XXdllDLL9  S) rFctjj|}tj|tj }|j dtj ||}|j dd|}|||||}|S)zDRandom lambdas, random upper bounds, infinite lower bounds. rrrrrrrr=rrfullinfrsqrtclsrrrrrrZs rDgenerate_semigeneralzMVNProblem.generate_semigeneralQs{ii##C(ggdRVVG${{3 D{9++dCd+3    rFcjtjj|}tj|tj }|j dtj ||}tj |j dd}tj||}|||||}|S)zVConstant off-diagonal covariance, random upper bounds, infinite lower bounds. rrrrr)rrrrrsigmarrZs rDgenerate_constantzMVNProblem.generate_constantbsii##C(ggdRVVG${{3 D{9 C-.''$&    rFctj|tj }tj|}tjd}|||||}d|dzz |_|S)zzOff-diagonal covariance of 0.5, negative orthant bounds. True analytically-derived answer is 1/(ndim+1). ?rr )r=rrrrrrs rDgenerate_halveszMVNProblem.generate_halvests` ggdRVVG$xx~''#,   T!V   rFc tdd}|j|t|jfi|\|_|_y)z?Perform the simplified integral and store the results. ""@abNdictupdater2univariate_funcrrrZkwdsds rDrzMVNProblem.find_targets?   +/0D0D+J+J(rFc tjd|jdzz }tjt j |j |j|ddtjfzz|z t j |j|j|ddtjfzz|z z dS)z`The parameter-specific term of the univariate integrand, for separate plotting. r rLNr) r=rrprodspecialndtrrnewaxisr)rZtdenoms rD_univariate_termzMVNProblem._univariate_termsDLL!O+,ww LL$))dll1Q ]3C&CCuL M LL$((T\\!ArzzM2B%BBeK L M  rFctj|}tjt||j |zS)zUnivariate integrand. )r= atleast_1drnorm_pdfrrZrs rDrzMVNProblem.univariate_funcs5 MM! zz(1+(=(=a(@@AArFc$ddlm}tjddd}|j |t |d|j ||j |d|j ||j|d |jy ) QPlot the univariate integrand and its component terms for understanding. rpyplotr r  $\phi(t)$label$f(t)$ $f(t)*phi(t)$N) matplotlibr'r=linspaceplotr"rrlegendrZpltrs rDplot_integrandzMVNProblem.plot_integrandss - KKc4 ( HQK|4 D))!,I> D((+3CD rFr<)rrr__doc__int__annotations__r=ndarrayfloatrr classmethodrrr rrrr4 __classcell__)rs@rDrr)s J ** ::jj JJ#Hut|"  "$K  B rFrceZdZUdZeed<ejed<ejed<ejed<ejed<eed<eed<d Z e dd Z d Z d Z dZdZy )SingularMVNProblemaHInstantiate a multivariate normal integration problem with a special singular covariance structure. When covariance matrix is a correlation matrix where the off-diagonal entries ``covar[i, j] == -lambdas[i]*lambdas[j]`` for ``i != j``, and ``sum(lambdas**2 / (1+lambdas**2)) == 1``, then the matrix is singular, and the multidimensional integral reduces to a simpler univariate integral that can be numerically integrated fairly easily. The lower bound must be infinite, though the upper bounds can be general. References ---------- .. [1] Kwong, K.-S. (1995). "Evaluation of the one-sided percentage points of the singular multivariate normal distribution." Journal of Statistical Computation and Simulation, 51(2-4), 121-135. doi:10.1080/00949659508811627 rrrrrrrcB||_||_||_tj|tj |_tj|j|j |_tj|jd|jyr) rrrr=rrrrrrr)rZrrrs rDrzSingularMVNProblem.__init__sl   774"&&)hht||T\\::  S) rFNcTtjj|}|jdtj||}|j tj |d}tj|d|z z |jddg|z}||||}|S)z/Singular lambdas, random upper bounds. rrrr r)rrr)r=rrrrrrchoice)rrrrprrZs rDgenerate_semiinfinitez(SingularMVNProblem.generate_semiinfinitesii##C({{3 D{9 MM"''$, -''!qs)$szz4+Dz'II   rFc tdd}|j|t|jfi|\|_|_y)Nr r rrrs rDrzSingularMVNProblem.find_targets=   +/0D0D+J+J(rFc tjd|jdzz}tjt j |j d|jz|ddtjfzz |z d}tjt j |j d|jz|ddtjfzz|z d}|d|jz|zz jS)Nr rLy?rrk) r=rrrrrrrrreal)rZrri1i2s rDrz#SingularMVNProblem._univariate_termsDLL!O+, WW LL$))boa2:: 6F&FF%O P WW LL499*r$,,qBJJ7G'GG5P Q  b499_r))///rFctj|}t||j|zj Sr<)r=r!r"rrr#s rDrz"SingularMVNProblem.univariate_funcs3 MM!  d33A66??AArFcHddlm}tjddd}|j |t |d|j ||j |d|j ||j|d |jd d |jy ) r%rr&r r r(r)r*r,r-皙皙?N) r.r'r=r/r0r"rrylimr1r2s rDr4z!SingularMVNProblem.plot_integrands - KKc4 ( HQK|4 D))!,I> D((+3CD s rFr<)rrrr5r6r7r=r8r9rr:rBrrrr4rrFrDr=r=sq" J ** ::jj JJ  K 0B rFr=ceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZej$j'dej*dej.ddggdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%d Z&ej$jNej$j'd!dd"gd#Z(d$Z)ej$j'd!e*dd%ej$j'd&d'd(gd)Z+ej$j'd!e*dd*ej$j'd&d'd(gd+Z,ej$j'd!e*d,d*ej$j'd&d'd-gd.Z-d/Z.d0Z/ej$j'd1d2d3Z0d4Z1ej$j'd5ejdd6ejdd7gd8Z3ej$j'd9ejdd:ejdd;ejdd<gd=Z4d>Z5d?Z6d@Z7yA)BTestMultivariateNormalc`tjd}tjd}ttt j d||ttt j d||ttt jd||ttt jd||y)NrMrLrr rr rL)r=arangeidentity assert_raisesrRrrr)rZmurs rDtest_input_shapez'TestMultivariateNormal.test_input_shape sx YYq\kk!nj"5"9"962sKj"5"9"99b#Nj"5"9"962sKj"5"9"99b#NrFctjjdd\}}}tj|||}t |j dtjjd}tjjd}tjtjjd}tj|||}t |j dd\}}}tj|||}t |j dtjjd}tjjd}tjtjjd}tj|||}t |j dy)N)?g333333?@rrg) r=rrrrrrrabsr)rZr`rrrrs rDtest_scalar_valuesz)TestMultivariateNormal.test_scalar_valuess6 t% 4!%%as3SXXq! IIOOA yyq!ffRYY__Q'(!%%as3SXXq!% 4!%%as3SXXq! IIOOA yyq!ffRYY__Q'(!%%as3SXXq!rFctjjdtjjd}tjjd}tjtjjd}t j |||}t j|||}t|tj|yNrXrg) r=rrrr[rrrrlogrZr`rrd1d2s rD test_logpdfz"TestMultivariateNormal.test_logpdf. t IIOOA yyq!ffRYY__Q'( ' '4 5 $ $Qc 2BFF2J'rFctjjdtjjd}t j |}t j |}t j |dd}t j |dd}t|tj|t|tj|yNrXrgr ) r=rrrrrrrr_rZr`rarbd3d4s rDtest_logpdf_default_valuesz1TestMultivariateNormal.test_logpdf_default_values8 t IIOOA  ' ' * $ $Q ' ' '4 3 $ $Qa 0BFF2J'BFF2J'rFctjjdtjjd}tjjd}tjtjjd}t j |||}t j|||}t|tj|yr^) r=rrrr[rrrrr_r`s rD test_logcdfz"TestMultivariateNormal.test_logcdfErdrFctjjdtjjd}t j |}t j |}t j |dd}t j |dd}t|tj|t|tj|yrf) r=rrrrrrrr_rgs rDtest_logcdf_default_valuesz1TestMultivariateNormal.test_logcdf_default_valuesOrkrFctjjdd}tjj|}t d|dzD]p}tjj||}tj ||j }t||d}t|jj|ry)NrXrir Tr^) r=rrrrangedotrrrrr)rZrr expected_rankrrdistns rD test_rankz TestMultivariateNormal.test_rank\s t yyq!"1a!e_ ?M =1A&&ACC.C'c$GE )).. >  ?rFc tddD]}tjj|}td|D]}tjj||}tj||j }tj ||f}||d|d|f<tj |}|d||d|t|}tj|tj||j } tj||} ttj ||d} ttj ||d} ttj || d} t| jj|t| jj|t| jj|| j|d|}| j|}| j| }t||t||| j|d|}| j|}| j| }t||t||| |dddfz}| j|}| j|}t|dt|tj y)Nr rgTr^rkr)rqr=rrrrrrrrrrrrrrr)rZrzkrcov_kkcov_nnr`rcov_rrydistn_kkdistn_nndistn_rrpdf_kkpdf_nnpdf_rr logpdf_kk logpdf_nn logpdf_rry_orth pdf_rr_orthlogpdf_rr_orths rDtest_degenerate_distributionsz4TestMultivariateNormal.test_degenerate_distributionsgsLq!0 6A "A1a[. 6IIOOAq)1331a&)!'rr2A2vHHQK"1"1/q1266&!###67FF1aL/rxx{F>BD.rxx{F>BD.rxx{F>BDX0055q9X0055q9X0055q9!ae,!a!a//$OOAbqE2 $OOA. $OOA.  95 95Qq"uX&ll62 !)!8[#.^bffW5]. 60 6rFcXd}tddD]}td|D]}tj|}t|ddd|f}tj||j }t j|||}t j|||d}t|j|tj|dkDsJt j|||d} t| j|tj| tj kDrJy) N rLrhr rrrT)rrr_r)rqr=rrrrrrrrrrallrr) rZrxrrmnrvrXrrs rDtest_degenerate_arrayz,TestMultivariateNormal.test_degenerate_arrays q! 0A1a[ 0XXa[.q1!RaR%8VVAqss^'++!D)--abb=ACSXXq)vvcCi(((,33ABBCGIV[[!,vvfw./// 0 0rFcFd}d}d}tj||z }||z}tj||ft}tj||d|| d| df<t t jj|dt t jj|d|d|ftjttjj|d|d|fd|ft|}t|j|y)Ng@@drLdtyperr )r=exprr9rrrrdetrrslogdetr r)rZlarge_total_lognposnzero large_entryrrrs rDtest_large_pseudo_determinantz4TestMultivariateNormal.test_large_pseudo_determinants !ff_t34 5Lhh1vU+ k* !UFGeVW  U\\%%c*A.U\\%%c%4%$,&78"&&A ))#eteUdUl*;<O, .3i o6rFcFtjjd}d}|j||}tj||j }|j|}|jdd|}t j|||}t j|||}tdD]n} tdD]^} t j|| | f||} t| || | ft j|| | f||} t| || | fd`py)NrXrirLrMMbP?rtol) r=r RandomStaterrrrrrrrqr) rZrrdatarrr desired_pdf desired_cdfijactuals rDtest_broadcastingz(TestMultivariateNormal.test_broadcastingsii##D) yyAffT466"yy| IIaA *--as; )--as; q EA1X E,001a4$D AaC(89,001a4$D AaC(8tD  E ErFc.tjddd}d\}}|dz}tj|||}t j|||}t ||tj |||}t j |||}t ||y)NrrLr)333333??r )r=r/rrrrr)rZr`rrscalerarbs rDtest_normal_1Dz%TestMultivariateNormal.test_normal_1Ds KK1b ! cS XXau % $ $Qc 2B XXau % $ $Qc 2BrFcbtjddg}tjddgddgg}d}d|dz z }tjd d|}tj||\}}tj||d f}||ddddd f<||dddddf<t j |||} t| |d } t| |d } tj ||d |d dz } tj ||d|ddz } t| | ddt| | ddy)NrZg @r r333333?irhr rrLrrrlocr)r r {Gz?ratol) r=rr/meshgridemptyrrr3rr)rZrrrdeltarxvyvposrmargin_xmargin_ygauss_xgauss_ys rDtest_marginalizationz+TestMultivariateNormal.test_marginalizations)xxc #hhS C9-. QU  KK1a Q"Bhh1ay!Aq!G Aq!G !%%c45U+U+((1$q'Tc1AB((1$q'Tc1AB'4@'4@rFctjjdtjjd}tjjd}tjtjjd}t ||}t |j|t j|||t |j|t j|||t |j|t j|||t |j|t j|||yr^) r=rrrr[rrrrrr)rZr`rr norm_frozens rD test_frozenz"TestMultivariateNormal.test_frozens t IIOOA yyq!ffRYY__Q'()$4  *,?,C,CAtS,QR **1-+221dC@ B *,?,C,CAtS,QR **1-+221dC@ BrFrNrLr ctjd}tjd}t||}tj|j |sJtj|j |sJy)NrLrL)r=rTrUrallcloserr)rZrNr cov_should_bers rD2test_frozen_multivariate_normal_exposes_attributeszITestMultivariateNormal.test_frozen_multivariate_normal_exposes_attributess\wwt}q )$ ; {{;++T222{{;??M:::rFc tjjdd}tjj||}tj||j }t jj|\}}tj|d}d|d<d|d<tj|tjtj||j }d}t|| }t|j| }t|jtjtj |ddt|j |jy) NrXrjr rrHz>rkh㈵>)cond)r=rrrrrrrrrrrtr pinvrrrr_) rZrr`rrrrrpsd_pinvs rDtest_pseudodet_pinvz*TestMultivariateNormal.test_pseudodet_pinv$s t  IIOOAq !ffQn||  %1 GGAsO!"ffQrwwqz133/03T"t,  bffRVVAcrF^&<=  x'8'89rFc>gdgdg}ttt|y)NrPrirgrhrTrRr rZrs rDtest_exception_nonsquare_covz3TestMultivariateNormal.test_exception_nonsquare_cov>s)$j$,rFcddgdtjgg}ttt|ddgdtj gg}ttt|y)Nr r)r=nanrTrRr r)rZcov_nancov_infs rDtest_exception_nonfinite_covz3TestMultivariateNormal.test_exception_nonfinite_covBsFq6Arvv;'j$0q6Arvv;'j$0rFc>ddgddgg}ttt|y)Nr rrkrrs rDtest_exception_non_psd_covz1TestMultivariateNormal.test_exception_non_psd_covHs 1v2wj$,rFctjjdtjjd}tjjd}tjd}tj j }t|t||t|tj|||t|tj|||t|tj|||t|tj|||ddgddgg}d}tjtj j |5t|dddy#1swYyxYw) NrXrg)rgrgrrz0When `allow_singular is False`, the input matrixrJr)r=rrrrTr LinAlgErrorrTrrrrrrQr )rZr`rremsgs rDtest_exception_singular_covz2TestMultivariateNormal.test_exception_singular_covLs  t IIOOA yyq!ggfo II ! !a,dC8a,00!T3?a,33QcBa,00!T3?a,33QcBBx"b"@ ]]29900 < ) C ( ) ) )s E""E+c6tjgd}tjddd}d|zdz }|tj|z}tj|||gj}tjgdd}tjgdgd gd gd}t j |||}t||d tjgd } t j|||} t| | d tjgd} tj||gj} tjddgd} tjddgddggd}t j| | |}t|| d y)N)g0Q-?gox'V?g[S, t?g DB?gc_.?rrLrgrM)r rMrLrr rLr)rLrgr )rr rM绽|=r)gwk:E]?g̙Z?g0?gL8?gAG*?gh㈵>)gIى?gG?gƏ)?gėh ?gEE?r r) r=rr/cosrrrrr)rZr_pdfr`r|rwrrrrr_cdfrr_cdf2r2mean2cov2cdf2s rD test_R_valuesz$TestMultivariateNormal.test_R_values_sa67 KK1a  EAI q M HHaAY  ! !xx 3'hh :z:C@!%%as3U/67"%%as3U.34XXq!f   !Q%xx!Q!Q(#."&&r5$7f40rFctjd}tjd}t||d}|j}t |ddgy)NrLrLrLTr^r)r=rrrr)rZrrNmodelsamples rD,test_multivariate_normal_rvs_zero_covariancezCTestMultivariateNormal.test_multivariate_normal_rvs_zero_covariancesDxx{XXf% #D*TJVaV$rFcd}d}tjtj|d|}t |j ||ftjdtj ddgddgg|}t |j |dftdd}|j|}t |j |fy) Ni,rir rrLrrr)rrr=rrr?r)rZNrrrs rDtest_rvs_shapez%TestMultivariateNormal.test_rvs_shapes  $((bhhqkqqIV\\Aq6*$((d-/XX2wQ6H-I./1 V\\Aq6* QA .qV\\A5)rFctjjd}d}|j|}|j||}tj||j }d}t j||||}ttj|j |dt|jd|dy)N rMrrrr) r=rrrrrrrrrrr)rZrrrrrrrs rDtest_large_samplez(TestMultivariateNormal.test_large_samplesii##D) yy| IIaOffQn$((sDsKvxx(#D9 A48rFchtjjd}d}|j|}|j||}tj||j }t ||}t|jt j||tjj|d}d|tjdtjzdzztjtj|zz}t||jy)NrrMrr rLr )r=rrrrrrrrrreigr_pir) rZrrrrrreigsdesireds rD test_entropyz#TestMultivariateNormal.test_entropysii##D) yy| IIaOffQn s + BJJL*=*E*EdC*PQyy}}S!!$1q255y 1A 56t 9MMNGRZZ\2rFctjgd}d}ttjt ||y)Nr r r r )r=rrrr)rZalphars rDtest_lnBzTestMultivariateNormal.test_lnBs,#BFF4;/9rFctjjd}ddg}tjd}|jddzdz }|jddzdz }t j ||||}t j |||}t j |||}tj |ddd f|dd dffd } tj |dd df|ddd ffd } t j | ||} t j | ||} ||z| z | z } t|| y) NFYc@Y rrL)rirMrLrhrM lower_limit.r rkr)r=rrrUrr concatenater)rZrrrrrcdf1cdf2acdf2bab1ab2cdf2ab1cdf2ab2rs rD test_cdf_with_lower_limit_arraysz7TestMultivariateNormal.test_cdf_with_lower_limit_arrayss:ii##$781vffQi JJy !! #a ' JJy !! #a '"&&q$C#''45#''45nnaQqSk1S!A#X;7bAnnaQqSk1S!A#X;7bA%))#tS9%))#tS9u}w&0d#rFcxtjjd}|jd}|jd}||jz}|jddzdz }|jddzdz }t j ||||}t ||j ||}tj t j||||}tj t ||j||} t||dt||dt| |dy) NrrMrMrMrLrMrhr -C6?r) r=rrrrrrrr) rZrrrrrr rcdf3cdf4s rD%test_cdf_with_lower_limit_consistencyzr) r=rrrrrrr1rrestimater) rZrrrrmrr`rdist_icdf_is rDtest_cdf_vs_cubaturez+TestMultivariateNormal.test_cdf_vs_cubaturesii##C( KKdD\K *ccAg KKTK ""s3 KKBQdWK 5hhqk$1#d(<rvvgYt^QU;DDU.rFctddD]h}tj||fd}tj|dt dg|z|}t |j dg|zdd|zz djy) NrL r rrr-C6 ?r)rqr=rrrrr)rZrrrs rDtest_cdf_knownz%TestMultivariateNormal.test_cdf_knownsv!RL D''4,,C   S" %&s4xS9D !T"b4i    rFrrl>[=l HVqKWs.!)cltjj|}tj ||}|j tj k(jsJtdg|z|j}|j|j|}t||jdyNrrrrrr,r)r=rrrrrrrrrrrrrrZrrrcasercdf_vals rDtest_cdf_vs_univariatez-TestMultivariateNormal.test_cdf_vs_univariate+sii##D)..Dc.BRVVG#((***"DdjjA((499#(.t) r=rrrrrrrrArrr)rZrrrzrsamples mean_freecov_free logp_freemean_fixcov_fixlogp_fixr& cov_perturbedlogp_perturbeds rDtest_fit_fix_meanz(TestMultivariateNormal.test_fit_fix_meansLii##$45jjm JJv ffQn%))s#7:<155g> 8'..wY3;==@SU /33GcJ'Xs#&--gH29;;>35 )### JJv  266!QSS> !! -44W:B9FH8;su (((rFctjjd}|jd}|jd}tj||j}t j ||d|}t j|\}}t j|||j}t j||\} } t| tj|d t| |t j|| | j} | |ksJ| d |jdzz} t j|| | j} | | ksJy) NrErMrrr`rr[rrra) r=rrrrrrrrArrrr)rZrrrzrrbrcrdrerfrgrhmean_perturbedrjs rDtest_fit_fix_covz'TestMultivariateNormal.test_fit_fix_covsJii##$45jjm JJv ffQn%))s/2F155g> 8'..wY3;==@SU /33GSI'XrwwwQ78Wc"&--gH29;;>35 )###"D3::a=$88-44W:H9@B8;su (((rFN)8rrrrVr\rcrjrmrorurrrrrrrrQrrr=rUr- from_diagonalrrrrrrrrrrrrrrr!slowr)r-rqr5r8r<r?rCrLrSrrXr\r^rkrnrrFrDrNrN sO"6( (( ( ?26h0,70E0  A2 B [[ BFF1I $J $ $aV , ;;:4-1 -)&>1@%*"9"3$: $(/$ 4 [[ [[VaV, /- /  [[VU1b\2 [[Vj2T%UV=W3= [[VU1b\2 [[Vj2T%UV=W3= [[VU1b\2 [[Vj2T%UV =W3 =I&*  [[UF+6,6% [[Z("((6*:*2"((5/*;<B<B  [[Y%)1&)9)1&)9);<@<@@ ):)rFrNc<eZdZdZdZdZdZdZdZdZ dZ y ) TestMatrixNormalc 2d}d}tj||fd}dtj|ztj||fdz}dtj|ztj||fdz}ttt tj dttt |tj d|ttt ||tj dttt |||ttt |||ttt |j||tjj}t|t j||tj||ft|t j|tj||f|t|t ||tj||ft|t |tj||f|y)NrirMrr ffffff?)rgrirMr) r=rrSrTrRrrrrrrrT)rZnum_rowsnum_colsrrVrs rDtest_bad_inputzTestMatrixNormal.test_bad_inputs GGXh' - "++h' '"''8X2F*L L "++h' '"''8X2F*L L j-'1BCj-BHHRL!Dj-Arxx|Dj-Aq9j-Aq9j-a; II ! !a**BGGXx$89 ;a**(H!56 ; a1bggx6J.KLa277Hh3G+H!LrFcd}d}tj||fd}dtj|ztj||fdz}dtj|ztj||fdz}tj||f}tj|df}tjd|f}tj|} tj|} tjd} t t j |||j||ft t j |j||ft t j | j|dft t j | jd|ft t j || j||ft t j || j||ft t j || j||ft t |j| t t |j| t t | j|t t | j| t t | j|t t | j| t t || j| t t || j| t t || j|y)NrirMrr rtr rrowcovcolcov)r)r{)r|)rr|)rr{)r{r|) r=rrSrrrrr?r{r|r) rZrurvrrrwZZrZcIrIcI1s rDtest_default_inputsz$TestMatrixNormal.test_default_inputss GGXh' - "++h' '"''8X2F*L L "++h' '"''8X2F*L L HHh) * XXxm $ XXq(m $ [[ " [[ " [[^]&&AaBHH) +]&&A.44) +]&&a066] $]&&a066] $]&&Aa8>>) +]&&Aa8>>) +]&&a:@@) + ]*1126]*1126]!,1126]!,33R8]!,1126]!,33R8]!4;;R@]!4;;R@]!A6;;Q?rFcd}d}tj||fd}tj|d}d}tj|d}d}tj|}tj|} tt |||j d|ztt |||j d| ztt |||j d|ztt |||j d| zy)NrirMrrrrz)r=rrSrrr{r|) rZrurvrUvUsVvVsrrs rDtest_covariance_expansionz*TestMatrixNormal.test_covariance_expansions GGXx(# . WWXs #  WWXs #  [[ " [[ "]"R@GGV ]"R@GGV ]"R@GGV ]"R@GGV rFctddD]S}tddD]@}tj||fd}dtj|ztj||fdz}dtj|ztj||fdz}t |||}|j d}t j |||d }t |||j d} |j| } t j| |||} t | | |j| } t j| |||} t | | CVy) Nr rgrr rtrzrXr)rr{r|r) rqr=rrSrrrrr)rZrrrrrwfrozenrvs1rvs2rpdf1pdf2logpdf1logpdf2s rDtest_frozen_matrix_normalz*TestMatrixNormal.test_frozen_matrix_normal&s8q /A1QZ /GGQqE3'"++a.(277Aa5#+>>"++a.(277Aa5#+>>&AaBzztz4$((a!6:<T4(JJDJ1zz!}$((1QGT4( --*'..qq1MWg.) / /rFcZtddD]}tddD]}tj||fd}dtj|ztj||fdz}dtj|ztj||fdz}t |||}|j d}|j |}|j|} |j} |jj} |jj} tj||} tj | | | }tj| | | }tj| | }t||d t| |d t| |y) Nr rgrr rtrzrXrrrr)rqr=rrSrrrrrrflattenkronrr)rZrrrrrwrrrrentropy1vecXvecMrrrentropy2s rDtest_matches_multivariatez*TestMatrixNormal.test_matches_multivariate>s\q 4A1QZ 4GGQqE3'"++a.(277Aa5#+>>"++a.(277Aa5#+>>&AaBJJDJ1zz!} --*!>>+ss{{}ss{{}ggal*..t$CH-44T#N.66DcJd7u=(3) 4 4rFc 0d}d}tj||fd}dtj|ztj||fdz}dtj|ztj||fdz}d}t|||}|j |d }|j |d } tj |tj ddddddf| tj ddddddffd } t| jd |||f|j| } t| jd |ftd D]B} t|D]2} tj| | | f|||}t|| | | fd4Dy)NrirMrr rtrrzrXrirrrLr) r=rrSrrr rrr?rrqr)rZrurvrrrwrrX1X2r array_logpdfrrseparate_logpdfs rDtest_array_inputz!TestMatrixNormal.test_array_inputXs{ GGXh' - "++h' '"''8X2F*L L "++h' '"''8X2F*L L Aa: ZZQTZ 2 ZZQTZ 2 NNBrzz!Aa/0BJJq14D1EFQ OQWWq!Xx89}}Q' \''!Q0q KA1X K"/"6"6q1vA>?#Kac1BEJ K KrFcd}d}tj||fd}dtj|ztj||fdz}dtj|ztj||fdz}d}t|||}|j |d }tj |d } t | |d tj|j||z|j} t | |d tjtj|ddj||z|j} t | |d y)NrirMrr rtrzrXrrrrrr rL) r=rrSrrrrrreshaperswapaxes) rZrurvrrrwrrr sample_mean sample_colcov sample_rowcovs rD test_momentszTestMatrixNormal.test_momentsos% GGXh' - "++h' '"''8X2F*L L "++h' '"''8X2F*L L Aa: JJADJ 1ggaQ'  QS1qyy8H=??@  qs3r{{1Qq19989( 8 MMNQP  qs3rFc ftjtjddgddggtjddgddggtjddgddggtjj dd }tjd d gd d ggddgddggg}t ||y)Nr rLrMrirkrgrr)rr{r|rrg6?gǀgcϿ@g"'@gI2͖@g^jy%@gDn3@g|\3@)rrr=rrrr)rZrexpecteds rD test_sampleszTestMatrixNormal.test_sampless""Aq6Aq6*+88aWr1g./88aVaW-...q1  88!23!124!23!124 5  )rFN) rrrrxrrrrrrrrrFrDrrrrs.M4%@N,/044K.4,*rFrrc~eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZy) TestDirichletc Rtjjdtjjdd}tjj dd|}t |}t |jt j|t |jt j|t |jt j|d}t|D]}tjj dd|}|tj|z}t |j|ddt j|dd|t |j|ddt j|dd|yNrr & .>rrrk)r=rrrandintrrrvarrrrqrrrrZrrr num_testsrr`s rDtest_frozen_dirichletz#TestDirichlet.test_frozen_dirichlets0 t II  a $ !!&#q1 e QUUWimmE23QVVXy~~e45QYY[)"3"3E":; y! LA !!&#q1A NA q"v afe(D E !CR&)9+;+;AcrFE+J K  LrFcjtjjdtjgd}tjj |d}t |j dtttj||tttj||t j|j|t j|jdd|t j|j|t j|jdd|y)Nrr@@rjr)rjrMrk) r=rrrrrr?rTrRrrrrZrr`s rD"test_numpy_rvs_shape_compatibilityz0TestDirichlet.test_numpy_rvs_shape_compatibilitys t) II  A  .QWWf%j)--E:j)"2"2Au= acc5! acc#2h&e$Sb5)rFcHtjjdgd}tjjtjd|dj }t ttj||t ttj||y)Nr)rrrrrjr r=rrrmaximumrrTrRrrrs rDtest_alpha_with_zerosz#TestDirichlet.test_alpha_with_zerossg t II   4 7a  @ B Bj)--E:j)"2"2Au=rFcHtjjdgd}tjjtjd|dj }t ttj||t ttj||y)Nr)rgrrrjrrrs rD test_alpha_with_negative_entriesz.TestDirichlet.test_alpha_with_negative_entriessg t  II   4 7a  @ B Bj)--E:j)"2"2Au=rFctjgd}tjgd}tj||tj||tjgd}t tj||dt tj||tj dy)Nrrr@rrrrt)rrrrrh)r=rrrrrr_rs rDtest_data_with_zerosz"TestDirichlet.test_data_with_zeross-. HH) * aE"-.IMM!U3Q7I,,Q6q BrFctjgd}tjgd}tttj ||tttj ||y)N)rr rrrr=rrTrRrrrrs rD$test_data_with_zeros_and_small_alphaz2TestDirichlet.test_data_with_zeros_and_small_alphaF-. HH) *j)--E:j)"2"2Au=rFctjgd}tjgd}tttj ||tttj ||y)Nr)rrJrrtrrs rDtest_data_with_negative_entriesz-TestDirichlet.test_data_with_negative_entriessF-. HH* +j)--E:j)"2"2Au=rFctjgd}tjgd}tttj ||tttj ||y)Nr)rrKrrtrrs rD test_data_with_too_large_entriesz.TestDirichlet.test_data_with_too_large_entriesrrFctjgd}tjdd}ttt j ||ttt j||y)Nr)rLrjrjg$I$I?r=rrrTrRrrrrs rDtest_data_too_deep_cz"TestDirichlet.test_data_too_deep_csF) GGIv &j)--E:j)"2"2Au=rFctjddgddgg}tjdd}ttt j ||ttt j||y)Nrrrr)rLrLrj?rrs rDtest_alpha_too_deepz!TestDirichlet.test_alpha_too_deepsS3*sCj12 GGIu %j)--E:j)"2"2Au=rFctjgd}tjdd}tj||tj ||y)NrrMrjUUUUUU?)r=rrrrrrs rDtest_alpha_correct_depthz&TestDirichlet.test_alpha_correct_depths>) GGFE " aE"rFctjgd}tjdd}ttt j ||ttt j||y)Nrrr rrs rDtest_non_simplex_dataz#TestDirichlet.test_non_simplex_datasF) GGFE "j)--E:j)"2"2Au=rFctjgd}tjdd}ttt j ||ttt j||y)Nr)rLrjr rrs rDtest_data_vector_too_shortz(TestDirichlet.test_data_vector_too_shortG-. GGFE "j)--E:j)"2"2Au=rFctjgd}tjdd}ttt j ||ttt j||y)Nr)rgrjrrrs rDtest_data_vector_too_longz'TestDirichlet.test_data_vector_too_longrrFc tjgd}t|}gd}gd}gdgdgdg}t|j |t|j |t|j |y)N)r皙?rr 皙?r)UUUUUU?{Gz?Q?)r)rrO贁N)rrr)r=rrrrrr)rZrr expected_mean expected_var expected_covs rDtest_mean_var_covzTestDirichlet.test_mean_var_covsh( e ' - ../ "!&&(M:!!%%'<8!!%%'<8rFcntjdg}t|}t|j j dt|j j dt|jdgj dt|jdgj dy)Nrrr) r=rrrrrrrr)rZrrs rDr\z TestDirichlet.test_scalar_valuessy# e  QVVX]]A&QUUW\\1%QUUB4[%%q)QXXrd^((!,rFctjjdtjjdd}tjj dd|}t |}d}t |D]h}tjj dd|}|tj|z}t|j|dd|j|jyr) r=rrrrrrqrrrrs rD test_K_and_K_minus_1_calls_equalz.TestDirichlet.test_K_and_K_minus_1_calls_equal$s t II  a $ !!&#q1 e  y! 9A !!&#q1A NA af quuQx 8 9rFctjjdtjjdd}tjj dd|}t |}d}d}d}t |D]}t |D]W}tjj dd|} | tj| z} |tj|| f}V| }Y|j|j} d} |D].} |j| } | tj| | } -| } 0t| | y)Nrr rrrrrg) r=rrrrrrqrvstackrrappendr)rZrrrr num_multiplexmrr&r`rmrsxsrs rDtest_multiple_entry_callsz'TestDirichlet.test_multiple_entry_calls3s  t II  a $ !!&#q1 e   y! .A<( II%%fc15RVVAY>B7+BB  rttBB EE"I>2q)BB   &b" -! .rFcVtjjdtjjddd}t |}t |d|d}d}t |D]f}tjjddd}|tj|z}t|j||j|ght|j|jdt|j|jdy)NrrrrLrr r) r=rrrrrrqrrrrr)rZrrrrrr`s rDtest_2D_dirichlet_is_betaz'TestDirichlet.test_2D_dirichlet_is_betaPs t !!&#q1 e  q58 $ y! 6A !!&#q1A NA a!%%* 5 6 AFFHaffhqk2AEEGQUUWQZ0rFN)rrrrrrrrrrrrrrrrrrr\rrrrrFrDrrscL$ *>>C> > > > > # > > > 9$ - 9.:1rFrctjddg}tjdgg}ttt|| t ||y#t$r-}d}t t |dt||Yd}~yd}~wwxYw)NrrzDimension mismatch)r=rrTrRrrstrr)rUrrrs rD,test_multivariate_normal_dimensions_mismatchrasw 3* B HHseW E*12u= -B& -"SVISX&,,-s A B #BB c0eZdZdZdZdZdZdZdZy) TestWishartctjdd}ddgtjdtjdtjddg}|D]N}td|}t |j |t |j j |j Ptjddgddgg}ddgtjdtjddgddggg}|D]N}td|}t |j |t |j j |j Ptttdtjdtdtjdtjdd}tttd|y)Nr rLndminrr rLrKrM) r=rr_rrrr?rTrRrU)rZ true_scalescalesrws rDtest_scale_dimensionsz!TestWishart.test_scale_dimensionsustXXaq) C HHQK EE!H HHQa   :E5!A * -  (8(8 9 :XX!u !!u&' qE EE#J HHqee    :E5!A * -  (8(8 9 : j'1bffQi8 RVVAY!$j'1e4rFc \ddgtjdtjdtjddtjdgdg}tdd}|j tjdd}|D]}t |j ||gdtjdtjgddg}tdd}|j tjgdd}|D]}t |j ||dddgtjdtjdtjddgddggtjddgddggddddtj fg}tdtjd}|j tjddgddggddddtj f}|D]}t |j ||y)Nr rLrrMrPrr)r=rrrrrrrU)rZrr densityr`s rDtest_quantile_dimensionsz$TestWishart.test_quantile_dimensionss  C HHQK EE!H HHQa HHaS "   AaL%%!,- ,A q7 + ,  EE%L HHWA &  AaL%%23 ,A q7 + ,  qE HHQK EE#J HHqee  HHqee "**n .  AbffQi %%1Q%#$Q%")**+Abjj.:; ,A q7 + ,rFc d}tjtj|dz}tj||dz zdz|tj|d<tj|j |}g}t dD]}tjtj||dzdzz}tj||dz zdz|tj|d<tj|j |}|j|tj|j }ddtjdddfd||fg}|D]\}}}t||}t|jtj||t|jtj||t|jtj||t|jtj||t|j!|tj |||y Nrir rLrkrxrgrr)r=rtrR tril_indicesrrrrqrrr/rrrrmoderr) rZrrrrr` parametersdfr s rDrzTestWishart.test_frozens #q(),.IIcSUmq6H,IboocR()uww& q A #!ax/0A,.IIcSUmq6H,IAboocR( )qssAA HHQK   HHQKMMBKKR+ , N ) >NRE"A '++b%"8 9 7<<E#: ; 7<<E#: ; goob%&@ A q7;;q"e#< =  >rFcZd}d}tj|}d|d<d|d<t||}tjj d}tj |||}tjj d}|j |}tjj d}|j d}tj|j||j|d z |j|d z fdz} tj| } || tj|d <tjj|} | j| } tj| | j} t|| t|| y) NrMrr rPr rirrr rLrkr)r=rUrrrrrr chisquarertrrrrrrr)rZrrrr rw_rvs frozen_w_rvs covariances variancesrzDDA manual_w_rvss rDtest_wishart_2D_rvszTestWishart.test_wishart_2D_rvssh s c c  B ii##F+ BC8ii##F+uu#u. ii##F+jjaj( EE MM"  MM"Q$  MM"Q$  !     GGI (3"//# $% II  u % UU1Xvvb"$$'  |, l3rFctjjd}d}d}tj|}tjdddt }tj ddd}|D]}t||}t|} t|j| jt|j| jt|j| jt|j|| j||j|| } |f} d } td | | | y) N^r rrLrrnumrrr)r=rrrUrRr9r/rrrrrrrrr ) rZrsnrrdf_rangerrr crrBrs rDtest_1D_is_chisquaredz!TestWishart.test_1D_is_chisquareds ii##F+ s 99QAU3 KKB2 & =BE"ARA AEEGQUUW - AFFHaffh / AIIK 5 AEE!HaeeAh /%%Rc%2C5DE "64 @*4X=>!9rFrceZdZdZdZdZejjdddgdZ dZ d Z ejjddd gd Z d Z ejjddd gdZdZejjddd gdZdZdZdZejjdej*ej,gdZy)TestMultinomialcbtjddd}t|ddtjddgd d d g}|tj k(sJtjd d gd d d g}|d k(sJtjddgd d dg}t|tj dy) NrMrirjrrtg&MtyrarrMrirrrtrn)rlogpmfrr=rr)rZvals1vals2vals3vals4s rD test_logpmfzTestMultinomial.test_logpmf`s""5!Z81=""Aq61r2h7""Aq61r2h7zz""Aq61r1g6rvvD1rFctjddd}tjddd}t||dtjdd d }tjd d d }t||dy) Nr1rjr2rMrrar)rhrrrhr)rr3r"rpmfrZval1val2s rDtest_reduces_binomialz%TestMultinomial.test_reduces_binomialmsf!!&!Z8||Aq#&d.vr:6yyB$d.rFc dgd}}ddddddd dd d d }|D](}ttj|||||d *y)NrM)g?rg?g@?g?g?g`?g?g?g?g?g?) )rrrM)r rrL)rLrr )rMrrrQrrLr r)rrLr r)rrMr+=r)rrr=)rZrrAr_valsr`s rDtest_RzTestMultinomial.test_Rxs_$1([([([([([ B  MA KOOAq!4fQie L MrFrrrMcHd}tjt|5tjj d}t j|dgdzdd}|j |dgdzd}t||dddtjt|5tjj d}t j|dgd zdd}|j |dgd zd}t||dddy#1swYxYw#1swYyxYw) Nz,Some rows of `p` do not sum to 1.0 within...rJr#rrMrjrrrg) rQwarns FutureWarningr=rrrrr)rZrr[rndmsc_rvsnp_rvss rD test_rvs_npzTestMultinomial.test_rvs_npsA \\-w 7 )99((-D __QqqsKF%%a$%:F  (  ) \\-w 7 )99((-D __QqqsKF%%a$%:F  (  ) )  ) )  ) )sA!D "A!D DD!ctjddd}t|ddtjddd }t|d dtjd dgd d ggddgddgggd d}t|ddgd d ggdtjdtj }tj|dd }t |tjgtj tjddgdd }t|d dtjgddgd}t|ddtjgdd gd}|dk(sJtjgdd gd}|d k(sJy)N)rgrgr r rarr1rjr2g5 ?rMrr:rk r<g*7?grFc \tjddgddg}t|tjddtjddgdtjddgd d gd d gg}t|tjdd tjdd gdtjdgdggd d gd d gg}t|tjdd tjdd gtjdd tjdd ggdy) NrLrMrrrarrjr:rrtrrrg)rZrhent1ent2s rDtest_entropy_broadcastingz)TestMultinomial.test_entropy_broadcastings ""Aq6B84u}}Q3U]]1b5IJ! #""Aq6RHr2h+?@u}}Q3U]]1b5IJ! #""QC!:R2r(/CD--2. a0DE--2. a0DEG! #rFc`tj|ddg}t||dz|dzgdyrfrrr)rZrmean1s rD test_meanzTestMultinomial.test_means0  RH-"ad|$7rFc`tjddgddg}t|ddgddggd y) Nrgrhrrrrg433333?g433333@rarrn)rZros rDtest_mean_broadcastingz&TestMultinomial.test_mean_broadcastings5  !Q"b2t tTl;$GrFctjjdd}d}gdgdgdgdgdg}tj|tj }t ||}t |j|t j|||t |j|t j|||t |jt j||y) NrXr+)rrrrrrrr+rrr r6rr r rr r r rPr r rLr:r) r=rrr>rSrrr=r3r)rZrpvalsr` mn_frozens rDrzTestMultinomial.test_frozens t    :i B JJq +5)  a(+//!Q*FG ((+[-?-?1e-LM ))+[-@-@E-JKrFc(d}tjjd}|j|}d|d<|tj|z}tj|}t j |||}tj|sJy)NXliRZYgKH9rk)r=rrrrTrr3isfinite)rZrrrAr`r3s rD test_gh_11860zTestMultinomial.test_gh_11860sx ii##$78 JJqM" RVVAY GGAJ##Aq!,{{6"""rFrcd}tjgd|}tjgd||}tjgd||}tjj ||dy) N)rrrrrr)r rLrgrjri)r`rrA)r rLrirgrjrGr)r=r>rr=testingr)rZrrrAres1res2s rD test_gh_22565zTestMultinomial.test_gh_22565sW  JJ0 >A;A; ""4E":rFN)rrrr8rArFrQrrrMrWrYr]rdrrlrprrrr~r=float32rSrrrFrDr/r/_s 2 /M" [[S1a&) )* )6;  [[S1a&)/*/ / [[S1a&)?*? # [[S1a&)8*8H L # [[Wrzz2::&>?;@;rFr/c*eZdZdZdZdZdZdZy)TestInvwishartc |d}tjtj|dz}tj||dz zdz |tj|d<tj|j |}g}t dD]}tjtj||dzdzz}tj||dz zdz |tj|d<tj|j |}|j|tj|j }ddtjdddfd||fg}|D]\}}}t||}t|jtj||t|jtj||t|jtj||t|j!|tj |||yr)r=rtrRrrrrrqrrr/rrrrrrr) rZrrrrr`rriws rDrzTestInvwishart.test_frozens  #q(),.IIc3q5k!m,DboocR()uww& q A #!ax/0A,.IIc3q5k!m,DAboocR( )qssAA HHQK   HHQKMMBKKR+ , N ) ENRB&B :>>"e#< = JOOB$> ? JOOB$> ? BFF1Iz~~aU'C D  ErFctjjd}d}d}tj|}tjdddt }tj dd d }|D]}t||}t|dz d } t|j| jt|j| jt|j|| j||j|| } |dz dd f} d} td| | | t|j| jy)Nr!r"r rgrLrrrr#r r*rrrr)r=rrrUrRr9r/rrrrrrrr r) rZrr%rrr&rrrigrrBrs rDtest_1D_is_invgammaz"TestInvwishart.test_1D_is_invgamma>s ii##F+ s 99QAU3 KKB2 & 8BB&B"Q$d+B BFFHbffh / BGGIrwwy 1 BFF1Irvvay 1&&bs&3CqD!T?DE ":tUC @ BJJL"**, 7% 8rFcd}d}tj|}d|d<d|d<t||}tjj d}tj |||}tjj d}|j |}tjj d}|j d}tj|j|d z |j|d z |j|fdz} tj| } || tj|d <tjj|} tjj| j| jj} tj| | j} t!|| t!|| y) NrMrr rPriHG rrrLr rkr)r=rUrrrrrrrrtrrrsolverrrr)rZrrrrriw_rvs frozen_iw_rvsrrrzrL manual_iw_rvss rDtest_invwishart_2D_rvsz%TestInvwishart.test_invwishart_2D_rvs_s| s c c E "ii##F+E<ii##F+C0 ii##F+jjaj( EE MM"Q$  MM"Q$  MM"       GGI (3"//# $% II  u % IIOOACC % ' 'q!##   . }5rFchd}d}dD](}tjtj|dz}tj||dz zdz |tj|d<tj|j |}t ||}|j}|j}||z dz}|j|d } | jd } ||dzzdz} d | z } tjd| dz z } tj| |z |z d | r)Jy)z1Test that sample mean consistent with known mean.r Nr rgr rLrkrr rXrrrrrN) r=rtrRrrrrrrrrrppfr)rZr sample_sizerrr Xmean_expXvar_exp Xmean_stdr Xmean_estntests fail_ratemax_diffs rDtest_sample_meanzTestInvwishart.test_sample_means$  CGGBIIcNQ./E02 #q/A:M0NE"//#, -FF577E*Eb%(D IxxzH!K/#5Ik=AAI#']A%Fv IxxIM 12H;;Y&)3 ! rFcltjgdgdgdgdg}tjgdgdgdgdg}d }tj|||}|jd }tj j |\}}tj j |\}}tj j||} |d z |z||zd z tjd zz t|d z |z ||zd zd z |zz d | jzz } t|| y)zRegression test for gh-8844.)rLr rr )r rLr r )rr rMr )r r r rL)rPrjrMr )rjrPrgr )rMrgr:rL)r r rLrPrhrrLr r N) r=rrrr?rrrr_r7tracer) rZrPsinuprobrAsiglogdetX logdetPsirrs rDtest_logpdf_4x4zTestInvwishart.test_logpdf_4x4s% HHn&$&( )hh $$$&'  B, GGAJyy((+ W**3/Y IIOOAs #T9$!tAvrvvay()"2a4+,Avz1nW,-!'')m $ h'rFN)rrrrrrrrrrFrDrrsE@8B,6\6(rFrc6eZdZdZdZdZdZdZdZdZ y) TestSpecialOrthoGroupctjdtjj d}tj gdgdgdg}t ||y)NrMr)gDbgMPFh?g ,׿)g7?g++?g uC))g?gg]Qg^ ɿ)rrr=rrrr)rZr`rs rDtest_reproducibilityz*TestSpecialOrthoGroup.test_reproducibilitysM  # #ABII4I4I#4N O88CBCEF "!X.rFctttjdtttjdtttjdtttjdyNrrkrZ)rTrRrrrZs rDtest_invalid_dimz&TestSpecialOrthoGroup.test_invalid_dimsNj"5"9"94@j"5"9"96Bj"5"9"92>j"5"9"93?rFcd}t|}|jd}tj|d}t||y)NrjrXr)rrr)rZrrrrs rDtest_frozen_matrixz(TestSpecialOrthoGroup.test_frozen_matrixs=$S)zztz,"&&s>T4 rFctddDcgc]'}tdD]}tj|)}}}|Dcgc]!}tjj |#}}t |dgdzd|D]L}ttj||jtj|jdNycc}}wcc}w) NrLr+rMrvIh%<=rr) rqrrr=rrrrrrrrUr?)rZrrrr`detss rDtest_det_and_orthoz(TestSpecialOrthoGroup.test_det_and_orthosq!Qx!"%%c*!*!! +--Q a --rd2gE2 :A %bffQn&(ffQWWQZ&8 : :! .s ,C&Cc d}d}d}tj||tjj d}d}|Dcic]'\}}||ft |Dcgc] }||| c})} }}}|D cgc]} |D] } | | kDs | | f} } } | D cgc]\} }t | | | |d}} }t|gt| z|ycc}wcc}}}wcc} } wcc}} w)Nrgr皙?irrrQ)r rirr ) rrr=rrsortedr rr)rZrrbks_probrelserecr`proje0e1pairsp0p1ks_testss rD test_haarzTestSpecialOrthoGroup.test_haars  $ $ gBII,A,A#,F +HKLLfb"R&R!8!B%)!899LL$'Ab#ABb"bAAADIJRHT"XtBx03JJ7)CJ.9"9LAJs*CC' C9C! C!C'CcJttjddddy)Nr rrrr)rrrrs rDtest_one_by_onez%TestSpecialOrthoGroup.test_one_by_one s +//=quMrFcZttjddjdyNrrir)rirrrrrr?rs rDtest_zero_by_zeroz'TestSpecialOrthoGroup.test_zero_by_zero (,,QQ7==yIrFN) rrrrrrrrrrrrFrDrrs(/@ ! ::8N JrFrceZdZdZdZdZdZejjdgddZ dZ d Z d Z ejjd Zy ) TestOrthoGroupc`d}tjj|}tjd|}tjd|}t tj j|dtjgdgdgdg}t||t||y)NrrMrrk)gm?gӠh"gEo?)g~7ݲC?g >Ŀg0J_ٿ)gݱ&ǿg6qrg`X|[) r=rrrrrrrrr)rZrrr`rrs rDrz#TestOrthoGroup.test_reproducibility sii##D) OOAC 0 __QT 2BIIMM!,b188<==?@ "!X.!"h/rFctttjdtttjdtttjdtttjdyr)rTrRrrrs rDrzTestOrthoGroup.test_invalid_dim sBj+//48j+//6:j+//26j+//37rFcd}t|}t|d}|jd}tj|d}|jd}t||t||y)NrjrXrrr r)rrrrZrr frozen_seedrrrvs3s rDrz!TestOrthoGroup.test_frozen_matrix saS!!#D1 zztz,s6A&T4 T4 rFc tddDcgc].}tdDcgc]}tj|c}0}}}tj|Dcgc]/}|Dcgc]!}tj j |#c}1c}}}ttj|tj|jd|D]S}|D]L}ttj||jtj|jdNUycc}wcc}}wcc}wcc}}w)NrLr+rrrr)rqrrr=rrrrfabsrTr?rrrrrU)rZrrrxxr`rs rDrz!TestOrthoGroup.test_det_and_ortho+ sq&b #s##&& xx"EBB7q"))--*7EF rwwtzz':G >B >)"&&ACC.*,&&*<> > >#& 8Es-D2D- D2 D= #&D8 D= -D28D= r)rLrgrrcztjjd}t|}|j d|}t j j|}tj|dkD}t|}tj||}|jd\} } | dcxkr| ksJJy) Nl<`Lr)rrrrffffff?confidence_levelr ) r=rrrrrrrrrr/ binomtest proportion_ci) rZrrrrrrxrr@rrs rDtest_det_distribution_gh18272z,TestOrthoGroup.test_det_distribution_gh18272: sii##$78s#hhDsh3||$ FF4!8  Iooa#%%t%< TS4rFc d}d}d}tjjd}tj|||}d}|D cic]'\}}||ft |D cgc] } | || c} )} }}} |D cgc]} |D] } | | kDs | | f} } } | Dcgc]\}}t | || |d}}}t|gt| z|ycc} wcc} }}wcc} } wcc}}w)Nrgrrirrr ) r=rrrrrr rr)rZrrbrrrrrrr`rrrrrrrs rDrzTestOrthoGroup.test_haarG s ii##C( __SwS A+HKLLfb"R&R!8!B%)!899LL$'Ab#ABb"bAAADIJRHT"XtBx03JJ7)CJ.9"9LAJs*CC) C;C# C#C)Ccpd}tj|dtjj d}t tj |ddtj|dkD}t|}tj||}|jd \}}|d cxkr|ksJJy) Nr rrrrrrrrr ) rrr=rrrr[rrr/rr)rZrrrxrr@rrs rDrzTestOrthoGroup.test_one_by_oneb s __St")):O:OPS:T Ur AE2 FF26N Gooa#%%t%< TS4rFcZttjddjdyrrrs rDrz TestOrthoGroup.test_zero_by_zerom rrFcDtjjddfd }tddD]jdfd }||}|tj j j}tj j||\}}td|ly) Nrctjjj||f\}}}tj||SNr)r=rrrrr)rrr_srrs rD random_orthoz.random_orthou s:yy}}SZZc3ZZ%@AHAr166!Q< rFrLrhc tjt|Dcgc]-}tj||z dz/c}}|tjj | ||j z }|Scc}w)N)rrrLr)r=rrqrrrr?)rrepsrr/rrs rDgenerate_test_statisticszHTestOrthoGroup.test_pairwise_distances..generate_test_statisticsz s#1X"FFCCc:Cc:;=>?@" **C45;;*GG "s2B rr<)rr) r=rrrqrr/rrr r) rZrrrr_DrArrs @@rDtest_pairwise_distancesz&TestOrthoGroup.test_pairwise_distancesp sii##C( A; &C 0 =H-ekk.E.E.I.IJFKK((6:EB c1 %! &rFN)rrrrrrrrQrrrrrrrprrrFrDrr si 08 ! > [[UN3  4  :6  J [[&&rFrc*eZdZdZdZdZdZdZy)TestRandomCorrelationctjjd}d}tj||}tj|d}tj gdgdgdgdg}t ||t ||y)Nrr rrrYr)rѓ2ǿA?Ϳ)rr4($?R}%?)rrrqTnƿ)rrrr)r=rrrrrr)rZrrr`rrs rDrz*TestRandomCorrelation.test_reproducibility svii##C(!  " "4c :  # #Ds ;88A@@ACD "!X.!"h/rFctttjdtttjdtttjdtttjdgtttjddgddggtttjddgtttjgdy) NtestrZr rLrMrig)r rLr)rTrRrrrs rDtest_invalid_eigsz'TestRandomCorrelation.test_invalid_eigs sj"4"8"8$?j"4"8"8&Aj"4"8"8#>j"4"8"83%@j"4"8"8Aa5!A-Hj"4"8"83*Ej"4"8"8*ErFcd}t|}t|d}tj|d}|jd}|j}t||t||y)Nrrrr)rrr)rZrrrrrrs rDrz(TestRandomCorrelation.test_frozen_matrix s_!#D)(C8 !%%d=zzsz+ T4 T4 rFc 0d}tjjd}tddDcgc]}|||j |}}|j gd|Dcgc]}dgt |z}}|Dcgc]}tj||}}|Dcgc]4}tjtjj|6} }|Dcgc]}tj|} }t| | d d |Dcgc]}tj|} }t| |D]\} } t| | d |D]}t||j d ycc}wcc}wcc}wcc}wcc}wcc}w) Nc$||zt|z Sr<)r)rrs rDrz3TestRandomCorrelation.test_definition..norm sQ3s1v: rFr#rLrhr)rirrrrrrrr)r=rrrqrrrrrrrrrrrtzipr)rZrrrrrrTrr`r dets_knowndiagsrrs rDtest_definitionz%TestRandomCorrelation.test_definition se ii##C(6;AqkBQ  +,BB I%)*SV **CG Ha $$QS9 H H 466a a()66*./Qbggaj/ /ju5A&((((t$ .DAq Aqu - . 0A Aqss / 0)C+ H 7/)s# E:*E?F*9F )FFc tjddgddggt}tj|}t |tjddgddggtj d5tjddgddgg}tjddgdtjddggt}tj|j}t ||jj|j|tjd dgdd ggt}tj|j}t ||jj|j|dddtjd dgdd ggt}tj|j}t |d dtjd dgdd ggt}tj|j}t |d dy#1swYxYw)Nrrr rignore)overrkgu<7~rrKrLrgMk @) r=rr9r_to_corrrerrstate nextaftercopyrrr)rZr&gm0s rD test_to_corrz"TestRandomCorrelation.test_to_corr s HHsAhA'u 5  ' ' *288aVaX$678 [[h ' 31a&2q'*+AE1:2<<1+='>?uMB"++BGGI6A Aqsswwr{q1 2C<%6eDB"++BGGI6A Aqsswwr{q1 2 3XX1v1v&e 4  ' ' 2#"XX!}q!f-U ;  ' ' 2#"' 3 3s 2D II N)rrrrrrrrrrFrDrr s 0F !"0H#rFrc,eZdZejj dddgejj dgddZejj dgddZd Zejj dgd d Z y ) TestUniformDirectionrr rMrNr rg)rgrictjjd}t||}|j |}tj |tj |}}|j|||j}|j|k(sJtjj|d} t| dy)NSid )_i4rrrkrr) r=rrr(rrrUrr?rrr) rZrrruniform_direction_distrbrrexpected_shapenormss rDrz!TestUniformDirection.test_samples sii##$78!23S!A(,,T2HHSM266#;c00s0FLL}}... wR0r"rF)NrrrZcd}tjt|5tj|dddy#1swYyxYw)NzMDimension of vector must be specified, and must be an integer greater than 0.rJ)rQr rRr(r)rZrr[s rDrz%TestUniformDirection.test_invalid_dim s:< ]]:W 5 '  ! !# & ' ' 's =Acd}t|}t|d}|jd}tj|d}|j}t||t||y)Nrgrrr)r(rrrs rDtest_frozen_distributionz-TestUniformDirection.test_frozen_distribution s_"3''#6 zzsz+ $$Ss; T4 T4 rF)rLrgr:ctjjd}t||}|j d\}}|||z|zz}|tj j |z}t||zdd|j d}||z}||z}tj||} | tjz } | dtjzz} t} t| | j} | jd kDsJy) Nl@9Y srrLrrrDrr:r)r=rrr(rrrrarctan2rrr!rpvalue) rZrrspherical_distv1v2rbs1s2angles uniform_dist kstest_results rD test_uniformz!TestUniformDirection.test_uniform sii##$78*3S9###+B b2gl biinnR  R/ $$%$0 r\ r\B# "%%!BEE'y v|'7'78 ##d***rFN) rrrrQrrrrrr%rrFrDrr s [[UQF+ [[V%9: #;, # [[U$:;'<' ! [[UI.+/+rFrc0eZdZdZdZdZdZdZdZy)TestUnitaryGroupc tjjd}tjd|}tjdd}tj gdgdgdg}t ||t ||y)NrrMr)y~p?yZ?y뉦?ĭ?y8Z?&4?)yEHξr?8i?ye??+ݓݿyu=ٿB۽'?)yqXQ ÿ?yN6ҿzܷy!8l?2W'?)r=rrrrrr)rZrr`rrs rDrz%TestUnitaryGroup.test_reproducibility- smii##C(   ac 2   qs 388 I H K M  "!X.!"h/rFctttjdtttjdtttjdtttjdyr)rTrRrrrs rDrz!TestUnitaryGroup.test_invalid_dim; sJj-"3"3T:j-"3"3V<j-"3"3R8j-"3"3S9rFcd}t|}t|d}|jd}tj|d}|jd}t||t||y)Nrjrrrr r)rrrrs rDrz#TestUnitaryGroup.test_frozen_matrixA scs##Cc2 zzsz+  37A&T4 T4 rFcNtddDcgc]'}tdD]}tj|)}}}|D]\}tt j ||j jt j|jdd^ycc}}w)NrLr+rMrrGr) rqrrrr=rrconjrrUr?)rZrrrr`s rDtest_unitarityzTestUnitaryGroup.test_unitarityM sq!Qx!$!$!!  SA BFF1affhjj1266!''!*3EE R S !s,B!c .dD] }d}tj||tjj d}tj |Dcgc]!}t jj|#c}}tj|j|j}t|jttj dtjzj }t#|j$dkD ycc}w)NrrrrrLr)rrr=rrrrreigvalsrimagrEr!ravelrrrr r)rZrrbrr`rr@s rDrzTestUnitaryGroup.test_haarV s  'CG""' 0E0Ec0JB 99rB!ell2215BCD 499dii0AGRUUFAbeeG$<$@$@AC CJJ% & 'Cs&D cZttjddjdyr)rrrr?rs rDrz"TestUnitaryGroup.test_zero_by_zeroi s]&&qq177CrFN) rrrrrrr-rrrrFrDr'r', s" 0: !S'&DrFr'ceZdZddgddgddgddgddgddgddgddgddgddgg ddgddgddggdgdfgdgd gd gd gd ggd gdgdgdgdgdfgZej j dedZej j dedZdZ dZ ej je ddZ dZdZdddddgddggdddgddgddggdfdddgddggdddgddgddggdfddgddddgddgddggdfddgddddgddgddggdfddgddgddggdddgddgddggdfddgddgddggdddgddgddggdfgZej j d ed!Zd"ddd"gdggdfd"gdgdd"gdggdfej&d"gej&dgdd"gdggdfgZej j d ed#Zd$Zd%Zd&Zej j d'd(d)gej j d*gd+ej j d,d-d.ej2gd/Zd0Zej j d*gd1d2Zej j d*gd3d4ZdTd6Zd7Zej j d*gd8ej j d9gd:ej j d;d5dZ"d?Z#d@Z$dAZ%ej j d*dBdCZ&dDZ'ej j d,gdEdFZ(ej j dGdHejRdddIdJfdKej&dLdgddHggdMdNfgdOZ*ej j dPgdQdRZ+dSZ,y)UTestMultivariateTr rLrirMrgr) | ߌ?v 2R?r5g0$H?r6r6gO`?gՒXO?g ߌ,?g8N8?)gHP?gQI?go_?)g9m4?g=U?gˡE?)g$C?ghs?gǺ?)g!uq?g%C?gS㥛?)gOec?gz,C?g h"l?)rkr 2)rr r)r rrJ)rrJrr:)gJ#Rc5"15xx{{{1~!"&&,5rFc|gd}tj|d}tj|}t||y)N) rPrjrir r$rPrr$rkrMr r)r$rr%r)rZr`r;r:s rDtest_mvt_with_df_one_is_cauchyz0TestMultivariateT.test_mvt_with_df_one_is_cauchy s0 -  q)jjm!#s+rFc d}tdddd}|jd}t|\}}||kDsJtddgd d gd d ggdd }|jd}t|\}}||kDjsJy) Nrrr 順rrrrnrMrrk*)r$rr&r)rZ P_VAL_MINrrbrrAs rD&test_mvt_with_high_df_is_approx_normalz8TestMultivariateT.test_mvt_with_high_df_is_approx_normal s  avA6(((''"1I  r1gR2r(';#%'(((''"1Y##%&%rFz'scipy.stats.multivariate_normal._logpdfc:tddtjd}t|tsJtj dtj|j dk(sJtjdtj|j dk(sJy)Nrr rjrDr@rL)r$r=rrrr call_countr)rZmockrs rD!test_mvt_with_inf_df_calls_normalz3TestMultivariateT.test_mvt_with_inf_df_calls_normal suarvvA6$ :;;;1(!###aBFF+!###rFcd}tj|}tj|}d}tj|}t|||j |}tj |sJt|||j |}tj |sJd}tjj||f}t|||j |}|j|fk(sJt|||j |}|j|fk(sJttjdtjddj}tj |sJd}ttjdtjddj|}|j|fk(sJy)Nri@rjr r) r=rrUr$risscalarrrr?r) rZrrr?rr`r@ n_samplesrs rDtest_shape_correctnessz(TestMultivariateT.test_shape_correctness shhsms   HHSMS%,003{{3S%,33A6{{3 II  i- .S%,003 i\)*)S%,33A6 i\)*)RXXa["&&)Q7;;={{3RXXa["&&)Q7;;;F dW$%$rFct}t|jdgt|jdgg|jdk(sJy)Nrr r$rrr?r)rZrs rDtest_default_argumentsz(TestMultivariateT.test_default_arguments s<TXXs#TZZ1#'1  rF)NNNrr r )NNrjrr rjNrjz*loc, shape, df, loc_ans, shape_ans, df_ansct|||}t|j|t|j||j|k(sJy)Nrr?rrRrZrr?rloc_ans shape_ansdf_ansrs rDtest_default_argsz#TestMultivariateT.test_default_args s@#Ur:TXXw'TZZ+6!"!rFrkct|||}t|j|t|j|t|j|yr<rRrVs rD&test_scalar_list_and_ndarray_argumentsz8TestMultivariateT.test_scalar_list_and_ndarray_arguments% s<c5"-TXXw'TZZ+TWWf%rFc ddgg}tttfit|ddgddgddgg}tttfit||t j d}t j d}d}tttfit|||d}tttfit|||y) Nr )rrLrM)rr?rkrUr)rTrRr$rr=rrU)rZrr?rs rDtest_argument_error_handlingz.TestMultivariateT.test_argument_error_handling. s1vhj$ '  ' Q!Q!Q(j$ 4E2 4 hhqkq  j$ ;Eb9 ;j$ ;Eb9 ;rFc,tjjd}|jd}tjd}t ||dd}t ||dd}|j d}|j d}t||y)NrirMrrLrDr)r=rrrrUr$rr)rZrrr?rdist2samples1samples2s rDrz&TestMultivariateT.test_reproducibilityG s}ii##A&kkqk!q sEaa8sEaa899"9%99"9%Xx(rFctddgddgddggdd}ttjjt fi|y)Nrr F)rr?rr_)rrTr=rrr$)rZrBs rDtest_allow_singularz%TestMultivariateT.test_allow_singularQ s;1qeQqE]qObii++^DtDrFr)rrM)rgrhrirMr)rLrMrirgrrrcttj|tj||}|j |}|j ||fzk(sJyr)r$r=rrUrr?)rZrrrrrs rDtest_rvszTestMultivariateT.test_rvsV sJbhhsmRVVC["=hhDh!yyDC7N***rFctjd}tjd}d}gdgdgdgdg}gdgdgdgdg}tjgd}t j |||||}t ||d |zy) NrMrrrlrrrr rr)rZrrrrrr rs rDr!z TestMultivariateT.test_cdf_signs^ svxx{ffQi   9i 8  9i 8.1!%%asBAFSVN23rF)r rLrgc&|j|yr<cdf_against_mvn_testrZrs rD$test_cdf_against_multivariate_normalz6TestMultivariateT.test_cdf_against_multivariate_normalj s !!#&rF)rMrhrPc(|jddy)NrMTrirks rD-test_cdf_against_multivariate_normal_singularz?TestMultivariateT.test_cdf_against_multivariate_normal_singularo s !!!T*rFFc ,tjjd}d}d|jdd|z}t ||||}d|jdd|ztj |j |z}d|jdd||fz |z}d|jdd||fz|z} tjj| ||d |d | } tjj| ||d | } t| | d y)N]J>?a rMrrnr rrkrLr:T)rr r_r)r_r Mb@?r) r=rrrrsignrr/r$rrr) rZrrrrr rrrrr@rAs rDrjz&TestMultivariateT.cdf_against_mvn_testt sii##O4   B , , ah73;;r13;//"''#**#*:N2OO R!S2 2 2T 9  BC 1 1D 8""&&q$16:'N''++AtS89,;St,rFcPtjjd}d}d}|jdtj|}d}t j j||||tj |}t jj|||tj|}t jj||tj|}t||d tjtj||z d kDsJy) NrprLrr)rrrM)r rrqrr)r=rrrrr/r$rrrrrrr[) rZrrrr`rr@rA incorrects rDtest_cdf_against_univariate_tz/TestMultivariateT.test_cdf_against_univariate_t sii##O4 JJBbggclJ 3 ""&&q$RbffW47'9ggkk!Rrwws|4JJNN1dBGGCL9 St,vvbffS9_-4555rF)rLrMrgrr)nolm,lsOlUiOfYlO_rTc P|r|dk7rtjdtjj |}d|j dd|z}t ||||}|j|}|j| }|j|} |jdz} tjj| ||| |d } tjd 5td | |tj|z| |z |d } dddt|  ddtjj| ||| ||d} tjd 5td | |||z | |z |d } dddt| | ddy#1swYxYw#1swY%xYw)Nrvz4Agreement with qsimvtv is not great in singular caserrnrLrrgT)rr_r)invalidrrg-C6*?rrr)r rr_r)rQrr=rrrrr/r$rr r9rr) rZrrrrr rrrrrr@rAs rDtest_cdf_against_qsimvtvz*TestMultivariateT.test_cdf_against_qsimvtv s  * KKN Oii##D)  B , , ah7zz# ZZ_  JJsO ZZ\A ""&&q$Rc6:'< [[ * G5"c266!8QXsCAFC GSt$7""&&q$RQ47'N [[ * G5"c1t8QXsCAFC GSt$7 G G G Gs#(FFFF%c  d}tjjd}d|jdd|z}t |||d |j| |j| }|j|}|jd z t j j| || } fd }t|||t jj||  }t||jd fd}t||d|d|d|d|d|d}t||ddy)NrMl !yrrkr rT)rrg)rr c\tjj|jSr<)r/r$rr)r`rrrs rD integrandzITestMultivariateT.test_cdf_against_generic_integrators..integrand s$''++ACCsB? ?rF)rr)qrngrrcTtjj|dddS)Nrk)r/r$r)zyxrrrs rDr}zITestMultivariateT.test_cdf_against_generic_integrators..integrand s(''++C"ItS"E ErFrrL)r=rrrrr/r$rr4qmcHaltonrintegralr6) rZrrr rrr@r}rArrrs @@@rD$test_cdf_against_generic_integratorsz6TestMultivariateT.test_cdf_against_generic_integrators s+ii##N3 #++b!#+. . at<zz# ZZ_  JJsO ZZ\A ""&&q$Rc34'6 @y!QUYY-=-=#-=-NOS\\5 Fi1qtQqT1Q41qtDSV$/rFctjjd}tjgdgdgdg}d}t j ||}|j gd|}d }t||d y) NlJa)go!@S._cdf_1d s+E2sRVVGAIqvsCAF FrFrkrrry) r=rrrr/r$rapply_along_axisr) rZrrrzr`r@rrArrrrs @@@@rDtest_vectorizedz!TestMultivariateT.test_vectorized s ii##O4 JJS#JJ '!##gzz# JJqC6z " ZZ\A ""&&q$Rc&J G!!'2q1St$7rFrctjjd}tjj dgdg|dz zz}t j|jdg|z|}d|dzz }t||d y) Nrpr r )r')r?rrr,r) r=rrrrtoeplitzr/r$rr)rZrrrzr@rAs rDtest_against_analyticalz)TestMultivariateT.test_against_analytical s~ii##O4 LL ! !QC3%37*;$; ! <""+//c /L37mSt,rFctjdd}tj}tjj ||}tj j d|}||k(sJy)NrMr)r=rUrr/r$rr)rZrr mvt_entropy mvn_entropys rDtest_entropy_inf_dfz%TestMultivariateT.test_entropy_inf_df s[ffQl VV**222D //77cB k)))rF)r rrctjjd|}tjj|}t ||dy)Nrrr@rr)r/r$rrr)rZrr t_entropys rDtest_entropy_1dz!TestMultivariateT.test_entropy_1d s=**222C GGOOrO*  YU;rFzdf, cov, ref, tolrg}M@rDrr gNfh @ractjd}tj|||}t |j ||y)Nrr)r=rr/r$rr)rZrrrAtolrmvts rD%test_entropy_vs_numerical_integrationz7TestMultivariateT.test_entropy_vs_numerical_integration" s7 hhuo""3R0 s5rFzdf, dim, ref, tol) )rr gDdVW?rG)rr gU?r)r"r g/+?rD)@xDr Z_2?rG)}Ô%ITr rrG)rrgzg#.@rG)rrgD:f,@r)rr1>`,@rG)rrrrG)rrg8d?b@rG)rrg-YҺa@rD)rrZGra@rG)rrrrGctjtj||}t |j ||y)Nrr)r/r$r=rUrr)rZrrrArrs rDtest_extreme_entropyz&TestMultivariateT.test_extreme_entropy+ s1F""< s5rFctjgdgdgdgdgdg}||jz}d}tjj ||}t d|j }t||d d }d }tjj ||}tjj ||} t|| d y)N)gQ?g ףp= ?g\(\߿(\?gGz?)gGzg{GzgQ?rgQ)gQ?g)\(?gQѿg)\(ܿg(\?)ggGzgq= ףpg\(\?g)rg{Gzg\(\?g{GzԿg(\?rrrrGriir)r=rrr/r$rrr) rZ_Arr mul_t_entropymul_norm_entropydf1df2 _entropy1 _entropy2s rDtest_entropy_with_covariancez.TestMultivariateT.test_entropy_with_covarianceQ sXX + - , , ,   244i,,44324F .t=EEG '7eD ((00ss0C ((00ss0C  948rFF)-rrr PDF_TESTSrQrrr<r>rArG thread_unsafer:rKrPrSDEFAULT_ARGS_TESTSrZr=rARGS_SHAPES_TESTSr\r^rrdrrfr!rlrnrjrurzrprrrrrrrrUrrrrrFrDr4r4m soF F F F F F F F F F  AF F  1%P % $ $ $ $    % % %  )K@ID [[5yA,B,  [[5yA6B6, '$ [[ 45$6$&@ $ AA1vAA/?C AAQFaVaV,B  [[I/1#1# QB41#" sAtqcUA& 2$1#B41#:  [[I.0&0&;2)E  [[Vg|%<= [[UL1 [[TBBFF#34+52>+ 4 [[UI.'/' [[UI.+/+-$ 6 [[UM2 [[V&JK [[Z%788K382 [[004-" N8$ [[UF+-,-* [[T<0<1<& [[0!6266!Q<1CUK"HBHHsAhB-@$A/7896 96  [[ $6%$6(9rFr4ceZdZejj dddgddgddfddgddgdej fd dgddgdej fddgd dgdejfd d gddggd dgd dggddgejejgfd dgd dgd ejfd dgdd gdejfd dgddgdejfddgddgdejfddgddgdej fg dZ dZ dZ dZ ejj dgddfgddfddgdfdgdffdZ ejj ddgdgdd fddgddgddfddgddggddgd d gggddgddgdd ggdd gdd!ggfejge"ejge"dgfd d gddgddfgd#gd$d%d&fgd'Zejj dddgddgdd(ggddd)gfd gd ggdgdggd dgd*d+gfd gd gggdgdggd dgd*d+ggfd gd ggdggggd dgd*d+gggfgd,Zd-Zd.Zd/Zd0Zd1Zd2Zd3Zd4Zd5Zd6Zd7Zy8)9TestMultivariateHypergeomzx, m, n, expectedrMrirgrrjgrr$r rLrqiir6r+rkicNtj|||}t||dy)Nư>r)rr3rrZr`r&rrvalss rDr8z%TestMultivariateHypergeom.test_logpmfq s$6&,,Q15hT2rFctjddgddgd}tjdddd}t||d tjd dgddgd}tjd d dd}t||d y) NrMr rrgri)r`r&r)rxrrrrarrj)rr=r#rr>s rDtest_reduces_hypergeomz0TestMultivariateHypergeom.test_reduces_hypergeom s|&))QFr1gC}}qB!r2d.%))QFr2h"E}}qB"3d.rFctddgd}|jdd}t|jd|jd y) NrMrgrir&rrr#rrrrrrrrrZrrs rDrfz"TestMultivariateHypergeom.test_rvs s@$q!f 2ff$Sf1 RWWYT:rFctddgddggddg}|jdd }t|jd |jd y) NrMrgrrirPrrrLr#rrrrrrs rDtest_rvs_broadcastingz/TestMultivariateHypergeom.test_rvs_broadcasting sK #1v2w&7Aq6 Bff)#f6 RWWYT:rFzm, n)rrrrr)rrrrrctj||}tj|}|j }|||dk7<t ||y)Nr)rrr=r>r r)rZr&rr@res_exs rDtest_rvs_gh16171z*TestMultivariateHypergeom.test_rvs_gh16171 sE %((A. JJqMqAvS&!rFg zl?r:rPgQ?gE|?g y?rrR)rgrhrjrhgzp?cNtj|||}t||dyNrrrr=rrs rDrWz"TestMultivariateHypergeom.test_pmf s$"&))!Q2hT2rFrg ?rrcNtj|||}t||dyrrrs rDrYz/TestMultivariateHypergeom.test_pmf_broadcasting s$&))!Q2hT2rFchtjgdd}gdgdgdg}t||dy) N)rMrjrr+r)gf_?&BUп疈Cx@ؿ)rggs>d?ZsK)rrg3 5?rarrrr)rZr\rs rDr]z"TestMultivariateHypergeom.test_cov s2%))J"=6668 d.rFcVtjddgddggddg}dd gd dggd d gd d ggg}t||d tjdgdggddg}dggdggg}t||d tjddgddg}dd gd dggddgddggg}t||d y)NrjrPrrr:r+rg?gg(\?g(\rarrirgrg333333?g333333rr_s rDrdz/TestMultivariateHypergeom.test_cov_broadcasting s%))aVb"X,>1b'J . .0d.%))aS1#J1a&A"d.%))QFq"g> .'"Wf$568d.rFctjddgd}tjddd}t||dy) Nrrgrirrrrrrar)rrr#r)rZvar0var1s rDtest_varz"TestMultivariateHypergeom.test_var s6%))RGq9}}rQ"-d.rFctjddgddg}tjddgd}tjddgd}t|d|dt|d |dtjddgdd ggddg}d d gd d gg}t||dtjdgdggddg}d gd gg}t||dy)Nrrgrir:rrrarr r;g̍3eY?gI{?r)rrr)rZrrvar2var3var4var5var6s rDtest_var_broadcastingz/TestMultivariateHypergeom.test_var_broadcasting s%))RG1v>%))RGq9%))RGq9QD1QD1%))b!Wr2h,?Aq6JI&8(<=d.%))aS2$KAr7Crd|d.rFctjddgd}tjddd}t|d|d tjd d gd}d d g}t||d y)Nrrgrirrrrrarr+r:g@r)rrr#rrZmean0rormean3s rDrpz#TestMultivariateHypergeom.test_mean sf&++r1g;qB/a%d3&++r1g<j)u40rFcntjddgddggddg}ddgd d gg}t||d y) NrMrgrrir:rrYrZgUUUUUU@gUUUUUU@rar)rrr)rZrros rDrrz0TestMultivariateHypergeom.test_mean_broadcasting sE&++1vAw.?Aq6JH% I'>?u40rFcVtjgdd}t|gdtjgdd}t|tjtjtjgtjgdgdgd}t |tjtjtjggdgd tjtj gt d}t|gt|jd k(y) Nrlrrrrrr rrrLr)rrrFFgr6rrr=r3rr)rZrr&r` mhg_frozens rDrz%TestMultivariateHypergeom.test_frozen8 s t   M= < ) JJq $+Aq1  q).221a; = ))!,.55aA> @ (*@*D*DQ*JK (*@*D*DQ*JKrFctttjdddtttjddgdtttjddgdgdtttjddgddgdtttjddgddgdtttjddgddgdy) Nrgrrig@rMrg%@g/@)rTrRrr= TypeErrorrs rDtest_invalid_paramsz-TestMultivariateHypergeom.test_invalid_paramsH sj"8"<".method s&q#s33rFc:tj|Sr<)r=r)r`rs rDraz1TestRandomTable.test_pmf_logpmf.. sq *rFrTr return_countsrr)rrr )rr r )rLr rMrkrrQ)r rLrLrnz$`x` must be at least two-dimensionalrJz%`x` must contain only integral valuesrKz)`x` must contain only non-negative valuesz"shape of `x` must agree with `row`rPz"shape of `x` must agree with `col`rMri)rr'rrur=uniquerrrrrr?rqrrQr rRr)rZrr_rrobjr= unique_rvscountsrAp2rvs_ndrrpijrvijqijr`r[rrrrs @@@@rDtest_pmf_logpmfzTestRandomTable.test_pmf_logpmf s( lln!fsCd&.SB)/l3$L#h59$O 4/2*YYs$G F  OCH f37jm$ %R1Y1267 Kww)###qwwqz" 'A1771:& '1gad|$iS#&  ' ' "RVVAB'- FAv v "RVVAB'- FAv v9 ]]:W 5  H : ]]:W 5  #L : ]]:W 5  "&& O > ]]:W 5  "K 7 ]]:W 5    7 ]]:W 5  !QQ   )            sH2 L! LL! L-? L90MLL!L*-L69MMr)rrc|j}ddg}gd}tj||d||}tj||}t t j |t j |t|jd|dt |j d t j|d t |j d t j|d y)NrLrhrrrrrrrkrrrn)rrM) rr'rrrr=rr broadcast_to)rZrrrrrrs rD test_rvs_meanzTestRandomTable.test_rvs_mean slln!fsCd6,/1  c*RVVD\266#;/ T5SWW"W%rsI'FGSWW"W%rsI'FGrFc|j}ddg}gd}tj||dd|}tj||dd|}tj|d }tj|d }t ||d y) NrLrhrr:rrrrr{Gz?r)rr'rr=rr)rZrrrrrr\rs rD test_rvs_covzTestRandomTable.test_rvs_cov slln!fSuX-02Su[-02vvd#vvd#d.rFc (ddg}gd}tj||||j}|jdk(sJtj||d||j}|jdk(sJt ||d tj||d ||j}|jd k(sJtj||d ||j}|jd k(sJtj||d ||j}|jdk(sJt |j d dd|dd} tjt| 5tj||d||jdddtjt| 5tj||tj||jdddy#1swYdxYw#1swYyxYw)NrLrhrrrr rrPr)rrLrMr)rrLrM)rirg)rirgrLrMrMrGrz/`size` must be a non-negative integer or `None`rJrk) r'rrr?rrrrQr rRr=r) rZrrrrrv2rv3rv4rv5r[s rD test_rvs_sizezTestRandomTable.test_rvs_size s!f  c3v+/<<>;xx6!!!sCa,0LLN<yyI%%%RQ sCa,0LLN<yyI%%%sCb,0LLN<yyJ&&&sCfV,0LLN<yyL((( B1-s?D ]]:W 5 :   S#Bv*.,,. : :]]:W 5 :   S#BFF6*.,,. : : :  : : : :s0)G<<7H<HHcddg}gd}t}|j||d||j}tj|dd\}}|j |||}t |t|z|d y) NrLrhrrCrrTrr$r)r'rrr=rr=rr) rZrrrrrrrrAs rDtest_rvs_methodzTestRandomTable.test_rvs_method(s|!f ffS#F6"&,,.2 YYs$G F FF:sC (CH f48rFcgd}gd}t||}|jd||j}tjdt |t |f}gdgdgdg|d<t ||y)Nr)r rrrrr)rrrr.r'rrr=rrrrZrrrrrrs rDtest_rvs_with_zeros_in_col_rowz.TestRandomTable.test_rvs_with_zeros_in_col_row=so c " UU4T\\^U D88T3s8SX67%%%'  R"rF)Nrrrrrct||}|jd||j}tjdt |t |f}t ||y)Nrrr/r0s rDtest_rvs_with_edge_casesz(TestRandomTable.test_rvs_with_edge_casesIsQ c " UU2f4<<>U B88RS3s845R"rFrrcddlmcm}tjddgtj }tjgdtj }t |d|}tj|}||||d|j}|jdt|t|fk(sJtj||k(sJy)Nrr rMrr rvs_rcont) scipy.stats._rcontr/_rcontr=rint64rurrr?r)rZrr7rrrntotresults rDtest_rvs_rcontzTestRandomTable.test_rvs_rcontRs ,+hh1vRXX.hhy1f !o.vvc{S#tQ 7||3s8SX6666vvf~%%%rFcddg}gd}t|||j}|j}tj||}t ||jtj |||}t ||j |tj |||}t ||j |y)NrLrhrr)r'rrrrr=r3)rZrrrrrs rDrzTestRandomTable.test_frozencs!f c  7$$S#.Xqvvx(##FC5XquuV}-&&vsC8Xqxx/0rFcddg}gd}t|||j}tj||d||j}|jd|}t||y)NrLrhrrrr)rr)r'rrr)rZrrrrrr s rDtest_rvs_frozenzTestRandomTable.test_rvs_frozenssb!f c  7##C2f15AeeFe+Xs#rFN)rrrrrrQrrr r rr"r%r+r-r1r3r;rr>rrFrDrrT s9" H [[^@B$B$5 [[X}5 [[UM2L36L\ [[X'>? H@ H / [[X'>?':@':R [[X'>?9@9( [[X'>? #@ # [[X'DE [[UR!I. [[UR!I.#//F#  [[S&)&*& 1  [[X'>?$@$rFrc|j}d|_|j|dditj|}|j|ddi}tj|}|j|ddi}t ||||_y)NrXrr:)rrpickledumpsloadsr)distfnrBrJrr0 unpickledr1s rDcheck_picklingrGs   DFFJJ1 VA T " "B QI  %1 %BRFrFc&tjd}d|d<d|d<tdgttjdgfgt d|fgt d|fgtdgd fgtd gtd gg}|D]\}}t||t||y) NrMr rPrrrrrgrr) r=rUrrrrrrrrr8rG)num_parallel_threadsrdistsrCrBs rDtest_random_state_propertyrKs FF1IEE$KE$K b! RXXrd^&' 2u+ b%[! q/*+ d d# E% #FD1vt$%rFc eZdZejj dgdejj dgddZejj dddgejj dgd d Zd Zd Z d Z ejj dddgdZ ejj dddgdZ ejj de je jgdZejj de je jgdZejj dej&gdej&gdddfej&gdej&gdddfej&gdej&gdddfej&gdej&gddd fej&gdej&ej(d!ej(d"dgd#d$fej&gdej&gdd#d%fej&gd&ej&gd&d#d'fej&gd&ej&ej(d!ej(d"dddgd#d(fej&gd&ej&ej(d)ej(d*dddgd#d+fg d,Zejj dej&gdej&gddd-fej&gdej&gddd.fej&gdej&gddd/fej&gdej&gddd0fej&gdej&ej(d!ej(d"dgd#d1fej&gdej&gdd#d2fej&gd&ej&gd&d#d3fej&gd&ej&ej(d!ej(d"dddgd#d4fej&gd&ej&ej(d)ej(d*dddgd#d5fg d6Zejj d7gd8d9Zejj de je jgd:Zd;Zejj dgd<ejj d=gd>d?Zd@ZdAZdBZyC)DTestVonMises_Fisherr)rLrMrirhrrctjjd}tj|fdtj|z }t |d|}|j |}tj|tj|}}|j|||j} |j| k(sJtjj|d} t| dy)Nrr rrrkrr)r=rrrrr)rrrUrr?rrr) rZrrrrUvmf_distrbrrrrs rDrz TestVonMises_Fisher.test_samplessii##$78 WWcWa n -"2qs3,,t$HHSM266#;c00s0FLL}}... wR0r"rFrgr:kappa)g4&k Crgꌠ9Y>)Fctjjd}tj|fdtj|z }t |||}|j dy)Nrr rr)r=rrrrr)r)rZrrPrrUrOs rD test_sampling_high_concentrationz4TestVonMises_Fisher.test_sampling_high_concentrationsQii##$78 WWcWa n -"2u37 RrFctjd}d}tjt|5t |ddddy#1swYyxYw)Nrz%'mu' must have one-dimensional shape.rJr r=rTrQr rRr)rZrUrs rDtest_two_dimensional_muz+TestVonMises_Fisher.test_two_dimensional_musA WWV_5 ]]:S 1 # B " # # # A  Actjd}d}tjt|5t |ddddy#1swYyxYw)Nrz%'mu' must be a unit vector of norm 1.rJr rTrUs rDtest_wrong_norm_muz&TestVonMises_Fisher.test_wrong_norm_musA WWU^5 ]]:S 1 # B " # # #rWctjd}d}tjt|5t |ddddy#1swYyxYw)NrOz$'mu' must have at least two entries.rJr rTrUs rDtest_one_entry_muz%TestVonMises_Fisher.test_one_entry_musA WWU^4 ]]:S 1 # B " # # #rWrk)rgrMcd}tjt|5tddg|dddy#1swYyxYw)Nz"'kappa' must be a positive scalar.rJr rrQr rRr)rZrPrs rDtest_kappa_validationz)TestVonMises_Fisher.test_kappa_validations82 ]]:S 1 + QFE * + + +6?rrcd}tjt|5tddg|dddy#1swYyxYw)NzFor 'kappa=0' the von Mises-Fisher distribution becomes the uniform distribution on the sphere surface. Consider using 'scipy.stats.uniform_direction' instead.rJr rr]r^s rDtest_kappa_zeroz#TestVonMises_Fisher.test_kappa_zeros<]]:S 1 + QFE * + + +r`rctjgd}d}tjt|5||ddgddddy#1swYyxYw)NrrrznThe dimensionality of the last axis of 'x' must match the dimensionality of the von Mises Fisher distribution.rJr rr=rrQr rRrZrr`rs rDtest_invalid_shapes_pdf_logpdfz2TestVonMises_Fisher.test_invalid_shapes_pdf_logpdfsN HH[ !]]:S 1 ! 1q!fa  ! ! ! A  Actjddg}d}tjt|5||ddgddddy#1swYyxYw)Nr r8'x' must be unit vectors of norm 1 along last dimension.rJr rrerfs rDtest_unnormalized_inputz+TestVonMises_Fisher.test_unnormalized_inputsN HHc2Y H ]]:S 1 ! 1q!fa  ! ! !rhzx, mu, kappa, reference)rrrrg0_?rd)rrrg7m0_?rgLI/@gFK:h*7g\(\?r$ig3pB>g 7Ks@)rrrrrgo齿@gW+x\(?rrgS-cVt||j|}t||dy)Nrr)r)rr)rZr`rUrP referencers rDtest_pdf_accuracyz%TestVonMises_Fisher.test_pdf_accuracys'4b%(,,Q/YU3rFg[d6U?g1*?gJ8j#@g=fNXg][ ,g1VV @g| '@gmF&!gehcVt||j|}t||dy)NrDr)r)rr)rZr`rUrPrmrs rDtest_logpdf_accuracyz(TestVonMises_Fisher.test_logpdf_accuracy(s'4!U+2215 6rFzdim, kappa, reference))rMrg?@)rMrgp&F)rgrgT;ӷ&)r:r goZ @ctj|fdtj|z }t||j }t ||dy)Nr g+=r)r=rrr)rr)rZrrPrmrUrs rDtest_entropy_accuracyz)TestVonMises_Fisher.test_entropy_accuracySsC WWcWa n -!"e,4467rFc d}tjjd}tdj ||}tj ddtj dz }d}||||}|j|k(sJt|dD]:}t|dD]'} |||| ddf||} t| ||| fd )<y) NrrrMrrTr rgrrGr) r=rrr(rrrr?rqr) rZr testshaperr`rUrP result_allrr current_vals rDrz%TestVonMises_Fisher.test_broadcasting]s ii##$78 a $ $YS $ A WWUAbggajL )Ar5) 9,,,y|$ KA9Q<( K$Qq!QwZU;  Z1-=EJ K KrFcVtjjd}tjddg}tj|d|d}d}t ||}t ||}tdjd|}tj|dddf|dddf}t|j|jt|j||j|t|j||j|y) Nrrr r)rrPrLrr) r=rrrrr)r+r(rrrrr) rZrrUmu_anglerPvmf vonmises_distvectorsr"s rDtest_vs_vonmises_2dz'TestVonMises_Fisher.test_vs_vonmises_2dmsii##$78 XXq!f ::beRU+b%( XU; #A&**2C*@GAqDM71a4=9 --/? ))&137773CD ,,V4cjj6IJrF)rLrMrhzkappa, mu_tol, kappa_tol))r rr)rrr)r{Gzt?r$)rrr$ctj|fdtj|z }t||}tjj d}d}|j ||} tj| \} } tj|j| } t| d|dt|| |y) Nr rr:rrrryr) r=rrr)rrrrAarccosrrr) rZrrPmu_tol kappa_tolrUrOrrOrbmu_fit kappa_fit angular_errors rDtest_fit_accuracyz%TestVonMises_Fisher.test_fit_accuracy|sWWcWa n -"2u-ii##$78 ,,ys,;+//8  "&&.1  rQ?yy9rFctjd}d}tjt|5t j |dddy#1swYyxYw)NrTz'x' must be two dimensional.rJ)r=rrQr rRr)rArZr`rs rD#test_fit_error_one_dimensional_dataz7TestVonMises_Fisher.test_fit_error_one_dimensional_datasE HHUO, ]]:S 1 #    " # # # AActjd}d}tjt|5t j |dddy#1swYyxYw)NrrjrJ)r=rTrQr rRr)rArs rD test_fit_error_unnormalized_dataz4TestVonMises_Fisher.test_fit_error_unnormalized_datasE GGFOH ]]:S 1 #    " # # #rctjgd}d}t||}t||d}|jd}tj||d}|j}t ||t ||y)N)rrr rgrrr)r=rr)rr)rZrUrPrrrrrs rDrz,TestVonMises_Fisher.test_frozen_distributionss XXi  U+%b%c: zzsz+""2u3? T4 T4 rFN)rrrrQrrrrRrVrYr[r_rbr)rrrgrkr=rrrnrprrrr|rrrrrrFrDrMrMs [[UL1 [[V%9: #;2 # [[UQF+ [[W&89:,# # #  [[Wr6l3+4+  [[Wq"g.+/+ [[X(;(;(7(>(>(@A!A! [[X(;(;(7(>(>(@A!A!$ [[6'rxx 5xrxx 7M#%79'rxx 4hbhh|6L#%8:'rxx 5xrxx 7M"$68'rxx 4hbhh|6L"$9;'rxx 5'rxx r(JK#%:< (rxx 4hbhh|6L#%68'rxx(<='rxx(<=#%79 (rxx(<='rxx r)*B)0 1#%;= (rxx(<='rxxwrwws|R)*B)0 1#%;=)>?243?24" [[6'rxx 5xrxx 7M#%8:'rxx 4hbhh|6L#%8:'rxx 5xrxx 7M"$57'rxx 4hbhh|6L"$68'rxx 5'rxx r(JK#%8: (rxx 4hbhh|6L#%68'rxx(<='rxx(<=#%79 (rxx(<='rxx r)*B)0 1#%79 (rxx(<='rxxwrwws|R)*B)0 1#%8:);<273<27$ [[4:; 8 ; 8  [[X(;(;(7(>(>(@A KA K K [[UI. [[723 : 3/ :# # !rFrMcfeZdZedZdZdZdZdZdZ e jjddd gd Z e jjdd d gd ZdZdZe jjddd gdZe jjdgddZy)TestDirichletMultinomialctjjd}|jddd}|j dd|df}|j d }|||||fS) Nt7)rrrLrr rrkr)r=rrrintegersr)rZr&rrr`rs rD get_paramsz#TestDirichletMultinomial.get_paramsscii##$56 As + LLBaVL , EErENAua""rFctjjd}|jddd}|j ddd}tj |d}t ||}t|j|t j|||t|j|t j|||t|jt j||t|jt j||t|jt j||y)Nrrrrrkr) r=rrrrrr*rr3r=rrr)rZrrr`rrs rDrz$TestDirichletMultinomial.test_frozensii##$56 AsB' LLB # FF12  !% +QXXa["7">">q%"KLQUU1X488E1EFQVVX499%CDQUUW377qABQUUW377qABrFctjgd}tj|}tjgd}tj|||}tj |||}d}t ||t |tj||j|jcxk(rdk(sJJtjjd}|jddd}|jddd}tj|d }t||j |}tj |||}d }t ||t |tj|y) NrPrMrirggp.U.?rrrrrrkrg+T<) r=rrr*r=r3rr_r?rrrr)rZr`rrr@logresrArs rDtest_pmf_logpmf_against_Rz2TestDirichletMultinomial.test_pmf_logpmf_against_Rs. HHY  FF1I##''5!4&--a:!S!s ,yyFLL.B.....ii##$56 AsB' LLB # FF12 #E1-11!4&--a:"S!s ,rFc:|jd\}}}}}|dz }tt||j|dtt||j |t j |jd\}}}}}|jddkD}t j||dz||<tt||j||dtt||j ||t j t jt||j||dkDsJt jt||j ||t j kDsJy)Nr rrrr rL) rrr*r=r3r=rrroundr)rZrr&rrr`rs rDtest_pmf_logpmf_supportz0TestDirichletMultinomial.test_pmf_logpmf_supports`#ooa0Qq! Q*5!488;Q?*5!4;;A>H"oob1Qq! JJBJ # %xx!q!!*5!488;A>B*5!4;;A>qABFF7Kvv+E1599!r*rr=r3rrrrrZrrr`rs rDtest_dimensionality_onez0TestDirichletMultinomial.test_dimensionality_ones  JJsO$UA.TXXa[!$TXXac]A&T[[^Q'T[[1%w/TYY[!$TXXZ#TXXZ#rFc.d}tjddg}tjddg}t||}t|j |dt|j |dzdt|j |dt|j |dztj t|jddgt|jddgt|jddgddggy)Nrrr rrs rDtest_n_is_zeroz'TestDirichletMultinomial.test_n_is_zeros  B8$ JJ1v $UA.TXXa[!$TXXac]A&T[[^Q'T[[1%w/TYY[1a&)TXXZ!Q(TXXZ1a&1a&!12rF method_namer=r3c|jd\}}}}}tt|||}ttj|g|j |}||} ||j d} t | | yNrrrrur*r/ betabinomrr rZrrr&rrr`r ref_methodr@rAs rDtest_against_betabinom_pmfz3TestDirichletMultinomial.test_against_betabinom_pmf sr"ooc2Qq!.ua8+FU__Q99;G QiQ S!rFrrc|jd\}}}}}tt|||}ttj|g|j |}|dddf} |} t | | yrrrs rDtest_against_betabinom_momentsz7TestDirichletMultinomial.test_against_betabinom_momentssm"ooc2Qq!.ua8+FU__Q99;G hq!tnlS!rFctjjd}d}|jdd}|j|dz}t ||}d}|j ||}|j |||}t|jtj|d d t|jtj|d d |jj|jjcxk(r|fk(sJJ|j} | j||fk(sJt| tj|jd ttj| |jtjt j"j%| ddkDsJy)Nrrgr rrrrCrrr}rrr$)r=rrrr*rrrrrr?rrrrtrrrr) rZrrrrrr&rAr`rs rDrz%TestDirichletMultinomial.test_moments!scii##$56 LLC   $r)$UA.  MM%aM ( OOAqqO ) RWWQQ%7dC BFF11$5DAyy{  DHHJ$4$4>>>>>>hhjyyS#J&&&RVVACC[t4RWWS\488:.vvell'',Q/!3444rFctjgd}tj|}tjgd}d}tt|5t j gd||dddtt|5t j gd||dddd}tt|5t j |gd|dddtt|5t j |gd |dddd }tt|5t j ||d dddtt|5t j ||d dddtjgd }tjgd}d}tt|5t j |||jdddy#1swYyxYw#1swYSxYw#1swY+xYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw)NrPrz,`x` must contain only non-negative integers.rJ)r rkrM)r rrMz*`alpha` must contain only positive values.)rMrri)rMrkriz#`n` must be a non-negative integer.ǧH@rk)r rLrMriz&`x` and `alpha` must be broadcastable.)r=rrrTrRr*r3)rZx0n0alpha0textr`rs rDr\z.TestDirichletMultinomial.test_input_validation7s XXi  VVBZ)$= :T 2 A ! ( (VR @ A :T 2 B ! ( (fb A B< :T 2 < ! ( (Y ; < :T 2 = ! ( (Z < =5 :T 2 ; ! ( (VT : ; :T 2 9 ! ( (VR 8 9 HH\ "#7 :T 2 < ! ( (E1557 ; < <) A A B B < < = = ; ; 9 9  < O $ 3 [[]UH,=>"?" [[]VUO<"="5,<< [[Xx'89 2: 2 [[],BC .D .rFrc:eZdZdZdZdZdZdZejjejjddZ ejjdejej ej"ej$gd Zy ) TestNormalInverseGammac L tjjd}|jd\}}}}tj|||| tj d|z|dtj ||z|z z }tjddd}t fd d tj|f }|j|} t|j|  jd | }tj|d |j\} } | dkDsJy)N& (rirLr rrrgr6c(j||Sr<r)r!r`norm_inv_gammas rDraz8TestNormalInverseGamma.test_marginal_x..^%7%72%>rFrrBr:rr)r=rrr/normal_inverse_gammarrr/r0rrrrrks_1sampr) rZrrUlmbdarrrr`r@rArrrs @rDtest_marginal_xz&TestNormalInverseGamma.test_marginal_xtsii##J/**Q-E1a33Bq!D GGAaCRqUQ)?'? @ KKAr ">266QRPTUeeAh c*  e# >NN3q61551 6||rFc* tjjd}|jd\}}}}tj|||| tj ||}tj ddd}t fdtj tj|f}|j|} t|j|  jd| }tj|d |j\} } | dkDsJy) Nrrir*rrc(j||Sr<r)r`r!rs rDraz9TestNormalInverseGamma.test_marginal_s2..rrFrr:rr )r=rrr/rrr/r0rrrrrrr) rZrrUrrr inv_gammar!r@rArrrs @rDtest_marginal_s2z'TestNormalInverseGamma.test_marginal_s2sii##J/**Q-E1a33Bq!DNN1A. [[b" %>wbU4mmB c*  e# >NN3q69==9 6||rFcztjjd}|jddz \}}}}|jddz \}}tj||||j ||}tjj ||||||} t|tj| y)Nr)rirr)rLrr) r=rrr/rrrrr) rZrrUrrrr`r!r@rAs rDtest_pdf_logpdfz&TestNormalInverseGamma.test_pdf_logpdfsii##J/**W-4E1a  (4/2((UAq9==aD((//2r5!QGRVVC[)rFctjjd}|jd\}}}}|jd\}}tjtj |||j ||}t|tj tj|d||j ||}t|tj tj||d|j ||}t|tj tj|||dj ||}t|tj tj||||j |d}t|dtj|dtj g||j |d}t|tj tj|d||j}t|tj tj ftj||d|j}t|tj tj ftjtd5tj|||djdddy#1swYyxYw)NrrirLrkrzDomain error in arguments...rJ)r=rrr/rrrrrrrQr rRr) rZrrUrrrr`r!r@s rDtest_invalid_and_special_casesz5TestNormalInverseGamma.test_invalid_and_special_casessii##J/**Q-E1a 1 2((1=AA!RHS"&&!((RA6::1bAS"&&!((UAq9==aDS"&&!((UAr:>>q"ES"&&!((UAq9==aDS!((b"&&\1a@DDQKS"&&!((RA6;;=S266266*+((UB:>>@S266266*+ ]]:-K L ?  & &r5!R 8 < < > ? ? ?s !'KKctjjd}|jd}|jddz}|jd}|jd}|jd}|jd}tj||||}tj ||||||} | D cgc]} tj | } } |j||} | j| djk(sJt| j tjj| |j||} | j| djk(sJt| j tjj| tj ||||} | D cgc]} tj | } } |j} | dj| djk(sJt| dj | d j ftjj| |j} | dj| djk(sJt| dj | d j ftjj| d } tjjd }|j| | } tjjd }d }tjj| ||d }t| dj|| d j|f|ycc} wcc} w)NrrL)rMr )rir r )rgr r r )rhr r r r )rjr r r r r rr )rhrgrirMrLlMr)rhx)r=rrr/rbroadcast_arraysr1rr?rrrrrr)rZrrrrrUr!r`r broadcastedarrbroadcasted_raveledr@rr?rAs rDrz(TestNormalInverseGamma.test_broadcastingsii##J/ JJqM JJv  " 9% ZZ % ZZ ( JJ) *))"eQ:))!RUAqA 8CDrxx}DDhhq"oyyKN00000 22668KL Nkk!R yyKN00000 2299;NO Q))"eQ: 8CDrxx}DDiik1v||{1~33333QQ822779LM Ohhj1v||{1~33333QQ822668KL Nii##M2hhDsh3ii##M2((,,.A:=?Q.Au0EFLEEEs ?M=Nrctjjd}|jd\}}}}|dz }tj||||j }t fdtj tjdtj}t|d|ddt fdtj tjdtj}t|d |ddy) NrrirLc.j|||zSr<rr!r`rs rDraz5TestNormalInverseGamma.test_moments..sDHHQOa$7rFrrrc.j|||zSr<rrs rDraz5TestNormalInverseGamma.test_moments.. sDHHQOb$8rFr ) r=rrr/rrr5rr) rZrrUrrrr@rArs @rDrz#TestNormalInverseGamma.test_momentssii##J/**Q-E1a Q))"eQ:iik7"&&"&&!RVVTAAT28266'2661bffUAAT2rFrc^tjdkrtjdtjj d}|j dddj|\}}}}}}tjd|} tj||||} | jd j| k(sJ| jd j| k(sJ| jd j| k(sJ| jd j| k(sJ| jd j| k(sJ| jd j| k(sJ| j||j| k(sJ| j!||j| k(sJy) N2z*Scalar dtypes only respected after NEP 50.rrMrrhrrrr )r= __version__rQrrrrastype result_typer/rrrrrrr) rZrrr`r!rUrrr dtype_outrs rD test_dtypez!TestNormalInverseGamma.test_dtypesr >>C  KKD Eii##J/!$Q!;!B!B5!I2r5!QNN3. ))"eQ:xxz!}""i///xxz!}""i///yy{1~##y000yy{1~##y000xxz!}""i///xxz!}""i///{{1b!''9444xx2$$ 111rFN)rrrrrrrrrQrrp fail_slowrrr=int32float16rrSrrrFrDrrrs*,* ?D1Mf [[ [[2 3 3 [[WrxxRZZ&TU2V2rFrr)hr5r@ dataclassesr numpy.testingrrrrrr rQr rTtest_continuous_basicr numpyr= scipy.linalgrscipy.stats._multivariater rr scipy.statsrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-scipy.stats._continuous_distnsr.r"r/scipy.integrater0r1r2r3r4r5r6 scipy.specialr7r common_testsr8 data._mvtr9 unittest.mockr:rErHrrrr=rNrrrrrr/rrrrrr'r4rrrGrrrKrMrrrrFrDrs!77*9CC::::::::0@44<<&5' ]!]!@   AA AH XX Xv@ )@ )FH*H*VF1F1R-&i9i9V{;{;|a(a(HGJGJT~&~&Bd#d#N6+6+r>D>DB@9@9Fa%a%Hh$h$V (%%$~!~!BH.H.Vk2k2rF