+
    ,i                       R t ^ RIt^ RIHt ^ RIHtHtHtHtH	t	H
t
 ^ RIt^ RIHt ^RIHt ^ RIt^ RIt^ RIHtHtHt ^ RIHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4 ^ RIH5t5H6t6 ^ R	I7H8t9 ^ R
IH:t: ^ RI;H<t<H=t=H>t> ^ RI;H?t?H@t@HAtAHBtB ^ RICHDtD ^ RICHEtE ^RIFHGtG ^RIHHItI ^ RIJHKtK R tL ! R R4      tMR?R ltNR tO] ! R R4      4       tP] ! R R4      4       tQ ! R R4      tR ! R R4      tS ! R R4      tTR  tU ! R! R"4      tV ! R# R$4      tW ! R% R&4      tX ! R' R(4      tY ! R) R*4      tZ ! R+ R,4      t[ ! R- R.4      t\ ! R/ R04      t] ! R1 R24      t^ ! R3 R44      t_ ! R5 R64      t`R7 ta]P                  P                  R8 4       td ! R9 R:4      te ! R; R<4      tf ! R= R>4      tgR# )@z8
Test functions for multivariate normal distributions.

N)	dataclass)assert_allcloseassert_almost_equalassert_array_almost_equalassert_equalassert_array_lessassert_)raises)check_distribution_rvs)_PSD_lnBmultivariate_normal_frozen)multivariate_normalmultivariate_hypergeommatrix_normalspecial_ortho_grouportho_grouprandom_correlationunitary_group	dirichletbetawishartmultinomial
invwishartchi2invgammanormuniformks_2sampkstestbinom	hypergeommultivariate_tcauchy
normaltestrandom_tableuniform_directionvonmises_fisherdirichlet_multinomialvonmises)_covariance
Covariance)	_norm_pdf)stats)tanhsinhcubaturequad)rombqmc_quaddblquadtplquad)multigammaln)check_random_state_property)_qsimvtv)patchc                     \         P                  ! V 4      \         P                  ! V4      r\        W.VO5/ VB  \        V P                  VP                  4       R # N)npasarrayr   r   shape)resrefargskwargss   &&*,E/usr/lib/python3/dist-packages/scipy/stats/tests/test_multivariate.pyassert_closerC   /   s=    zz#

3C.t.v.CII&    c                   J  a  ] tR t^5t o R tR]P                  R]P                  P                  R]P                  P                  R]P                  P                  RR /t]P                  ! ]! ]4      4      tR]P                  ! . RO4      R	. RO. RO. RO.R
]P                  ! . RO4      R. R O. R!O. R"O./tR]R	]R,          R
]. R$O,          R]R#R /t]P$                  P'                  R]RR 4      R 4       t]P$                  P'                  R]! ]4      4      ]P$                  P'                  R]4      R 4       4       t]P$                  P'                  RR]! 4       ^R%.4      ]P$                  P'                  R]! ]4      4      ]P$                  P'                  R]4      R 4       4       4       t]P$                  P'                  R]! 4       R%.4      ]P$                  P'                  R]4      R 4       4       tR t]P$                  P5                  R4      R 4       tR tRtV tR# )&TestCovariancec                   R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  ! ^4      4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  ! ^4      \
        P                  ! ^4      R7       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! R4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  ! ^4      4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! R\
        P                  ! ^4      34       RRR4       R	p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  ! ^4      R34       RRR4       R
p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! . RO\
        P                  ! ^4      34       RRR4       R#   + '       g   i     EL3; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELb; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)z:The input `precision` must be a square, two-dimensional...matchNz0`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...         )pytestr	   
ValueErrorr*   CovViaPrecisionr;   oneseyeCovViaDiagonalCovViaCholeskyCovViaEigendecompositionselfmessages   & rB   test_input_validation$TestCovariance.test_input_validation7   s   N]]:W55''
3 6 E]]:W55''q	bffQiH 6 L]]:W55&&x0 6 N]]:W55&&rwwqz2 6 I]]:W5500(BFF1I1FG 6 A]]:W5500"''!*h1GH 6 N]]:W5500)RVVAY1GH 651 655 655 655 655 655 65 655sT   +I< AJ/J$4+J8-K(-K /K3<J	J!	$J5	8K		K	 K0	3L	Diagonal	PrecisionCholeskyEigendecompositionPSDc                    \        V R R7      # )Tallow_singular)r   )xs   &rB   <lambda>TestCovariance.<lambda>Y   s    %)!D%ArD   diagonal full rankzgeneral full rankzdiagonal singularzgeneral singularrM   NNNcov_type_namec                   \         P                  ! . RO4      p. ROp\        \        RV 24      pV P                  V,          p\        \
        RVP                  4        24      pV! V! V4      4      pV! V! V4      4      p\        V4      \        V4      J g   Q h\        VP                  V4      VP                  V4      4       R# )rM   CovViafrom_NrL   )rN      )
r;   diaggetattrr*   _covariance_preprocessingr+   lowertyper   whiten)	rY   rj   Are   cov_typepreprocessingfactoryr>   r?   s	   &&       rB   test_factoriesTestCovariance.test_factoriese   s    GGI;&(@A66}E*m.A.A.C-D&EFmA&'}Q'(CyDI%%%

1szz!}5rD   matrix_typec                   R V RV R2pW P                   V,          9  d   \        P                  ! V4       V P                  V,          p\	        \
        R V 24      pV P                  V,          p\        VRR7      pV! V! V4      4      p\        VP                  VP                  4       \        VP                  VP                  4       \        VP                  \        P                  ! V4      P                  4       \        VP                  \        P                  ! V4      4       \        P                   P#                  R4      p	V	P!                  ^R7      p
VP%                  V
4      pWP&                  ,          p\        W,          W,          4       \)        VR4      '       d#   RV9  d   \        VP+                  V4      V
4       V	P!                  RR7      p
VP%                  V
4      pWP&                  ,          p\        V^,          P-                  RR	7      V^,          P-                  RR	7      4       \)        VR4      '       d#   RV9  d   \        VP+                  V4      V
4       \)        VR4      '       dN   VP+                  \        P.                  ! \1        V4      4      4      p\        VP2                  V,          V4       R
# R
# )rl    does not support 	 matricesTrc      VGiVK size	_colorizesingularaxisNrN      rO   )
_cov_typesrP   skip	_matricesrq   r*   rr   r   rC   log_pdetr   rankr=   r;   r<   rJ   randomdefault_rngru   UhasattrcolorizesumrT   lenT)rY   r|   rj   rZ   rv   rw   rx   psd
cov_objectrngre   r>   r?   s   &&&          rB   test_covarianceTestCovariance.test_covariances   s    M?*<[M J  <<KK NN;';&(@A66}E1T* mA./
Z((#,,7Z__chh/Z%%rzz!}':':;Z**BJJqM: ii##$78JJAJ"%%iSY	*:{++
+0M,,S115 JJIJ&"%%ic1f\\r\*S!VLLbL,AB:{++
+0M,,S115 :{++%%bffSVn5Ca( ,rD   r   c                   R V RV R2pW0P                   V,          9  d   \        P                  ! V4       V P                  V,          p\	        \
        R V 24      pV P                  V,          p. R
OpV! V! V4      4      p	\        p
\        WRR7      p\        WRR7      p\        P                  P                  R4      pVP                  WVR7      p\        P                  P                  R4      pV
P                  WWR7      p\        P                  P                  R4      pV
! WVR7      P                  VR7      p\        V	\
        P                  4      '       dB   \        V\        P                  ! V4      4       \        V\        P                  ! V4      4       ML\!        VP"                  VP"                  4       \!        VP"                  VP"                  4       \        VV4       \        V
P%                  WV	4      VP%                  V4      4       \        VP%                  V4      VP%                  V4      4       \        V
P'                  WV	4      VP'                  V4      4       \        VP'                  V4      VP'                  V4      4       \        V
P)                  W4      VP)                  4       4       \        VP)                  4       VP)                  4       4       R	# )rl   r~   r   Trc   r   r   r   random_stateseedN皙?皙?333333?)r   rP   r   r   rq   r*   rr   r   r;   r   r   rvs
isinstance	CovViaPSDrC   squeezer   r=   pdflogpdfentropy)rY   r   r|   rj   rZ   rv   rw   rx   meanr   mvndist0dist1r   re   x1x2s   &&&&             rB   test_mvn_with_covariance'TestCovariance.test_mvn_with_covariance   s    M?*<[M J  <<KK NN;';&(@A66}EmA./
!#DDA#DTJii##$78##D$#7ii##$78WWTDWCii##$78,00d0;j+"7"788RZZ]+RZZ]+177+177+R SWWQj1599Q<@UYYq\599Q<0SZZ4ell1oFU\\!_ell1o6S[[2EMMODU]]_emmo6rD   c                   R pV P                   V,          p\        \        RV 24      pV P                  V,          p. ROpV! V! V4      4      p\        p	\	        WtRR7      p
\	        WxRR7      p\
        P                  P                  R4      pVP	                  WtVR7      p\        V	P                  WV4      V
P                  V4      4       \        VP                  V4      V
P                  V4      4       \        V	P                  WV4      V
P                  V4      4       \        VP                  V4      V
P                  V4      4       R# )rh   rl   Trc   r   r   Nr   )r   rq   r*   rr   r   r;   r   r   rC   cdflogcdf)rY   r   rj   r|   rv   rw   rx   r   r   r   r   r   r   re   s   &&&           rB   test_mvn_with_covariance_cdf+TestCovariance.test_mvn_with_covariance_cdf   s    +NN;';&(@A66}EmA./
!#DDA#DTJii##$78##D$#7SWWQj1599Q<@UYYq\599Q<0SZZ4ell1oFU\\!_ell1o6rD   c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        4        RRR4       R#   + '       g   i     R# ; i)z7The `Covariance` class cannot be instantiated directly.rH   N)rP   r	   NotImplementedErrorr+   rX   s   & rB   test_covariance_instantiation,TestCovariance.test_covariance_instantiation   s-    K]].g>>L ?>>>s	   <A	zignore::RuntimeWarningc                   \         P                  ! . RO4      pVP                  ^ ,          p\         P                  ! V4      p\        P
                  ! \        RR7      ;_uu_ 4        \        W14      P                  4        RRR4       Rp\         P                  P                  V4      p\         P                  P                  V4      p\        P                  ! \         P                  P                  V4      4      p\        W74      pVP                  VR7      p	\        P                  ! W7VR7      p
\        W4       R#   + '       g   i     L; i)rM   zThe input matrix must be...rH   Nl   .ypGw r   )rM   rN   g:0yE)r;   rp   r=   zerosrP   r	   rQ   r   r   r   r   r+   from_eigendecompositionlinalgeighr   )rY   rv   nr   r   rng1rng2covrvr>   r?   s   &          rB   test_gh9942TestCovariance.test_gh9942   s    
 GGM"GGAJxx{ ]]:-JKK(,,. L #yy$$T*yy$$T*001BC +ff$f'!%%ddCS LKs   &D==E	c                   \         P                  ! ^4      p\        P                  ! \         P                  ! ^4      \         P
                  ! ^4      34      p\        P                  P                  WR7      pVP                  RR7      p\        WA4       \        P                  P                  P                  \         P                  ! RR.4      \         P                  ! RR.RR..4      34      p\        P                  P                  WR7      pVP                  RR7      pV^ ,          V^ ,          8w  g   Q hV^,          V^,          8X  g   Q hR# )rN   r   r   Nr         ?        g      y@)r;   rS   r+   r   r   rT   scipyr-   r   r   r   array)rY   r   r   distr   s   &    rB   test_gh19197TestCovariance.test_gh19197  s    
 wwqz00"((1+rvvay1IJ{{..D.BhhDh!Skk$$<<XXr2hB8b$Z*@!ABD{{..D.BhhDh!1va   1va   rD    rL   )ro   rM   rO   )rM      r   )rO   r      )rM       rO   r   )ro   r   r   )r   ro   r   r   r   r   )r   r   r   r   )__name__
__module____qualname____firstlineno__r[   r;   rp   r   invcholeskyr   rr   r   list_all_covariance_typesr   r   rP   markparametrizerz   r   tupler   r   r   filterwarningsr   r   __static_attributes____classdictcell____classdict__s   @rB   rF   rF   5   s.    I< ",RWW!,biimm!+RYY-?-?!5ryy~~!& )B	!C HHT*C%DE%rwwy'9$y)Y&G$bggi&8#j*i%HJI '(=%'<R'@%'<['I$&;BC&@BJ
 [[_.CCR.HI6 J6 [[]DO<[[_.CD-) E =-)^ [[VdEGQ	%BC[[]DO<[[_.CD#7 E = D#7J [[Vegy%9:[[_.CD7 E ;70
 [[ 89 :,! !rD   rF   c                 .   VP                  W 34      pWDP                  ,          p\        P                  P	                  V4      w  rVV'       d   VP                  V R 7      ^ 8  p^ W&   V\        P                  ! V4      ,          VP                  ,          pV# r   )r   r   r;   r   r   normalrp   )	dimevalsr   r   rv   _v	zero_eigsr   s	   &&&&     rB   _random_covariancer     ss     	

C:A	CCA99>>!DAJJCJ(1,	
bggen
qss
"CJrD   c                     \         P                  P                  W 4      p\        P                  P                  V4      w  r#pV# r:   )r;   r   randnr   r   svd)r   Musr   s   &    rB   _sample_orthonormal_matrixr   #  s1    
		Allq!GA!HrD   c                      a a ] tR tRt oRtRtV 3R lt]RR l4       t]RR l4       t	]RR l4       t
R tR	 tR
 tR tV3R ltRtVtV ;t# )
MVNProblemi)  a$  Instantiate 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.
Nc                  < \         SV `  4        Wn        W n        W0n        W@n        \        P                  ! V P
                  V P
                  4      V n        \        P                  ! V P                  R 4       V P                  4        R# r   N)super__init__ndimlowhighlambdasr;   outercovarfill_diagonalfind_target)rY   r   r   r  r  	__class__s   &&&&&rB   r   MVNProblem.__init__F  s\    		XXdllDLL9

S)rD   c                    \         P                  P                  V4      p\         P                  ! V\         P                  ) 4      pVP                  R\         P                  ! V4      VR7      pVP                  RRVR7      pV ! VVVVR7      pV# )zDRandom lambdas, random upper bounds, infinite lower bounds.
        r   r   r   r   r   r  r        r;   r   r   fullinfr   sqrtclsr   r   r   r  r  rY   s   &&&    rB   generate_semigeneralMVNProblem.generate_semigeneralQ  s{     ii##C(ggdRVVG${{3D{9++dCd+3	
 rD   c                p   \         P                  P                  V4      p\         P                  ! V\         P                  ) 4      pVP                  R\         P                  ! V4      VR7      p\         P                  ! VP                  RR4      4      p\         P                  ! W4      pV ! VVVVR7      pV# )zVConstant off-diagonal covariance, random upper bounds, infinite lower bounds.
        r   r   r   r
  r  )r  r   r   r   r  sigmar  rY   s   &&&     rB   generate_constantMVNProblem.generate_constantb  s     ii##C(ggdRVVG${{3D{9C-.''$&	
 rD   c                    \         P                  ! V\         P                  ) 4      p\         P                  ! V4      p\         P                  ! R4      pV ! VVVVR7      p^V^,           ,          Vn        V# )zjOff-diagonal covariance of 0.5, negative orthant bounds.

True analytically-derived answer is 1/(ndim+1).
      ?r
  )r;   r  r  r   r  true_valr  s   &&&    rB   generate_halvesMVNProblem.generate_halvest  s`     ggdRVVG$xx~''#,	
 T!VrD   c                    \        RRR7      pVP                  V4       \        V P                  3/ VB w  V n        V n        R# )z?Perform the simplified integral and store the results.
              "@abN      "dictupdater0   univariate_func
target_val
target_errrY   kwdsds   &, rB   r  MVNProblem.find_target  s?     
 	
+/0D0D+J+J(rD   c           
        \         P                  ! ^V P                  ^,          ,
          4      p\         P                  ! \        P
                  ! V P                  V P                  VR\         P                  3,          ,          ,           V,          4      \        P
                  ! V P                  V P                  VR\         P                  3,          ,          ,           V,          4      ,
          ^R7      # )zPThe parameter-specific term of the univariate integrand,
for separate plotting.
NNNr   )	r;   r  r  prodspecialndtrr  newaxisr   )rY   tdenoms   && rB   _univariate_termMVNProblem._univariate_term  s     DLL!O+,wwLL$))dll1Q

]3C&CCuLMLL$((T\\!ArzzM2B%BBeKLM
 	
rD   c                    \         P                  ! V4      p\         P                  ! \        V4      V P	                  V4      ,          4      # )zUnivariate integrand.
        )r;   
atleast_1dr   norm_pdfr5  rY   r3  s   &&rB   r&  MVNProblem.univariate_func  s5     MM!zz(1+(=(=a(@@AArD   c                $   ^ RI Hp \        P                  ! R	RR4      pVP	                  V\        V4      RR7       VP	                  W P                  V4      RR7       VP	                  W P                  V4      RR7       VP                  4        R# )
QPlot the univariate integrand and its component terms for understanding.
        pyplotr    	$\phi(t)$label$f(t)$$f(t)*phi(t)$Nr"  )	
matplotlibr?  r;   linspaceplotr9  r5  r&  legendrY   pltr3  s   &  rB   plot_integrandMVNProblem.plot_integrand  so     	-KKc4(HQK|4))!,I>((+3CD

rD   c                   < V ^8  d   Qh/ S[ ;R&   S[P                  ;R&   S[P                  ;R&   S[P                  ;R&   S[P                  ;R&   S[;R&   S[;R&   S[R,          ;R	&   # )
rN   r   r   r  r  r  r'  r(  Nr  intr;   ndarrayfloat)formatr   s   "rB   __annotate__MVNProblem.__annotate__)  s     " J# $ **% & ::' ( jj) * JJ+ , - . / 6 t|"7 rD   )r  r  r  r   r   r(  r'  r  r:   )r   r   r   r   __doc__r  r   classmethodr  r  r  r  r5  r&  rL  __annotate_func__r   r   __classcell__)r  r   s   @@rB   r   r   )  sp     2 #H	     "  $K	
B	s  rD   r   c                   b   a  ] tR tRt o RtR t]RR l4       tR tR t	R t
R	 tV 3R
 ltRtV tR# )SingularMVNProblemi  a  Instantiate 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
c                D   Wn         W n        W0n        \        P                  ! V\        P
                  ) 4      V n        \        P                  ! V P                  V P                  4      ) V n        \        P                  ! V P                  R 4       V P                  4        R# r   )r   r  r  r;   r  r  r   r  r  r  r  )rY   r   r  r  s   &&&&rB   r   SingularMVNProblem.__init__  sf    		774"&&)hht||T\\::

S)rD   Nc                r   \         P                  P                  V4      pVP                  R\         P                  ! V4      VR7      pVP                  \         P                  ! VR4      4      p\         P                  ! V^V,
          ,          4      VP                  RR.VR7      ,          pV ! VVVR7      pV# )z/Singular lambdas, random upper bounds.
        r   r   r   )r   r  r  r  )r;   r   r   r   r  r   r  choice)r  r   r   r  pr  rY   s   &&&    rB   generate_semiinfinite(SingularMVNProblem.generate_semiinfinite  s     ii##C({{3D{9MM"''$,-''!qs)$szz4+Dz'II

 rD   c                    \        RR R7      pVP                  V4       \        V P                  3/ VB w  V n        V n        R# )r  r  Nr"  r#  r)  s   &, rB   r  SingularMVNProblem.find_target  s=    
 	
+/0D0D+J+J(rD   c           	        \         P                  ! ^V P                  ^,          ,           4      p\         P                  ! \        P
                  ! V P                  RV P                  ,          VR\         P                  3,          ,          ,
          V,          4      ^R7      p\         P                  ! \        P
                  ! V P                  ) RV P                  ,          VR\         P                  3,          ,          ,           V,          4      ^R7      pVRV P                  ,          V,          ,
          P                  # )rM   y              ?r.  r   r   )
r;   r  r  r/  r0  r1  r  r2  r   real)rY   r3  r4  i1i2s   &&   rB   r5  #SingularMVNProblem._univariate_term  s    DLL!O+,WWLL$))boa2::6F&FF%OP
 WWLL499*r$,,qBJJ7G'GG5PQ
 b499_r))///rD   c                    \         P                  ! V4      p\        V4      V P                  V4      ,          P	                  4       # r:   )r;   r8  r9  r5  r   r:  s   &&rB   r&  "SingularMVNProblem.univariate_func  s3    MM!d33A66??AArD   c                H   ^ RI Hp \        P                  ! R
RR4      pVP	                  V\        V4      RR7       VP	                  W P                  V4      RR7       VP	                  W P                  V4      RR7       VP                  RR4       VP                  4        R	# )r=  r>  r  r@  rA  rB  rD  rE  皙?Nr"  皙)
rF  r?  r;   rG  rH  r9  r5  r&  ylimrI  rJ  s   &  rB   rL  !SingularMVNProblem.plot_integrand  s}     	-KKc4(HQK|4))!,I>((+3CDs

rD   c                   < V ^8  d   Qh/ S[ ;R&   S[P                  ;R&   S[P                  ;R&   S[P                  ;R&   S[P                  ;R&   S[;R&   S[;R&   # )rN   r   r   r  r  r  r'  r(  rO  )rS  r   s   "rB   rT  SingularMVNProblem.__annotate__  so     & J' ( **) * ::+ , jj- . JJ/ 0 1 2 3 rD   )r  r  r  r   r   r(  r'  r:   )r   r   r   r   rV  r   rW  ra  r  r5  r&  rL  rX  r   r   r   s   @rB   r[  r[    sA     2  K0B
_  rD   r[  c                   *  a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR t]P&                  P)                  R]P,                  ! ^4      ]P0                  ! ^^.4      .4      R 4       tR tR tR tR tR tR tR t R t!R t"R t#R t$R t%R t&R t']P&                  PP                  ]P&                  P)                  R ^^.4      R! 4       4       t)R" t*]P&                  P)                  R ]+! ^^
4      4      ]P&                  P)                  R#R$R%.4      R& 4       4       t,]P&                  P)                  R ]+! ^^4      4      ]P&                  P)                  R#R$R%.4      R' 4       4       t-]P&                  P)                  R ]+! ^^4      4      ]P&                  P)                  R#R$R(.4      R) 4       4       t.R* t/R+ t0]P&                  P)                  R,R84      R- 4       t1R. t2]P&                  P)                  R/]Pf                  ! R94      ]Pf                  ! R:4      .4      R0 4       t4]P&                  P)                  R1]Pf                  ! R;4      ]Pf                  ! R<4      ]Pf                  ! R=4      .4      R2 4       t5R3 t6R4 t7R5 t8R6t9V t:R7# )>TestMultivariateNormali
  c                ^   \         P                  ! ^4      p\         P                  ! ^4      p\        \        \
        P                  RW4       \        \        \
        P                  RW4       \        \        \
        P                  RW4       \        \        \
        P                  RW4       R# )rO   Nr   rM   r   rM   rN   )r;   arangeidentityassert_raisesrQ   r   r   r   )rY   mur   s   &  rB   test_input_shape'TestMultivariateNormal.test_input_shape  sp    YYq\kk!nj"5"9"962Kj"5"9"99bNj"5"9"962Kj"5"9"99bNrD   c                   \         P                  P                  R 4       RRRr2p\        P                  ! WV4      p\        VP                  ^ 4       \         P                  P                  ^4      p\         P                  P                  ^4      p\         P                  ! \         P                  P                  ^4      4      p\        P                  ! WV4      p\        VP                  ^ 4       RRRr2p\        P                  ! WV4      p\        VP                  ^ 4       \         P                  P                  ^4      p\         P                  P                  ^4      p\         P                  ! \         P                  P                  ^4      4      p\        P                  ! WV4      p\        VP                  ^ 4       R# )        ?g333333?      @N)
r;   r   r   r   r   r   r   r   absr   )rY   re   r   r   r   r   s   &     rB   test_scalar_values)TestMultivariateNormal.test_scalar_values  s.   
		t C!%%as3SXXq! IIOOAyyq!ffRYY__Q'(!%%as3SXXq! C!%%as3SXXq! IIOOAyyq!ffRYY__Q'(!%%as3SXXq!rD   c                   \         P                  P                  R 4       \         P                  P                  ^4      p\         P                  P                  ^4      p\         P                  ! \         P                  P                  ^4      4      p\
        P                  ! WV4      p\
        P                  ! WV4      p\        V\         P                  ! V4      4       R# r  N)
r;   r   r   r   r  r   r   r   r   logrY   re   r   r   d1d2s   &     rB   test_logpdf"TestMultivariateNormal.test_logpdf.      
		tIIOOAyyq!ffRYY__Q'( ''5 $$Qc2BFF2J'rD   c                   \         P                  P                  R 4       \         P                  P                  ^4      p\        P
                  ! V4      p\        P                  ! V4      p\        P
                  ! VR^4      p\        P                  ! VR^4      p\        V\         P                  ! V4      4       \        V\         P                  ! V4      4       R# r  )	r;   r   r   r   r   r   r   r   r  rY   re   r  r  d3d4s   &     rB   test_logpdf_default_values1TestMultivariateNormal.test_logpdf_default_values8       			tIIOOA ''* $$Q' ''43 $$Qa0BFF2J'BFF2J'rD   c                   \         P                  P                  R 4       \         P                  P                  ^4      p\         P                  P                  ^4      p\         P                  ! \         P                  P                  ^4      4      p\
        P                  ! WV4      p\
        P                  ! WV4      p\        V\         P                  ! V4      4       R# r  )
r;   r   r   r   r  r   r   r   r   r  r  s   &     rB   test_logcdf"TestMultivariateNormal.test_logcdfE  r  rD   c                   \         P                  P                  R 4       \         P                  P                  ^4      p\        P
                  ! V4      p\        P                  ! V4      p\        P
                  ! VR^4      p\        P                  ! VR^4      p\        V\         P                  ! V4      4       \        V\         P                  ! V4      4       R# r  )	r;   r   r   r   r   r   r   r   r  r  s   &     rB   test_logcdf_default_values1TestMultivariateNormal.test_logcdf_default_valuesO  r  rD   c                   \         P                  P                  R 4       ^p\         P                  P                  V4      p\	        ^V^,           4       Fo  p\         P                  P                  W4      p\         P
                  ! WDP                  4      p\        W%RR7      p\        VP                  P                  V4       Kq  	  R# )r  Trc   N)r;   r   r   r   rangedotr   r   r   r   r   )rY   r   r   expected_rankr   r   distns   &      rB   	test_rank TestMultivariateNormal.test_rank\  s    
		tyyq!"1a!e_M		1A&&CC.C'$GE))..>	 -rD   c           	        \        ^^4       EF  p\        P                  P                  V4      p\        ^V4       EF  p\        P                  P                  W34      p\        P                  ! WDP
                  4      p\        P                  ! W34      pWVRV1RV13&   \        P                  ! V4      pVRV VRV% \        V4      p\        P                  ! V\        P                  ! WhP
                  4      4      p	\        P                  ! W4      p
\        \        P                  ! V4      VRR7      p\        \        P                  ! V4      VRR7      p\        \        P                  ! V4      V	RR7      p\        VP                  P                  V4       \        VP                  P                  V4       \        VP                  P                  V4       VP                  VRV 4      pVP                  V4      pVP                  V
4      p\        W4       \        VV4       VP                  VRV 4      pVP                  V4      pVP                  V
4      p\        VV4       \        VV4       WR,          ,           pVP                  V4      pVP                  V4      p\        VR4       \        V\        P                  ) 4       EK  	  EK  	  R# )rM   NTrc   r   )r.  r   )r  r;   r   r   r  r   r   r   r   r   r   r   r   r   r   r  )rY   r   zkr   cov_kkcov_nnre   r   cov_rrydistn_kkdistn_nndistn_rrpdf_kkpdf_nnpdf_rr	logpdf_kk	logpdf_nn	logpdf_rry_orthpdf_rr_orthlogpdf_rr_orths   &                      rB   test_degenerate_distributions4TestMultivariateNormal.test_degenerate_distributionsg  s.   q!A		"A1a[IIOOA)33 1&)!'rr2A2v HHQK"1"1 /q1266&###67FF1L /rxx{F>BD.rxx{F>BD.rxx{F>BDX0055q9X0055q9X0055q9!ae,!a!a//$OOAbqE2	$OOA.	$OOA.		95	95 uX&ll62!)!8 [#.^bffW5] ! rD   c           	        ^
p\        ^^4       EF,  p\        ^V4       EF  p\        P                  ! V4      p\        V4      RRV13,          p\        P                  ! WUP
                  4      p\        P                  ! WFVR7      p\        P                  ! WtVRR7      p\        VP                  V4       \        P                  ! VR8  4      '       g   Q h\        P                  ! WtVRR7      p	\        V	P                  V4       \        P                  ! V	\        P                  ) 8  4      '       d   EK  Q h	  EK/  	  R# )
   r.  Nr   r   r   T)r   r   rd   r   )r  r;   r   r   r  r   r   r   r   r   r   allr   r  )
rY   r  r   rmnr   vrXr   r   s
   &         rB   test_degenerate_array,TestMultivariateNormal.test_degenerate_array  s     q!A1a[XXa[.q1!RaR%8VVAss^'++!D)--ab=ACSXXq)vvcCi((((,33ABCGIV[[!,vvfw.//// ! rD   c                d   R p^dp^p\         P                  ! W,          4      pW#,           p\         P                  ! WU3\        R7      p\         P                  ! Wd4       ^ Wc) R1V) R13&   \        \        P                  P                  V4      ^ 4       \        \        P                  P                  VRV1RV13,          4      \         P                  4       \        \         P                  P                  VRV1RV13,          4      ^V34       \        V4      p\        VP                  V4       R# )g     @@dtypeN)r;   expr   rR  r  r   r   r   detr  r   slogdetr   r   )rY   large_total_lognposnzerolarge_entryr   r   r   s   &       rB   test_large_pseudo_determinant4TestMultivariateNormal.test_large_pseudo_determinant  s    
 !ff_34LhhvU+
* !FGeVW 	U\\%%c*A.U\\%%c%4%$,&78"&&A		))#eteUdUl*;<O,	. 3io6rD   c                b   \         P                  P                  R 4      p^pVP                  W"4      p\         P                  ! W3P
                  4      pVP                  V4      pVP                  ^^V4      p\        P                  ! WeV4      p\        P                  ! WeV4      p\        ^4       F{  p	\        ^4       Fi  p
\        P                  ! WiV
3,          WT4      p\        WW3,          4       \        P                  ! WiV
3,          WT4      p\        WW3,          RR7       Kk  	  K}  	  R# )r  MbP?rtolN)r;   r   RandomStater   r  r   r   r   r   r  r   )rY   r   r   datar   r   r  desired_pdfdesired_cdfijactuals   &           rB   test_broadcasting(TestMultivariateNormal.test_broadcasting  s    ii##D) yyffT66"yy| IIaA *--as;)--as;qA1X,00a4$DAC(89,00a4$DAC(8tD  rD   c                2   \         P                  ! ^ ^^
4      pRRr2VR,          p\        P                  ! WV4      p\        P                  ! WV4      p\        WV4       \        P                  ! WV4      p\        P                  ! WV4      p\        WV4       R# )r   333333??r  N)r;   rG  r   r   r   r   r   )rY   re   r   r   scaler  r  s   &      rB   test_normal_1D%TestMultivariateNormal.test_normal_1D  sz     KK1b!cSXXau% $$Qc2XXau% $$Qc2rD   c                   \         P                  ! R R.4      p\         P                  ! RR.RR..4      pR
p^V^,
          ,          p\         P                  ! ^ ^V4      p\         P                  ! WU4      w  rg\         P                  ! W3^34      pWhR&   WxR&   \
        P                  ! WV4      p	\        W^ R7      p
\        W^R7      p\        P                  ! WQ^ ,          VR,          R,          R7      p\        P                  ! WQ^,          VR,          R,          R7      p\        WRRR7       \        WRRR7       R	# )r  g      @r  r   333333?r   locr  {Gz?r  atolNi  )r.  r.  r   )r.  r.  rM   r   r   )rM   rM   )
r;   r   rG  meshgridemptyr   r   r1   r   r   )rY   r   r   r   deltar   xvyvposr   margin_xmargin_ygauss_xgauss_ys   &             rB   test_marginalization+TestMultivariateNormal.test_marginalization  s    xxc
#hhS	C9-.QUKK1a Q"hhay!GG!%%c5 ++ ((1q'Tc1AB((1q'Tc1AB4@4@rD   c                   \         P                  P                  R 4       \         P                  P                  ^4      p\         P                  P                  ^4      p\         P                  ! \         P                  P                  ^4      4      p\        W#4      p\        VP                  V4      \
        P                  ! WV4      4       \        VP                  V4      \
        P                  ! WV4      4       \        VP                  V4      \
        P                  ! WV4      4       \        VP                  V4      \
        P                  ! WV4      4       R# r  )r;   r   r   r   r  r   r   r   r   r   r   )rY   re   r   r   norm_frozens   &    rB   test_frozen"TestMultivariateNormal.test_frozen  s    
		tIIOOAyyq!ffRYY__Q'()$4*,?,C,CAS,QR**1-+221C@	B*,?,C,CAS,QR**1-+221C@	BrD   rJ   c                   \         P                  ! R4      p\         P                  ! ^4      p\        W!4      p\         P                  ! VP
                  V4      '       g   Q h\         P                  ! VP                  V4      '       g   Q hR# )rN   NrN   )r;   rS   rT   r   allcloser   r   )rY   rJ   r   cov_should_ber  s   &&   rB   2test_frozen_multivariate_normal_exposes_attributesITestMultivariateNormal.test_frozen_multivariate_normal_exposes_attributes  s`     wwt}q	)$;{{;++T2222{{;??M::::rD   c           
        \         P                  P                  R 4       ^p\         P                  P                  W4      p\         P                  ! W"P
                  4      p\        P                  P                  V4      w  rE\         P                  ! VR4      pRV^ &   RVR&   \         P                  ! V\         P                  ! \         P                  ! V4      VP
                  4      4      pRp\        W6R7      p\        VP                  VR7      p\        VP                  \         P                  ! \         P                   ! VRR 4      4      4       \        VP                  ) VP                  4       R# )r  r  r   Hz>h㈵>)condNr   )r;   r   r   r   r  r   r   r   r   r  rp   r   pinvr   r   r   r  )	rY   r   re   r   r   r   r  r   psd_pinvs	   &        rB   test_pseudodet_pinv*TestMultivariateNormal.test_pseudodet_pinv$  s     			tIIOOA!ffQn||  %GGAsO!"ffQrwwqz133/0 3"t, 	bffRVVAcrF^&<= 	x'8'89rD   c                @    . RO. RO.p\        \        \        V4       R# )rM   NrL   r   ro   r   rz  rQ   r   rY   r   s   & rB   test_exception_nonsquare_cov3TestMultivariateNormal.test_exception_nonsquare_cov>  s    )$j$,rD   c                    ^^ .^ \         P                  ..p\        \        \        V4       ^^ .^ \         P
                  ..p\        \        \        V4       R# )rM   N)r;   nanrz  rQ   r   r  )rY   cov_nancov_infs   &  rB   test_exception_nonfinite_cov3TestMultivariateNormal.test_exception_nonfinite_covB  sF    q6Arvv;'j$0q6Arvv;'j$0rD   c                @    ^^ .^ R..p\        \        \        V4       R# )rM   Nr   r  r	  s   & rB   test_exception_non_psd_cov1TestMultivariateNormal.test_exception_non_psd_covH  s     1v2wj$,rD   c                   \         P                  P                  R 4       \         P                  P                  ^4      p\         P                  P                  ^4      p\         P                  ! R4      p\         P
                  P                  p\        V\        W#4       \        V\        P                  WV4       \        V\        P                  WV4       \        V\        P                  WV4       \        V\        P                  WV4       RR.RR..pRp\        P                  ! \         P
                  P                  VR7      ;_uu_ 4        \        VR7       RRR4       R#   + '       g   i     R# ; i)r  r   r   z0When `allow_singular is False`, the input matrixrH   r   N)ro   ro   )r;   r   r   r   rS   r   LinAlgErrorrz  r   r   r   r   r   rP   r	   )rY   re   r   r   emsgs   &     rB   test_exception_singular_cov2TestMultivariateNormal.test_exception_singular_covL  s    
		tIIOOAyyq!ggfoII!!a,d8a,00!3?a,33QcBa,00!3?a,33QcB Bx"b"@]]29900<<C( =<<<s   E((E9	c                \   \         P                  ! . RO4      p\         P                  ! ^ ^^4      p^V,          ^,
          pV\         P                  ! V4      ,           p\         P                  ! W#V.4      P                  p\         P                  ! . ROR4      p\         P                  ! . R	O. R
O. RO.R4      p\
        P                  ! WVV4      p\        WRR7       \         P                  ! . RO4      p	\
        P                  ! WVV4      p
\        WRR7       \         P                  ! . RO4      p\         P                  ! W#.4      P                  p\         P                  ! ^^.R4      p\         P                  ! ^^.^^..R4      p\
        P                  ! WV4      p\        WRR7       R# )0Q-?r+  绽|=r  gh㈵>r   N)r  gox'V?g[S, t?gDB?gc_.?)rM   rO   rN   rM   rN   r   )rN   ro   r  )r   r  rO   )gwk:E]?g̙Z?g0?gL8?gAG*?)gIى?gG?gƏ)?gėh?gEE?)	r;   r   rG  cosr   r   r   r   r   )rY   r_pdfre   r  r  r  r   r   r   r_cdfr   r_cdf2r2mean2cov2cdf2s   &               rB   test_R_values$TestMultivariateNormal.test_R_values_  sQ     6 7 KK1a EAIq	MHHaAY!!xx	3'hh	:z:C@!%%as3/  6 7 "%%as3.  3 4 XXqf!Q%xx!Q!Q(#."&&r$740rD   c                    \         P                  ! ^4      p\         P                  ! R4      p\        WRR7      pVP                  4       p\	        V^ ^ .4       R# )rN   Trc   NrN   rN   )r;   r   r   r   r   )rY   r   rJ   modelsamples   &    rB   ,test_multivariate_normal_rvs_zero_covarianceCTestMultivariateNormal.test_multivariate_normal_rvs_zero_covariance  sB    xx{XXf%
#DTJVaV$rD   c                   R p^p\         P                  ! \        P                  ! V4      ^VR7      p\	        VP
                  W34       \         P                  ! R\        P                  ! ^R.R^..4      VR7      p\	        VP
                  V^34       \        ^ ^R7      pVP                  V4      p\	        VP
                  V34       R# )i,  r  Nr   r   )r   r   r;   r   r   r=   r   )rY   Nr+  r.  r   s   &    rB   test_rvs_shape%TestMultivariateNormal.test_rvs_shape  s     $((bhhqkqqIV\\A6*$((d-/XX2wQ6H-I./1 	V\\Aq6*QA.qV\\A5)rD   c                   \         P                  P                  R 4      p^pVP                  V4      pVP                  W"4      p\         P                  ! WDP
                  4      pRp\        P                  ! W5WaR7      p\        \         P                  ! VP
                  4      VRR7       \        VP                  ^ 4      VRR7       R# )    r   r   r  N)r;   r   r  r   r  r   r   r   r   r   r   )rY   r   r   r   r   r   r   r.  s   &       rB   test_large_sample(TestMultivariateNormal.test_large_sample  s     ii##D)yy|IIaOffQn$((DKvxx(#D9A48rD   c                   \         P                  P                  R 4      p^pVP                  V4      pVP                  W"4      p\         P                  ! WDP
                  4      p\        W54      p\        VP                  4       \        P                  ! W54      4       \         P                  P                  V4      ^ ,          pRV\         P                  ! ^\         P                  ,          4      ^,           ,          \         P                  ! \         P                  ! V4      4      ,           ,          p\        WP                  4       4       R# )r6  Nr  )r;   r   r  r   r  r   r   r   r   r   eigr  pir   )	rY   r   r   r   r   r   r   eigsdesireds	   &        rB   test_entropy#TestMultivariateNormal.test_entropy  s    ii##D)yy|IIaOffQn + 	BJJL*=*E*Ed*PQ yy}}S!!$1q255y 1A 56t9MMNGZZ\2rD   c                    \         P                  ! . RO4      pRp\        \         P                  ! \	        V4      4      V4       R# )rM   r  NrM   rM   rM   )r;   r   r   r  r   )rY   alphar>  s   &  rB   test_lnBTestMultivariateNormal.test_lnB  s,    #BFF4;/9rD   c                   \         P                  P                  R 4      p^ ^ .p\         P                  ! ^4      pVP                  R4      ^,          ^,
          pVP                  R4      ^,          ^,
          p\        P
                  ! WRW4R7      p\        P
                  ! WRV4      p\        P
                  ! WBV4      p\         P                  ! VR,          VR,          3RR7      p	\         P                  ! VR,          VR,          3RR7      p
\        P
                  ! WV4      p\        P
                  ! WV4      pWx,           V,
          V,
          p\        Wm4       R# )   FYc@Y lower_limitr   N)r   rO   rN   ).:r   rM   N).:rM   rN   Nr   )r;   r   r   rT   r   r   concatenater   )rY   r   r   r   r   r!  cdf1cdf2acdf2bab1ab2cdf2ab1cdf2ab2r(  s   &             rB    test_cdf_with_lower_limit_arrays7TestMultivariateNormal.test_cdf_with_lower_limit_arrays  s
   ii##$781vffQiJJy!!#a'JJy!!#a'"&&qC#''5#''5nnak1X;7bAnnak1X;7bA%))#S9%))#S9}w&0#rD   c           	        \         P                  P                  R 4      pVP                  ^4      pVP                  R4      pW3P                  ,          pVP                  R4      ^,          ^,
          pVP                  R4      ^,          ^,
          p\        P
                  ! WRW4R7      p\	        W#4      P                  WTR7      p\         P                  ! \        P                  ! WRW4R7      4      p\         P                  ! \	        W#4      P                  WTR7      4      p	\        WvRR7       \        WRR7       \        WRR7       R# )rG  rH  -C6?r  NrO   rO   rN   rO   )	r;   r   r   r   r   r   r  r   r   )
rY   r   r   r   r   r!  rK  r(  cdf3cdf4s
   &         rB   %test_cdf_with_lower_limit_consistency<TestMultivariateNormal.test_cdf_with_lower_limit_consistency  s    ii##$78zz!}jj EEkJJvq 1$JJvq 1$"&&qC"4-11!1Cvv)00#MNvv)$4;;A;MN...rD   c                (   \         P                  ! ^4      p\         P                  ! ^4      p. RO. RO. RO. RO.p. RO. RO. RO. RO.p\         P                  ! . RO4      p\        P
                  ! W1W$R7      p\        Wf^ ,          V,          4       R# rO   rH  NrB  r   rM   r   rM   r   rM   r   )rM   r   r   rM   r;   r   rT   r   r   r   r   )rY   r   r   r!  r   expected_signsr   s   &      rB   test_cdf_signs%TestMultivariateNormal.test_cdf_signs  si    xx{ffQi	9i8	9i8.1!%%asBVN23rD   r   c                   \         P                  P                  ^{4      pVP                  W3R7      pVP                  V,          pVP                  VR7      p\        WTR7      pVP                  R^V3R7      pVP                  V4      p\        ^ .V,          VR7      p	\        V	P                  \         P                  ) .V,          Wu,
          4      P                  p
\        WRR7       R# ){   r   r   )r   r  r   gh㈵>r  N)r;   r   r   r   r   r   r   r/   r   r  estimater   )rY   r   r   r   r   mr   re   r   dist_icdf_is   &&         rB   test_cdf_vs_cubature+TestMultivariateNormal.test_cdf_vs_cubature  s     ii##C(KKd\K*ccAgKKTK""3KKBQdWK5hhqk$1#d(<rvvgYt^QU;DD.rD   c                   \        ^^4       Fz  p\        P                  ! W3R4      p\        P                  ! VR4       \	        ^ .V,          VR7      p\        VP                  ^ .V,          4      RRV,           ,          RR7       K|  	  R# )rN   r  r   r  -C6
?r  N)r  r;   r  r  r   r   r   )rY   r   r   r   s   &   rB   test_cdf_known%TestMultivariateNormal.test_cdf_known  so    !RLD''4,,CS"%&s4xS9D!T"b4i 	 !rD   r   l   >[= l	   HVqKWs.!) c                ~   \         P                  P                  V4      p\        P	                  W#R 7      pVP
                  \         P                  ) 8H  P                  4       '       g   Q h\        ^ .V,          VP                  R7      pVP                  VP                  VR7      p\        WdP                  RR7       R# r   r   r   r   rn  r  N)r;   r   r   r   r  r   r  r  r   r  r   r  r   r'  rY   r   r   r   caser   cdf_vals   &&&    rB   test_cdf_vs_univariate-TestMultivariateNormal.test_cdf_vs_univariate+  s     ii##D)..D.BRVVG#((****"DdjjA((499#(.t<rD   c                ~   \         P                  P                  V4      p\        P	                  W#R 7      pVP
                  \         P                  ) 8H  P                  4       '       g   Q h\        ^ .V,          VP                  R7      pVP                  VP                  VR7      p\        WdP                  RR7       R# rr  )r;   r   r   r   r  r   r  r  r   r  r   r  r   r'  ru  s   &&&    rB   test_cdf_vs_univariate_2/TestMultivariateNormal.test_cdf_vs_univariate_26  s     ii##D)+++?RVVG#((****"DdjjA((499#(.t<rD   l	   HVqKWs.!) c                   \         P                  P                  V4      p\        P	                  W#R 7      pVP
                  \         P                  ) 8H  P                  4       '       g   Q h\        ^ .V,          VP                  RRVP                  P                  ^ ,          ,          R7      pVP                  VP                  VR7      p\        WdP                  RR7       R# )rs  T'  )r   r   rd   maxptsrt  r  r  N)r;   r   r   r[  ra  r   r  r  r   r  r=   r   r  r   r'  ru  s   &&&    rB   test_cdf_vs_univariate_singular6TestMultivariateNormal.test_cdf_vs_univariate_singularA  s    
 ii##D)!77T7KRVVG#((****"DdjjQU*01A1A!1D*D
 ((499#(.t<rD   c                   \         P                  ! ^\         P                  ! . RO4      ,          4      p\        P                  ! V4      pRp\
        P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^ ^ .V4       RRR4       \
        P                  ! \        VR7      ;_uu_ 4        \        ^ ^ .V4       RRR4       . ROp\        P                  ! V. ROV4      p\        \        P                  ! WBR7      V4       \        P                  ! V. ROV4      p\        \        P                  ! V^VR7      V4       R#   + '       g   i     L; i  + '       g   i     L; i)	rM   z7`cov` represents a covariance matrix in 3 dimensions...rH   Nr  rL   )r  r  r  r   rB  )r;   rp   r   r*   rR   rP   r	   rQ   r   r   r   r   )rY   Pr   rZ   re   r?   s   &     rB   test_mean_cov$TestMultivariateNormal.test_mean_covQ  s    GGA++, 003
K]]:W55''A
; 6 ]]:W55A
3 6 !%%aJ?(,,Q?E!%%aJ?(,,QzBCH 65 65s   0E6EE	E.	c                    ^^.pRp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! V4       RRR4       R#   + '       g   i     R# ; i)rM   z`x` must be two-dimensional.rH   N)rP   r	   rQ   r   fit)rY   r  	error_msgs   &  rB   test_fit_wrong_fit_data_shape4TestMultivariateNormal.test_fit_wrong_fit_data_shaped  s>    1v2	]]:Y77##D) 8777s   AA	r   c                @   \         P                  P                  R 4      pVP                  ^dV34      p\        P                  ! V4      w  rE\         P
                  ! V^ R7      \         P                  ! VP                  ^ R7      rv\        WFRR7       \        WWRR7       R# )   @,Q| r   )ddofV瞯<r  r  N)	r;   r   r   r   r  r   r   r   r   )rY   r   r   re   mean_estcov_estmean_refcov_refs   &&      rB   test_fit_correctness+TestMultivariateNormal.test_fit_correctnessj  sq    ii##$45JJSz"/33A6GGAA.qss0C'7u5rD   c                    \         P                  ! R^4      pRp\         P                  ! R4      p\        P                  ! WVR7      w  rE\        WB4       \        WS4       R# )rN   r   )fix_meanfix_covN)rN   rM   )r;   r  
atleast_2dr   r  r   )rY   r  
mean_fixed	cov_fixedr   r   s   &     rB   test_fit_both_parameters_fixed5TestMultivariateNormal.test_fit_both_parameters_fixeds  sL    wwvq!
MM"%	'++D4=?	T&S$rD   r  c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  ! ^4      VR7       RRR4       R#   + '       g   i     R# ; i)zd`fix_mean` must be a one-dimensional array the same length as the dimensionality of the vectors `x`.rH   r  NrP   r	   rQ   r   r  r;   rT   )rY   r  r  s   && rB   "test_fit_fix_mean_input_validation9TestMultivariateNormal.test_fit_fix_mean_input_validation|  sB    C]]:S11##BFF1IA 2111   -AA/	r  c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  ! ^4      VR7       RRR4       R#   + '       g   i     R# ; i)zn`fix_cov` must be a two-dimensional square array of same side length as the dimensionality of the vectors `x`.rH   r  Nr  )rY   r  r  s   && rB   +test_fit_fix_cov_input_validation_dimensionBTestMultivariateNormal.test_fit_fix_cov_input_validation_dimension  sC     ]]:S11##BFF1Iw? 2111r  c                   R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RR.RR..4      p\
        P                  ! \        P                  ! ^4      VR7       RRR4       R#   + '       g   i     R# ; i)z2`fix_cov` must be symmetric positive semidefinite.rH   r   r   r  Nr  )rP   r	   rQ   r;   r   r   r  rT   )rY   r  r  s   &  rB   *test_fit_fix_cov_not_positive_semidefiniteATestMultivariateNormal.test_fit_fix_cov_not_positive_semidefinite  sZ    H	]]:Y77hhR2s)45G##BFF1Iw? 8777s   A	A::B	c                   \         P                  P                  R 4      pVP                  ^4      pVP                  R4      p\         P                  ! W3P                  4      p\
        P                  ! W$^dVR7      p\
        P                  ! V4      w  rg\
        P                  ! WVVR7      P                  4       p\
        P                  ! WRR7      w  r\        W4       \
        P                  ! WYV
R7      P                  4       pW8  g   Q hVP                  R4      pR\         P                  ! W3P                  4      ,          pW,           p\
        P                  ! VV	VR7      P                  4       pW8  g   Q hR# )r  r   r   r   r   r   r  :0yE>NrV  )r;   r   r   r  r   r   r   r  r   r   r   )rY   r   r  rv   r   samples	mean_freecov_free	logp_freemean_fixcov_fixlogp_fixrh  cov_perturbedlogp_perturbeds   &              rB   test_fit_fix_mean(TestMultivariateNormal.test_fit_fix_mean  s4   ii##$45jjmJJvffQn%))s#7:<155g>	'..w3;==@SU 	/33GJX#&--g29;;>35 	 ### JJv266!SS>!-44W:B9FH 8;su 	 (((rD   c                   \         P                  P                  R 4      pVP                  ^4      pVP                  R4      p\         P                  ! W3P                  4      p\
        P                  ! W$^dVR7      p\
        P                  ! V4      w  rg\
        P                  ! WVVR7      P                  4       p\
        P                  ! WTR7      w  r\        V	\         P                  ! V^ R7      4       \        W4       \
        P                  ! WYV
R7      P                  4       pW8  g   Q hV	RVP                  ^4      ,          ,           p\
        P                  ! VVV
R7      P                  4       pW8  g   Q hR# )r  r  r   r  r   r  NrV  )r;   r   r   r  r   r   r   r  r   r   r   r   )rY   r   r  rv   r   r  r  r  r  r  r  r  mean_perturbedr  s   &             rB   test_fit_fix_cov'TestMultivariateNormal.test_fit_fix_cov  s6   ii##$45jjmJJvffQn%))s/2F155g>	'..w3;==@SU 	/33GIXrwwwQ78W"&--g29;;>35 	 ### "D3::a=$88-44W:H9@B 8;su 	 (((rD   r   N)rO   ro   r,  rO   r  )rO   rN   )r   r   );r   r   r   r   r|  r  r  r  r  r  r  r  r  r  r  r  r  r  rP   r   r   r;   rT   r+   from_diagonalr  r  r
  r  r  r  r)  r/  r3  r8  r?  rD  rR  rZ  rb  slowrk  ro  r  rx  r{  r  r  r  r  r  r   r  r  r  r  r  r   r   r   s   @rB   rt  rt  
  s    O"6((((	?26h0,70E0 A2B [[FF1I$$aV,	
;;:4-1-)&>1@%*"9"3$:$(/$	4 [[[[VaV,
/ - 
/
 [[VU1b\2[[Vj2T%UV= W 3= [[VU1b\2[[Vj2T%UV= W 3= [[VU1b\2[[Vj2T%UV= W 3=I&* [[UF+6 ,6% [[Z"((6*:*,((5/*; <B<B [[Y%)+&)9)+&)9); <@<@@):) )rD   rt  c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestMatrixNormali  c           
     R   ^p^p\         P                  ! W3R4      pR\         P                  ! V4      ,          \         P                  ! W3R4      ,           pR\         P                  ! V4      ,          \         P                  ! W"3R4      ,           p\        \        \
        \         P                  ! R4      4       \        \        \
        V\         P                  ! ^
4      V4       \        \        \
        W4\         P                  ! ^
4      4       \        \        \
        W4V4       \        \        \
        W5V4       \        \        \
        VP                  WE4       \         P                  P                  p\        V\
        P                  W4\         P                  ! W"34      4       \        V\
        P                  V\         P                  ! W34      V4       \        V\
        W4\         P                  ! W"34      4       \        V\
        V\         P                  ! W34      V4       R# )r   r   r  ffffff?N)ro   r   rO   )r;   r  ry  rz  rQ   r   r   r   r   r  r   rS   )rY   num_rowsnum_colsr   r   Vr  s   &      rB   test_bad_inputTestMatrixNormal.test_bad_input  sm   GGX'-"++h''"''82F*LL"++h''"''82F*LL 	j-'1BCj-BHHRL!Dj-rxx|Dj-q9j-q9j-a;II!!a**BGGX$89	;a**(!56	; 	abggx6J.KLa277H3G+H!LrD   c                   ^p^p\         P                  ! W3R4      pR\         P                  ! V4      ,          \         P                  ! W3R4      ,           pR\         P                  ! V4      ,          \         P                  ! W"3R4      ,           p\         P                  ! W34      p\         P                  ! V^34      p\         P                  ! ^V34      p\         P                  ! V4      p	\         P                  ! V4      p
\         P                  ! ^4      p\	        \
        P                  ! W4VR7      P                  W34       \	        \
        P                  ! VR7      P                  W34       \	        \
        P                  ! VR7      P                  V^34       \	        \
        P                  ! VR7      P                  ^V34       \	        \
        P                  ! W5R7      P                  W34       \	        \
        P                  ! W4R	7      P                  W34       \	        \
        P                  ! WER
7      P                  W34       \	        \        VR7      P                  V	4       \	        \        VR7      P                  V
4       \	        \        VR7      P                  V4       \	        \        VR7      P                  V4       \	        \        VR7      P                  V4       \	        \        VR7      P                  V4       \	        \        W4R	7      P                  V
4       \	        \        W5R7      P                  V	4       \	        \        WER
7      P                  V4       R# )r   r   r  r  r   rowcovcolcov)r   )r  )r  )r   r  )r   r  )r  r  N)r;   r  ry  r   r   r   r   r=   r  r  r   )rY   r  r  r   r   r  ZZrZcIrIcI1s   &           rB   test_default_inputs$TestMatrixNormal.test_default_inputs  ss   GGX'-"++h''"''82F*LL"++h''"''82F*LLHHh)*XXxm$XXq(m$[["[["[[^]&&ABHH)	+]&&A.44)	+]&&a066]	$]&&a066]	$]&&A8>>)	+]&&A8>>)	+]&&a:@@)	+ 	]*1126]*1126]!,1126]!,33R8]!,1126]!,33R8]4;;R@]4;;R@]!6;;Q?rD   c                :   ^p^p\         P                  ! W3R4      p\         P                  ! VR4      pRp\         P                  ! VR4      pRp\         P                  ! V4      p\         P                  ! V4      p	\        \	        W4VR7      P
                  RV,          4       \        \	        W4VR7      P                  RV	,          4       \        \	        W5VR7      P
                  RV,          4       \        \	        W5VR7      P                  RV	,          4       R# )r   r   r   r   r  N)r;   r  ry  r   r   r  r  )
rY   r  r  r   UvUsVvVsr  r  s
   &         rB   test_covariance_expansion*TestMatrixNormal.test_covariance_expansion  s    GGX(#.WWXs#WWXs#[["[["]R@GGV	]R@GGV	]R@GGV	]R@GGV	rD   c           	        \        ^^4       EFb  p\        ^^4       EFM  p\        P                  ! W3R4      pR\        P                  ! V4      ,          \        P                  ! W3R4      ,           pR\        P                  ! V4      ,          \        P                  ! W"3R4      ,           p\	        W4VR7      pVP                  RR7      p\        P
                  ! W4VRR7      p\        Wx4       VP                  RR7      p	VP                  V	4      p
\        P                  ! WWER7      p\        W4       VP                  V	4      p\        P                  ! WWER7      p\        W4       EKP  	  EKe  	  R# )	rM   r   r  r  r  r  r   )r   r  r  r   N)	r  r;   r  ry  r   r   r   r   r   )rY   r  r  r   r   r  frozenrvs1rvs2r  pdf1pdf2logpdf1logpdf2s   &             rB   test_frozen_matrix_normal*TestMatrixNormal.test_frozen_matrix_normal&  s   qA1QZGGQE3'"++a.(277A5#+>>"++a.(277A5#+>>&ABzztz4$((a!6:<T(JJDJ1zz!}$((1GT( --*'..qMW.)   rD   c                   \        ^^4       EF  p\        ^^4       EF  p\        P                  ! W3R4      pR\        P                  ! V4      ,          \        P                  ! W3R4      ,           pR\        P                  ! V4      ,          \        P                  ! W"3R4      ,           p\	        W4VR7      pVP                  RR7      pVP                  V4      pVP                  V4      p	VP                  4       p
VP                  P                  4       pVP                  P                  4       p\        P                  ! WT4      p\        P                  ! WVR7      p\        P                  ! WVR7      p\        P                  ! WR7      p\        WRR	7       \        WRR	7       \        V
V4       EK  	  EK  	  R
# )rM   r   r  r  r  r  r   r   r  r  N)r  r;   r  ry  r   r   r   r   r   r   flattenkronr   r   )rY   r  r  r   r   r  r  r  r  r  entropy1vecXvecMr   r  r  entropy2s   &                rB   test_matches_multivariate*TestMatrixNormal.test_matches_multivariate>  s>    qA1QZGGQE3'"++a.(277A5#+>>"++a.(277A5#+>>&ABJJDJ1zz!} --*!>>+ss{{}ss{{}ggal*..tCH-44T#N.66DJ7u=(3)   rD   c           	     ^   ^p^p\         P                  ! W3R4      pR\         P                  ! V4      ,          \         P                  ! W3R4      ,           pR\         P                  ! V4      ,          \         P                  ! W"3R4      ,           p^
p\        W4VR7      pVP	                  VRR7      pVP	                  VRR7      p	\         P
                  ! V\         P                  RRR3,          V	\         P                  RRR3,          3^ R	7      p
\        V
P                  ^WaV34       VP                  V
4      p\        VP                  ^V34       \        ^4       FJ  p\        V4       F8  p\        P                  ! WV3,          VWER7      p\        WW3,          R
4       K:  	  KL  	  R# )r   r   r  r  r  r  r   i  r.  r   r  N)r;   r  ry  r   r   rJ  r2  r   r=   r   r  r   )rY   r  r  r   r   r  r2  r  X1X2r  array_logpdfr  r  separate_logpdfs   &              rB   test_array_input!TestMatrixNormal.test_array_inputX  s[   GGX'-"++h''"''82F*LL"++h''"''82F*LLA:ZZQTZ2ZZQTZ2NNBrzz!Aa/0BJJq14D1EFQOQWWq!x89}}Q'\''!Q0qA1X"/"6"6q1vA>?#Kac1BEJ  rD   c                   ^p^p\         P                  ! W3R4      pR\         P                  ! V4      ,          \         P                  ! W3R4      ,           pR\         P                  ! V4      ,          \         P                  ! W"3R4      ,           pRp\        W4VR7      pVP	                  VRR7      p\         P
                  ! V^ R7      p	\        WR	R
7       \         P                  ! VP                  Wa,          V4      P                  4      p
\        WR	R
7       \         P                  ! \         P                  ! V^^4      P                  Wb,          V4      P                  4      p\        WR	R
7       R# )r   r   r  r    r  r  r   r   r   r  N)r;   r  ry  r   r   r   r   r   reshaper   swapaxes)rY   r  r  r   r   r  r2  r  r  sample_meansample_colcovsample_rowcovs   &           rB   test_momentsTestMatrixNormal.test_momentso  s   GGX'-"++h''"''82F*LL"++h''"''82F*LLA:JJADJ1ggaQ'S1qyyH=??@s3r{{1Qq19989
8 MMNQPs3rD   c           	     p   \         P                  ! \        P                  ! ^^.^^..4      \        P                  ! ^R
.R
^..4      \        P                  ! ^^.^^
..4      \        P                  P                  ^ 4      ^R7      p\        P                  ! RR.RR..RR.RR...4      p\        W4       R	# )rM   )r   r  r  r   r   g6?gcϿ@g"'@gI2͖@g^jy%@gDn3@g|\3@Nr   gǀ)r   r   r;   r   r   r   r   )rY   r  expecteds   &  rB   test_samplesTestMatrixNormal.test_samples  s     ""Aq6Aq6*+88aWr1g./88aVaW-...q1
 88!23!124!23!1245
 	)rD   r   N)r   r   r   r   r  r  r  r  r  r  r  r   r   r   r   s   @rB   r  r    s6     M4%@N,/044K.4,* *rD   r  c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tRtV tR# )TestDirichleti  c           	     l   \         P                  P                  R 4       \         P                  P                  ^^ 4      p\         P                  P	                  R^dV4      p\        V4      p\        VP                  4       \
        P                  ! V4      4       \        VP                  4       \
        P                  ! V4      4       \        VP                  4       \
        P                  ! V4      4       ^
p\        V4       F  p\         P                  P	                  R^dV4      pV\         P                  ! V4      ,          p\        VP                  VRR 4      \
        P                  ! VRR V4      4       \        VP                  VRR 4      \
        P                  ! VRR V4      4       K  	  R# r6  &.>Nr   )r;   r   r   randintr   r   r   varr   r   r  r   r   r   rY   r   rC  r+  	num_testsr  re   s   &      rB   test_frozen_dirichlet#TestDirichlet.test_frozen_dirichlet  s)   
		tIIa$		!!&#q1eQUUWimmE23QVVXy~~e45QYY[)"3"3E":;	y!A		!!&#q1ANAq"v	afe(DE!CR&)9+;+;AcrFE+JK	 "rD   c                r   \         P                  P                  R 4       \         P                  ! . RO4      p\         P                  P	                  V^R7      p\        VP                  R4       \        \        \        P                  W!4       \        \        \        P                  W!4       \        P                  ! VP                  V4       \        P                  ! VP                  RR V4       \        P                  ! VP                  V4       \        P                  ! VP                  RR V4       R# )r6  r   Nr          @      @)r   rO   r   )r;   r   r   r   r   r   r=   rz  rQ   r   r   r   rY   rC  re   s   &  rB   "test_numpy_rvs_shape_compatibility0TestDirichlet.test_numpy_rvs_shape_compatibility  s    
		t)IIA.QWWf%j)--:j)"2"2A=acc5!acc#2h&e$Sb5)rD   c                H   \         P                  P                  R 4       . ROp\         P                  P                  \         P                  ! RV4      ^R7      P
                  p\        \        \        P                  W!4       \        \        \        P                  W!4       R# )r6  r  r   N)r   r   r  
r;   r   r   r   maximumr   rz  rQ   r   r   r  s   &  rB   test_alpha_with_zeros#TestDirichlet.test_alpha_with_zeros  sc    
		tII

4 7a@BBj)--:j)"2"2A=rD   c                H   \         P                  P                  R 4       . ROp\         P                  P                  \         P                  ! RV4      ^R7      P
                  p\        \        \        P                  W!4       \        \        \        P                  W!4       R# )r6  r  r   N)r   g       r  r  r  s   &  rB    test_alpha_with_negative_entries.TestDirichlet.test_alpha_with_negative_entries  sc    
		t II

4 7a@BBj)--:j)"2"2A=rD   c                   \         P                  ! . RO4      p\         P                  ! . RO4      p\        P                  ! W!4       \        P                  ! W!4       \         P                  ! . RO4      p\        \        P                  ! W!4      ^4       \        \        P                  ! W!4      \         P                  ! ^4      4       R# )r   Nr   r  r        @r   r   r   r  )r   r   r   r   )r;   r   r   r   r   r   r  r  s   &  rB   test_data_with_zeros"TestDirichlet.test_data_with_zeros  sy    -.HH)*a"-.IMM!3Q7I,,Q6q	BrD   c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\        \        \        P
                  W!4       \        \        \        P                  W!4       R# )r   N)r   r  r  r  r  r;   r   rz  rQ   r   r   r   r  s   &  rB   $test_data_with_zeros_and_small_alpha2TestDirichlet.test_data_with_zeros_and_small_alpha  B    -.HH)*j)--:j)"2"2A=rD   c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\        \        \        P
                  W!4       \        \        \        P                  W!4       R# )r   Nr  )r   rn  r   r  r#  r  s   &  rB   test_data_with_negative_entries-TestDirichlet.test_data_with_negative_entries  sB    -.HH*+j)--:j)"2"2A=rD   c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\        \        \        P
                  W!4       \        \        \        P                  W!4       R# )r   Nr  )r   rm  r   r  r#  r  s   &  rB    test_data_with_too_large_entries.TestDirichlet.test_data_with_too_large_entries  r&  rD   c                    \         P                  ! . RO4      p\         P                  ! RR4      p\        \        \
        P                  W!4       \        \        \
        P                  W!4       R# )r   Nr  )rN   r   r   g$I$I?r;   r   r  rz  rQ   r   r   r   r  s   &  rB   test_data_too_deep_c"TestDirichlet.test_data_too_deep_c  sB    )GGIv&j)--:j)"2"2A=rD   c                    \         P                  ! R R.RR..4      p\         P                  ! RR4      p\        \        \
        P                  W!4       \        \        \
        P                  W!4       R# )r   r  r  r  N)rN   rN   r         ?r.  r  s   &  rB   test_alpha_too_deep!TestDirichlet.test_alpha_too_deep  sO    3*sCj12GGIu%j)--:j)"2"2A=rD   c                    \         P                  ! . RO4      p\         P                  ! RR4      p\        P                  ! W!4       \        P
                  ! W!4       R# )r   Nr  rO   r   UUUUUU?)r;   r   r  r   r   r   r  s   &  rB   test_alpha_correct_depth&TestDirichlet.test_alpha_correct_depth  s:    )GGFE"a"rD   c                    \         P                  ! . RO4      p\         P                  ! RR4      p\        \        \
        P                  W!4       \        \        \
        P                  W!4       R# )r   Nr  r6  r  r.  r  s   &  rB   test_non_simplex_data#TestDirichlet.test_non_simplex_data  sB    )GGFE"j)--:j)"2"2A=rD   c                    \         P                  ! . RO4      p\         P                  ! RR4      p\        \        \
        P                  W!4       \        \        \
        P                  W!4       R# )r   Nr  )rN   r   r  r.  r  s   &  rB   test_data_vector_too_short(TestDirichlet.test_data_vector_too_short  C    -.GGFE"j)--:j)"2"2A=rD   c                    \         P                  ! . RO4      p\         P                  ! RR4      p\        \        \
        P                  W!4       \        \        \
        P                  W!4       R# )r   Nr  )ro   r   r   r.  r  s   &  rB   test_data_vector_too_long'TestDirichlet.test_data_vector_too_long  r@  rD   c                   \         P                  ! . RO4      p\        V4      p. ROp. ROp. RO. RO. RO.p\        VP	                  4       V4       \        VP                  4       V4       \        VP                  4       V4       R# )r   N)r   皙?r   r  皙?r   )UUUUUU?{Gz?Q?)rH  )rK  rI  O贁N)rL  rM  rJ  )r;   r   r   r   r   r  r   )rY   rC  r+  expected_meanexpected_varexpected_covs   &     rB   test_mean_var_covTestDirichlet.test_mean_var_cov  sh     (e'-../
 	"!&&(M:!!%%'<8!!%%'<8rD   c                r   \         P                  ! R .4      p\        V4      p\        VP	                  4       P
                  ^ 4       \        VP                  4       P
                  ^ 4       \        VP                  R.4      P
                  ^ 4       \        VP                  R.4      P
                  ^ 4       R# )r   r   N)	r;   r   r   r   r   r   r  r   r   )rY   rC  r+  s   &  rB   r   TestDirichlet.test_scalar_values  sy    #e 	QVVX]]A&QUUW\\1%QUUB4[%%q)QXXrd^((!,rD   c                   \         P                  P                  R 4       \         P                  P                  ^^ 4      p\         P                  P	                  R^dV4      p\        V4      p^
p\        V4       Fn  p\         P                  P	                  R^dV4      pV\         P                  ! V4      ,          p\        VP                  VRR 4      VP                  V4      4       Kp  	  R# r  )
r;   r   r   r  r   r   r  r   r   r   r	  s   &      rB    test_K_and_K_minus_1_calls_equal.TestDirichlet.test_K_and_K_minus_1_calls_equal$  s     			tIIa$		!!&#q1e	y!A		!!&#q1ANAafquuQx8 "rD   c                   \         P                  P                  R 4       \         P                  P                  ^^ 4      p\         P                  P	                  R^dV4      p\        V4      p^
p^pRp\        V4       F  p\        V4       F`  p\         P                  P	                  R^dV4      p	V	\         P                  ! V	4      ,          p	Ve   \         P                  ! Wi34      pK^  T	pKb  	  VP                  VP                  4      p
RpV F2  pVP                  V4      pVe   \         P                  ! W4      pK0  TpK4  	  \        W4       K  	  R# r6  r  N)r;   r   r   r  r   r   r  r   vstackr   r   appendr   )rY   r   rC  r+  r
  num_multiplexmr  rh  re   rmrsxsr  s   &             rB   test_multiple_entry_calls'TestDirichlet.test_multiple_entry_calls3  s   
		tIIa$		!!&#q1e	y!A<(II%%fc15RVVAY>B7+BB ) rttBBEE"I>2)BB  &b-! "rD   c                   \         P                  P                  R 4       \         P                  P                  R^d^4      p\	        V4      p\        V^ ,          V^,          4      p^
p\        V4       Fl  p\         P                  P                  R^d^4      pV\         P                  ! V4      ,          p\        VP                  V4      VP                  V.4      4       Kn  	  \        VP                  4       VP                  4       ^ ,          4       \        VP                  4       VP                  4       ^ ,          4       R# rY  )r;   r   r   r   r   r   r  r   r   r   r   r  )rY   rC  r+  r!  r
  r  re   s   &      rB   test_2D_dirichlet_is_beta'TestDirichlet.test_2D_dirichlet_is_betaP  s    
		t		!!&#q1eq58$	y!A		!!&#q1ANAa!%%*5 "
 	AFFHaffhqk2AEEGQUUWQZ0rD   r   N)r   r   r   r   r  r  r  r  r   r$  r(  r+  r/  r3  r8  r;  r>  rB  rQ  r  rV  ra  rd  r   r   r   s   @rB   r  r    sk     L$
*>>C>>>>>#>>>9$	-9.:1 1rD   r  c                      \         P                  ! R R .4      p \         P                  ! R..4      p\        \        \        W4        \	        W4       R#   \         d/   pRp\        \        T4      R\        T4       T4        Rp?R# Rp?ii ; i)r   r   zDimension mismatchN)r;   r   rz  rQ   r   r   strr   )r{  r  r  r  s       rB   ,test_multivariate_normal_dimensions_mismatchrh  a  ss     
3*	BHHseWE*12=
-B& -"SVISX&,,-s   A B#BBc                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
TestWishartit  c           	        \         P                  ! ^^R7      p^^.\         P                  ! ^4      \         P                  ^,          \         P                  ! ^^R7      .pV FO  p\        ^V4      p\	        VP
                  V4       \	        VP
                  P                  VP                  4       KQ  	  \         P                  ! ^^ .^ ^..4      p^^.\         P                  R,          \         P                  ! ^^ .^ ^..4      .pV FO  p\        ^V4      p\	        VP
                  V4       \	        VP
                  P                  VP                  4       KQ  	  \        \        \        ^\         P                  ! ^4      4       \        R\         P                  ! ^4      4       \         P                  ! ^^R7      p\        \        \        ^V4       R# )rM   ndminrm  NrM   rN   )
r;   r   r_r   r   r  r=   rz  rQ   rT   )rY   
true_scalescalesr  ws   &    rB   test_scale_dimensions!TestWishart.test_scale_dimensionsu  sj    XXaq)
CHHQKEE!HHHQa 
 E5!A*-
(8(89  XX!u !!u& '
 qEEE#JHHqee 
 E5!A*-
(8(89  	j'1bffQi8 	RVVAY !$j'1e4rD   c           
        ^^.\         P                  ! ^4      \         P                  ^,          \         P                  ! ^^R7      \         P                  ! ^.^R7      .p\        ^^4      pVP	                  \         P                  ! ^^R7      4      pV F  p\        VP	                  V4      V4       K   	  . RO\         P                  R,          \         P                  ! . RO^R7      .p\        ^^4      pVP	                  \         P                  ! . RO^R7      4      pV F  p\        VP	                  V4      V4       K   	  ^^^.\         P                  ! ^4      \         P                  R,          \         P                  ! ^^ .^ ^..4      \         P                  ! ^^ .^ ^..4      RR\         P                  3,          .p\        ^\         P                  ! ^4      4      pVP	                  \         P                  ! ^^ .^ ^..4      RR\         P                  3,          4      pV F  p\        VP	                  V4      V4       K   	  R# )rM   rl  r.  NrL   r,  )r;   r   ro  r   r   r   r2  rT   )rY   r  rr  densityre   s   &    rB   test_quantile_dimensions$TestWishart.test_quantile_dimensions  s   
 CHHQKEE!HHHQa HHaS"
 AaL%%!,-Aq7+ 
 EE%LHHWA&
 AaL%%23Aq7+  qEHHQKEE#JHHqee HHqee "**n.	
 AbffQi %%1Q%#$Q%") **+Abjj.: ;Aq7+ rD   c           	     @   ^p\         P                  ! \         P                  ! V4      ^,           4      p\         P                  ! W^,
          ,          ^,          4      V\         P                  ! VRR7      &   \         P                  ! VP
                  V4      p. p\        ^4       F  p\         P                  ! \         P                  ! V4      V^,           ^,          ,           4      p\         P                  ! W^,
          ,          ^,          4      V\         P                  ! VRR7      &   \         P                  ! VP
                  V4      pVP                  V4       K  	  \         P                  ! V4      P
                  p^
^\         P                  ! R^
^4      3^
W#3.pV F  w  rrp\        Wr4      p\        VP                  4       \        P                  ! Wr4      4       \        VP                  4       \        P                  ! Wr4      4       \        VP                  4       \        P                  ! Wr4      4       \        VP                  4       \        P                  ! Wr4      4       \        VP!                  V4      \        P                   ! WWV4      4       K  	  R# r   r  r   Nr   )r;   rp   rx  tril_indicesr  r   r  r[  r   rG  r   r   r  r   moder   r   )	rY   r   r  r  r  re   
parametersdfrr  s	   &        rB   r  TestWishart.test_frozen  s    		#q(),.IIcUmq6H,IboocR()uww& qA		#!ax/0A,.IIcUmq6H,IAboocR()qssAAHHQK	 
 HHQKMM BKKR+,N


 )NR"A'++b"897<<#:;7<<#:;goob&@Aq7;;qe#<= )rD   c                z   ^p^
p\         P                  ! V4      pRVR&   RVR&   \        W#4      p\         P                  P	                  R4      p\        P
                  ! W#VR7      p\         P                  P	                  R4      pVP                  VR7      p\         P                  P	                  R4      pVP                  ^R7      p\         P                  VP                  V4      VP                  V^,
          4      VP                  V^,
          4      3,          R,          p	\         P                  ! V	4      p
W\         P                  ! VR	R7      &   \         P                  P                  V4      pVP                  V
4      p\         P                  ! WP                  4      p\        Wm4       \        W}4       R# )
rO   r  i r   r   r{  Nrv  rM   r   r   )r;   rT   r   r   r  r   r   ro  	chisquarerp   r|  r   r   r  r   r   )rY   r   r  r  rr  r   w_rvsfrozen_w_rvscovariances	variancesrv   DDAmanual_w_rvss   &             rB   test_wishart_2D_rvsTestWishart.test_wishart_2D_rvs  s\    sc
c
 B ii##F+BC8ii##F+uu#u. ii##F+jjaj(EEMM"MM"Q$MM"Q$!
 		 GGI(3"//#
$% IIu%UU1Xvvb$$' 	,3rD   c                   \         P                  P                  R 4      pRp^p\         P                  ! V4      p\         P                  ! ^^
^\
        R7      p\         P                  ! R^
^
R7      pV F  p\        Wt4      p\        V4      p	\        VP                  4       V	P                  4       4       \        VP                  4       V	P                  4       4       \        VP                  4       V	P                  4       4       \        VP                  V4      V	P                  V4      4       VP                  W!R7      p
V3pRp\        RWV
4       K  	  R# )	^   r  r   numr   r  r   N)r;   r   r   rT   rx  rR  rG  r   r   r   r  r   r   r   r   r
   )rY   r   snr   r  df_ranger  r  rr  cr   r@   rC  s   &            rB   test_1D_is_chisquared!TestWishart.test_1D_is_chisquared  s    
 ii##F+s99QAU3KKB2&B"ARA AEEGQUUW-AFFHaffh/AIIK5 AEE!HaeeAh/ %%R%2C5DE"64<! rD   c                   \         P                  P                  R 4      pRp^
p^p\         P                  ! \         P                  ! ^4      ^,           4      p\         P                  ! ^4      V\         P
                  ! ^R
R7      &   \         P                  ! VP                  V4      p\         P                  ! V^34      pVP                  P                  V4      P                  V4      P                  4       p\        W74      p\        W7R7      p	\        VP                  4       V	P                  4       4       \        VP                  4       V	P                  4       4       \        VP                  4       V	P                  4       4       \         P                   ! R^
^
R7      p
\        VP#                  V
4      V	P#                  V
4      4       VP%                  W!R7      pV^ V3pRp\'        RWV4       R	# )r  r  r{  r  r   r  r   r  r   Nr   )r;   r   r   rp   rx  r|  r  r   rS   r   r   r   r   r  r   r   rG  r   r   r
   )rY   r   r  r  r   r  lamdasigma_lamdarr  r  r  r   r@   rC  s   &             rB   test_is_scaled_chisquared%TestWishart.test_is_scaled_chisquared<  s_   
 ii##F+		!Q'*,))A,booa2&'uww&Q ggkk%(,,U3;;=B$' 	)!&&(+		QYY[1 KKB2&a!%%(+ eee.1[!vtC8rD   r   N)r   r   r   r   rs  rw  r  r  r  r  r   r   r   s   @rB   rj  rj  t  s,     )5V/,b>@*4X=>!9 !9rD   rj  c                     a  ] tR tRt o R tR tR t]P                  P                  R^ ^.4      R 4       t
R tR t]P                  P                  R^ ^.4      R	 4       tR
 t]P                  P                  R^ ^.4      R 4       tR t]P                  P                  R^ ^.4      R 4       tR tR tR t]P                  P                  R]P,                  ]P.                  .4      R 4       tRtV tR# )TestMultinomiali_  c                t   \         P                  ! R^R4      p\        VRRR7       \         P                  ! ^^.^ RR.4      pV\        P                  ) 8X  g   Q h\         P                  ! ^ ^ .^ RR.4      pV^ 8X  g   Q h\         P                  ! ^^.^ R	^.4      p\        V\        P
                  RR7       R# )
rO   r   r  r  r  NrO   r   r   r  g&Mtyr   )r   logpmfr   r;   r  r  )rY   vals1vals2vals3vals4s   &    rB   test_logpmfTestMultinomial.test_logpmf`  s    ""5!Z81=""Aq61r2h7""Aq61r2h7zz""Aq61r1g6rvvD1rD   c                    \         P                  ! R^R4      p\        P                  ! ^^R4      p\        WRR7       \         P                  ! R^R	4      p\        P                  ! ^^R4      p\        WRR7       R# )
rO   r   r  r  r   Nr  r  )r      r   r  )r   r  r    r   pmfrY   val1val2s   &  rB   test_reduces_binomial%TestMultinomial.test_reduces_binomialm  sb     !!&!Z8||Aq#&.vr:6yyB$.rD   c                    ^. ROr!RRRRRRRRRRRRRRRRRRRR	/
pV F,  p\        \        P                  ! WAV4      W4,          R
R7       K.  	  R# )rO   g     @?g     ?g      ?g      `?g     ?g      ?g      ?g      ?g      ?+=r  N)g      ?r2  g      ?)r   r   rO   )rM   r   rN   )rN   r   rM   )rO   r   r   rw  rB  rN   rM   r   )r   rN   rM   r   )r   rO   r   )r   r   r  )rY   r   r`  r_valsre   s   &    rB   test_RTestMultinomial.test_Rx  sf     $1[)[[)[[)[[)[[)[	B
 AKOOA!4fieL rD   r   c           	        R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  P                  ^{4      p\        P                  ! VR.^,          ^^{R7      pVP                  VR.^,          ^R7      p\        WE4       RRR4       \         P                  ! \        VR7      ;_uu_ 4        \        P                  P                  ^{4      p\        P                  ! VR.^,          ^^{R7      pVP                  VR.^,          ^R7      p\        WE4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z,Some rows of `p` do not sum to 1.0 within...rH   r   r   Nr2  )	rP   warnsFutureWarningr;   r   r  r   r   r   )rY   r   rZ   rndmsc_rvsnp_rvss   &&    rB   test_rvs_npTestMultinomial.test_rvs_np  s     A\\-w7799((-D __QqqsKF%%a$%:F(	 8
 \\-w7799((-D __QqqsKF%%a$%:F(	 87 87
 877s   A)D/<A)E/D?	E	c                &   \         P                  ! R	^R
4      p\        V^RR7       \         P                  ! R^R4      p\        VRRR7       \         P                  ! ^^.^ ^..R^	.^^...^R4      p\        VRR.^ ^ ..RR7       \        P                  ! R\        P
                  R7      p\         P                  ! V^R4      p\        V\        P                  ! . \        P
                  R7      4       \         P                  ! ^^.^R4      p\        V^ RR7       \         P                  ! . RO^. RO4      p\        VRRR7       \         P                  ! . RO^ . RO4      pV^8X  g   Q h\         P                  ! . RO^ . RO4      pV^ 8X  g   Q hR# )ro   r  r  g5
?g*7?g<Wƌ?r  gߦ?N)ro   rM   r  r  r   r  r   rN   rO   rO   r   )gUUUUUU?r7  r   r   r  )r   r  r   r;   r  float64r   )	rY   vals0r  r  re   r  r  vals5vals6s	   &        rB   test_pmfTestMultinomial.test_pmf  sJ   a.qt,q(31=1Q%1"a1a&0A BA (*I 6A?dKHHU"**-1h/UBHHRrzz:;1q(3qt,	1.?@~D9	1.?@zz	1.?@zzrD   c                   \         P                  ! ^^.^RR.RR..4      p\        VRR.RR7       \         P                  ! ^^.^^.RR.4      p\        VR^ .RR7       \         P                  ! ^^.^^...^RR.4      p\        VR^ ..RR7       \         P                  ! ^^.^.^...RR.4      p\        VR.^ ...RR7       \         P                  ! ^^.^^..^....RR.4      p\        VR^ ....RR7       R	# )
rM   r   r  r   rE  gv?g~jt?r  r  N)r   r  r   )rY   r  r  r  r  r  s   &     rB   test_pmf_broadcasting%TestMultinomial.test_pmf_broadcasting  s   ARHr2h+?@d|$7AAR9ayt41a&1a&!1 2ABx@q	{6A1#sr2h?$!T:!Q!AQC5'RHE4)T:rD   c                r   \         P                  ! VR4      pVR ,          R,          V) R ,          R,          V) R ,          R,          .V) R,          R ,          VR,          R,          V) R,          R,          .V) R,          R ,          V) R,          R,          VR,          R,          ..p\        W#RR7       R# )	r   r   r  rE  r  r  r  N)r   r   r  r   r   r   )rY   r   cov1r'  s   &&  rB   test_covTestMultinomial.test_cov  s    q,/2b1"R%(QBrE"H-Br1R47QBrE"H-BrA2b58QrT"W-/ 	.rD   c                b   \         P                  ! ^RR.RR..4      pRR.RR..RR.RR...p\        WRR7       \         P                  ! ^^.RR.4      pRR.RR..RR.RR...p\        W4RR7       \         P                  ! ^^.R	R
.RR..4      pRR.RR..RR.RR...p\        WVRR7       R# )ro   r   r  r   rE  g?r  r  g
ףp=
?r   r  rG  r  Ngܿgg
ףp=
׿r  gzG?g333333gzGr  rY   r  r'  cov3cov4cov5cov6s   &      rB   test_cov_broadcasting%TestMultinomial.test_cov_broadcasting  s    qB8b"X"67tdC[)RIRy+AB.1vBx0ttSk*c4[4+,FG.1vR2r(';<8$x&9:8$x&9:<.rD   c                ~    \         P                  ! VR R.4      p\        V\        P                  ! VR 4      RR7       R# r   rE  r  r  Nr   r   r   r    )rY   r   ent0s   && rB   r?  TestMultinomial.test_entropy  s1     ""1r2h/emmAr2>rD   c           	     t   \         P                  ! ^^.RR.4      p\        V\        P                  ! ^R4      \        P                  ! ^R4      .RR7       \         P                  ! ^^.RR.RR..4      p\        V\        P                  ! ^R4      \        P                  ! ^R4      .RR7       \         P                  ! ^.^..RR.RR..4      p\        V\        P                  ! ^R4      \        P                  ! ^R4      .\        P                  ! ^R4      \        P                  ! ^R4      ..RR7       R	# )
rN   r   rE  r  r  r   r  rG  r  Nr  )rY   r  ent1ent2s   &   rB   test_entropy_broadcasting)TestMultinomial.test_entropy_broadcasting  s   ""Aq6B84u}}Q3U]]1b5IJ!	# ""Aq6RHr2h+?@u}}Q3U]]1b5IJ!	# ""QC!:R2r(/CD--2.a0DE--2.a0DEG!	#rD   c                r    \         P                  ! VR R.4      p\        W!R ,          VR,          .RR7       R# r  r   r   r   )rY   r   mean1s   && rB   	test_meanTestMultinomial.test_mean  s.      RH-"ad|$7rD   c                d    \         P                  ! ^^.RR.4      p\        VRR.RR	..RR7       R# )
ro   r   rE  r  r  Nr   r  g433333?g433333@r  )rY   r  s   & rB   test_mean_broadcasting&TestMultinomial.test_mean_broadcasting  s5      !Q"b2ttTl;$GrD   c                   \         P                  P                  R 4       ^pRp. RO. RO. RO. RO. RO.p\         P                  ! V\         P                  R7      p\        W4      p\        VP                  V4      \
        P                  ! W1V4      4       \        VP                  V4      \
        P                  ! W1V4      4       \        VP                  4       \
        P                  ! W4      4       R# )	r  r  N)r   r   r   rG  r   r   r      r   r   rM      r   rM   rM   r  rM   rM   rM   	   rM   rM   rN   r  )
r;   r   r   r<   r  r   r   r  r  r   )rY   r   pvalsre   	mn_frozens   &    rB   r  TestMultinomial.test_frozen  s    
		t 
:i	BJJq

+)		a(+//!*FG	((+[-?-?e-LM	))+[-@-@-JKrD   c                D   ^Xp\         P                  P                  R4      pVP                  V4      pRVR&   V\         P                  ! V4      ,          p\         P                  ! V4      p\
        P                  ! WAV4      p\         P                  ! V4      '       g   Q hR# )X   l   iRZY gKH9Nr   )r;   r   r   r   rS   r   r  isfinite)rY   r   r   r`  re   r  s   &     rB   test_gh_11860TestMultinomial.test_gh_11860  sy    
 ii##$78JJqM"	RVVAYGGAJ##A!,{{6""""rD   r  c                    ^p\         P                  ! . ROVR7      p\        P                  ! . ROW#R7      p\        P                  ! . ROW#R7      p\         P                  P                  WERR7       R# )	   r  )re   r   r`  r  r  N)r   r   r   r   r   )rM   rN   ro   r   r   )rM   rN   r   ro   r   )r;   r<   r   r  testingr   )rY   r  r   r`  res1res2s   &&    rB   test_gh_22565TestMultinomial.test_gh_22565  sQ     JJ0>A;A;


""4E":rD   r   N)r   r   r   r   r  r  r  rP   r   r   r  r  r  r  r  r?  r  r  r  r  r  r;   float32r  r  r   r   r   s   @rB   r  r  _  s    2	/M" [[S1a&)) *)6;  [[S1a&)/ *// [[S1a&)? *?# [[S1a&)8 *8H
L# [[Wrzz2::&>?; @;rD   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestInvwisharti  c           	        ^p\         P                  ! \         P                  ! V4      ^,           4      p\         P                  ! W^,
          ,          ^,          4      V\         P                  ! VRR7      &   \         P                  ! VP
                  V4      p. p\        ^4       F  p\         P                  ! \         P                  ! V4      V^,           ^,          ,           4      p\         P                  ! W^,
          ,          ^,          4      V\         P                  ! VRR7      &   \         P                  ! VP
                  V4      pVP                  V4       K  	  \         P                  ! V4      P
                  p^
^\         P                  ! R^
^4      3^
W#3.pV F  w  rrp\        Wr4      p\        VP                  4       \        P                  ! Wr4      4       \        VP                  4       \        P                  ! Wr4      4       \        VP                  4       \        P                  ! Wr4      4       \        VP!                  V4      \        P                   ! WWV4      4       K  	  R# rz  )r;   rp   rx  r|  r  r   r  r[  r   rG  r   r   r  r   r}  r   r   )	rY   r   r  r  r  re   r~  r  iws	   &        rB   r  TestInvwishart.test_frozen  s   
 		#q(),.IIcq5k!m,DboocR()uww& qA		#!ax/0A,.IIcq5k!m,DAboocR()qssAAHHQK	 
 HHQKMM BKKR+,N


 )NRB&B:>>"#<=JOOB$>?JOOB$>?BFF1Iz~~aU'CD )rD   c                   \         P                  P                  R 4      pRp^p\         P                  ! V4      p\         P                  ! ^^^\
        R7      p\         P                  ! R^
^
R7      pV F  p\        Wt4      p\        V^,          R
R7      p	\        VP                  4       V	P                  4       4       \        VP                  4       V	P                  4       4       \        VP                  V4      V	P                  V4      4       VP                  W!R7      p
V^,          ^ R
3pRp\        RWV
4       \        VP                  4       V	P                  4       4       K  	  R	# )r  r  r  r   r  r  r   r  r   Nr  )r;   r   r  rT   rx  rR  rG  r   r   r   r  r   r   r   r
   r   )rY   r   r  r   r  r  r  r  r  igr   r@   rC  s   &            rB   test_1D_is_invgamma"TestInvwishart.test_1D_is_invgamma>  s   
 ii##F+s99QAU3KKB2&BB&B"Q$d+B BFFHbffh/BGGIrwwy1 BFF1Irvvay1 &&b&3CqD!T?DE":tC@ BJJL"**,7% rD   c                   ^p^
p\         P                  ! V4      pRVR&   RVR&   \        W#4      p\         P                  P	                  R4      p\        P
                  ! W#VR7      p\         P                  P	                  R4      pVP                  VR7      p\         P                  P	                  R4      pVP                  ^R7      p\         P                  VP                  V^,
          4      VP                  V^,
          4      VP                  V4      3,          R,          p	\         P                  ! V	4      p
W\         P                  ! VR	R7      &   \         P                  P                  V4      p\         P                  P                  V
P                  VP                  4      P                  p\         P                  ! WP                  4      p\!        Wm4       \!        W}4       R# )
rO   r  iHG	 r   r   r{  Nrv  r  r   )r;   rT   r   r   r  r   r   ro  r  rp   r|  r   r   solver   r  r   )rY   r   r  r  r  r   iw_rvsfrozen_iw_rvsr  r  rv   r  Lmanual_iw_rvss   &             rB   test_invwishart_2D_rvs%TestInvwishart.test_invwishart_2D_rvs_  sp    sc
c
 " ii##F+<ii##F+C0 ii##F+jjaj(EEMM"Q$MM"Q$MM"
 		 GGI(3"//#
$% IIu%IIOOACC%''q## 	.5rD   c                   ^
pRpR
 EFi  p\         P                  ! \         P                  ! V4      ^,           4      p\         P                  ! W3^,
          ,          ^,          4      V\         P                  ! VRR7      &   \         P                  ! VP
                  V4      p\        W4      pVP                  4       pVP                  4       pWr,          R,          pVP                  VRR7      p	V	P                  ^ R7      p
W3^,           ,          ^,          pRV,          p\        P                  ! ^V^,          ,
          4      p\         P                  ! W,
          V,          ^ VR7      '       d   EKj  Q h	  R	# )z1Test that sample mean consistent with known mean. N  r{  r  r  r   r   r  r  NrM   ro   r   )r;   rp   rx  r|  r  r   r   r   r  r   r   ppfr  )rY   r  sample_sizer   r  r   	Xmean_expXvar_exp	Xmean_stdr  	Xmean_estntests	fail_ratemax_diffs   &             rB   test_sample_meanTestInvwishart.test_sample_mean  s    CGGBIIcNQ./E02		#q/A:M0NE"//#,-FF577E*Eb(D		IxxzH!/#5Ik=AAI']A%FvIxxIM 12H;;&)3   ! rD   c                   \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! . RO. RO. R	O. R
O.4      p^p\        P                  ! WV4      pVP                  ^ ,          p\         P
                  P                  V4      w  rg\         P
                  P                  V4      w  rh\         P
                  P                  W4      p	V^,          V,          W5,          ^,          \         P                  ! ^4      ,          ,
          \        V^,          V4      ,
          W5,           ^,           ^,          V,          ,
          RV	P                  4       ,          ,
          p
\        WJ4       R# )zRegression test for gh-8844.r  N)rN   rM   r   r  )rM   rN   r  r  )r   r  rO   rM   )r  r  rM   rN   )r  r   rO   rM   )r   r  ro   rM   )rO   ro   r  rN   )rM   rM   rN   r  )r;   r   r   r   r=   r   r  r  r  r5   tracer   )rY   r  Psinuprobr`  siglogdetX	logdetPsir   r  s   &          rB   test_logpdf_4x4TestInvwishart.test_logpdf_4x4  s   HHn&$&( ) hh$$$& '   ,GGAJyy((+**3/IIOOA#T9$tAvrvvay()"2a4+, vz1nW,- !'')m	$
 	'rD   r   N)r   r   r   r   r  r  r  r"  r,  r   r   r   s   @rB   r  r    s'     E@8B,6\6( (rD   r  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )TestSpecialOrthoGroupi  c                    \         P                  ! ^\        P                  P	                  R4      R7      p\        P
                  ! . RO. RO. RO.4      p\        W4       R# )rO     r   N)gDbgMPFh?g,׿)g7?g++?guC))g?gg]Qg^ɿ)r   r   r;   r   r   r   r   )rY   re   r  s   &  rB   test_reproducibility*TestSpecialOrthoGroup.test_reproducibility  sK    ##ABII4I4I#4NO88CBCE F 	"!.rD   c                    \        \        \        P                  R 4       \        \        \        P                  R4       \        \        \        P                  R4       \        \        \        P                  R4       R # Nr  r,  r   )rz  rQ   r   r   rY   s   &rB   test_invalid_dim&TestSpecialOrthoGroup.test_invalid_dim  sN    j"5"9"94@j"5"9"96Bj"5"9"92>j"5"9"93?rD   c                    ^p\        V4      pVP                  RR7      p\         P                  ! VRR7      p\        W44       R# )r   r  r   N)r   r   r   )rY   r   r  r  r  s   &    rB   test_frozen_matrix(TestSpecialOrthoGroup.test_frozen_matrix  s;    $S)zztz,"&&s>T rD   c                   \        ^^4       UUu. uF+  p\        ^4       F  p\        P                  ! V4      NK  	  K-  	  pppV Uu. uF"  p\        P                  P                  V4      NK$  	  pp\        VR.^,          RR7       V FR  p\        \        P                  ! WDP                  4      \        P                  ! VP                  ^ ,          4      4       KT  	  R# u uppi u upi )rN   r   vIh%<=r  N)r  r   r   r;   r   r  r   r   r  r   rT   r=   )rY   r   r  r`  re   detss   &     rB   test_det_and_ortho(TestSpecialOrthoGroup.test_det_and_ortho  s    q!$#Qx! "%%c* +$ 	 !
 +--"Q		a "-rd2gE2 A%bffQn&(ffQWWQZ&8: !
 .s   1C"(C(c                   ^pRpRp\         P                  ! W\        P                  P	                  R4      R7      pRpV UUUu/ uF/  w  rgWg3\        V Uu. uF  qV,          V,          NK  	  up4      bK1  	  p	pppV U
Uu. uF  q F  qV8  g   K  W3NK  	  K  	  pp
pV UUu. uF$  w  r\        W,          W,          4      ^,          NK&  	  ppp\        V.\        V4      ,          V4       R# u upi u upppi u upp
i u uppi )ro   r  皙?i  r   Nr  r  )rM   r   rW  )	r   r   r;   r   r   sortedr   r   r   )rY   r   r  ks_probr`  elserecre   proje0e1pairsp0p1ks_testss   &               rB   	test_haarTestSpecialOrthoGroup.test_haar  s      $$BII,A,A#,F
 +HKLfb&R!8RB%))R!899L$'ACb#Bb"#CADIJEHTXtx033EJ7)CJ.9 "9LAJs*   C7C2.C7C>C>&*D2C7c                N    \        \        P                  ! ^RR7      ^RR7       R# )rM   r  r   r=  r  N)r   r   r   r6  s   &rB   test_one_by_one%TestSpecialOrthoGroup.test_one_by_one	  s     	+//=quMrD   c                ^    \        \        P                  ! ^ ^R7      P                  R4       R# r   r   N)r   r   r   r   r   r   r=   r6  s   &rB   test_zero_by_zero'TestSpecialOrthoGroup.test_zero_by_zero	       (,,QQ7==yIrD   r   N)r   r   r   r   r2  r7  r:  r?  rP  rS  rX  r   r   r   s   @rB   r/  r/    s1     /@!::8N
J JrD   r/  c                      a  ] tR tRt o R tR tR tR t]P                  P                  R. RO4      R 4       tR tR	 tR
 t]P                  P                  R 4       tRtV tR# )TestOrthoGroupi	  c                d   R p\         P                  P                  V4      p\        P                  ! ^VR7      p\        P                  ! ^VR7      p\        \         P                  P                  V4      R4       \         P                  ! . RO. RO. RO.4      p\        W54       \        WE4       R# )r1  r   Nr   )gm?gӠh"gEo?)g~7ݲC?g>Ŀg0J_ٿ)gݱ&ǿg 6qrg`X|[)
r;   r   r  r   r   r   r   r  r   r   )rY   r   r   re   r   r  s   &     rB   r2  #TestOrthoGroup.test_reproducibility	  s    ii##D)OOAC0__QT2BIIMM!,b188<==? @ 	"!.!"/rD   c                    \        \        \        P                  R 4       \        \        \        P                  R4       \        \        \        P                  R4       \        \        \        P                  R4       R # r5  )rz  rQ   r   r   r6  s   &rB   r7  TestOrthoGroup.test_invalid_dim	  sB    j+//48j+//6:j+//26j+//37rD   c                    ^p\        V4      p\        VRR7      pVP                  RR7      p\         P                  ! VRR7      pVP                  ^R7      p\        WE4       \        WF4       R# )r   r  r   r   r   N)r   r   r   rY   r   r  frozen_seedr  r  rvs3s   &      rB   r:  !TestOrthoGroup.test_frozen_matrix	  s]    S!!#D1zztz,s6A&T T rD   c                   \        ^^4       UUu. uF2  p\        ^
4       Uu. uF  p\        P                  ! V4      NK  	  upNK4  	  ppp\        P                  ! V UUu. uF1  qD Uu. uF"  p\        P
                  P                  V4      NK$  	  upNK3  	  upp4      p\        \        P                  ! V4      \        P                  ! VP                  4      RR7       V F[  pV FR  p\        \        P                  ! WUP                  4      \        P                  ! VP                  ^ ,          4      4       KT  	  K]  	  R# u upi u uppi u upi u uppi )rN   r=  r  N)r  r   r   r;   r   r   r  r   fabsrS   r=   r   r  r   rT   )rY   r   r  r`  xxre   r>  s   &      rB   r?  !TestOrthoGroup.test_det_and_ortho+	  s     q&$# b	#!1 s#!#$ 	 &
 xx"E"BB7Bq"))--*B7"EFrwwtzz':G B)"&&CC.*,&&*<>  # &
 8Es.   EEE E
((EE
EE
r   c                   \         P                  P                  R 4      p\        VR7      pVP	                  RVR7      p\
        P                  P                  V4      p\         P                  ! V^ 8  4      p\        V4      p\        P                  ! Wg4      pVP                  RR7      w  rV	Ru;8  d	   V
8  g   Q h Q hR# )l   <`Lr )r   r7  r   ffffff?confidence_levelr  N)r;   r   r   r   r   r   r   r  r   r   r-   	binomtestproportion_ci)rY   r   r   r   r   r>  r  r   r>   r   r  s   &&         rB   test_det_distribution_gh18272,TestOrthoGroup.test_det_distribution_gh18272:	  s     ii##$78s#hhDsh3||$FF4!8Iooa#%%t%<	S4rD   c                   ^pRpRp\         P                  P                  R4      p\        P                  ! WVR7      pRpV UUU	u/ uF/  w  rxWx3\        V U	u. uF  qV,          V,          NK  	  up	4      bK1  	  p
ppp	V UUu. uF  q F  qV8  g   K  W3NK  	  K  	  pppV UUu. uF$  w  r\        W,          W,          4      ^,          NK&  	  ppp\        V.\        V4      ,          V4       R# u up	i u up	ppi u uppi u uppi )ro   r  rB  i  r   NrC  )	r;   r   r  r   r   rD  r   r   r   )rY   r   r  rE  r   r`  rF  rG  rH  re   rI  rJ  rK  rL  rM  rN  rO  s   &                rB   rP  TestOrthoGroup.test_haarG	  s     ii##C(__SSA +HKLfb&R!8RB%))R!899L$'ACb#Bb"#CADIJEHTXtx033EJ7)CJ.9 "9LAJs*   C9C40C9D D (*D4C9c                ~   ^p\         P                  ! VR\        P                  P	                  R4      R7      p\        \        P                  ! V4      ^RR7       \        P                  ! V^ 8  4      p\        V4      p\        P                  ! W44      pVP                  RR7      w  rgVRu;8  d	   V8  g   Q h Q hR	# )
rM   r7  r1  r   r=  r  rk  rl  r  N)r   r   r;   r   r   r   r  r   r   r-   rn  ro  )rY   r   r`  r  r   r>   r   r  s   &       rB   rS  TestOrthoGroup.test_one_by_oneb	  s    __St")):O:OPS:TUr
AE2FF26NGooa#%%t%<	S4rD   c                ^    \        \        P                  ! ^ ^R7      P                  R4       R# rV  rW  r6  s   &rB   rX   TestOrthoGroup.test_zero_by_zerom	  rZ  rD   c                N  aa \         P                  P                  R 4      oRV3R llp\        ^^4       Fk  oRVV3R llpV! V4      pV! \        P
                  P                  P                  4      p\        P
                  P                  W44      w  rV\        RV4       Km  	  R# )r1  Nc                    < \         P                  P                  SP                  W 3R 7      4      w  r#p\         P                  ! W$4      # r   )r;   r   r   r   r  )r   r   r   _sr   r   s   &&   rB   random_ortho<TestOrthoGroup.test_pairwise_distances.<locals>.random_orthou	  s4    yy}}SZZcZZ%@AHA166!<rD   c                 :  < \         P                  ! \        V4       Uu. uF7  p\         P                  ! V ! SSR 7      V ! SSR 7      ,
          ^,          4      NK9  	  up4      pV\         P                  P                  V) W$P                  R7      ,          pV# u upi ))r   r   r   )r;   r   r  r   r   r   r=   )r   r2  epsr   r-   r   r   s   &&&  rB   generate_test_statisticsHTestOrthoGroup.test_pairwise_distances.<locals>.generate_test_statisticsz	  s     #1X" & FFCCc:Cc:;=>? @%"  **C4;;*GG"s   =BrB  r:   )r  r  )
r;   r   r  r  r   r-   r   r   r   r   )	rY   r{  r  r  r  _Dr`  r   r   s	   &      @@rB   test_pairwise_distances&TestOrthoGroup.test_pairwise_distancesp	  s     ii##C(	  A;C  0=H-ekk.E.E.I.IJFKK((:EBc1%! rD   r   N)rN   ro   r     )r   r   r   r   r2  r7  r:  r?  rP   r   r   rp  rP  rS  rX  r  r  r   r   r   s   @rB   r\  r\  	  sl     08
!> [[UN3
  4
 :6	 J [[& &rD   r\  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestRandomCorrelationi	  c                   \         P                  P                  R 4      pRp\        P                  ! W!R7      p\        P                  ! VR R7      p\         P
                  ! . RO. RO. RO. RO.4      p\        W54       \        WE4       R# )r1  r   Nr  rE  r  r  )r   ѓ2ǿA?Ϳ)r  r   4($?R}%?)r  r  r   qTnƿ)r  r  r  r   )r;   r   r  r   r   r   r   )rY   r   r=  re   r   r  s   &     rB   r2  *TestRandomCorrelation.test_reproducibility	  sp    ii##C(!""4:##Ds;88A@@AC D 	"!.!"/rD   c                   \        \        \        P                  R 4       \        \        \        P                  R4       \        \        \        P                  R4       \        \        \        P                  R.4       \        \        \        P                  ^^.^^..4       \        \        \        P                  RR.4       \        \        \        P                  . RO4       R # )Ntestr  g      )rM   rN   r   )rz  rQ   r   r   r6  s   &rB   test_invalid_eigs'TestRandomCorrelation.test_invalid_eigs	  s    j"4"8"8$?j"4"8"8&Aj"4"8"8#>j"4"8"83%@j"4"8"8Aa5!A-Hj"4"8"83*Ej"4"8"8*ErD   c                    Rp\        V4      p\        VRR7      p\         P                  ! VRR7      pVP                  RR7      pVP                  4       p\        WE4       \        WF4       R# )r  r1  r   r   Nr  )r   r   r   )rY   r=  r  rc  r  r  rd  s   &      rB   r:  (TestRandomCorrelation.test_frozen_matrix	  s[    !#D)(C8!%%d=zzsz+ T T rD   c           
     R   R  p\         P                  P                  ^{4      p\        ^^4       Uu. uF  q1! W2P	                  VR7      4      NK  	  ppVP                  . RO4       V Uu. uF  pR.\        V4      ,          NK  	  ppV Uu. uF  p\        P                  ! WRR7      NK  	  ppV Uu. uF6  p\         P                  ! \         P                  P                  V4      4      NK8  	  p	pV Uu. uF  p\         P                  ! V4      NK  	  p
p\        WRRR7       V Uu. uF  p\         P                  ! V4      NK  	  pp\        W4       F  w  r\        WRR7       K  	  V F  p\        WP                   RR7       K  	  R# u upi u upi u upi u upi u upi u upi )	c                 2    W,          \        V4      ,          # r:   )r   )r  r  s   &&rB   r   3TestRandomCorrelation.test_definition.<locals>.norm	  s    3s1v:rD   r   r   r   r=  r  r  N)r   r   r   r   )r;   r   r  r  r   r[  r   r   r   rg  r   r  r/  r   rp   zipr   )rY   r   r   r  r=  r  rS   r`  re   r>  
dets_knowndiagsr   r!  s   &             rB   test_definition%TestRandomCorrelation.test_definition	  sU   	 ii##C(6;AqkBkQ+,kBI%)*TSVT*CGH4a $$Q94H 4662a		a()26*./$Qbggaj$
/u5A &((RR($DAAu- % AAss/ ) C +H 7/ )s#    F*F F2<F4F'F$c           
        \         P                  ! R ^ .^ ^..\        R7      p\        P                  ! V4      p\        V\         P                  ! ^^ .^ R ..4      4       \         P                  ! RR7      ;_uu_ 4        \         P                  ! ^ ^.R^ ..4      p\         P                  ! R^ .^ \         P                  ! ^^ 4      ..\        R7      p\        P                  ! VP                  4       4      p\        WP                  P                  V4      P                  V4      4       \         P                  ! RR.RR..\        R7      p\        P                  ! VP                  4       4      p\        WP                  P                  V4      P                  V4      4       RRR4       \         P                  ! ^^.^^..\        R7      p\        P                  ! VP                  4       4      p\        VR	,          ^4       \         P                  ! R
^.^^..\        R7      p\        P                  ! VP                  4       4      p\        VR	,          ^4       R#   + '       g   i     L; i)r   r  ignore)overgu <7~r  rm  Nr   r  gMk   @)r;   r   rR  r   _to_corrr   errstate	nextaftercopyr   r  )rY   rh  gm0s   &   rB   test_to_corr"TestRandomCorrelation.test_to_corr	  s    HHsAhA'u5''*288aVaX$678
 [[h''1a&2q'*+AE1:2<<1+='>?uMB"++BGGI6AAsswwr{q12C<%6eDB"++BGGI6AAsswwr{q12 ( XX1v1v&e4''	2#" XX!}q!f-U;''	2#"' ('s   >D$II.	r   N)r   r   r   r   r2  r  r:  r  r  r   r   r   s   @rB   r  r  	  s%     
0F
!"0H# #rD   r  c                   @  a  ] tR tRt o ]P
                  P                  R^^.4      ]P
                  P                  R. R
O4      R 4       4       t]P
                  P                  R. RO4      R 4       tR t	]P
                  P                  R. RO4      R 4       t
R	tV tR# )TestUniformDirectioni	  r   r   Nc                   \         P                  P                  R 4      p\        WR7      pVP	                  V4      p\         P
                  ! V4      \         P                  ! V4      rvVP                  WgVR7      P                  pVP                  V8X  g   Q h\         P                  P                  VRR7      p	\        V	R4       R#    Sid)_i4 r   r   r   r   Nr   )r;   r   r   r&   r   r   rT   r   r=   r   r   r   )
rY   r   r   r   uniform_direction_distr  r   r   expected_shapenormss
   &&&       rB   r   !TestUniformDirection.test_samples	  s     ii##$78!23!A(,,T2HHSM266#;c000FLL}}...		wR0r"rD   c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! V4       RRR4       R#   + '       g   i     R# ; i)zMDimension of vector must be specified, and must be an integer greater than 0.rH   N)rP   r	   rQ   r&   r   )rY   r   rZ   s   && rB   r7  %TestUniformDirection.test_invalid_dim
  s7    <]]:W55!!#& 6555s   AA	c                    ^p\        V4      p\        VRR7      pVP                  RR7      p\         P                  ! VRR7      pVP                  4       p\        WE4       \        WF4       R# )ro   r1  r   r   N)r&   r   r   rb  s   &      rB   test_frozen_distribution-TestUniformDirection.test_frozen_distribution
  s[    "3''#6zzsz+ $$Ss; T T rD   c                b   \         P                  P                  R 4      p\        WR7      pVP	                  ^R7      w  rEWTV,          V,          ,          pV\         P
                  P                  V4      ,          p\        WE,          ^ RR7       VP	                  RR7      pWd,          pWe,          p\         P                  ! Wx4      p	V	\         P                  ,          p	V	^\         P                  ,          ,          p	\        4       p
\        WP                  4      pVP                  R8  g   Q hR# )l   @9Y sr   r   r  r  r~  rB  N)r;   r   r   r&   r   r   r   r   arctan2r<  r   r   r   pvalue)rY   r   r   spherical_distv1v2r  s1s2anglesuniform_distkstest_results   &&          rB   test_uniform!TestUniformDirection.test_uniform
  s    ii##$78*39###+
2gl
biinnR  / $$%$0\\B# 	"%%!BEE'yv'7'78##d***rD   r   NrM   ro   )ro   r   )Nr   r,  r  )rN   ro   r  )r   r   r   r   rP   r   r   r   r7  r  r  r   r   r   s   @rB   r  r  	  s     [[UQF+[[V%9:	# ; ,	# [[U$:;' <'
! [[UI.+ /+rD   r  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
TestUnitaryGroupi,
  c                   \         P                  P                  R 4      p\        P                  ! ^VR7      p\        P                  ! ^R R7      p\         P
                  ! . RO. RO. RO.4      p\        W$4       \        W44       R# )r1  r   N)y~p?yZ?y뉦?ĭ?y8Z?&4?)yEHξr?8i?ye??+ݓݿyu=ٿB۽'?)yqXQÿ?yN6ҿzܷy! 8l?2W'?)r;   r   r  r   r   r   r   )rY   r   re   r   r  s   &    rB   r2  %TestUnitaryGroup.test_reproducibility-
  si    ii##C(ac2qs388IHKM
 	"!.!"/rD   c                    \        \        \        P                  R 4       \        \        \        P                  R4       \        \        \        P                  R4       \        \        \        P                  R4       R # r5  )rz  rQ   r   r   r6  s   &rB   r7  !TestUnitaryGroup.test_invalid_dim;
  sJ    j-"3"3T:j-"3"3V<j-"3"3R8j-"3"3S9rD   c                    ^p\        V4      p\        VRR7      pVP                  RR7      p\         P                  ! VRR7      pVP                  ^R7      p\        WE4       \        WF4       R# )r   r1  r   r   r   N)r   r   r   rb  s   &      rB   r:  #TestUnitaryGroup.test_frozen_matrixA
  s_    s##Cc2zzsz+  37A&T T rD   c                h   \        ^^4       UUu. uF+  p\        ^4       F  p\        P                  ! V4      NK  	  K-  	  pppV Fb  p\        \        P
                  ! WDP                  4       P                  4      \        P                  ! VP                  ^ ,          4      RR7       Kd  	  R# u uppi )rN   r  r  N)
r  r   r   r   r;   r  conjr   rT   r=   )rY   r   r  r`  re   s   &    rB   test_unitarityTestUnitaryGroup.test_unitarityM
  s    q!$#Qx! $ %$ 	 !
 ABFF1ffhjj1266!''!*3EER !s   1B.c           	     D   R EF  pRp\         P                  ! W\        P                  P	                  R4      R7      p\        P
                  ! V Uu. uF"  p\        P                  P                  V4      NK$  	  up4      p\        P                  ! VP                  VP                  4      p\        VP                  4       \        \        P                  ) ^\        P                  ,          4      P                   4      p\#        VP$                  R8  4       EK  	  R# u upi )rM   r  r1  r   rB  Nr  )r   r   r;   r   r   rZ  r   r   eigvalsr  imagrf  r   ravelr   r<  r   r   r  )rY   r   r  r`  re   r=  r>   s   &      rB   rP  TestUnitaryGroup.test_haarV
  s    
 CG""		0E0Ec0JB 99rBr!ell2215rBCD

499dii0AGRUUFAbeeG$<$@$@ACCJJ%&  Cs   (D
c                ^    \        \        P                  ! ^ ^R7      P                  R4       R# rV  )r   r   r   r=   r6  s   &rB   rX  "TestUnitaryGroup.test_zero_by_zeroi
  s    ]&&qq177CrD   r   N)r   r   r   r   r2  r7  r:  r  rP  rX  r   r   r   s   @rB   r  r  ,
  s+     0:
!S'&D DrD   r  c                     a  ] tR tRt o ^^.^^.^^.^^.^^.^^.^^.^^.^^.^^..
^ ^ .^^ .^ ^..^. R4O3. R5O. R6O. R7O. R8O. R9O.. R;O. R<O. R=O. R>O.^. R?O3.t]P                  P                  R]4      R 4       t]P                  P                  R]4      R 4       t	R t
R t]P                  P                  ]! R	4      R
 4       4       tR tR tR@RAR^^ .^ ^..R^ ^ .^^ .^ ^..^3R^^ .^ ^..^^ ^ .^^ .^ ^..^3^^.RR^^.^^ .^ ^..^3^^.R^^^.^^ .^ ^..^3^^.^^ .^ ^..R^^.^^ .^ ^..^3^^.^^ .^ ^..^^^.^^ .^ ^..^3.t]P                  P                  R]4      R 4       tR:^^R:.^..^3R:.^.^R:.^..^3]P(                  ! R:.4      ]P(                  ! ^.4      ^R:.^..^3.t]P                  P                  R]4      R 4       tR tR tR t]P                  P                  RRBRC.4      ]P                  P                  R. RDO4      ]P                  P                  RRR]P4                  .4      R 4       4       4       tR t]P                  P                  R. REO4      R 4       t]P                  P                  R. RFO4      R 4       tRGR ltR t ]P                  P                  R. RHO4      ]P                  P                  R. RIO4      ]P                  P                  R RR!.4      R" 4       4       4       t!]P                  PD                  R# 4       t#R$ t$R% t%R& t&]P                  P                  RRJ4      R' 4       t'R( t(]P                  P                  R. RKO4      R) 4       t)]P                  P                  R*^
]PT                  ! ^^4      R+R,3^d]P(                  ! R^.^^
..4      R-R.3.4      R/ 4       t+]P                  P                  R0. RLO4      R1 4       t,R2 t-R3t.V t/R# )MTestMultivariateTim
  r   r  zx, loc, shape, df, ansc                Z    \        W#V^ R7      pVP                  V4      p\        Wu4       R# r   r   N)r"   r   r   )rY   re   r  r=   r  ansr   vals   &&&&&&  rB   test_pdf_correctness&TestMultivariateT.test_pdf_correctness
  s%    c"15hhqk!#+rD   c                    \        W#V^ R7      pVP                  V4      pVP                  V4      p\        \        P
                  ! V4      V4       R# r  )r"   r   r   r   r;   r  )	rY   re   r  r=   r  r  r   r  r  s	   &&&&&&   rB   test_logpdf_correct%TestMultivariateT.test_logpdf_correct
  s<    c"15xx{{{1~!"&&,5rD   c                    . ROp\         P                  ! V^R7      p\        P                  ! V4      p\        W#4       R# )r  r  N)
r  r   r   rM   rf  r  r   rf  r   rO   )r"   r   r#   r   )rY   re   r  r  s   &   rB   test_mvt_with_df_one_is_cauchy0TestMultivariateT.test_mvt_with_df_one_is_cauchy
  s.    -  q)jjm!#+rD   c                   R p\        ^ ^R^R7      pVP                  RR7      p\        V4      w  rEWQ8  g   Q h\        R^.^
R.R^
..R^*R7      pVP                  RR7      p\        V4      w  rEWQ8  P                  4       '       g   Q hR# )r   順 r  r   r   Nr   r   )r"   r   r$   r  )rY   	P_VAL_MINr   r  r   r`  s   &     rB   &test_mvt_with_high_df_is_approx_normal8TestMultivariateT.test_mvt_with_high_df_is_approx_normal
  s    
 	avA6(((''"r1gR2r(';#%'(((''"##%%&%rD   z'scipy.stats.multivariate_normal._logpdfc                T   \        ^ ^\        P                  ^R7      p\        V\        4      '       g   Q h\         P
                  ! ^ \        P                  R7       VP                  ^8X  g   Q h\         P                  ! ^ \        P                  R7       VP                  ^8X  g   Q hR# )r   r  r  N)r"   r;   r  r   r   r   
call_countr   )rY   mockr   s   && rB   !test_mvt_with_inf_df_calls_normal3TestMultivariateT.test_mvt_with_inf_df_calls_normal
  sx     arvvA6$ :;;;;1(!###aBFF+!###rD   c                   ^p\         P                  ! V4      p\         P                  ! V4      pRp\         P                  ! V4      p\        W#V4      P	                  V4      p\         P
                  ! V4      '       g   Q h\        W#V4      P                  V4      p\         P
                  ! V4      '       g   Q h^p\         P                  P                  Wq34      p\        W#V4      P	                  V4      pVP                  V38X  g   Q h\        W#V4      P                  V4      pVP                  V38X  g   Q h\        \         P                  ! ^4      \         P                  ! ^4      ^4      P                  4       p\         P
                  ! V4      '       g   Q h^p\        \         P                  ! ^4      \         P                  ! ^4      ^4      P                  VR7      pVP                  V38X  g   Q hR# )r         @r   N)
r;   r   rT   r"   r   isscalarr   r   r=   r   )	rY   r   r  r=   r  re   r>   	n_samplesr   s	   &        rB   test_shape_correctness(TestMultivariateT.test_shape_correctness
  s    hhsmsHHSMS,003{{3S,33A6{{3 	IIi-.S,003		i\)*)S,33A6		i\)*) RXXa["&&)Q7;;={{3 RXXa["&&)Q7;;;F		dW$%$rD   c                    \        4       p\        VP                  ^ .4       \        VP                  ^..4       VP                  ^8X  g   Q hR# r   Nr"   r   r  r=   r  )rY   r   s   & rB   test_default_arguments(TestMultivariateT.test_default_arguments  s<    TXXs#TZZ1#'1rD   Nz*loc, shape, df, loc_ans, shape_ans, df_ansc                    \        WVR 7      p\        VP                  V4       \        VP                  V4       VP                  V8X  g   Q hR# )r  r=   r  Nr  rY   r  r=   r  loc_ans	shape_ansdf_ansr   s   &&&&&&& rB   test_default_args#TestMultivariateT.test_default_args  s>     #r:TXXw'TZZ+6!"!rD   c                    \        WV4      p\        VP                  V4       \        VP                  V4       \        VP                  V4       R # r:   r  r  s   &&&&&&& rB   &test_scalar_list_and_ndarray_arguments8TestMultivariateT.test_scalar_list_and_ndarray_arguments%  s:     c"-TXXw'TZZ+TWWf%rD   c           
        ^^..p\        \        \        3/ \        VR7      B  ^^.^^.^^..p\        \        \        3/ \        WR7      B  \        P
                  ! ^4      p\        P                  ! ^4      pRp\        \        \        3/ \        WVR7      B  ^ p\        \        \        3/ \        WVR7      B  R# )rM   )r  )r  r=   r  Nr   )rz  rQ   r"   r$  r;   r   rT   )rY   r  r=   r  s   &   rB   test_argument_error_handling.TestMultivariateT.test_argument_error_handling.  s    1vhj$	'	'
 Q!Q!Q(j$	42	4
 hhqkq	j$	;b9	; j$	;b9	;rD   c                *   \         P                  P                  ^4      pVP                  ^R7      p\         P                  ! ^4      p\        W#^^R7      p\        W#^^R7      pVP                  ^
R7      pVP                  ^
R7      p\        Wg4       R# )r   r   r  N)r;   r   r  r   rT   r"   r   r   )rY   r   r  r=   r   dist2samples1samples2s   &       rB   r2  &TestMultivariateT.test_reproducibilityG  sw    ii##A&kkqk!q	saa8saa899"9%99"9%X(rD   c                    \        ^ ^ .^ ^ .^ ^..^RR7      p\        \        P                  P                  \
        3/ VB  R# )r   F)r  r=   r  rd   N)r$  rz  r;   r   r  r"   )rY   r@   s   & rB   test_allow_singular%TestMultivariateT.test_allow_singularQ  s;    1qeQqE]qObii++^DtDrD   r   r   r  r  c                    \        \        P                  ! V4      \        P                  ! V4      V4      pVP	                  VR 7      pVP
                  W3,           8X  g   Q hR# )r   N)r"   r;   r   rT   r   r=   )rY   r   r   r  r   r   s   &&&&  rB   test_rvsTestMultivariateT.test_rvsV  sH     bhhsmRVVC["=hhDh!yyD7N***rD   c                .   \         P                  ! ^4      p\         P                  ! ^4      p^
p. RO. RO. RO. RO.p. RO. RO. RO. RO.p\         P                  ! . RO4      p\        P
                  ! WAW#VR7      p\        Ww^ ,          V,          4       R# r]  r`  )rY   r   r   r  r!  r   ra  r   s   &       rB   rb   TestMultivariateT.test_cdf_signs^  sp    xx{ffQi	9i8	9i8.1!%%asAFVN23rD   c                (    V P                  V4       R # r:   cdf_against_mvn_testrY   r   s   &&rB   $test_cdf_against_multivariate_normal6TestMultivariateT.test_cdf_against_multivariate_normalj  s     	!!#&rD   c                *    V P                  ^R4       R# )rO   TNr  r  s   &&rB   -test_cdf_against_multivariate_normal_singular?TestMultivariateT.test_cdf_against_multivariate_normal_singularo  s     	!!!T*rD   Fc           
     Z   \         P                  P                  R 4      p^p^
VP                  R	^VR7      ,          p\	        WW24      p^
VP                  R
^VR7      ,          \         P
                  ! VP                  VR7      4      ,          p^
VP                  R
^WA3R7      ,          ) V,           p^
VP                  R
^WA3R7      ,          V,           p	\        P                  P                  WVRVRVR7      p
\        P                  P                  WVRVR7      p\        WRR7       R# )   ]J>?a r   r~  T)r  rI  rd   r   )rd   rI  Mb@?r  Nr   r   )r;   r   r   r   r   signr   r-   r"   r   r   r   )rY   r   r   r   r   rr  r   r   r   r!  r>   r?   s   &&&         rB   r  &TestMultivariateT.cdf_against_mvn_testt  s   ii##O4B,, 73;;r13;//"''#**#*:N2OOR!222T9B11D8""&&q16: ' N''++AS89 , ;t,rD   c           	     d   \         P                  P                  R 4      p^p^ pVP                  ^
\         P                  ! V4      R7      p^p\
        P                  P                  WCW%\         P                  ) VR7      p\
        P                  P                  WEV\         P                  ! V4      4      p\
        P                  P                  WC\         P                  ! V4      4      p\        WgRR7       \         P                  ! \         P                  ! Wh,
          4      R8  4      '       g   Q hR# )r"  )r   r  )rI  r   r#  r  r  N)r;   r   r   r   r  r-   r"   r   r  r3  r   r   r  r  )	rY   r   r   r   re   r  r>   r?   	incorrects	   &        rB   test_cdf_against_univariate_t/TestMultivariateT.test_cdf_against_univariate_t  s    ii##O4JJBbggclJ3""&&qbffW47 ' 9ggkk!rwws|4JJNN1BGGCL9	t,vvbffS_-45555rD   r   r   Tc           
        V'       d   VR 8w  d   \         P                  ! R4       \        P                  P	                  V4      p^
VP                  R^VR7      ,          p\        WWC4      pVP                  V4      pVP                  V4      ) pVP                  V4      p	VP                  4       ^,          p
\        P                  P                  WWjVRR7      p\        P                  ! RR7      ;_uu_ 4        \        RW\        P                  V,          W,
          V4      ^ ,          pRRR4       \        VXR	R
R7       \        P                  P                  WWjVVRR7      p\        P                  ! RR7      ;_uu_ 4        \        RWW,
          W,
          V4      ^ ,          pRRR4       \        WRR
R7       R#   + '       g   i     L; i  + '       g   i     L3; i)   no z4Agreement with qsimvtv is not great in singular caser   T)r   rd   r  )invalidr  Ng-C6*?r  r  r  )rI  r   rd   rU  r   )rP   r   r;   r   r   r   r   r-   r"   r   r  r7   r  r   )rY   r   r   r   r   rr  r   r   r   r!  r  r>   r?   s   &&&&         rB   test_cdf_against_qsimvtv*TestMultivariateT.test_cdf_against_qsimvtv  sm   
 
*KKNOii##D)B,, 7zz#ZZ_JJsOZZ\A ""&&qc6: ' <[[**5"266!8QXsCAFC +St$7 ""&&qQ47 ' N[[**5"18QXsCAFC +t$7 +* +*s   92G #G G	G#	c           
       a	a
a ^p\         P                  P                  R4      p^
VP                  R^VR7      ,          p\	        WVRR7      o	VP                  V4      oVP                  V4      ) pVP                  V4      pVP                  4       ^,          o
\
        P                  P                  VSS	S
VVR7      pV	V
V3R lp\        WtV\
        P                  P                  WR7      R7      p\        WhP                  R	R
7       V	V
V3R lp\        Wt^ ,          V^ ,          V^,          V^,          V^,          V^,          4      p\        Wh^ ,          R	R
7       R# )rO   l   	!y r   T)r   )r   rI  c                 \   < \         P                  P                  V P                  SSS4      # r:   )r-   r"   r   r   )re   r   r  r   s   &rB   	integrandITestMultivariateT.test_cdf_against_generic_integrators.<locals>.integrand  s$    ''++ACCsB??rD   )r+  r   )qrngr  r  c                  \   < \         P                  P                  V R R R1,          SSS4      # )Nr   )r-   r"   r   )zyxr   r  r   s   *rB   r2  r3    s(    ''++C"ItS"EErD   Nr   )r;   r   r   r   r   r-   r"   r   r2   qmcHaltonr   integralr4   )rY   r   r   rr  r   r!  r>   r2  r?   r   r  r   s   &        @@@rB   $test_cdf_against_generic_integrators6TestMultivariateT.test_cdf_against_generic_integrators  s    ii##N3#++b!#+.. t<zz#ZZ_JJsOZZ\A""&&q$Rc34 ' 6	@ yQUYY-=-=-=-NO\\5	F i1qtQqT1Q41qtDV$/rD   c                    \         P                  P                  R 4      p\         P                  ! . RO. R	O. R
O.4      pRp\        P
                  ! W#R7      pVP                  . ROVR7      pRp\        WVRR7       R# )l   Ja gWK?r=   r  r   g1%?r  r  N)go!@S<?^Ss@)r>  gRP=@jT0@)r?  r@  gk`-3@r   )r;   r   r   r   r-   r"   r   r   )rY   r   r   r  r   r>   r?   s   &      rB   test_against_matlab%TestMultivariateT.test_against_matlab  sn     ii##J/hh???A B  ###5hhysh3t,rD   c                    R p\         P                  P                  V4      pVP                  ^R7      pVP                  ^R7      V,           p\         P                  ! ^4      pVP                  4       pW5V3p\         P                  P                  V4      p\         P                  P                  V4      p	\
        P                  ! VRV/ p
\        V
P                  V4      \        P                  ! V.VO5RV	/ 4       R# )l   2m r   r   r   N)	r;   r   r   r   rT   r-   r"   r   r   )rY   r   r   r  re   r=   r  r@   
rng_frozenrng_unfrozenr   s   &          rB   r  TestMultivariateT.test_frozen  s    ii##D)kkqk!KKQK#%q	ZZ\BYY**40
yy,,T2##T;
;TXXa[#''LDL|L	NrD   c                  aa	a
a ^pR	p\         P                  P                  R4      oSP                  W3R7      pW3P                  ,          oSP                  V4      o
SP                  W!3,           4      pSP                  4       ^,          o	\        P
                  P                  VS
SS	SR7      pVV	V
V3R lp\         P                  ! VR
V4      p\        WWRRR7       R# )r   r"  r   r   c                 l   < \        R SS\        P                  ) V ,          V S,
          S4      ^ ,          # )r~  )r7   r;   r  )re   r   r  r   r   s   &rB   _cdf_1d2TestMultivariateT.test_vectorized.<locals>._cdf_1d  s+    E2sRVVGAIqvsCAFFrD   rU  r  r-  NrW  r   )	r;   r   r   r   r-   r"   r   apply_along_axisr   )rY   r   r   rv   re   r>   rI  r?   r   r  r   r   s   &       @@@@rB   test_vectorized!TestMultivariateT.test_vectorized  s    ii##O4JJSJJ'##gzz#JJq6z"ZZ\A""&&q$Rc&J	G 	G !!'2q1t$7rD   c                L   \         P                  P                  R 4      p\        P                  P                  ^.R.V^,
          ,          ,           R7      p\        P                  ! VR7      P                  ^ .V,          VR7      p^V^,           ,          p\        WERR7       R# )r"  r  )r  )r=   r   rn  r  N)
r;   r   r   r   r   toeplitzr-   r"   r   r   )rY   r   r   rv   r>   r?   s   &&    rB   test_against_analytical)TestMultivariateT.test_against_analytical  s|    ii##O4LL!!QC3%37*;$;!<""+//c	/L37mt,rD   c                    \         P                  ! ^^4      p\         P                  p\        P                  P                  WR7      p\        P                  P                  RV4      pW48X  g   Q hR# )rO   r=  N)r;   rT   r  r-   r"   r   r   )rY   r   r  mvt_entropymvn_entropys   &    rB   test_entropy_inf_df%TestMultivariateT.test_entropy_inf_df  sW    ffQlVV**222D//77cB)))rD   c                    \         P                  P                  R VR7      p\         P                  P                  VR7      p\	        W#RR7       R# )r   r=  r  r=  r  N)r-   r"   r   r3  r   )rY   r  rS  	t_entropys   &&  rB   test_entropy_1d!TestMultivariateT.test_entropy_1d  s;    **222CGGOOrO*	U;rD   zdf, cov, ref, tolg}M@r  gNfh@r  c                    \         P                  ! R4      p\        P                  ! WRV4      p\	        VP                  4       W4R7       R# )rN   r  Nr  )r;   r   r-   r"   r   r   )rY   r  r   r?   tolr  mvts   &&&&&  rB   %test_entropy_vs_numerical_integration7TestMultivariateT.test_entropy_vs_numerical_integration"  s3    
 hhuo""3R0s5rD   zdf, dim, ref, tolc                    \         P                  ! \        P                  ! V4      VR 7      p\	        VP                  4       W4R7       R# )r=  r  N)r-   r"   r;   rT   r   r   )rY   r  r   r?   r\  r]  s   &&&&& rB   test_extreme_entropy&TestMultivariateT.test_extreme_entropy+  s/    F ""<s5rD   c                   \         P                  ! . R
O. RO. RO. RO. RO.4      pWP                  ,          pRp\        P                  P                  W#R7      p\        RVR7      P                  4       p\        WERR7       RpRp\        P                  P                  W&R7      p\        P                  P                  W'R7      p	\        WR	R7       R# )Q?@xDr=  Nr  r  r  i  i   r   )rd  g
ףp=
?g\(\߿(\?gGz?)gGzg{GzgQ?rG  gQ)gQ?g)\(?gQѿg)\(ܿg(\?)g      gGzgq=
ףpg\(\?g)rf  g{Gzg\(\?g{GzԿg(\?)r;   r   r   r-   r"   r   r   r   )
rY   _Ar   r  mul_t_entropymul_norm_entropydf1df2	_entropy1	_entropy2s
   &         rB   test_entropy_with_covariance.TestMultivariateT.test_entropy_with_covarianceQ  s     XX+-,,,
  44i ,,4434F.t=EEGeD ((00s0C	((00s0C		48rD   r   )
|	ߌ?v
2R?rp  g0$H?rq  rq  gO`?gՒXO?g	ߌ,?g8N8?)gHP?gQI?go_?)g9m4?g=U?gˡE?)g$C?ghs?gǺ?)g!uq?g%C?gS㥛?)gOec?gz,C?g	h"l?r   )r   rM   2   )r   r  r2  )r  r   rn  )r2  rn  r   )gJ#R<g^<gL[<gN=<g`$<)NNNr   rM   rM   )NNr   r   rM   r   )r  rO   )ro   r   r   rO   )rN   rO   r   ro   )rM   rN   ro   )rO   r   r  F)rN   rO   ro   r  )r+  l   m, l   sO l   U iOfYl   O_ r6  )rM   r  d   ))r  rM   gDdVW?r  )rt  rM   gU?r=  )r  rM   g/+?r  )re  rM   Z_2?r  )}Ô%ITrM   ru  r  )r  r  gzg#.@r  )r  r  gD:f,@r=  )re  r  1>`,@r  )rv  r  rw  r  )r  rt  g8d?b@r  )r  rt  g-YҺa@r  )re  rt  ZGra@r  )rv  rt  rx  r  )0r   r   r   r   	PDF_TESTSrP   r   r   r  r  r  r  thread_unsafer8   r  r  r  DEFAULT_ARGS_TESTSr  r;   r   ARGS_SHAPES_TESTSr  r	  r2  r  r  r  rb  r  r  r  r(  r.  r  r:  rA  r  rL  rP  rU  rY  rT   r^  ra  rn  r   r   r   s   @rB   r  r  m
  so     FFFFFFFFFF	
 
A FF	

 	
	
1%P %$$$$	
 	 %%%	
 	
	
)K@ID [[5yA, B,
 [[5yA6 B6,'$ [[
45$ 6 $&@ 	$ 	AA1vAA/?C	AAQFaVaV,<a@
QtaVq!fq!f%5q9
Qq1a&Aq6Aq6"2A6
Q1a&1a&!4!Q1a&1a&1A1E
Q1a&1a&!1q!f1v1v.>B	 [[I/1#1# 
QB41#"
sAtqcUA&	2$1#B41#: [[I.0&0&;2)E
 [[Vg|%<=[[UL1[[TBBFF#34+ 5 2 >+

4 [[UI.' /' [[UI.+ /+-$6 [[UM2[[V &J K[[Z%78 8K 382 [[0 04-"N8$ [[UF+- ,-* [[T<0< 1<& [[0!266!Q<1CUK"BHHsAhB-@$A/7896	96
 [[	
$6%$6(9 9rD   r  c                     a  ] tR tRt o ]P
                  P                  R^^.^^
.^R!3^^.^^
.^ ]P                  ) 3R"^.^^
.^]P                  ) 3^^.R#^
.^]P                  3^^.^^..R$R%.R#R&..^^.]P                  ]P                  .3R"^.R#^
.^]P                  3^^.^
^.^]P                  3^^.^
R'.^]P                  3^^.^^
.R(]P                  3^^.^^
.^]P                  ) 3.
4      R 4       t
R tR tR t]P
                  P                  R. R)O^3. R*O^ 3^ ^ .^ 3^ .^ 334      R 4       t]P
                  P                  R^.^.^^3^^.^^
.^R	3^^.^ ^..R'^	.^^...^^
.^^.^^..R
R.^ R..3]P                  ! . ]R7      ]P                  ! . ]R7      ^ . 3^^.^^.^^ 3. R+O. R,O^R3.4      R 4       t]P
                  P                  R^^.^^
.^
^..^R	R.3^.^..^.^..^^.RR.3^.^...^.^..^^.RR..3^.^..^....^^.RR...3.4      R 4       tR tR tR tR tR tR tR tR tR tR tR tRtV tR # )-TestMultivariateHypergeomip  zx, m, n, expectedc                N    \         P                  ! WV4      p\        WTR R7       R# )ư>r  N)r   r  r   rY   re   rh  r   r  valss   &&&&& rB   r  %TestMultivariateHypergeom.test_logpmfq  s     6 &,,Q15T2rD   c                   \         P                  ! ^^.^
^.^R7      p\        P                  ! ^^^^
R7      p\        WRR7       \         P                  ! ^^.^^
.^
R7      p\        P                  ! ^^^
^R7      p\        WRR7       R# )rO   )re   rh  r   )r  r   r   r2  r  r  N)r   r  r!   r   r  s   &  rB   test_reduces_hypergeom0TestMultivariateHypergeom.test_reduces_hypergeom  sx     &))QFr1gC}}qB!r2.%))QFr2h"E}}qB"3.rD   c                    \        ^^.^R7      pVP                  R^{R7      p\        VP                  ^ 4      VP                  4       RR7       R# )rO   rh  r   r  r   r  r  Nr   r   r   r   rY   r   r   s   &  rB   r  "TestMultivariateHypergeom.test_rvs  s@     $q!f2ff$Sf1RWWYT:rD   c                    \        ^^.^^
..^^	.R7      pVP                  R^{R7      p\        VP                  ^ 4      VP                  4       RR7       R# )rO   r  r   r  r  Nr  rN   r  r  s   &  rB   test_rvs_broadcasting/TestMultivariateHypergeom.test_rvs_broadcasting  sK    #1v2w&7Aq6Bff)#f6RWWYT:rD   zm, nc                    \         P                  ! W4      p\        P                  ! V4      pVP	                  4       pW$V^ 8g  &   \        W44       R# r  )r   r   r;   r<   r  r   )rY   rh  r   r>   res_exs   &&&  rB   test_rvs_gh16171*TestMultivariateHypergeom.test_rvs_gh16171  s?    
 %((.JJqMqAvS!rD   g zl?gQ?gE|?g
y?r  gzp?c                N    \         P                  ! WV4      p\        WTR R7       R# r  r  Nr   r  r   r  s   &&&&& rB   r  "TestMultivariateHypergeom.test_pmf  s     " &))!2T2rD   g ?r   r   c                N    \         P                  ! WV4      p\        WTR R7       R# r  r  r  s   &&&&& rB   r  /TestMultivariateHypergeom.test_pmf_broadcasting  s      &))!2T2rD   c                j    \         P                  ! . RO^R7      p. RO. RO. RO.p\        WRR7       R# )	rO   r  r  r  N)rO   r   r  )gf_?&BUп疈Cx@ؿ)r  ggs>d?ZsK)r  r  g35?r   r   r   )rY   r  r'  s   &  rB   r  "TestMultivariateHypergeom.test_cov  s0    %))J"=6668 	.rD   c                X   \         P                  ! ^^	.^
^..^^.R7      pRR	.R	R..RR
.R
R...p\        WRR7       \         P                  ! ^.^..^^.R7      pR..R...p\        W4RR7       \         P                  ! ^^	.^^.R7      pRR	.R	R..RR.RR...p\        WVRR7       R# )r   r  g?g(\?r  r  r   g333333?Ngg(\g333333r  r  s   &      rB   r  /TestMultivariateHypergeom.test_cov_broadcasting  s    %))aVb"X,>1b'J..0.%))aS1#J1a&A".%))QFq"g>.'"Wf$568.rD   c                    \         P                  ! ^
^.^R7      p\        P                  ! ^^^
R7      p\        WRR7       R# )r  r  r   r   r2  r  r  N)r   r  r!   r   )rY   var0var1s   &  rB   test_var"TestMultivariateHypergeom.test_var  s4    %))RGq9}}rQ"-.rD   c                   \         P                  ! ^
^.^^.R7      p\         P                  ! ^
^.^R7      p\         P                  ! ^
^.^R7      p\        V^ ,          VRR7       \        V^,          VRR7       \         P                  ! ^
^.^
^..^^.R7      pRR.RR..p\        WERR7       \         P                  ! ^.^
..^^
.R7      pR.R..p\        WgRR7       R# )r  r  r  r  g̍3eY?gI{?r   N)r   r  r   )rY   r  r  var2var3var4var5var6s   &       rB   test_var_broadcasting/TestMultivariateHypergeom.test_var_broadcasting  s    %))RG1v>%))RGq9%))RGq9QD1QD1%))b!Wr2h,?Aq6JI&8(<=.%))aS2$KAr7Crd|.rD   c                    \         P                  ! ^
^.^R7      p\        P                  ! ^^^
R7      p\        V^ ,          VRR7       \         P                  ! ^^.^
R7      pRR.p\        W4RR7       R# )r  r  r  r  r  Ng      @r  )r   r   r!   r   rY   mean0r  r&  mean3s   &    rB   r  #TestMultivariateHypergeom.test_mean  sd    &++r1g;qB/a%d3&++r1g<j)40rD   c                p    \         P                  ! ^^.^
^..^^.R7      pRR.RR..p\        WRR7       R# )	rO   r  r  r  Nr  r  gUUUUUU@gUUUUUU@)r   r   r   )rY   r  r  s   &  rB   r  0TestMultivariateHypergeom.test_mean_broadcasting  sC    &++1vAw.?Aq6JH%
I'>?40rD   c                b   \         P                  ! . RO^ R7      p\        V. RO4       \         P                  ! . RO^R7      p\        V\        P                  \        P                  \        P                  .4       \         P                  ! . RO. R	O.^R7      p\        V\        P                  \        P                  \        P                  .. R
O.RR7       \         P                  ! \        P                  ! . \        R7      ^ R7      p\        V. 4       \        VP                  R8H  4       R# )r   r  FFg<r  r  Nr   r   r   r   rM   r   r   r^  )r   r   r   r   )
r   r   r   r;   r  r   r   rP  r   r=   r  s   &    rB   test_mean_edge_cases.TestMultivariateHypergeom.test_mean_edge_cases  s    &++i1=UL)&++i1=URVVRVVRVV45&++y).DJ 8,G"	$ '++bhhr.EKUBu$%rD   c                f   \         P                  ! . RO^ R7      p\        V. RORR7       \         P                  ! . R	O^R7      p\        V\        P
                  \        P
                  \        P
                  .4       \         P                  ! . R	O. R
O.^R7      p\        V\        P
                  \        P
                  \        P
                  .. RO.RR7       \         P                  ! \        P                  ! . \        R7      ^ R7      p\        V. 4       \        VP                  R8H  4       R# )r   r  gؗҜ<r  r  r  Nr   r  r  r^  r  )
r   r  r   r   r;   r  r   rP  r   r=   )rY   r  r  r  r  s   &    rB   test_var_edge_cases-TestMultivariateHypergeom.test_var_edge_cases  s    %))I;l7%))I;TBFFBFFBFF34%))Y	,BaH7F"	$ &))BHHRs,CqIT2

e#$rD   c                   \         P                  ! . RO^R7      p. RO. RO. RO.p\        WRR7       \         P                  ! . RO^ R7      p. RO. RO. RO.p\        W44       \         P                  ! \        P
                  ! . \        R7      ^ R7      p\        P
                  ! . \        P                  R7      P                  ^ ^ 4      p\        WVRR7       \        VP                  R	8H  4       R# )
rM   r  r  r  r  Nr  r  r   r  )r   r   r   r   r;   r   rP  r  r  r   r=   )rY   cov0r  r  r  r  r  s   &      rB   test_cov_edge_cases-TestMultivariateHypergeom.test_cov_edge_cases*  s    %))I;lL9/%))I;lL9T %))BHHRs,CqIxx"**-55a;/

f$%rD   c                8   \         P                  P                  R 4       ^p. ROp. RO. RO. RO. RO. RO.p\         P                  ! V\        R7      p\        W!4      p\        VP                  V4      \
        P                  ! W2V4      4       \        VP                  V4      \
        P                  ! W2V4      4       \        VP                  4       \
        P                  ! W!4      4       \        VP                  4       \
        P                  ! W!4      4       R# )	r  r  N)r   r  r     r  r  r  r  r  )r;   r   r   r<   rP  r   r   r  r  r  r   )rY   r   rh  re   
mhg_frozens   &    rB   r  %TestMultivariateHypergeom.test_frozen8  s    
		tM=<)JJq$+A1

q).221;	=
))!,.55aA>	@
(*@*D*DQ*JK
(*@*D*DQ*JKrD   c                   \        \        \        P                  ^^
^4       \        \        \        P                  ^^
.^4       \        \        \        P                  ^^.^
.^4       \        \        \        P                  RR.^
^.^4       \        \        \        P                  ^^.RR.^4       \        \        \        P                  ^^.^
^.R4       R# )ro   g      @r  g      %@g      /@N)rz  rQ   r   r  	TypeErrorr6  s   &rB   test_invalid_params-TestMultivariateHypergeom.test_invalid_paramsH  s    j"8"<"<aQGj"8"<"<a"qIj"8"<"<q!frdANi!7!;!;c3Z2h	#i!7!;!;aVTlA	'i!7!;!;aV2h	%rD   r   Ngrf  rn   iir   i)r   r   r  r   r   )r   r   r   r   r   r  )ro   r   r   ) r   r   r   r   rP   r   r   r;   r  r  r  r  r  r  r  r   rP  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   s   @rB   r~  r~  p  s    [[ VaWa+VaWa"&&)!Wq"gq266'*Vb"Xq"&&)!fq!fR2s)4Vbffbff%' !Wr2h266*Wr1gr266*Wr2hBFF+VaWb"&&)VaWa"&&)+	
43543	/;;
 [[V	13
Qqc1X& "	" [[S1#q!VaWa+1v1v"a1a& 12W1v1v&+&I79 XXb$bhhr&=q"EVaVQ"	1j1	
 3! 3 [[Vq"gBx(!i-CDcA3Z1#saVb"X6sQCj\QC!:1vRz:cA3ZQC5'QFr2hZL9		
33////11
&%&L 	% 	%rD   r~  c                   h  a  ] tR tRt o R tR t]P                  P                  RR4      R 4       t	R t
]P                  P                  RR4      ]P                  P                  RR4      R	 4       4       t]P                  P                  R
R4      R 4       tR t]P                  P                  R
R4      R 4       t]P                  P                  R
R4      R 4       t]P                  P                  R
R4      R 4       t]P                  P                  R
R4      ]P                  P                  R. ^ .34      ]P                  P                  R. ^ .34      R 4       4       4       t]P                  P                  RR4      R 4       tR t]P                  P                  R
R4      R 4       tRtV tR# )TestRandomTableiT  c                @    \         P                  P                  R 4      # )l   OfE)r;   r   r   r6  s   &rB   get_rngTestRandomTable.get_rngU  s    yy$$%788rD   c                D   R p\         P                  ! \        VR7      ;_uu_ 4        \        ^^..^^.4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        ^^.^^..4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        ^R
.^^.4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        ^^.^R.4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        ^^.^^ .4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        RR.. RO4       RRR4       R	p\         P                  ! \        VR7      ;_uu_ 4        \        ^^.. RO4       RRR4       ^^.p. ROp\        P                  ! ^^.. RO4      w  rEp\        W$4       \        W54       V\        P                  ! V4      8X  g   Q hR#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELe; i  + '       g   i     EL:; i  + '       g   i     EL; i  + '       g   i     L; i)z`row` must be one-dimensionalrH   Nz`col` must be one-dimensionalz*each element of `row` must be non-negativez*each element of `col` must be non-negativez'sums over `row` and `col` must be equalz(each element of `row` must be an integer @z(each element of `col` must be an integerr   r   )rM   rM   rN   )rm  rm  rM   rN   rM   rM   )rP   r	   rQ   r%   _process_parametersr   r;   r   )rY   rZ   rowcolr  r  r   s   &      rB   test_process_parameters'TestRandomTable.test_process_parametersX  s   1]]:W551a&Aq6* 6 2]]:W55!Q1a&* 6 ?]]:W55!R1a&) 6 ?]]:W55!Q!R) 6 <]]:W55!Q!Q( 6 =]]:W55#sY/ 6 =]]:W55!Q/ 6 !f22Aq69EaSSBFF3KA 655 655 655 655 655 655 65sS   H'H+'H?&I%I'$I;#JH(	+H<	?I	I$	'I8	;J	J	zscale,methodc                    \         P                  ! ^^.4      V,          p\         P                  ! . RO4      V,          p\        pVP                  W4V^R7      pVP                  W4R^R7      p\	        Wg4       R# )rM   methodr   Nr  )r;   r   r%   r   r   )rY   r  r  r  r  ctr  gots   &&&     rB   test_process_rvs_method_on_None/TestRandomTable.test_process_rvs_method_on_None|  sc     hh1v&hhy!E)66#66BffSdf;X#rD   c                    ^^.p. ROpRp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! WRR7       RRR4       R#   + '       g   i     R# ; i)rM   z$'foo' not recognized, must be one ofrH   foo)r  Nr  )rP   r	   rQ   r%   r   )rY   r  r  rZ   s   &   rB   $test_process_rvs_method_bad_argument4TestRandomTable.test_process_rvs_method_bad_argument  sG    !f 9]]:W55Se4 6555s   AA#	r  r  c                  aaaa V P                  4       p^^.o. ROo\        P                  ! SSRRVR7      pV'       d   \        SS4      M\        p\        YR'       d   RMR4      oV'       g   SoVVV3R loV'       d   V3R lMSp\        P
                  ! V^ RR	7      w  rxV! V4      p	\        V	\        V4      ,          VR
R7       V! \        V^ ,          4      4      p
\        W^ ,          4       VP                  RVP                  R,          ,           4      pV! V4      p	V	P                  R8X  g   Q h\        V	P                  ^ ,          4       FN  p\        V	P                  ^,          4       F+  pWV3,          pWV3,          pV! V4      p\        VV4       K-  	  KP  	  . RO. RO.p\        \        P                  ! VRR7      S4       V! V4      p	V	^ 8X  g   Q h. RO. RO.p\        \        P                  ! VRR7      S4       V! V4      p	V	^ 8X  g   Q hRp\        P                  ! \         VR7      ;_uu_ 4        V! ^.4       RRR4       Rp\        P                  ! \         VR7      ;_uu_ 4        V! R..4       RRR4       Rp\        P                  ! \         VR7      ;_uu_ 4        V! \        P"                  ..4       RRR4       Rp\        P                  ! \         VR7      ;_uu_ 4        V! R..4       RRR4       Rp\        P                  ! \         VR7      ;_uu_ 4        V! . RO.4       RRR4       Rp\        P                  ! \         VR7      ;_uu_ 4        V! ^^.^^..4       RRR4       R#   + '       g   i     ELC; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)rN   r  boyettr   r  r   r  r  c                    < S! V SS4      # r:   r   )re   r  original_methodr  s   &rB   r  /TestRandomTable.test_pmf_logpmf.<locals>.method  s    &q#s33rD   c                 <   < \         P                  ! S! V 4      4      # r:   )r;   r  )re   r  s   &rB   rf   1TestRandomTable.test_pmf_logpmf.<locals>.<lambda>  s    q	*rD   Tr   return_countsr   r  ri   r   z$`x` must be at least two-dimensionalrH   Nz%`x` must contain only integral valuesrm  z)`x` must contain only non-negative valuesz"shape of `x` must agree with `row`z"shape of `x` must agree with `col`rM   rO   r   )r  rt  )r   rM   rM   )rN   rM   rO   r   rw  )rM   rN   rN   r   rL   )r  r%   r   rq   r;   uniquer   r   r   r   r  r=   r  r   rP   r	   rQ   r  )rY   r  r  r   r   objr  
unique_rvscountsr`  p2rvs_ndr  r  pijrvijqijre   rZ   r  r  r  r  s   &&&                @@@@rB   test_pmf_logpmfTestRandomTable.test_pmf_logpmf  s    lln!fsCd&.SB )/l3$L#h59$O4/2*YYs$G
 
OCHf37 jm$%R1 Y267Kww)###qwwqz"A1771:&1gd|$iS#&	 ' # 	"RVVAB'-FAvv 	"RVVAB'-FAvv 9]]:W55H 6 :]]:W55#L 6 :]]:W55"&&
O 6 >]]:W55"K 6 7]]:W55 6 7]]:W55!QQ  65) 655 655 65 65 65 655sH   
N:N3N.:O3O-O'N	N+	.N>	O	O$	'O8	r  c                   V P                  4       p^^.p. ROp\        P                  ! W4RVVR7      p\        P                  ! W44      p\	        \
        P                  ! V4      \
        P                  ! V4      4       \        VP                  ^ 4      VRR7       \	        VP                  RR7      \
        P                  ! VR	4      4       \	        VP                  R
R7      \
        P                  ! VR4      4       R# )rN   r  r  rB  r  r   Nr  r   r  r   )r  rO   )	r  r%   r   r   r   r;   r   r   broadcast_to)rY   r  r   r  r  r   r   s   &&     rB   test_rvs_meanTestRandomTable.test_rvs_mean  s     lln!fsd6,/1  *RVVD\266#;/T5SWW"W%rsI'FGSWW"W%rsI'FGrD   c                   V P                  4       p^^.p. R	Op\        P                  ! W#RRVR7      p\        P                  ! W#RRVR7      p\        P                  ! V^ R7      p\        P                  ! V^ R7      p\        WgRR7       R# )
rN   r~  r  r  	patefieldr   {Gz?r  Nr  )r  r%   r   r;   r  r   )rY   r   r  r  r  r  r  r'  s   &       rB   test_rvs_covTestRandomTable.test_rvs_cov  sy     lln!fuX-02u[-02vvd#vvd#.rD   c           
        ^^.p. ROp\         P                  ! W#VV P                  4       R7      pVP                  R	8X  g   Q h\         P                  ! W#^VV P                  4       R7      pVP                  R
8X  g   Q h\	        WE^ ,          4       \         P                  ! W#^ VV P                  4       R7      pVP                  R8X  g   Q h\         P                  ! W#^VV P                  4       R7      pVP                  R8X  g   Q h\         P                  ! W#RVV P                  4       R7      pVP                  R8X  g   Q h\        VP                  ^^^4      VRR7       Rp	\        P                  ! \        V	R7      ;_uu_ 4        \         P                  ! W#RVV P                  4       R7       RRR4       \        P                  ! \        V	R7      ;_uu_ 4        \         P                  ! W#\        P                  VV P                  4       R7       RRR4       R#   + '       g   i     Lu; i  + '       g   i     R# ; i)rN   r  r  r  r  z/`size` must be a non-negative integer or `None`rH   Nr  rW  rL   )r   rN   rO   )r  rN   rO   )r   ro   )r   ro   rN   rO   r   )r%   r   r  r=   r   r   r  rP   r	   rQ   r;   r  )
rY   r  r  r  r   rv2rv3rv4rv5rZ   s
   &&        rB   test_rvs_sizeTestRandomTable.test_rvs_size  s   !f cv+/<<>;xx6!!! sa,0LLN<yyI%%%RQ  sa,0LLN<yyI%%% sb,0LLN<yyJ&&&sfV,0LLN<yyL(((B1-s? D]]:W55SBv*.,,.: 6 ]]:W55SBFF6*.,,.: 65	 65 655s   )H7H/H,	/I 	c                    ^^.p. ROp\         pVP                  W#RVV P                  4       R7      p\        P                  ! V^ RR7      w  rgVP                  WbV4      p\        V\        V4      ,          VRR7       R# )	rN   r  r  Tr  r  r  Nr  )r%   r   r  r;   r  r  r   r   )	rY   r  r  r  r  r   r  r  r`  s	   &&       rB   test_rvs_methodTestRandomTable.test_rvs_method(  sv     !fffSF6"&,,.  2  YYs$G
 FF:C(CHf48rD   c                    . ROp. ROp\        W#4      pVP                  RWP                  4       R7      p\        P                  ! R\        V4      \        V4      34      p. RO. RO. RO.VR&   \        WV4       R# )r   r  r  .Nr_  )rM   r   r   r   )r   r   r   r   r%   r   r  r;   r   r   r   rY   r  r  r  r+  r   r  s   &&     rB   test_rvs_with_zeros_in_col_row.TestRandomTable.test_rvs_with_zeros_in_col_row=  si    "UU4\\^UD88T3s8SX67%%%' 	R"rD   Nr  r  c                    \        W#4      pVP                  ^
WP                  4       R7      p\        P                  ! ^
\        V4      \        V4      34      p\        WV4       R# )r  r  Nr  r  s   &&&&   rB   test_rvs_with_edge_cases(TestRandomTable.test_rvs_with_edge_casesI  sK     "UU2f<<>UB88RS3s845R"rD   r   c                   ^ RI Hu Hp \        P                  ! ^^.\        P
                  R7      p\        P                  ! . RO\        P
                  R7      p\        VRV 24      p\        P                  ! V4      pV! W4V^V P                  4       4      pVP                  ^\        V4      \        V4      38X  g   Q h\        P                  ! V4      V8X  g   Q hR# )r   Nr  	rvs_rcontr  )scipy.stats._rcontr-   _rcontr;   r   int64rq   r   r  r=   r   )rY   r   r  r  r  r   ntotresults   &&      rB   test_rvs_rcontTestRandomTable.test_rvs_rcontR  s     	,+hh1vRXX.hhy1f	!o.vvc{StQ7||3s8SX6666vvf~%%%rD   c                   ^^.p. ROp\        WV P                  4       R7      pVP                  4       p\         P                  ! W4      p\	        WSP                  4       4       \         P
                  ! WAV4      p\	        WSP                  V4      4       \         P                  ! WAV4      p\	        WSP                  V4      4       R# )rN   r   Nr  )r%   r  r   r   r   r  r  )rY   r  r  r+  r.  r  s   &     rB   r  TestRandomTable.test_frozenc  s    !f7$$S.Xvvx(##F5XuuV}-&&vC8Xxx/0rD   c                    ^^.p. ROp\        W#V P                  4       R7      p\         P                  ! W#^
VV P                  4       R7      pVP                  ^
VR7      p\        WV4       R# )rN   r   r  )r   r  Nr  )r%   r  r   r   )rY   r  r  r  r+  r  r  s   &&     rB   test_rvs_frozenTestRandomTable.test_rvs_frozens  s\    !f7##C2f15AeeFe+X#rD   r   ))rM   r  )rt  r  )TF)r  r  )Nr  r  rn  )r   r   r   r   r  r  rP   r   r   r  r  r  r  r  r
  r  r  r  r  r  r#  r   r   r   s   @rB   r  r  T  s    9" H [[^@B$B$5 [[X}5[[UM2L 3 6L\ [[X'>?H @H/ [[X'>?': @':R [[X'>?9 @9( [[X'>?	# @	# [[X'DE[[UR!I.[[UR!I.# / / F# [[S&)& *& 1  [[X'>?$ @$rD   r  c                    V P                   pR V n         V P                  ! VR^/  \        P                  ! V 4      pV P                  ! VR^/ p\        P                  ! V4      pVP                  ! VR^/ p\        WF4       W n         R# )r  r   N)r   r   pickledumpsloadsr   )distfnr@   r  r   r0	unpickledr1s   &&     rB   check_picklingr-    sy    
 DF
JJ1VA	T	"	"BQI		%1	%B rD   c                 *   \         P                  ! ^4      pRVR&   RVR&   \        R.\        \         P                  ! R.4      3.\
        ^
V3.\        ^
V3.\        ^. RO3.\        R.\        R..pV F  w  r4\        W44       \        W44       K  	  R# )	rO   r  r   Nrv  r  r   rF  r  )r;   rT   r   r   r   r   r   r   r   r   r6   r-  )num_parallel_threadsr  distsr)  r@   s   &    rB   test_random_state_propertyr1    s    FF1IEE$KE$K	b!	RXXrd^&'	2u+	b%[!	q/*+	d	d#E #F1v$ rD   c                     a  ] tR tRt o ]P
                  P                  R. R0O4      ]P
                  P                  R. R1O4      R 4       4       t]P
                  P                  R^^.4      ]P
                  P                  R. R2O4      R 4       4       tR t	R	 t
R
 t]P
                  P                  RR3R4.4      R 4       t]P
                  P                  R^ R.4      R 4       t]P
                  P                  R]P                  ]P                   .4      R 4       t]P
                  P                  R]P                  ]P                   .4      R 4       t]P
                  P                  R]P(                  ! . R5O4      ]P(                  ! . R5O4      RR3]P(                  ! . R6O4      ]P(                  ! . R7O4      RR3]P(                  ! . R5O4      ]P(                  ! . R5O4      ^dR3]P(                  ! . R6O4      ]P(                  ! . R7O4      ^dR3]P(                  ! . R5O4      ]P(                  ! ]P*                  ! R4      ]P*                  ! R4      R.4      RR3]P(                  ! . R6O4      ]P(                  ! . R5O4      RR3]P(                  ! . R8O4      ]P(                  ! . R8O4      RR3]P(                  ! . R8O4      ]P(                  ! ]P*                  ! R4      ]P*                  ! R4      R^ R.4      RR3]P(                  ! . R8O4      ]P(                  ! ]P*                  ! R4      ]P*                  ! R4      R^ R.4      RR 3.	4      R! 4       t]P
                  P                  R]P(                  ! . R5O4      ]P(                  ! . R5O4      RR93]P(                  ! . R6O4      ]P(                  ! . R7O4      RR:3]P(                  ! . R5O4      ]P(                  ! . R5O4      ^dR"3]P(                  ! . R6O4      ]P(                  ! . R7O4      ^dR;3]P(                  ! . R5O4      ]P(                  ! ]P*                  ! R4      ]P*                  ! R4      R.4      RR<3]P(                  ! . R6O4      ]P(                  ! . R5O4      RR#3]P(                  ! . R8O4      ]P(                  ! . R8O4      RR$3]P(                  ! . R8O4      ]P(                  ! ]P*                  ! R4      ]P*                  ! R4      R^ R.4      RR=3]P(                  ! . R8O4      ]P(                  ! ]P*                  ! R4      ]P*                  ! R4      R^ R.4      RR>3.	4      R% 4       t]P
                  P                  R&. R?O4      R' 4       t]P
                  P                  R]P                  ]P                   .4      R( 4       tR) t]P
                  P                  R. R@O4      ]P
                  P                  R*. RAO4      R+ 4       4       tR, tR- tR. tR/tV t R# )BTestVonMises_Fisheri  r   r   Nc                   \         P                  P                  R 4      p\         P                  ! V3^\         P                  ! V4      ,          4      p\        V^VR7      pVP                  V4      p\         P                  ! V4      \         P                  ! V4      rVP                  WxVR7      P                  p	VP                  V	8X  g   Q h\         P                  P                  VRR7      p
\        V
R4       R# r  )r;   r   r   r  r  r'   r   r   rT   r   r=   r   r   r   )rY   r   r   r   r{  vmf_distr  r   r   r  r  s   &&&        rB   r    TestVonMises_Fisher.test_samples  s     ii##$78WWcWan-"2qs3,,t$HHSM266#;c000FLL}}...		wR0r"rD   kappac                    \         P                  P                  R 4      p\         P                  ! V3^\         P                  ! V4      ,          4      p\        WBVR7      pVP                  ^
4       R# )r  r   N)r;   r   r   r  r  r'   r   )rY   r   r7  r   r{  r5  s   &&&   rB    test_sampling_high_concentration4TestVonMises_Fisher.test_sampling_high_concentration  sO     ii##$78WWcWan-"237RrD   c                    \         P                  ! R4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        V^4       RRR4       R#   + '       g   i     R# ; i)rN   z%'mu' must have one-dimensional shape.rH   Nr,  r;   rS   rP   r	   rQ   r'   rY   r{  r  s   &  rB   test_two_dimensional_mu+TestVonMises_Fisher.test_two_dimensional_mu  s>    WWV_5]]:S11B" 2111   AA%	c                    \         P                  ! R4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        V^4       RRR4       R#   + '       g   i     R# ; i)rN   z%'mu' must be a unit vector of norm 1.rH   Nr  r<  r=  s   &  rB   test_wrong_norm_mu&TestVonMises_Fisher.test_wrong_norm_mu  s>    WWU^5]]:S11B" 2111r@  c                    \         P                  ! R4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        V^4       RRR4       R#   + '       g   i     R# ; i)rM   z$'mu' must have at least two entries.rH   Nr  r<  r=  s   &  rB   test_one_entry_mu%TestVonMises_Fisher.test_one_entry_mu  s>    WWU^4]]:S11B" 2111r@  c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        ^^ .V4       RRR4       R#   + '       g   i     R# ; i)z"'kappa' must be a positive scalar.rH   NrP   r	   rQ   r'   rY   r7  r  s   && rB   test_kappa_validation)TestVonMises_Fisher.test_kappa_validation  s5    2]]:S11QFE* 2111   A  A	r   c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        ^^ .V4       RRR4       R#   + '       g   i     R# ; i)zFor 'kappa=0' the von Mises-Fisher distribution becomes the uniform distribution on the sphere surface. Consider using 'scipy.stats.uniform_direction' instead.rH   NrH  rI  s   && rB   test_kappa_zero#TestVonMises_Fisher.test_kappa_zero  s9     ]]:S11QFE* 2111rL  r  c                    \         P                  ! . RO4      pRp\        P                  ! \        VR7      ;_uu_ 4        V! V^^ .^4       RRR4       R#   + '       g   i     R# ; i)r   znThe dimensionality of the last axis of 'x' must match the dimensionality of the von Mises Fisher distribution.rH   Nr   r   r   r;   r   rP   r	   rQ   rY   r  re   r  s   &&  rB   test_invalid_shapes_pdf_logpdf2TestVonMises_Fisher.test_invalid_shapes_pdf_logpdf  sK     HH[! ]]:S111q!fa  2111   AA'	c                    \         P                  ! R R.4      pRp\        P                  ! \        VR7      ;_uu_ 4        V! V^^ .^4       RRR4       R#   + '       g   i     R# ; i)r  r   8'x' must be unit vectors of norm 1 along last dimension.rH   NrR  rS  s   &&  rB   test_unnormalized_input+TestVonMises_Fisher.test_unnormalized_input  sK     HHc2YH]]:S111q!fa  2111rV  zx, mu, kappa, referencerU  g0_?g7m0_?gLI/@gFK:h*7g\(\?r  i  g3pB>g7Ks@go齿@gW+x\(?rE  r   gS-c                T    \        W#4      P                  V4      p\        WTR R7       R# )r=  r  N)r'   r   r   )rY   re   r{  r7  	referencer   s   &&&&& rB   test_pdf_accuracy%TestVonMises_Fisher.test_pdf_accuracy  s#    4 b(,,Q/U3rD   gJ8j#@g1VV@g|'@c                T    \        W#4      P                  V4      p\        WTR R7       R# )r  r  N)r'   r   r   )rY   re   r{  r7  r\  r   s   &&&&& rB   test_logpdf_accuracy(TestVonMises_Fisher.test_logpdf_accuracy(  s#    4 !+22156rD   zdim, kappa, referencec                    \         P                  ! V3^\         P                  ! V4      ,          4      p\        WB4      P	                  4       p\        WSRR7       R# )rM   g+=r  N)r;   r  r  r'   r   r   )rY   r   r7  r\  r{  r   s   &&&&  rB   test_entropy_accuracy)TestVonMises_Fisher.test_entropy_accuracyS  s?     WWcWan-!",4467rD   c                   Rp\         P                  P                  R4      p\        ^4      P	                  W#R7      p\         P
                  ! R^\         P                  ! ^4      ,          4      p^pV! WEV4      pVP                  V8X  g   Q h\        V^ ,          4       FC  p\        V^,          4       F*  p	V! WHV	R3,          WV4      p
\        WW3,          RR7       K,  	  KE  	  R# )	rN   r  r   r.  r  r  Nr,  r  )
r;   r   r   r&   r   r  r  r=   r  r   )rY   r  	testshaper   re   r{  r7  
result_allr  r  current_vals   &&         rB   r  %TestVonMises_Fisher.test_broadcasting]  s     	ii##$78a $$Y$AWWUAbggajL)A5)
9,,,y|$A9Q<($Q!QwZ;-=EJ ) %rD   c                j   \         P                  P                  R 4      p\         P                  ! ^ ^.4      p\         P                  ! V^,          V^ ,          4      p^p\        W$4      p\        W4R7      p\        ^4      P                  ^
VR7      p\         P                  ! VR,          VR,          4      p\        VP                  4       VP                  4       4       \        VP                  V4      VP                  V4      4       \        VP                  V4      VP                  V4      4       R# )r  )r  r7  r   N)r.  rM   r.  r   )r;   r   r   r   r  r'   r)   r&   r   r   r   r   r   )	rY   r   r{  mu_angler7  vmfvonmises_distvectorsr  s	   &        rB   test_vs_vonmises_2d'TestVonMises_Fisher.test_vs_vonmises_2dm  s     ii##$78XXq!f::beRU+b( X;#A&**2C*@GDM74=9--/?))&137773CD,,V4cjj6IJrD   zkappa, mu_tol, kappa_tolc                   \         P                  ! V3^\         P                  ! V4      ,          4      p\        WR4      p\         P                  P                  R4      pRpVP                  WR7      p	\        P                  ! V	4      w  r\         P                  ! VP                  V
4      4      p\        VRV^ R7       \        W+VR7       R# )rM   r  r~  r   r   r-  r  N)r;   r  r  r'   r   r   r   r  arccosr  r   )rY   r   r7  mu_tol	kappa_tolr{  r5  r   r  r  mu_fit	kappa_fitangular_errors   &&&&&        rB   test_fit_accuracy%TestVonMises_Fisher.test_fit_accuracy|  s     WWcWan-"2-ii##$78	,,y,;+//8		"&&.1rQ?y9rD   c                    \         P                  ! R4      pRp\        P                  ! \        VR7      ;_uu_ 4        \
        P                  ! V4       RRR4       R#   + '       g   i     R# ; i)rO   z'x' must be two dimensional.rH   Nr  )r;   r   rP   r	   rQ   r'   r  rY   re   r  s   &  rB   #test_fit_error_one_dimensional_data7TestVonMises_Fisher.test_fit_error_one_dimensional_data  sB    HHUO,]]:S11" 2111   AA/	c                    \         P                  ! R4      pRp\        P                  ! \        VR7      ;_uu_ 4        \
        P                  ! V4       RRR4       R#   + '       g   i     R# ; i)rO   rX  rH   NrV  )r;   rS   rP   r	   rQ   r'   r  r|  s   &  rB    test_fit_error_unnormalized_data4TestVonMises_Fisher.test_fit_error_unnormalized_data  sB    GGFOH]]:S11" 2111r  c                
   \         P                  ! . RO4      p^p\        W4      p\        WRR7      pVP                  RR7      p\        P                  ! WRR7      pVP                  4       p\	        WV4       \	        WW4       R# )r   r1  r   r   N)r   r   rM   )r;   r   r'   r   r   )rY   r{  r7  r  rc  r  r  rd  s   &       rB   r  ,TestVonMises_Fisher.test_frozen_distribution  si    XXi  +%bc:zzsz+""23? T T rD   r   )rN   rO   r   r   r  )g  4&kCre  gꌠ9Y>)Fr   )ro   rO   )r   r   r   rQ  )r   r   r   )r   r   r   r   r   g[d6U?g1*?g=fNXg][,gmF&!geh))rO   rU  g?@)rO   rt  gp&F)ro   r7  gT;ӷ&)r  rM   goZ@)rN   rO   r   ))rM   rB  rB  )r  r  r  )rt  {Gzt?r  )r  r  r  )!r   r   r   r   rP   r   r   r   r9  r>  rB  rE  rJ  rN  r'   r   r   rT  rY  r;   r   r  r]  r`  rc  r  rp  ry  r}  r  r  r   r   r   s   @rB   r3  r3    s    [[UL1[[V%9:
# ; 2
# [[UQF+[[W&89 : ,### [[Wr6l3+ 4+
 [[Wq"g.+ /+ [[X(;(;(7(>(>(@ A!A! [[X(;(;(7(>(>(@ A!A!$ [[6!xx5rxx7M#%79!xx4bhh|6L#%8:!xx5rxx7M"$68!xx4bhh|6L"$9;!xx5!xxr(JK#%:<  "xx4bhh|6L#%68!xx(<=!xx(<=#%79  "xx(<=!xxr)*B)0  1#%;=  "xx(<=!xxrwws|R)*B)0  1#%;=)>?243?24" [[6!xx5rxx7M#%8:!xx4bhh|6L#%8:!xx5rxx7M"$57!xx4bhh|6L"$68!xx5!xxr(JK#%8:  "xx4bhh|6L#%68!xx(<=!xx(<=#%79  "xx(<=!xxr)*B)0  1#%79  "xx(<=!xxrwws|R)*B)0  1#%8:);<273<27$ [[4:;
8;
8
 [[X(;(;(7(>(>(@ AKAKK [[UI.[[723
	:3 /	:##! !rD   r3  c                   z  a  ] tR tRt o ]R 4       tR tR tR tR t	R t
]P                  P                  RR	R
.4      R 4       t]P                  P                  RRR.4      R 4       tR tR t]P                  P                  RR	R
.4      R 4       t]P                  P                  R. RO4      R 4       tRtV tR# )TestDirichletMultinomiali  c                    \         P                  P                  R 4      pVP                  ^ ^d^R7      pVP	                  ^^V^3R7      pVP                  RR7      pW!W5V3# )   t7)r   r   r   )r;   r   r   r   integersr   )rY   rh  r   rC  re   r   s   &&    rB   
get_params#TestDirichletMultinomial.get_params  s_    ii##$56As+LLBaVL,EErENu""rD   c                   \         P                  P                  R 4      pVP                  ^ ^d^
4      pVP	                  ^ ^
^
4      p\         P
                  ! VRR7      p\        W$4      p\        VP                  V4      \        P                  ! W2V4      4       \        VP                  V4      \        P                  ! W2V4      4       \        VP                  4       \        P                  ! W$4      4       \        VP                  4       \        P                  ! W$4      4       \        VP                  4       \        P                  ! W$4      4       R# )r  r   Nr   )r;   r   r   r   r  r   r(   r   r  r  r   r  r   )rY   r   rC  re   r   r+  s   &     rB   r  $TestDirichletMultinomial.test_frozen  s    ii##$56AsB'LLB#FF12!%+QXXa["7">">q"KLQUU1X4881EFQVVX499%CDQUUW377ABQUUW377ABrD   c                   \         P                  ! . RO4      p\         P                  ! V4      p\         P                  ! . RO4      p\        P                  ! WV4      p\        P
                  ! WV4      pRp\        WF4       \        V\         P                  ! V4      4       VP                  VP                  u;8X  d	   R8X  g   Q h Q h\         P                  P                  R4      pVP                  ^ ^d^
4      pVP                  ^ ^
^
4      p\         P                  ! VR	R7      p\        W24      P	                  V4      p\        P
                  ! WV4      pRp\        WF4       \        V\         P                  ! V4      4       R# )
rM   gp.U.?r  r   g+T<NrL   rO   r   ro   r   r   )r;   r   r   r(   r  r  r   r  r=   r   r   r   r  )rY   re   r   rC  r>   logresr?   r   s   &       rB   test_pmf_logpmf_against_R2TestDirichletMultinomial.test_pmf_logpmf_against_R  s"   
 HHYFF1I##''!4&--a:!!s,yyFLL.B..... ii##$56AsB'LLB#FF12#E-11!4&--a:"!s,rD   c                z   V P                  ^4      w  rr4pV^,          p\        \        W44      P                  V4      ^ 4       \        \        W44      P	                  V4      \
        P                  ) 4       V P                  ^
4      w  rr4pVP                  ^
R7      R8  p\
        P                  ! WV,          ^,          4      WV&   \        \        W44      P                  V4      V,          ^ 4       \        \        W44      P	                  V4      V,          \
        P                  ) 4       \
        P                  ! \        W44      P                  V4      V( ,          ^ 8  4      '       g   Q h\
        P                  ! \        W44      P	                  V4      V( ,          \
        P                  ) 8  4      '       g   Q hR# )rM   r   r  N)
r  r   r(   r  r  r;   r  r   roundr  )rY   r   rh  rC  r   re   r  s   &      rB   test_pmf_logpmf_support0TestDirichletMultinomial.test_pmf_logpmf_support  sN    #ooa0!	Q*5488;Q?*54;;A>H"oob1!JJBJ#%xxq!*5488;A>B*54;;A>qABFF7Kvv+E599!<aR@1DEEEEvv+E5<<Q?CrvvgMNNNNrD   c                   ^p^
.p\         P                  ! V.4      p\        W!4      p\        VP	                  V4      ^4       \        VP	                  V^,           4      ^ 4       \        VP                  V4      ^ 4       \        VP                  V^,           4      \         P                  ) 4       \        VP                  4       V4       \        VP                  4       ^ 4       \        VP                  4       ^ 4       R# )r   N
r;   r<   r(   r   r  r  r  r   r  r   rY   r   rC  re   r   s   &    rB   test_dimensionality_one0TestDirichletMultinomial.test_dimensionality_one  s    JJsO$U.TXXa[!$TXXac]A&T[[^Q'T[[1%w/TYY[!$TXXZ#TXXZ#rD   c                B   ^ p\         P                  ! RR.4      p\         P                  ! ^ ^ .4      p\        W!4      p\        VP	                  V4      ^4       \        VP	                  V^,           4      ^ 4       \        VP                  V4      ^ 4       \        VP                  V^,           4      \         P                  ) 4       \        VP                  4       ^ ^ .4       \        VP                  4       ^ ^ .4       \        VP                  4       ^ ^ .^ ^ ..4       R# )r   r   Nr  r  s   &    rB   test_n_is_zero'TestDirichletMultinomial.test_n_is_zero  s    

B8$JJ1v$U.TXXa[!$TXXac]A&T[[^Q'T[[1%w/TYY[1a&)TXXZ!Q(TXXZ1a&1a&!12rD   method_namer  r  c                
   V P                  ^d4      w  r#rEp\        \        WE4      V4      p\        \        P                  ! V.VP
                  O5!  V4      pV! V4      p	V! VP
                  ^ ,          4      p
\        W4       R# )rt  Nr  rq   r(   r-   	betabinomr   r   rY   r  r   rh  rC  r   re   r  
ref_methodr>   r?   s   &&         rB   test_against_betabinom_pmf3TestDirichletMultinomial.test_against_betabinom_pmf  sj    "ooc2!.u8+FU__Q99;G
QiQ !rD   r   r  c                    V P                  ^d4      w  r#rEp\        \        WE4      V4      p\        \        P                  ! V.VP
                  O5!  V4      pV! 4       R,          p	V! 4       p
\        W4       R# )rt  Nrk  r  r  s   &&         rB   test_against_betabinom_moments7TestDirichletMultinomial.test_against_betabinom_moments  sa    "ooc2!.u8+FU__Q99;G
htnl!rD   c                   \         P                  P                  R 4      p^pVP                  ^^d4      pVP                  VR7      ^
,          p\	        WC4      pRpVP                  WFR7      pVP                  W7VR7      p\        VP                  4       \         P                  ! V^ R7      RR7       \        VP                  4       \         P                  ! V^ R7      RR7       VP                  4       P                  VP                  4       P                  u;8X  d
   V38X  g   Q h Q hVP                  4       p	V	P                  W"38X  g   Q h\        V	\         P                  ! VP                  4      RR7       \        \         P                  ! V	4      VP                  4       4       \         P                  ! \         P"                  P%                  V	4      ^ ,          ^ 8  4      '       g   Q hR# )	r  r   r  r   r  r  r  r  N)r;   r   r   r  r(   r   r   r   r   r  r=   r   r   r   rp   r  r   r   r   )
rY   r   r   r   rC  r   rh  r`  re   r   s
   &         rB   r  %TestDirichletMultinomial.test_moments!  s^   ii##$56LLC 


$r)$U. MM%M(OOAqO)		RWWQQ%7dC
BFF11$5DAyy{  DHHJ$4$4>>>>>>hhjyySJ&&&RVVACC[t4RWWS\488:.vvell'',Q/!34444rD   c                f   \         P                  ! . RO4      p\         P                  ! V4      p\         P                  ! . R	O4      pRp\        \        VR7      ;_uu_ 4        \
        P                  ! . ROW24       RRR4       \        \        VR7      ;_uu_ 4        \
        P                  ! . ROW24       RRR4       Rp\        \        VR7      ;_uu_ 4        \
        P                  ! V. ROV4       RRR4       \        \        VR7      ;_uu_ 4        \
        P                  ! V. ROV4       RRR4       Rp\        \        VR7      ;_uu_ 4        \
        P                  ! WR4       RRR4       \        \        VR7      ;_uu_ 4        \
        P                  ! WR
4       RRR4       \         P                  ! . RO4      p\         P                  ! . R	O4      pRp\        \        VR7      ;_uu_ 4        \
        P                  ! WVVP                  4       4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELd; i  + '       g   i     EL<; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)rM   z,`x` must contain only non-negative integers.rH   Nz*`alpha` must contain only positive values.z#`n` must be a non-negative integer.ǧH@z&`x` and `alpha` must be broadcastable.rL   r  r   )rM   r   rO   )rM   r  rO   )rO   r   r   )rO   r   r   )rM   rN   rO   r   )r;   r   r   rz  rQ   r(   r  )rY   x0n0alpha0textre   rC  s   &      rB   r[   .TestDirichletMultinomial.test_input_validation7  s   XXi VVBZ)$=:T22!((V@ 3:T22!((fA 3 <:T22!((Y; 3:T22!((Z< 3 5:T22!((T: 3:T22!((R8 3 HH\"#7:T22!((1557; 32) 322222 322222 32222 322sT   "H(H<II$I8J8&J(H9	<I	I!	$I5	8J		J	J0	r  c           	        \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! ^.^.^..4      p\         P                  ! . RO. RO.4      P                  R4      p\        \        V4      pV! WBV4      pVP
                  R	8X  g   Q h\        \        V4      4       F  p\        \        V4      4       Fy  p\        \        V4      4       F^  pWVWx3,          p	V! WF,          P                  4       W(,          P                  4       W7,          P                  4       4      p
\        W4       K`  	  K{  	  K  	  R# )
rO   Nr  r  ro   ro   r   r  r  r  rL   )rN   rN   rO   )rN   rM   rM   rO   )rN   rO   r   )
r;   r   r  rq   r(   r=   r  r   r   r   )rY   r  rC  r   re   r>   r  r  r  res_ijkr?   s   &&         rB   test_broadcasting_pmf.TestDirichletMultinomial.test_broadcasting_pmfU  s    )Y	:FGHHqcA3_%HHi+,44\B.7Qq!yyI%%%s1vA3q6]s5z*A!Q'lG 1A1A1CQT\\^TC#G1 + # rD   c                   \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! ^.^.^..4      p\        \        V4      pV! W#4      pVR8w  d   VP                  R8X  g   Q hR'       g   Q h\        \        V4      4       Fd  p\        \        V4      4       FI  pWVV3,          pV! W',          P                  4       W6,          P                  4       4      p	\        W4       KK  	  Kf  	  R# )	rO   r   Nr  r  r  r  )rO   r   rO   )rO   r   rO   rO   )	r;   r   rq   r(   r=   r  r   r   r   )
rY   r  rC  r   r  r>   r  r  r  r?   s
   &&        rB   test_broadcasting_moments2TestDirichletMultinomial.test_broadcasting_momentsd  s    )Y	:FGHHqcA3_%.<U)4)=syyI%OO<OOs1vA3u:&d)UX--/@- ' rD   r   N)r   r  r   )r   r   r   r   rW  r  r  r  r  r  r  rP   r   r   r  r  r  r[   r  r  r   r   r   s   @rB   r  r    s     # #C->O $3 [[]UH,=>" ?" [[]VUO<" ="5,<< [[Xx'892 :2 [[],BC
. D
.rD   r  c                   N  a  ] tR tRt o R tR tR tR tR t]	P                  P                  ]	P                  P                  ^
4      R 4       4       t]	P                  P                  R]P                   ]P"                  ]P$                  ]P&                  .4      R	 4       tR
tV tR# )TestNormalInverseGammair  c           	     z  a \         P                  P                  R 4      pVP                  ^4      w  r#rE\        P                  ! W#WE4      o\        P
                  ! ^V,          V^\         P                  ! WC,          V,          4      ,          R7      p\         P                  ! R^^4      p\        V3R l^ \         P                  V3R7      pVP                  V4      p	\        VP                  V	4       SP                  RVR7      p\        P                  ! V^ ,          VP                  4      w  rVR8  g   Q hR# )	   &( r  c                 &   < SP                  W4      # r:   r   )r  re   norm_inv_gammas   &&rB   rf   8TestNormalInverseGamma.test_marginal_x.<locals>.<lambda>      ^%7%7%>rD   r@   r~  r   r   Nr  )r;   r   r   r-   normal_inverse_gammar3  r  rG  r.   r  r   r   r9  r   ks_1sampr   )rY   r   r{  lmbdar   r!  r3  re   r>   r?   r   r  r  s   &           @rB   test_marginal_x&TestNormalInverseGamma.test_marginal_xt  s     ii##J/**Q-133BqDGGAaCRqQ)?'?@ KKAr">266QRPTUeeAhc*   e# >NN3q61551	||rD   c                6  a \         P                  P                  R 4      pVP                  ^4      w  r#rE\        P                  ! W#WE4      o\        P
                  ! WER7      p\         P                  ! R^
^
4      p\        V3R l\         P                  ) \         P                  V3R7      pVP                  V4      p	\        VP                  V	4       SP                  RVR7      p\        P                  ! V^,          VP                  4      w  rVR8  g   Q hR# )r  r  r   c                 &   < SP                  W4      # r:   r  )re   r  r  s   &&rB   rf   9TestNormalInverseGamma.test_marginal_s2.<locals>.<lambda>  r  rD   r  r~  r   N)r;   r   r   r-   r  r   rG  r.   r  r   r   r9  r   r  r   )rY   r   r{  r  r   r!  	inv_gammar  r>   r?   r   r  r  s   &           @rB   test_marginal_s2'TestNormalInverseGamma.test_marginal_s2  s     ii##J/**Q-133BqDNN1.	 [[b"%>wbU4mmBc*   e# >NN3q69==9	||rD   c                ~   \         P                  P                  R 4      pVP                  R4      R,
          w  r#rEVP                  RR7      R,
          w  rg\        P                  ! W#WE4      P                  Wg4      p\        P                  P                  WgW#WE4      p	\        V\         P                  ! V	4      4       R# )r  r2  r   N)r   r  )rN   r  )	r;   r   r   r-   r  r   r   r   r  )
rY   r   r{  r  r   r!  re   r  r>   r?   s
   &         rB   test_pdf_logpdf&TestNormalInverseGamma.test_pdf_logpdf  s    ii##J/**W-41


(4/((A9==aD((//r!GRVVC[)rD   c                   \         P                  P                  R 4      pVP                  ^4      w  r#rEVP                  ^4      w  rg\        P                  ! \         P
                  W4V4      P                  Wg4      p\        V\         P
                  4       \        P                  ! VRWE4      P                  Wg4      p\        V\         P
                  4       \        P                  ! W#^ V4      P                  Wg4      p\        V\         P
                  4       \        P                  ! W#VR4      P                  Wg4      p\        V\         P
                  4       \        P                  ! W#WE4      P                  VR4      p\        V^ 4       \        P                  ! VR\         P
                  .WE4      P                  VR4      p\        V\         P
                  4       \        P                  ! VRWE4      P                  4       p\        V\         P
                  \         P
                  34       \        P                  ! W#RV4      P                  4       p\        V\         P
                  \         P
                  34       \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! W#VR4      P                  4        RRR4       R#   + '       g   i     R# ; i)r  zDomain error in arguments...rH   Nr   )r;   r   r   r-   r  r  r   r   r   r  rP   r	   rQ   r   )	rY   r   r{  r  r   r!  re   r  r>   s	   &        rB   test_invalid_and_special_cases5TestNormalInverseGamma.test_invalid_and_special_cases  s   ii##J/**Q-1

1((1=AA!HS"&&!((R6::1AS"&&!((Aq9==aDS"&&!((Ar:>>qES"&&!((A9==aDS! ((b"&&\1@DDQKS"&&!((R6;;=S266266*+((B:>>@S266266*+]]:-KLL&&r!R8<<> MLLLs   "'KK$	c                   \         P                  P                  R 4      pVP                  ^4      pVP                  R4      ^,           pVP                  R4      pVP                  R4      pVP                  R	4      pVP                  R
4      p\        P                  ! WTW24      p\         P
                  ! WvWTW24      p	V	 U
u. uF  p
\         P                  ! V
4      NK  	  pp
VP                  Wv4      pVP                  V	^ ,          P                  8X  g   Q h\        VP                  4       \        P                  P                  ! V!  4       VP                  Wv4      pVP                  V	^ ,          P                  8X  g   Q h\        VP                  4       \        P                  P                  ! V!  4       \         P
                  ! WTW24      p	V	 U
u. uF  p
\         P                  ! V
4      NK  	  pp
VP                  4       pV^ ,          P                  V	^ ,          P                  8X  g   Q h\        V^ ,          P                  4       V^,          P                  4       3\        P                  P                  ! V!  4       VP                  4       pV^ ,          P                  V	^ ,          P                  8X  g   Q h\        V^ ,          P                  4       V^,          P                  4       3\        P                  P                  ! V!  4       Rp\         P                  P                  R4      pVP                  WR7      p\         P                  P                  R4      pRp\        P                  P                  ! VRVRV/ p\        V^ ,          P                  V4      V^,          P                  V4      3V4       R# u up
i u up
i )r  l   Mr   r   r   N)rO   rM   )r   rM   rM   )ro   rM   rM   rM   )r   rM   rM   rM   rM   )r   rM   rM   rM   rM   rM   )r   ro   r   rO   rN   )r   x   )r;   r   r   r-   r  broadcast_arraysr  r   r=   r   r   r   r  r   r  )rY   r   r!  r   r  r{  r  re   r   broadcastedarrbroadcasted_raveledr>   r   r=   r?   s   &               rB   r  (TestNormalInverseGamma.test_broadcasting  s    ii##J/JJqMJJv"

9%ZZ%ZZ(JJ)*))"Q: ))!AA8CDrxx}DhhqoyyKN00000		22668KL	N kk! yyKN00000		2299;NO	Q ))"Q:8CDrxx}Diik1v||{1~33333QQ822779LM	O hhj1v||{1~33333QQ822668KL	N ii##M2hhDh3ii##M2((,,.A ? ?:=?Q.Au0EFLE E Es    OOc                6  a \         P                  P                  R 4      pVP                  ^4      w  r#rEV^,          p\        P                  ! W#WE4      oSP                  4       p\        V3R l\         P                  ) \         P                  ^ \         P                  4      p\        V^ ,          V^ ,          RR7       \        V3R l\         P                  ) \         P                  ^ \         P                  4      p\        V^,          V^ ,          RR7       R# )r  c                 4   < SP                  W4      V,          # r:   r  r  re   r   s   &&rB   rf   5TestNormalInverseGamma.test_moments.<locals>.<lambda>  s    DHHQOa$7rD   r  r  c                 4   < SP                  W4      V ,          # r:   r  r  s   &&rB   rf   r    s    DHHQOb$8rD   N)	r;   r   r   r-   r  r   r3   r  r   )	rY   r   r{  r  r   r!  r>   r?   r   s	   &       @rB   r  #TestNormalInverseGamma.test_moments  s     ii##J/**Q-1	Q))"Q:iik7"&&"&&!RVVTAAT28266'2661bffUAAT2rD   r  c                   \         P                  R 8  d   \        P                  ! R4       \         P                  P                  R4      pVP                  ^^
^R7      P                  V4      w  r4rVrx\         P                  ! RV4      p	\        P                  ! WVWx4      p
V
P                  4       ^ ,          P                  V	8X  g   Q hV
P                  4       ^,          P                  V	8X  g   Q hV
P                  4       ^ ,          P                  V	8X  g   Q hV
P                  4       ^,          P                  V	8X  g   Q hV
P                  4       ^ ,          P                  V	8X  g   Q hV
P                  4       ^,          P                  V	8X  g   Q hV
P                  W44      P                  V	8X  g   Q hV
P!                  W44      P                  V	8X  g   Q hR# )2z*Scalar dtypes only respected after NEP 50.r  r   r   N)r;   __version__rP   r   r   r   r   astyperesult_typer-   r  r   r  r   r  r   r   )rY   r  r   re   r  r{  r  r   r!  	dtype_outr   s   &&         rB   
test_dtype!TestNormalInverseGamma.test_dtype  sd   >>CKKDEii##J/!$Q!;!B!B5!Ir!NN3.	))"Q:xxz!}""i///xxz!}""i///yy{1~##y000yy{1~##y000xxz!}""i///xxz!}""i///{{1!''9444xx$$	111rD   r   N)r   r   r   r   r  r  r  r  r  rP   r   r  	fail_slowr  r   r;   int32float16r  r  r  r   r   r   s   @rB   r  r  r  s     *,* ?D1Mf [[[[23  3 [[WrxxRZZ&TU2 V2rD   r  rs  )hrV  r&  dataclassesr   numpy.testingr   r   r   r   r   r   rP   r	   rz  test_continuous_basicr
   numpyr;   scipy.linalgr   scipy.stats._multivariater   r   r   scipy.statsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   scipy.stats._continuous_distnsr,   r9  r-   scipy.integrater.   r/   r0   r1   r2   r3   r4   scipy.specialr5   r0  common_testsr6   	data._mvtr7   unittest.mockr8   rC   rF   r   r   r   r[  rt  r  r  rh  rj  r  r  r/  r\  r  r  r  r  r~  r  r-  r   rz  r1  r3  r  r  r   rD   rB   <module>r     s    !7 7  * 9  C C: : : : : : : : 0 @  4 4 < < &  5  ']! ]!@ A A AH X X Xv@) @)FH* H*VF1 F1R-&i9 i9V{; {;|a( a(HGJ GJT~& ~&Bd# d#N6+ 6+r>D >DB@9 @9Fa% a%Hh$ h$V	( % %$~! ~!BH. H.Vk2 k2rD   