§
    µ³Ùg"r ã                   óX  — d Z ddlZddlmZmZmZmZmZmZ ddl	Z	ddl	m
Z ddlmZ ddlZddlZddlmZmZmZ ddlmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 dd	lm3Z3m4Z4 dd
lm5Z5 ddl6m7Z7 ddl6m8Z8m9Z9m:Z:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZC d„ ZD G d„ d¦  «        ZEd<d„ZFd„ ZG G d„ d¦  «        ZH G d„ d¦  «        ZI G d„ d¦  «        ZJd„ ZK G d„ d¦  «        ZL G d „ d!¦  «        ZM G d"„ d#¦  «        ZN G d$„ d%¦  «        ZO G d&„ d'¦  «        ZP G d(„ d)¦  «        ZQ G d*„ d+¦  «        ZR G d,„ d-¦  «        ZS G d.„ d/¦  «        ZT G d0„ d1¦  «        ZU G d2„ d3¦  «        ZVd4„ ZWd5„ ZX G d6„ d7¦  «        ZY G d8„ d9¦  «        ZZ G d:„ d;¦  «        Z[dS )=z8
Test functions for multivariate normal distributions.

é    N)Ú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)Ústats)Útanhsinh)ÚrombÚqmc_quadÚdblquadÚtplquad)Úmultigammaln)Úcheck_random_state_property)Ú_qsimvtv)Úpatchc                 ó¬   — t          j        | ¦  «        t          j        |¦  «        }} t          | |g|¢R i |¤Ž t          | j        |j        ¦  «         d S ©N)ÚnpÚasarrayr   r   Úshape)ÚresÚrefÚargsÚkwargss       úY/granary/edev/quantum/lib/python3.11/site-packages/scipy/stats/tests/test_multivariate.pyÚassert_closerA   ,   sU   € ÝŒz˜#‰Œ¥¤
¨3¡¤ˆ€CÝ�C˜Ð.˜tÐ.Ð.Ð. vÐ.Ð.Ð.Ý�”˜CœIÑ&Ô&Ð&Ð&Ð&ó    c                   ó(  — e Zd Zd„ Zej        ej        j        ej        j        ej        j	        d„ dœZ
 ej         ee
¦  «        ¦  «        Z ej        g d¢¦  «        g d¢g d¢g d¢g ej        g d¢¦  «        g d	¢g d
¢g d¢gdœZeedd…         eg d¢         edd…         dœZej                             dedd…         ¦  «        d„ ¦   «         Zej                             d ee¦  «        ¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Zej                             dd e¦   «         ddg¦  «        ej                             d ee¦  «        ¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             d e¦   «         dg¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Zd„ Zej                             d¦  «        d„ ¦   «         Zd„ ZdS )ÚTestCovariancec                 ó  — d}t          j        t          |¬¦  «        5  t          j        t          j        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        t          j        d¦  «        t          j        d¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        d¦  «         d d d ¦  «         n# 1 swxY w Y   d	}t          j        t          |¬¦  «        5  t          j	        t          j        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d
}t          j        t          |¬¦  «        5  t          j
        dt          j        d¦  «        f¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j
        t          j        d¦  «        df¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j
        g d¢t          j        d¦  «        f¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz:The input `precision` must be a square, two-dimensional...©Úmatché   z0`precision.shape` must equal `covariance.shape`.é   )Ú
covariancez7The input `diagonal` must be a one-dimensional array...Úalpacaz9The input `cholesky` must be a square, two-dimensional...z4The input `eigenvalues` must be a one-dimensional...z,The input `eigenvectors` must be a square...z9The shapes of `eigenvalues` and `eigenvectors` must be...©r
   rH   rI   )Úpytestr	   Ú
ValueErrorr+   ÚCovViaPrecisionr9   ÚonesÚeyeÚCovViaDiagonalÚCovViaCholeskyÚCovViaEigendecomposition©ÚselfÚmessages     r@   Útest_input_validationz$TestCovariance.test_input_validation4   s:  € àNˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	4ð 	4ÝÔ'­¬°©
¬
Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð EˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Ið 	IÝÔ'­¬¨q©	¬	½b¼fÀQ¹i¼iÐHÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið LˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	1ð 	1ÝÔ& xÑ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð NˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	3ð 	3ÝÔ&¥r¤w¨q¡z¤zÑ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð IˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Hð 	HÝÔ0°(½B¼FÀ1¹I¼IÐ1FÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð AˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Ið 	IÝÔ0µ"´'¸!±*´*¸hÐ1GÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið NˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Ið 	IÝÔ0°)°)°)½R¼VÀA¹Y¼YÐ1GÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið 	Ið 	Is}   ž'AÁAÁAÁ9;C Ã CÃCÃ(D	Ä	DÄDÄ1'E$Å$E(Å+E(Æ)GÇGÇGÇ))HÈH"È%H"É+I>É>JÊJc                 ó$   — t          | d¬¦  «        S )NT©Úallow_singular)r   )Úxs    r@   ú<lambda>zTestCovariance.<lambda>V   s   € Ý%)¨!¸DÐ%AÑ%AÔ%Að rB   )ÚDiagonalÚ	PrecisionÚCholeskyÚEigendecompositionÚPSDrL   )é   r
   rI   )r
   é   é   )rI   re   é   )r
   r   rI   )rc   éÿÿÿÿr   )rg   rc   r   ©r   r   r   )údiagonal full rankzgeneral full rankzdiagonal singularzgeneral singularr
   N)r   éþÿÿÿrg   rj   Úcov_type_namerg   c                 óÔ  — t          j        g d¢¦  «        }g d¢}t          t          d|› �¦  «        }| j        |         }t          t
          d|                     ¦   «         › �¦  «        } | ||¦  «        ¦  «        } | ||¦  «        ¦  «        }t          |¦  «        t          |¦  «        u sJ ‚t          | 	                    |¦  «        | 	                    |¦  «        ¦  «         d S )NrL   )éüÿÿÿrH   rc   ÚCovViaÚfrom_)
r9   ÚdiagÚgetattrr+   Ú_covariance_preprocessingr,   ÚlowerÚtyper   Úwhiten)	rV   rk   ÚAr\   Úcov_typeÚpreprocessingÚfactoryr<   r=   s	            r@   Útest_factorieszTestCovariance.test_factoriesb   sà   € åŒG�I�I�IÑÔˆØˆJˆJˆå�;Ð(@°Ð(@Ð(@ÑAÔAˆØÔ6°}ÔEˆÝ�*Ð&E¨m×.AÒ.AÑ.CÔ.CÐ&EÐ&EÑFÔFˆàˆg�m�m AÑ&Ô&Ñ'Ô'ˆØˆh�}�} QÑ'Ô'Ñ(Ô(ˆÝ�C‰yŒy�D ™IœIÐ%Ð%Ð%Ð%Ý˜Ÿ
š
 1™œ s§z¢z°!¡}¤}Ñ5Ô5Ð5Ð5Ð5rB   Úmatrix_typec                 ól  — d|› d|› d�}|| j         |         vrt          j        |¦  «         | j        |         }t	          t
          d|› �¦  «        }| j        |         }t          |d¬¦  «        } | ||¦  «        ¦  «        }t          |j	        |j	        ¦  «         t          |j        |j        ¦  «         t          |j        t          j        |¦  «        j        ¦  «         t          |j        t          j        |¦  «        ¦  «         t          j                             d¦  «        }	|	                     d¬¦  «        }
|                     |
¦  «        }|
|j        z  }t          ||z  ||z  ¦  «         t)          |d	¦  «        r'd
|vr#t          |                     |¦  «        |
¦  «         |	                     d¬¦  «        }
|                     |
¦  «        }|
|j        z  }t          |dz                       d¬¦  «        |dz                       d¬¦  «        ¦  «         t)          |d	¦  «        r'd
|vr#t          |                     |¦  «        |
¦  «         t)          |d	¦  «        rN|                     t          j        t1          |¦  «        ¦  «        ¦  «        }t          |j        |z  |¦  «         d S d S )Nrn   ú does not support ú	 matricesTrZ   ì   ÐVGi’VžK rI   ©ÚsizeÚ	_colorizeÚsingular©rH   re   rI   rH   rg   ©Úaxis)Ú
_cov_typesrM   ÚskipÚ	_matricesrq   r+   rr   r   rA   Úlog_pdetr   Úrankr;   r9   r:   rJ   ÚrandomÚdefault_rngru   ÚUÚhasattrÚcolorizeÚsumrQ   ÚlenÚT)rV   r{   rk   rW   rv   rw   rx   ÚpsdÚ
cov_objectÚrngr\   r<   r=   s                r@   Útest_covariancezTestCovariance.test_covariancep   sŸ  € ð˜Mð ð ¸[ð ð ð ˆà ¤°Ô <Ð<Ð<ÝŒK˜Ñ Ô Ð àŒN˜;Ô'ˆÝ�;Ð(@°Ð(@Ð(@ÑAÔAˆØÔ6°}ÔEˆå�1 TÐ*Ñ*Ô*ˆð �X˜m˜m¨AÑ.Ô.Ñ/Ô/ˆ
Ý�ZÔ(¨#¬,Ñ7Ô7Ð7Ý�Z”_ c¤hÑ/Ô/Ð/Ý�ZÔ%¥r¤z°!¡}¤}Ô':Ñ;Ô;Ð;Ý�ZÔ*­B¬J°q©M¬MÑ:Ô:Ð:õ Œi×#Ò#Ð$7Ñ8Ô8ˆØ�JŠJ˜AˆJÑÔˆØ×Ò Ñ"Ô"ˆØ�#”%‰iˆå�S˜3‘Y  c¡	Ñ*Ô*Ð*Ý�:˜{Ñ+Ô+ð 	6°
À+Ð0MÐ0Må˜×,Ò,¨SÑ1Ô1°1Ñ5Ô5Ð5ð �JŠJ˜IˆJÑ&Ô&ˆØ×Ò Ñ"Ô"ˆØ�#”%‰iˆÝ�c˜1‘f—\’\ r�\Ñ*Ô*¨S°!©V¯LªL¸b¨LÑ,AÔ,AÑBÔBÐBÝ�:˜{Ñ+Ô+ð 	6°
À+Ð0MÐ0MÝ˜×,Ò,¨SÑ1Ô1°1Ñ5Ô5Ð5õ �:˜{Ñ+Ô+ð 	)Ø×%Ò%¥b¤f­S°©V¬V¡n¤nÑ5Ô5ˆCÝ˜œ ™ aÑ(Ô(Ð(Ð(Ð(ð	)ð 	)rB   r�   r„   c                 óz  — d|› d|› d�}|| j         |         vrt          j        |¦  «         | j        |         }t	          t
          d|› �¦  «        }| j        |         }g d¢} | ||¦  «        ¦  «        }	t          }
t          ||d¬¦  «        }t          ||	d¬¦  «        }t          j	         
                    d¦  «        }|                     |||¬¦  «        }t          j	         
                    d¦  «        }|
                     ||	||¬	¦  «        }t          j	         
                    d¦  «        } |
||	|¬
¦  «                             |¬¦  «        }t          |	t
          j        ¦  «        rEt          |t          j        |¦  «        ¦  «         t          |t          j        |¦  «        ¦  «         nDt!          |j        |j        ¦  «         t!          |j        |j        ¦  «         t          ||¦  «         t          |
                     |||	¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |
                     |||	¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |
                     ||	¦  «        |                     ¦   «         ¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         d S )Nrn   r}   r~   ©çš™™™™™¹?çš™™™™™É?ç333333Ó?TrZ   r   r€   ©r�   Úrandom_state©Úseed)r‡   rM   rˆ   r‰   rq   r+   rr   r   r9   rŒ   r�   ÚrvsÚ
isinstanceÚ	CovViaPSDrA   Úsqueezer   r;   ÚpdfÚlogpdfÚentropy)rV   r�   r{   rk   rW   rv   rw   rx   Úmeanr•   ÚmvnÚdist0Údist1r–   r\   Úx1Úx2s                    r@   Útest_mvn_with_covariancez'TestCovariance.test_mvn_with_covariance¡   sÌ  € ð˜Mð ð ¸[ð ð ð ˆà ¤°Ô <Ð<Ð<ÝŒK˜Ñ Ô Ð àŒN˜;Ô'ˆÝ�;Ð(@°Ð(@Ð(@ÑAÔAˆØÔ6°}ÔEˆàˆˆˆØ�X˜m˜m¨AÑ.Ô.Ñ/Ô/ˆ
Ý!ˆÝ# D¨!¸DÐAÑAÔAˆÝ# D¨*ÀTÐJÑJÔJˆåŒi×#Ò#Ð$7Ñ8Ô8ˆØ×#Ò# D¨!°$Ð#Ñ7Ô7ˆÝŒi×#Ò#Ð$7Ñ8Ô8ˆØ�WŠW�T˜:¨D¸sˆWÑCÔCˆÝŒi×#Ò#Ð$7Ñ8Ô8ˆØˆS��z¨Ð,Ñ,Ô,×0Ò0°dÐ0Ñ;Ô;ˆÝ�j¥+Ô"7Ñ8Ô8ð 	!Ý˜�RœZ¨™]œ]Ñ+Ô+Ð+Ý˜�RœZ¨™]œ]Ñ+Ô+Ð+Ð+å˜œ 1¤7Ñ+Ô+Ð+Ý˜œ 1¤7Ñ+Ô+Ð+Ý˜˜RÑ Ô Ð å�S—W’W˜Q  jÑ1Ô1°5·9²9¸Q±<´<Ñ@Ô@Ð@Ý�U—Y’Y˜q‘\”\ 5§9¢9¨Q¡<¤<Ñ0Ô0Ð0Ý�S—Z’Z  4¨Ñ4Ô4°e·l²lÀ1±o´oÑFÔFÐFÝ�U—\’\ !‘_”_ e§l¢l°1¡o¤oÑ6Ô6Ð6Ý�S—[’[  zÑ2Ô2°E·M²M±O´OÑDÔDÐDÝ�U—]’]‘_”_ e§m¢m¡o¤oÑ6Ô6Ð6Ð6Ð6rB   c                 ó  — d}| j         |         }t          t          d|› �¦  «        }| j        |         }g d¢} | ||¦  «        ¦  «        }t          }	t	          ||d¬¦  «        }
t	          ||d¬¦  «        }t
          j                             d¦  «        }|                     |||¬¦  «        }t          |	 	                    |||¦  «        |
 	                    |¦  «        ¦  «         t          | 	                    |¦  «        |
 	                    |¦  «        ¦  «         t          |	 
                    |||¦  «        |
 
                    |¦  «        ¦  «         t          | 
                    |¦  «        |
 
                    |¦  «        ¦  «         d S )Nri   rn   r™   TrZ   r   r€   )r‰   rq   r+   rr   r   r9   rŒ   r�   rA   ÚcdfÚlogcdf)rV   r�   rk   r{   rv   rw   rx   r¨   r•   r©   rª   r«   r–   r\   s                 r@   Útest_mvn_with_covariance_cdfz+TestCovariance.test_mvn_with_covariance_cdfÉ   s[  € ð +ˆØŒN˜;Ô'ˆÝ�;Ð(@°Ð(@Ð(@ÑAÔAˆØÔ6°}ÔEˆàˆˆˆØ�X˜m˜m¨AÑ.Ô.Ñ/Ô/ˆ
Ý!ˆÝ# D¨!¸DÐAÑAÔAˆÝ# D¨*ÀTÐJÑJÔJˆåŒi×#Ò#Ð$7Ñ8Ô8ˆØ×#Ò# D¨!°$Ð#Ñ7Ô7ˆå�S—W’W˜Q  jÑ1Ô1°5·9²9¸Q±<´<Ñ@Ô@Ð@Ý�U—Y’Y˜q‘\”\ 5§9¢9¨Q¡<¤<Ñ0Ô0Ð0Ý�S—Z’Z  4¨Ñ4Ô4°e·l²lÀ1±o´oÑFÔFÐFÝ�U—\’\ !‘_”_ e§l¢l°1¡o¤oÑ6Ô6Ð6Ð6Ð6rB   c                 óŽ   — d}t          j        t          |¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nz7The `Covariance` class cannot be instantiated directly.rF   )rM   r	   ÚNotImplementedErrorr,   rU   s     r@   Útest_covariance_instantiationz,TestCovariance.test_covariance_instantiationã   sŠ   € ØKˆÝŒ]Õ.°gÐ>Ñ>Ô>ð 	ð 	Ý‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ž:º>Á>zignore::RuntimeWarningc                 óš  — t          j        g d¢¦  «        }|j        d         }t          j        |¦  «        }t	          j        t          d¬¦  «        5  t          ||¦  «                             ¦   «          d d d ¦  «         n# 1 swxY w Y   d}t           j	         
                    |¦  «        }t           j	         
                    |¦  «        }t          j        t           j                             |¦  «        ¦  «        }t          ||¦  «        }|                     |¬¦  «        }	t          j        |||¬¦  «        }
t          |	|
¦  «         d S )N)r
   rH   g:Œ0âŽyE¾r   zThe input matrix must be...rF   l   .ypGw ©rž   )r9   rp   r;   ÚzerosrM   r	   rN   r   r¡   rŒ   r�   r,   Úfrom_eigendecompositionÚlinalgÚeighr   )rV   rv   Únr¨   r    Úrng1Úrng2ÚcovÚrvr<   r=   s              r@   Útest_gh9942zTestCovariance.test_gh9942è   sV  € õ
 ŒG�M�M�MÑ"Ô"ˆØŒG�AŒJˆÝŒx˜‰{Œ{ˆõ Œ]�:Ð-JÐKÑKÔKð 	/ð 	/Ý  aÑ(Ô(×,Ò,Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð #ˆÝŒy×$Ò$ TÑ*Ô*ˆÝŒy×$Ò$ TÑ*Ô*ˆÝÔ0µ´·²ÀÑ1BÔ1BÑCÔCˆÝ   sÑ+Ô+ˆØ�fŠf $ˆfÑ'Ô'ˆÝ!Ô% d¨C¸dÐCÑCÔCˆÝ�S˜#ÑÔÐÐÐs   Á#BÂBÂ	Bc                 ó’  — t          j        d¦  «        }t          j        t          j        d¦  «        t          j        d¦  «        f¦  «        }t          j                             ||¬¦  «        }| 	                    d ¬¦  «        }t          ||¦  «         t          j        j                             t          j        ddg¦  «        t          j        ddgddgg¦  «        f¦  «        }t          j                             ||¬¦  «        }| 	                    d ¬¦  «        }|d         |d         k    sJ ‚|d         |d         k    sJ ‚d S )	NrH   ©r¨   r¿   r€   ç      ð?ç        g      y@r   r
   )r9   rP   r,   r¹   r¸   rQ   Úscipyr-   r   r¡   r   Úarray)rV   r¨   r¿   Údistr¡   s        r@   Útest_gh19197zTestCovariance.test_gh19197ÿ   s!  € õ
 Œw�q‰zŒzˆÝÔ0µ"´(¸1±+´+½r¼vÀa¹y¼yÐ1IÑJÔJˆÝŒ{×.Ò.°D¸cÐ.ÑBÔBˆØ�hŠh˜DˆhÑ!Ô!ˆÝ�S˜$ÑÔÐåŒkÔ$×<Ò<ÝŒX�r˜2�hÑÔ¥¤¨B°¨8°b¸$°ZÐ*@Ñ!AÔ!AÐBñDô DˆåŒ{×.Ò.°D¸cÐ.ÑBÔBˆØ�hŠh˜DˆhÑ!Ô!ˆØ�1Œv˜˜aœÒ Ð Ð Ð Ø�1Œv˜˜aœÒ Ð Ð Ð Ð Ð rB   )Ú__name__Ú
__module__Ú__qualname__rX   r9   rp   rº   ÚinvÚcholeskyr»   rr   rÇ   ÚlistÚ_all_covariance_typesr‰   r‡   rM   ÚmarkÚparametrizerz   r—   Útupler®   r²   rµ   ÚfilterwarningsrÁ   rÉ   © rB   r@   rD   rD   2   sÉ  € € € € € ðIð Ið Ið< .0¬WØ.0¬i¬mØ-/¬YÔ-?Ø79´y´~ð)Bð )Bð	!Cð !CÐð %˜BœH T TÐ*CÑ%DÔ%DÑEÔEÐØ'. r¤w¨y¨y¨yÑ'9Ô'9Ø'0 y y°)°)°)¸Y¸Y¸YÐ&GØ&- b¤g¨i¨i¨iÑ&8Ô&8Ø&0 j j°*°*°*¸i¸i¸iÐ%HðJð J€Ið )>Ø'<¸Q¸R¸RÔ'@Ø'<¸[¸[¸[Ô'IØ&;¸B¸C¸CÔ&@ðBð B€Jð
 „[×Ò˜_Ð.CÀCÀRÀCÔ.HÑIÔIð6ð 6ñ JÔIð6ð „[×Ò˜]¨D¨D°©O¬OÑ<Ô<Ø„[×Ò˜_Ð.CÑDÔDð-)ð -)ñ EÔDñ =Ô<ð-)ð^ „[×Ò˜V d¨E¨E©G¬G°Q¸	Ð%BÑCÔCØ„[×Ò˜]¨D¨D°©O¬OÑ<Ô<Ø„[×Ò˜_Ð.CÑDÔDð#7ð #7ñ EÔDñ =Ô<ñ DÔCð#7ðJ „[×Ò˜V e e¡g¤g¨yÐ%9Ñ:Ô:Ø„[×Ò˜_Ð.CÑDÔDð7ð 7ñ EÔDñ ;Ô:ð7ð0ð ð ð
 „[×ÒÐ 8Ñ9Ô9ðð ñ :Ô9ðð,!ð !ð !ð !ð !rB   rD   Fc                 ó  — |                      | | f¦  «        }||j        z  }t          j                             |¦  «        \  }}|r|                     | ¬¦  «        dk    }d||<   |t          j        |¦  «        z  |j        z  }|S )Nr€   r   )rŒ   r“   r9   rº   r»   Únormalrp   )	ÚdimÚevalsr–   rƒ   rv   Ú_ÚvÚ	zero_eigsr¿   s	            r@   Ú_random_covariancerÝ     sƒ   € ð 	�
Š
�C˜�:ÑÔ€AØ	ˆAŒC‰€AÝŒ9�>Š>˜!ÑÔ�D€A€qØð Ø—J’J C�JÑ(Ô(¨1Ò,ˆ	ØˆˆiÑØ
�bŒg�e‰nŒnÑ
˜qœsÑ
"€CØ€JrB   c                 óŒ   — t           j                             | | ¦  «        }t          j                             |¦  «        \  }}}|S r8   )r9   rŒ   ÚrandnrÆ   rº   Úsvd)r¼   ÚMÚuÚsrÛ   s        r@   Ú_sample_orthonormal_matrixrä      s7   € Ý
Œ	�Š˜˜1ÑÔ€AÝŒl×Ò˜qÑ!Ô!�G€A€qˆ!Ø€HrB   c                   óÐ  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zej                             d ej        d¦  «         ej        ddg¦  «        g¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d „ Z&d!„ Z'd"„ Z(ej                             d#d$¦  «        d%„ ¦   «         Z)d&„ Z*ej                             d' ej+        d(¦  «         ej+        d)¦  «        g¦  «        d*„ ¦   «         Z,ej                             d+ ej+        d,¦  «         ej+        d-¦  «         ej+        d.¦  «        g¦  «        d/„ ¦   «         Z-d0„ Z.d1„ Z/d2„ Z0d3S )4ÚTestMultivariateNormalc                 óf  — t          j        d¦  «        }t          j        d¦  «        }t          t          t
          j        d||¦  «         t          t          t
          j        d||¦  «         t          t          t
          j        d||¦  «         t          t          t
          j        d||¦  «         d S )NrI   rH   ©r   r
   ©r   r
   rH   )r9   ÚarangeÚidentityÚassert_raisesrN   r   r¥   r°   )rV   Úmur¿   s      r@   Útest_input_shapez'TestMultivariateNormal.test_input_shape'  sŠ   € ÝŒY�q‰\Œ\ˆÝŒk˜!‰nŒnˆÝ•jÕ"5Ô"9¸6À2ÀsÑKÔKÐKÝ•jÕ"5Ô"9¸9ÀbÈ#ÑNÔNÐNÝ•jÕ"5Ô"9¸6À2ÀsÑKÔKÐKÝ•jÕ"5Ô"9¸9ÀbÈ#ÑNÔNÐNÐNÐNrB   c                 óp  — t           j                             d¦  «         d\  }}}t          j        |||¦  «        }t          |j        d¦  «         t           j                             d¦  «        }t           j                             d¦  «        }t          j        t           j                             d¦  «        ¦  «        }t          j        |||¦  «        }t          |j        d¦  «         d\  }}}t          j	        |||¦  «        }t          |j        d¦  «         t           j                             d¦  «        }t           j                             d¦  «        }t          j        t           j                             d¦  «        ¦  «        }t          j	        |||¦  «        }t          |j        d¦  «         d S )NéÒ  )ç      ø?g333333û?ç      @r   rc   )
r9   rŒ   r    r   r¥   r   Úndimrß   Úabsr°   )rV   r\   r¨   r¿   r¥   r°   s         r@   Útest_scalar_valuesz)TestMultivariateNormal.test_scalar_values/  sX  € Ý
Œ	�Š�tÑÔÐð %‰ˆˆ4�Ý!Ô% a¨¨sÑ3Ô3ˆÝ�S”X˜qÑ!Ô!Ð!õ ŒI�OŠO˜AÑÔˆÝŒy�Š˜qÑ!Ô!ˆÝŒf•R”Y—_’_ QÑ'Ô'Ñ(Ô(ˆÝ!Ô% a¨¨sÑ3Ô3ˆÝ�S”X˜qÑ!Ô!Ð!ð %‰ˆˆ4�Ý!Ô% a¨¨sÑ3Ô3ˆÝ�S”X˜qÑ!Ô!Ð!õ ŒI�OŠO˜AÑÔˆÝŒy�Š˜qÑ!Ô!ˆÝŒf•R”Y—_’_ QÑ'Ô'Ñ(Ô(ˆÝ!Ô% a¨¨sÑ3Ô3ˆÝ�S”X˜qÑ!Ô!Ð!Ð!Ð!rB   c                 ó¾  — t           j                             d¦  «         t           j                             d¦  «        }t           j                             d¦  «        }t          j        t           j                             d¦  «        ¦  «        }t          j        |||¦  «        }t          j        |||¦  «        }t          |t          j	        |¦  «        ¦  «         d S ©Nrð   rc   )
r9   rŒ   r    rß   rô   r   r¦   r¥   r   Úlog©rV   r\   r¨   r¿   Úd1Úd2s         r@   Útest_logpdfz"TestMultivariateNormal.test_logpdfJ  óŸ   € å
Œ	�Š�tÑÔÐÝŒI�OŠO˜AÑÔˆÝŒy�Š˜qÑ!Ô!ˆÝŒf•R”Y—_’_ QÑ'Ô'Ñ(Ô(ˆÝ Ô'¨¨4°Ñ5Ô5ˆÝ Ô$ Q¨¨cÑ2Ô2ˆÝ˜�BœF 2™JœJÑ'Ô'Ð'Ð'Ð'rB   c                 ó²  — t           j                             d¦  «         t           j                             d¦  «        }t	          j        |¦  «        }t	          j        |¦  «        }t	          j        |d d¦  «        }t	          j        |d d¦  «        }t          |t          j        |¦  «        ¦  «         t          |t          j        |¦  «        ¦  «         d S ©Nrð   rc   r
   )	r9   rŒ   r    rß   r   r¦   r¥   r   rø   ©rV   r\   rú   rû   Úd3Úd4s         r@   Útest_logpdf_default_valuesz1TestMultivariateNormal.test_logpdf_default_valuesT  ó©   € õ 	Œ	�Š�tÑÔÐÝŒI�OŠO˜AÑÔˆÝ Ô'¨Ñ*Ô*ˆÝ Ô$ QÑ'Ô'ˆå Ô'¨¨4°Ñ3Ô3ˆÝ Ô$ Q¨¨aÑ0Ô0ˆÝ˜�BœF 2™JœJÑ'Ô'Ð'Ý˜�BœF 2™JœJÑ'Ô'Ð'Ð'Ð'rB   c                 ó¾  — t           j                             d¦  «         t           j                             d¦  «        }t           j                             d¦  «        }t          j        t           j                             d¦  «        ¦  «        }t          j        |||¦  «        }t          j        |||¦  «        }t          |t          j	        |¦  «        ¦  «         d S r÷   )
r9   rŒ   r    rß   rô   r   r±   r°   r   rø   rù   s         r@   Útest_logcdfz"TestMultivariateNormal.test_logcdfa  rý   rB   c                 ó²  — t           j                             d¦  «         t           j                             d¦  «        }t	          j        |¦  «        }t	          j        |¦  «        }t	          j        |d d¦  «        }t	          j        |d d¦  «        }t          |t          j        |¦  «        ¦  «         t          |t          j        |¦  «        ¦  «         d S rÿ   )	r9   rŒ   r    rß   r   r±   r°   r   rø   r   s         r@   Útest_logcdf_default_valuesz1TestMultivariateNormal.test_logcdf_default_valuesk  r  rB   c                 ó~  — t           j                             d¦  «         d}t           j                             |¦  «        }t	          d|dz   ¦  «        D ]h}t           j                             ||¦  «        }t          j        ||j        ¦  «        }t          ||d¬¦  «        }t          |j	        j
        |¦  «         Œid S )Nrð   re   r
   TrZ   )r9   rŒ   r    rß   ÚrangeÚdotr“   r   r   r•   r‹   )rV   r¼   r¨   Úexpected_rankrã   r¿   Údistns          r@   Ú	test_rankz TestMultivariateNormal.test_rankx  s¦   € å
Œ	�Š�tÑÔÐØˆÝŒy�Š˜qÑ!Ô!ˆÝ" 1 a¨!¡e™_œ_ð 	?ð 	?ˆMÝ”	—’  =Ñ1Ô1ˆAÝ”&˜˜AœC‘.”.ˆCÝ'¨¨cÀ$ÐGÑGÔGˆEÝ˜Ô)Ô.°Ñ>Ô>Ð>Ð>ð		?ð 	?rB   c           	      ó  — t          dd¦  «        D �]ò}t          j                             |¦  «        }t          d|¦  «        D �]¾}t          j                             ||¦  «        }t          j        ||j        ¦  «        }t          j        ||f¦  «        }||d |…d |…f<   t          j        |¦  «        }|d |…         |d |…<   t          |¦  «        }t          j        |t          j        ||j        ¦  «        ¦  «        }	t          j        ||¦  «        }
t          t          j        |¦  «        |d¬¦  «        }t          t          j        |¦  «        |d¬¦  «        }t          t          j        |¦  «        |	d¬¦  «        }t          |j
        j        |¦  «         t          |j
        j        |¦  «         t          |j
        j        |¦  «         |                     |d |…         ¦  «        }|                     |¦  «        }|                     |
¦  «        }t          ||¦  «         t          ||¦  «         |                     |d |…         ¦  «        }|                     |¦  «        }|                     |
¦  «        }t          ||¦  «         t          ||¦  «         |
|d d …df         z   }|                     |¦  «        }|                     |¦  «        }t          |d¦  «         t          |t          j         ¦  «         �ŒÀ�Œôd S )Nr
   rc   TrZ   rg   rÅ   )r
  r9   rŒ   rß   r  r“   r¸   rä   r   r   r•   r‹   r¥   r   r¦   Úinf)rV   r¼   ÚzÚkrã   Úcov_kkÚcov_nnr\   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                          r@   Útest_degenerate_distributionsz4TestMultivariateNormal.test_degenerate_distributionsƒ  sÎ  € å�q˜!‘”ð 0	6ñ 0	6ˆAÝ”	—’ Ñ"Ô"ˆAÝ˜1˜a‘[”[ð .6ñ .6�å”I—O’O A qÑ)Ô)�Ýœ  1¤3™œ�õ œ 1 a &Ñ)Ô)�Ø!'��r˜�r˜2˜A˜2�v‘õ ”H˜Q‘K”K�Ø˜"˜1˜"œ��"�1�"‘õ /¨qÑ1Ô1�Ýœ ¥2¤6¨&°!´#Ñ#6Ô#6Ñ7Ô7�Ý”F˜1˜a‘L”L�õ /­r¬x¸©{¬{¸FØ>BðDñ Dô D�å.­r¬x¸©{¬{¸FØ>BðDñ Dô D�å.­r¬x¸©{¬{¸FØ>BðDñ Dô D�å˜XÔ0Ô5°qÑ9Ô9Ð9Ý˜XÔ0Ô5°qÑ9Ô9Ð9Ý˜XÔ0Ô5°qÑ9Ô9Ð9Ø!Ÿš a¨¨¨¤eÑ,Ô,�Ø!Ÿš a™œ�Ø!Ÿš a™œ�Ý ¨Ñ/Ô/Ð/Ý ¨Ñ/Ô/Ð/Ø$ŸOšO¨A¨b¨q¨b¬EÑ2Ô2�	Ø$ŸOšO¨AÑ.Ô.�	Ø$ŸOšO¨AÑ.Ô.�	Ý 	¨9Ñ5Ô5Ð5Ý 	¨9Ñ5Ô5Ð5ð ˜Q˜q˜q˜q "˜uœX™�Ø&Ÿlšl¨6Ñ2Ô2�Ø!)§¢°Ñ!8Ô!8�õ ˜[¨#Ñ.Ô.Ð.Ý˜^­b¬f¨WÑ5Ô5Ð5Ñ5ñ].6ð0	6ð 0	6rB   c                 óL  — d}t          dd¦  «        D �]}t          d|¦  «        D ]û}t          j        |¦  «        }t          |¦  «        d d …d |…f         }t          j        ||j        ¦  «        }t          j        |||¬¦  «        }t          j        |||d¬¦  «        }t          |j
        |¦  «         t          j        |dk    ¦  «        sJ ‚t          j        |||d¬¦  «        }	t          |	j
        |¦  «         t          j        |	t          j         k    ¦  «        sJ ‚Œü�Œd S )	Né
   rH   rd   r
   ©r¨   r¿   r�   T)r¨   r¿   r[   rÅ   )r
  r9   r¸   rä   r  r“   r   r¡   r¥   r   r�   Úallr¦   r  )
rV   r  r¼   ÚrÚmnrâ   ÚvrÚXr¥   r¦   s
             r@   Útest_degenerate_arrayz,TestMultivariateNormal.test_degenerate_array·  s?  € ð ˆÝ�q˜!‘”ð 	0ñ 	0ˆAÝ˜1˜a‘[”[ð 0ð 0�Ý”X˜a‘[”[�Ý.¨qÑ1Ô1°!°!°!°R°a°R°%Ô8�Ý”V˜A˜qœs‘^”^�Ý'Ô+°¸À!ÐDÑDÔD�å)Ô-¨a°b¸bØ=AðCñ Cô C�å˜SœX qÑ)Ô)Ð)Ý”v˜c CšiÑ(Ô(Ð(Ð(Ð(å,Ô3°A¸BÀBØCGðIñ Iô I�å˜Vœ[¨!Ñ,Ô,Ð,Ý”v˜f­¬ wÒ.Ñ/Ô/Ð/Ð/Ð/Ð/ñ0ð	0ð 	0rB   c                 óf  — d}d}d}t          j        ||z  ¦  «        }||z   }t          j        ||ft          ¬¦  «        }t          j        ||¦  «         d|| d …| d …f<   t          t          j                             |¦  «        d¦  «         t          t          j                             |d |…d |…f         ¦  «        t           j	        ¦  «         t          t           j                             |d |…d |…f         ¦  «        d|f¦  «         t          |¦  «        }t          |j        |¦  «         d S )Ng     @�@éd   rH   ©Údtyper   r
   )r9   Úexpr¸   ÚfloatÚfill_diagonalr   rÆ   rº   Údetr  r   Úslogdetr   rŠ   )rV   Úlarge_total_logÚnposÚnzeroÚlarge_entryr¼   r¿   r”   s           r@   Útest_large_pseudo_determinantz4TestMultivariateNormal.test_large_pseudo_determinantÍ  s-  € ð
 !ˆØˆØˆÝ”f˜_¨tÑ3Ñ4Ô4ˆØ�5‰LˆÝŒh˜˜1�v¥UÐ+Ñ+Ô+ˆÝ
Ô˜˜kÑ*Ô*Ð*Ø !ˆˆUˆFˆGˆG�e�V�W�WÐÑõ 	•U”\×%Ò% cÑ*Ô*¨AÑ.Ô.Ð.Ý•U”\×%Ò% c¨%¨4¨%°°$°¨,Ô&7Ñ8Ô8½"¼&ÑAÔAÐAÝ�œ	×)Ò)¨#¨e¨t¨e°U°d°U¨lÔ*;Ñ<Ô<Ø˜OÐ,ñ	.ô 	.ð 	.õ �3‰iŒiˆÝ˜œ oÑ6Ô6Ð6Ð6Ð6rB   c                 ó¸  — t           j                             d¦  «         d}t           j                             ||¦  «        }t          j        ||j        ¦  «        }t           j                             |¦  «        }t           j                             dd|¦  «        }t          j        |||¦  «        }t          j        |||¦  «        }t          d¦  «        D ]‚}t          d¦  «        D ]p}	t          j        |||	f         ||¦  «        }
t          |
|||	f         ¦  «         t          j        |||	f         ||¦  «        }
t          |
|||	f         d¬¦  «         ŒqŒƒd S )Nrð   re   rH   rI   çü©ñÒMbP?©Úrtol)r9   rŒ   r    rß   r  r“   r   r¥   r°   r
  r   )rV   r¼   Údatar¿   r¨   r+  Údesired_pdfÚdesired_cdfÚiÚjÚactuals              r@   Útest_broadcastingz(TestMultivariateNormal.test_broadcastingå  sM  € Ý
Œ	�Š�tÑÔÐØˆõ Œy�Š˜q !Ñ$Ô$ˆÝŒf�T˜4œ6Ñ"Ô"ˆÝŒy�Š˜qÑ!Ô!ˆõ ŒI�OŠO˜A˜q !Ñ$Ô$ˆõ *Ô-¨a°°sÑ;Ô;ˆÝ)Ô-¨a°°sÑ;Ô;ˆÝ�q‘”ð 	Eð 	EˆAÝ˜1‘X”Xð Eð E�Ý,Ô0°°1°a°4´¸$ÀÑDÔD�Ý ¨°A°a°CÔ(8Ñ9Ô9Ð9å,Ô0°°1°a°4´¸$ÀÑDÔD�Ý ¨°A°a°CÔ(8¸tÐDÑDÔDÐDÐDðEð	Eð 	ErB   c                 ó6  — t          j        ddd¦  «        }d\  }}|dz  }t          j        |||¦  «        }t	          j        |||¦  «        }t          ||¦  «         t          j        |||¦  «        }t	          j        |||¦  «        }t          ||¦  «         d S )Nr   rH   r%  )ç333333ó?çÍÌÌÌÌÌì?ç      à?)r9   Úlinspacer   r¥   r   r   r°   )rV   r\   r¨   r¿   Úscalerú   rû   s          r@   Útest_normal_1Dz%TestMultivariateNormal.test_normal_1Dý  s�   € õ ŒK˜˜1˜bÑ!Ô!ˆØ‰	ˆˆcØ�S‘ˆÝŒX�a˜˜uÑ%Ô%ˆÝ Ô$ Q¨¨cÑ2Ô2ˆÝ˜˜BÑÔÐåŒX�a˜˜uÑ%Ô%ˆÝ Ô$ Q¨¨cÑ2Ô2ˆÝ˜˜BÑÔÐÐÐrB   c                 óŒ  — t          j        ddg¦  «        }t          j        ddgddgg¦  «        }d}d|dz
  z  }t          j        d	d|¦  «        }t          j        ||¦  «        \  }}t          j        ||d
f¦  «        }||d d …d d …d	f<   ||d d …d d …df<   t          j        |||¦  «        }	t          |	|d	¬¦  «        }
t          |	|d¬¦  «        }t          j        ||d	         |d         dz  ¬¦  «        }t          j        ||d         |d         dz  ¬¦  «        }t          |
|dd¬¦  «         t          ||dd¬¦  «         d S )Nrò   g      @rI  r›   ç333333ã?i  rd   r
   r   rH   r…   ©r   r   ©ÚlocrK  )r
   r
   ç{®Gáz„?©r>  Úatol)
r9   rÇ   rJ  ÚmeshgridÚemptyr   r¥   r/   r   r   )rV   r¨   r¿   r¼   ÚdeltarÛ   ÚxvÚyvÚposr¥   Úmargin_xÚmargin_yÚgauss_xÚgauss_ys                 r@   Útest_marginalizationz+TestMultivariateNormal.test_marginalization  sj  € õ Œx˜˜c˜
Ñ#Ô#ˆÝŒh˜˜S˜	 C¨ 9Ð-Ñ.Ô.ˆØˆØ�Q˜‘U‘ˆåŒK˜˜1˜aÑ Ô ˆÝ”˜Q Ñ"Ô"‰ˆˆBÝŒh˜˜1˜a�yÑ!Ô!ˆØˆˆAˆAˆAˆqˆqˆq�!ˆG‰ØˆˆAˆAˆAˆqˆqˆq�!ˆG‰Ý!Ô% c¨4°Ñ5Ô5ˆõ ˜˜U¨Ð+Ñ+Ô+ˆÝ˜˜U¨Ð+Ñ+Ô+ˆõ ”(˜1 $ q¤'°°T´¸cÑ1AÐBÑBÔBˆÝ”(˜1 $ q¤'°°T´¸cÑ1AÐBÑBÔBˆÝ˜ '°¸4Ð@Ñ@Ô@Ð@Ý˜ '°¸4Ð@Ñ@Ô@Ð@Ð@Ð@rB   c                 óú  — t           j                             d¦  «         t           j                             d¦  «        }t           j                             d¦  «        }t          j        t           j                             d¦  «        ¦  «        }t          ||¦  «        }t          |                     |¦  «        t          j        |||¦  «        ¦  «         t          |                     |¦  «        t          j        |||¦  «        ¦  «         t          | 	                    |¦  «        t          j	        |||¦  «        ¦  «         t          | 
                    |¦  «        t          j
        |||¦  «        ¦  «         d S r÷   )r9   rŒ   r    rß   rô   r   r   r¥   r¦   r°   r±   )rV   r\   r¨   r¿   Únorm_frozens        r@   Útest_frozenz"TestMultivariateNormal.test_frozen$  s:  € å
Œ	�Š�tÑÔÐÝŒI�OŠO˜AÑÔˆÝŒy�Š˜qÑ!Ô!ˆÝŒf•R”Y—_’_ QÑ'Ô'Ñ(Ô(ˆÝ)¨$°Ñ4Ô4ˆÝ˜Ÿš¨Ñ*Ô*Õ,?Ô,CÀAÀtÈSÑ,QÔ,QÑRÔRÐRÝ˜×*Ò*¨1Ñ-Ô-Ý+Ô2°1°d¸CÑ@Ô@ñ	Bô 	Bð 	Bå˜Ÿš¨Ñ*Ô*Õ,?Ô,CÀAÀtÈSÑ,QÔ,QÑRÔRÐRÝ˜×*Ò*¨1Ñ-Ô-Ý+Ô2°1°d¸CÑ@Ô@ñ	Bô 	Bð 	Bð 	Bð 	BrB   rJ   rH   r
   c                 óæ   — t          j        d¦  «        }t          j        d¦  «        }t          ||¦  «        }t          j        |j        |¦  «        sJ ‚t          j        |j        |¦  «        sJ ‚d S )N©rH   rH   )r9   rP   rQ   r   Úallcloser¨   r¿   )rV   rJ   r¨   Úcov_should_bera  s        r@   Ú2test_frozen_multivariate_normal_exposes_attributeszITestMultivariateNormal.test_frozen_multivariate_normal_exposes_attributes2  sh   € õ Œw�t‰}Œ}ˆÝœ˜q™	œ	ˆÝ)¨$°
Ñ;Ô;ˆÝŒ{˜;Ô+¨TÑ2Ô2Ð2Ð2Ð2ÝŒ{˜;œ?¨MÑ:Ô:Ð:Ð:Ð:Ð:Ð:rB   c           
      óÆ  — t           j                             d¦  «         d}t           j                             ||¦  «        }t          j        ||j        ¦  «        }t          j                             |¦  «        \  }}t          j	        |d¦  «        }d|d<   d|d<   t          j        |t          j        t          j
        |¦  «        |j        ¦  «        ¦  «        }d}t          ||¬	¦  «        }t          |j        |¬	¦  «        }t          |j        t          j        t          j        |d d…         ¦  «        ¦  «        ¦  «         t          |j         |j        ¦  «         d S )
Nrð   rf   rI  rÄ   r   çH¯¼šò×z>rg   çñhãˆµøä>)Úcond)r9   rŒ   r    rß   r  r“   rÆ   rº   r»   Úfullrp   r   Úpinvr   rŠ   r‘   rø   )	rV   r¼   r\   r¿   rã   râ   rk  r”   Úpsd_pinvs	            r@   Útest_pseudodet_pinvz*TestMultivariateNormal.test_pseudodet_pinv@  s  € õ 	Œ	�Š�tÑÔÐØˆÝŒI�OŠO˜A˜qÑ!Ô!ˆÝŒf�Q˜œ‰nŒnˆÝŒ|× Ò  Ñ%Ô%‰ˆˆ1ÝŒG�A�s‰OŒOˆØˆˆ!‰Øˆˆ"‰ÝŒf�Q�œ�rœw q™zœz¨1¬3Ñ/Ô/Ñ0Ô0ˆð ˆÝ�3˜TÐ"Ñ"Ô"ˆÝ˜œ tÐ,Ñ,Ô,ˆõ 	˜œ¥b¤f­R¬V°A°c°r°c´F©^¬^Ñ&<Ô&<Ñ=Ô=Ð=õ 	˜œ˜ xÔ'8Ñ9Ô9Ð9Ð9Ð9rB   c                 óL   — g d¢g d¢g}t          t          t          |¦  «         d S )NrL   ©re   rc   rd   ©rì   rN   r   ©rV   r¿   s     r@   Útest_exception_nonsquare_covz3TestMultivariateNormal.test_exception_nonsquare_covZ  s,   € Øˆyˆy˜)˜)˜)Ð$ˆÝ•j¥$¨Ñ,Ô,Ð,Ð,Ð,rB   c                 óº   — ddgdt           j        gg}t          t          t          |¦  «         ddgdt           j        gg}t          t          t          |¦  «         d S )Nr
   r   )r9   Únanrì   rN   r   r  )rV   Úcov_nanÚcov_infs      r@   Útest_exception_nonfinite_covz3TestMultivariateNormal.test_exception_nonfinite_cov^  sT   € Ø�q�6˜A�rœv˜;Ð'ˆÝ•j¥$¨Ñ0Ô0Ð0Ø�q�6˜A�rœv˜;Ð'ˆÝ•j¥$¨Ñ0Ô0Ð0Ð0Ð0rB   c                 óL   — ddgddgg}t          t          t          |¦  «         d S )Nr
   r   rg   rr  rs  s     r@   Útest_exception_non_psd_covz1TestMultivariateNormal.test_exception_non_psd_covd  s,   € Ø�1ˆv˜˜2�wÐˆÝ•j¥$¨Ñ,Ô,Ð,Ð,Ð,rB   c                 óÐ  — t           j                             d¦  «         t           j                             d¦  «        }t           j                             d¦  «        }t          j        d¦  «        }t           j        j        }t          |t          ||¦  «         t          |t          j	        |||¦  «         t          |t          j
        |||¦  «         t          |t          j        |||¦  «         t          |t          j        |||¦  «         ddgddgg}d}t          j        t           j        j        |¬¦  «        5  t          |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nrð   rc   )rc   rc   rÄ   rÅ   z0When `allow_singular is False`, the input matrixrF   ©r¿   )r9   rŒ   r    rß   rP   rº   ÚLinAlgErrorrì   r   r¥   r¦   r°   r±   rM   r	   )rV   r\   r¨   r¿   ÚeÚmsgs         r@   Útest_exception_singular_covz2TestMultivariateNormal.test_exception_singular_covh  sx  € Ý
Œ	�Š�tÑÔÐÝŒI�OŠO˜AÑÔˆÝŒy�Š˜qÑ!Ô!ˆÝŒg�f‰oŒoˆÝŒIÔ!ˆÝ�aÕ,¨d°CÑ8Ô8Ð8Ý�aÕ,Ô0°!°T¸3Ñ?Ô?Ð?Ý�aÕ,Ô3°Q¸¸cÑBÔBÐBÝ�aÕ,Ô0°!°T¸3Ñ?Ô?Ð?Ý�aÕ,Ô3°Q¸¸cÑBÔBÐBð �Bˆx˜"˜b˜Ð"ˆØ@ˆÝŒ]�2œ9Ô0¸Ð<Ñ<Ô<ð 	)ð 	)Ý CÐ(Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   Ä=EÅEÅ"Ec                 ó   — t          j        g d¢¦  «        }t          j        ddd¦  «        }d|z  dz
  }|t          j        |¦  «        z   }t          j        |||g¦  «        j        }t          j        g d¢d¦  «        }t          j        g d¢g d	¢g d
¢gd¦  «        }t          j        |||¦  «        }t          ||d¬¦  «         t          j        g d¢¦  «        }	t          j        |||¦  «        }
t          |
|	d¬¦  «         t          j        g d¢¦  «        }t          j        ||g¦  «        j        }t          j        ddgd¦  «        }t          j        ddgddggd¦  «        }t          j        |||¦  «        }t          ||d¬¦  «         d S )N)g¥0Ò÷Q-?gox'‚¤V?g[S,¸� t?gäúóDB…?g³èc_.¹Œ?r   rH   rc   rI   )r
   rI   rH   Úd©r
   rH   r   )rH   rc   rI  )r   rI  rI   ç»½×Ùß|Û=©rT  )gwÐk:¢E]?gë®Ì™ýZ›?g¶0Ëñµ?gLÿß8»?gA¿G*ÀÐ?gñhãˆµøô>)gòIÙ‰?gˆï—Gå­?gÆ�)å‰Ç?gÄ—h»Ú?g•™óEEå?r
   rj  )	r9   rÇ   rJ  Úcosr“   r   r¥   r   r°   )rV   Úr_pdfr\   r  r  r(  r¨   r¿   r¥   Úr_cdfr°   Úr_cdf2Úr2Úmean2Úcov2Úcdf2s                   r@   Útest_R_valuesz$TestMultivariateNormal.test_R_values{  sº  € õ ”ð 6ð 6ð 6ñ 7ô 7ˆõ ŒK˜˜1˜aÑ Ô ˆØ�‰E�A‰IˆØ•”�q‘	”	‰MˆÝŒH�a˜˜A�YÑÔÔ!ˆåŒx˜	˜	˜	 3Ñ'Ô'ˆÝŒh˜	˜	˜	 : : :¨z¨z¨zÐ:¸CÑ@Ô@ˆå!Ô% a¨¨sÑ3Ô3ˆÝ˜˜U¨Ð/Ñ/Ô/Ð/õ ”ð 6ð 6ð 6ñ 7ô 7ˆõ "Ô% a¨¨sÑ3Ô3ˆÝ˜˜U¨Ð.Ñ.Ô.Ð.õ ”ð 3ð 3ð 3ñ 4ô 4ˆõ ŒX�q˜!�fÑÔÔˆå”˜!˜Q˜ Ñ%Ô%ˆÝŒx˜!˜Q˜ ! Q Ð(¨#Ñ.Ô.ˆå"Ô& r¨5°$Ñ7Ô7ˆÝ˜˜f¨4Ð0Ñ0Ô0Ð0Ð0Ð0rB   c                 óÆ   — t          j        d¦  «        }t          j        d¦  «        }t          ||d¬¦  «        }|                     ¦   «         }t	          |ddg¦  «         d S )NrH   ©rH   rH   TrZ   r   )r9   r¸   r   r¡   r   )rV   r¨   rJ   ÚmodelÚsamples        r@   Ú,test_multivariate_normal_rvs_zero_covariancezCTestMultivariateNormal.test_multivariate_normal_rvs_zero_covariance»  sY   € ÝŒx˜‰{Œ{ˆÝ”X˜fÑ%Ô%ˆ
Ý# D¨*ÀTÐJÑJÔJˆØ—’‘”ˆÝ�V˜a ˜VÑ$Ô$Ð$Ð$Ð$rB   c                 ó’  — d}d}t          j        t          j        |¦  «        d|¬¦  «        }t	          |j        ||f¦  «         t          j        d t          j        ddgddgg¦  «        |¬¦  «        }t	          |j        |df¦  «         t          dd¬¦  «        }|                     |¦  «        }t	          |j        |f¦  «         d S )	Ni,  re   r
   r&  rH   rš   r   rÃ   )r   r¡   r9   r¸   r   r;   rÇ   )rV   ÚNrƒ  r“  râ   s        r@   Útest_rvs_shapez%TestMultivariateNormal.test_rvs_shapeÂ  sÌ   € ð ˆØˆÝ$Ô(­b¬h°q©k¬k¸qÀqÐIÑIÔIˆÝ�V”\ A q 6Ñ*Ô*Ð*å$Ô(¨dÝ-/¬X¸¸2°wÀÀQÀÐ6HÑ-IÔ-IØ./ð1ñ 1ô 1ˆõ 	�V”\ A q 6Ñ*Ô*Ð*å Q¨AÐ.Ñ.Ô.ˆØ—’�q‘”ˆÝ�V”\ A 5Ñ)Ô)Ð)Ð)Ð)rB   c                 óÆ  — t           j                             d¦  «         d}t           j                             |¦  «        }t           j                             ||¦  «        }t          j        ||j        ¦  «        }d}t          j        |||¦  «        }t          t          j	        |j        ¦  «        |d¬¦  «         t          | 
                    d¦  «        |d¬¦  «         d S )Né  rI   éˆ  rš   r=  r   )r9   rŒ   r    rß   r  r“   r   r¡   r   r¿   r¨   )rV   r¼   r¨   rá   r¿   r�   r“  s          r@   Útest_large_samplez(TestMultivariateNormal.test_large_sampleÓ  sµ   € õ 	Œ	�Š�tÑÔÐàˆÝŒy�Š˜qÑ!Ô!ˆÝŒI�OŠO˜A˜qÑ!Ô!ˆÝŒf�Q˜œ‰nŒnˆØˆå$Ô(¨¨s°DÑ9Ô9ˆå�œ˜vœxÑ(Ô(¨#°DÐ9Ñ9Ô9Ð9Ý˜Ÿš A™œ¨°4Ð8Ñ8Ô8Ð8Ð8Ð8rB   c                 ó´  — t           j                             d¦  «         d}t           j                             |¦  «        }t           j                             ||¦  «        }t          j        ||j        ¦  «        }t          ||¦  «        }t          |                     ¦   «         t          j        ||¦  «        ¦  «         t           j	         
                    |¦  «        d         }d|t          j        dt           j        z  ¦  «        dz   z  t          j        t          j        |¦  «        ¦  «        z   z  }t          ||                     ¦   «         ¦  «         d S )Nr™  rI   r   rI  rH   r
   )r9   rŒ   r    rß   r  r“   r   r   r§   rº   Úeigrø   Úpir‘   )rV   r¼   r¨   rá   r¿   rÀ   ÚeigsÚdesireds           r@   Útest_entropyz#TestMultivariateNormal.test_entropyä  sþ   € Ý
Œ	�Š�tÑÔÐàˆÝŒy�Š˜qÑ!Ô!ˆÝŒI�OŠO˜A˜qÑ!Ô!ˆÝŒf�Q˜œ‰nŒnˆå   sÑ+Ô+ˆõ 	˜BŸJšJ™LœLÕ*=Ô*EÀdÈCÑ*PÔ*PÑQÔQÐQõ Œy�}Š}˜SÑ!Ô! !Ô$ˆØ˜1¥¤ q­2¬5¡yÑ 1Ô 1°AÑ 5Ñ6½¼ÅÄÀtÁÄÑ9MÔ9MÑMÑNˆÝ˜G R§Z¢Z¡\¤\Ñ2Ô2Ð2Ð2Ð2rB   c                 ó”   — t          j        g d¢¦  «        }d}t          t          j        t	          |¦  «        ¦  «        |¦  «         d S )N©r
   r
   r
   rI  )r9   rÇ   r   r1  r   )rV   Úalphar   s      r@   Útest_lnBzTestMultivariateNormal.test_lnBö  s@   € Ý”˜˜˜Ñ#Ô#ˆØˆå�BœF¥4¨¡;¤;Ñ/Ô/°Ñ9Ô9Ð9Ð9Ð9rB   c                 ó¦  — t           j                             d¦  «        }ddg}t          j        d¦  «        }|                     d¦  «        dz  dz
  }|                     d¦  «        dz  dz
  }t	          j        ||||¬¦  «        }t	          j        |||¦  «        }t	          j        |||¦  «        }t          j        |ddd	…f         |dd	d…f         fd
¬¦  «        }	t          j        |dd	d…f         |ddd	…f         fd
¬¦  «        }
t	          j        |	||¦  «        }t	          j        |
||¦  «        }||z   |z
  |z
  }t          ||¦  «         d S )Nì   FòYc@Y r   rH   )re   rI   rH   rd   rI   ©Úlower_limit.r
   rg   r…   )r9   rŒ   r�   rQ   r   r°   Úconcatenater   )rV   r–   r¨   r¿   ÚaÚbÚcdf1Úcdf2aÚcdf2bÚab1Úab2Úcdf2ab1Úcdf2ab2rŽ  s                 r@   Ú test_cdf_with_lower_limit_arraysz7TestMultivariateNormal.test_cdf_with_lower_limit_arraysü  sX  € åŒi×#Ò#Ð$7Ñ8Ô8ˆØ�1ˆvˆÝŒf�Q‰iŒiˆØ�JŠJ�yÑ!Ô! !Ñ# aÑ'ˆØ�JŠJ�yÑ!Ô! !Ñ# aÑ'ˆå"Ô& q¨$°ÀÐCÑCÔCˆå#Ô'¨¨4°Ñ5Ô5ˆÝ#Ô'¨¨4°Ñ5Ô5ˆÝŒn˜a  Q q S œk¨1¨S°!°A°#¨X¬;Ð7¸bÐAÑAÔAˆÝŒn˜a  Q q S œk¨1¨S°!°A°#¨X¬;Ð7¸bÐAÑAÔAˆÝ%Ô)¨#¨t°SÑ9Ô9ˆÝ%Ô)¨#¨t°SÑ9Ô9ˆØ�u‰}˜wÑ&¨Ñ0ˆå˜˜dÑ#Ô#Ð#Ð#Ð#rB   c                 óÀ  — t           j                             d¦  «        }|                     d¦  «        }|                     d¦  «        }||j        z  }|                     d¦  «        dz  dz
  }|                     d¦  «        dz  dz
  }t	          j        ||||¬¦  «        }t	          ||¦  «                             ||¬¦  «        }t          j        t	          j        ||||¬¦  «        ¦  «        }t          j        t	          ||¦  «                             ||¬¦  «        ¦  «        }	t          ||d¬¦  «         t          ||d¬¦  «         t          |	|d¬¦  «         d S )	Nr§  rI   ©rI   rI   ©rH   rI   rd   r¨  ç-Cëâ6?r=  )	r9   rŒ   r�   r“   r   r°   r1  r±   r   )
rV   r–   r¨   r¿   r«  r¬  r­  rŽ  Úcdf3Úcdf4s
             r@   Ú%test_cdf_with_lower_limit_consistencyz<TestMultivariateNormal.test_cdf_with_lower_limit_consistency  sJ  € åŒi×#Ò#Ð$7Ñ8Ô8ˆØ�zŠz˜!‰}Œ}ˆØ�jŠj˜Ñ Ô ˆØ�C”E‰kˆØ�JŠJ�vÑÔ˜qÑ  1Ñ$ˆØ�JŠJ�vÑÔ˜qÑ  1Ñ$ˆå"Ô& q¨$°ÀÐCÑCÔCˆÝ" 4¨Ñ-Ô-×1Ò1°!ÀÐ1ÑCÔCˆÝŒvÕ)Ô0°°D¸#È1ÐMÑMÔMÑNÔNˆÝŒvÕ)¨$°Ñ4Ô4×;Ò;¸AÈ1Ð;ÑMÔMÑNÔNˆå˜˜d¨Ð.Ñ.Ô.Ð.Ý˜˜d¨Ð.Ñ.Ô.Ð.Ý˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c                 ó  — t          j        d¦  «        }t          j        d¦  «        }g d¢g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g}t          j        g d¢¦  «        }t	          j        ||||¬¦  «        }t          ||d         |z  ¦  «         d S )	NrI   r£  rh   ©r
   r   r
   ©r   r
   r   ©r
   rg   rg   r
   r¨  r   ©r9   r¸   rQ   rÇ   r   r°   r   )rV   r¨   r¿   r¬  r«  Úexpected_signsr°   s          r@   Útest_cdf_signsz%TestMultivariateNormal.test_cdf_signs"  s£   € åŒx˜‰{Œ{ˆÝŒf�Q‰iŒiˆØˆYˆY˜	˜	˜	 9 9 9¨i¨i¨iÐ8ˆØˆYˆY˜	˜	˜	 9 9 9¨i¨i¨iÐ8ˆåœ . . .Ñ1Ô1ˆÝ!Ô% a¨¨sÀÐBÑBÔBˆÝ˜˜S œV NÑ2Ñ3Ô3Ð3Ð3Ð3rB   c                 ó   — t          j        dt          j        g d¢¦  «        z  ¦  «        }t          j        |¦  «        }d}t          j        t          |¬¦  «        5  t          j	        ddg|¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          ddg|¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢}t          j
        |g d¢|¦  «        }t          t          j
        ||¬¦  «        |¦  «         t          j
        |g d	¢|¦  «        }t          t          j
        |d|¬¦  «        |¦  «         d S )
Nr
   rL   z7`cov` represents a covariance matrix in 3 dimensions...rF   r   )rI  rI  rI  rh   r}  r£  )r9   rp   rÇ   r+   rO   rM   r	   rN   r   r§   r¥   r   )rV   ÚPr•   rW   r\   r=   s         r@   Útest_mean_covz$TestMultivariateNormal.test_mean_cov-  s¿  € åŒG�A�œ   Ñ+Ô+Ñ+Ñ,Ô,ˆÝ Ô0°Ñ3Ô3ˆ
àKˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	<ð 	<ÝÔ'¨¨A¨°
Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<õ Œ]�:¨WÐ5Ñ5Ô5ð 	4ð 	4Ý  A ¨
Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð ˆOˆOˆÝ!Ô% a¨¨¨°JÑ?Ô?ˆÝÕ(Ô,¨Q°JÐ?Ñ?Ô?ÀÑEÔEÐEå!Ô% a¨¨¨°JÑ?Ô?ˆÝÕ(Ô,¨Q°°zÐBÑBÔBÀCÑHÔHÐHÐHÐHs$   ÁBÂBÂBÂ'CÃC
ÃC
c                 ó¢   — ddg}d}t          j        t          |¬¦  «        5  t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr
   rI   z`x` must be two-dimensional.rF   )rM   r	   rN   r   Úfit)rV   r?  Ú	error_msgs      r@   Útest_fit_wrong_fit_data_shapez4TestMultivariateNormal.test_fit_wrong_fit_data_shape@  sš   € Ø�1ˆvˆØ2ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	*ð 	*ÝÔ# DÑ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ¢AÁAÁArØ   )rI   rc   c                 óJ  — t           j                             d¦  «        }|                     d|f¦  «        }t          j        |¦  «        \  }}t          j        |d¬¦  «        t          j        |j        d¬¦  «        }}t          ||d¬¦  «         t          ||d¬¦  «         d S )	Nì   ¼@‡,„Q| r.  r   r…   )ÚddofçVçž¯Ò<r†  r=  )	r9   rŒ   r�   r   rÇ  r¨   r¿   r“   r   )rV   rØ   r–   r\   Úmean_estÚcov_estÚmean_refÚcov_refs           r@   Útest_fit_correctnessz+TestMultivariateNormal.test_fit_correctnessF  s›   € åŒi×#Ò#Ð$4Ñ5Ô5ˆØ�JŠJ˜˜S�zÑ"Ô"ˆÝ/Ô3°AÑ6Ô6Ñˆ�'ÝœG A¨AÐ.Ñ.Ô.µ´°q´sÀÐ0CÑ0CÔ0C�'ˆÝ˜ (°Ð7Ñ7Ô7Ð7Ý˜ ¨uÐ5Ñ5Ô5Ð5Ð5Ð5rB   c                 óÐ   — t          j        dd¦  «        }d}t          j        d¦  «        }t          j        |||¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )N)rH   r
   rI   rÄ   )Úfix_meanÚfix_cov)r9   rl  Ú
atleast_2dr   rÇ  r   )rV   r?  Ú
mean_fixedÚ	cov_fixedr¨   r¿   s         r@   Útest_fit_both_parameters_fixedz5TestMultivariateNormal.test_fit_both_parameters_fixedO  so   € ÝŒw�v˜qÑ!Ô!ˆØˆ
Ý”M "Ñ%Ô%ˆ	Ý'Ô+¨D¸:Ø4=ð?ñ ?ô ?‰	ˆˆcå�T˜:Ñ&Ô&Ð&Ý�S˜)Ñ$Ô$Ð$Ð$Ð$rB   rÔ  r‘  ©rI   c                 óÂ   — d}t          j        t          |¬¦  «        5  t          j        t          j        d¦  «        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzd`fix_mean` must be a one-dimensional array the same length as the dimensionality of the vectors `x`.rF   rH   ©rÔ  ©rM   r	   rN   r   rÇ  r9   rQ   )rV   rÔ  r€  s      r@   Ú"test_fit_fix_mean_input_validationz9TestMultivariateNormal.test_fit_fix_mean_input_validationX  sµ   € ðCˆåŒ]�:¨SÐ1Ñ1Ô1ð 	Bð 	BÝÔ#¥B¤F¨1¡I¤I¸ÐAÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bó   ž)AÁAÁArÕ  rd  )rI   rH   )re   re   c                 óÂ   — d}t          j        t          |¬¦  «        5  t          j        t          j        d¦  «        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzn`fix_cov` must be a two-dimensional square array of same side length as the dimensionality of the vectors `x`.rF   rI   ©rÕ  rÝ  )rV   rÕ  r€  s      r@   Ú+test_fit_fix_cov_input_validation_dimensionzBTestMultivariateNormal.test_fit_fix_cov_input_validation_dimension`  s¶   € ðˆõ Œ]�:¨SÐ1Ñ1Ô1ð 	@ð 	@ÝÔ#¥B¤F¨1¡I¤I°wÐ?Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@rß  c                 óö   — d}t          j        t          |¬¦  «        5  t          j        ddgddgg¦  «        }t          j        t          j        d¦  «        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz2`fix_cov` must be symmetric positive semidefinite.rF   rÄ   rÅ   g      ð¿rH   rá  )rM   r	   rN   r9   rÇ   r   rÇ  rQ   )rV   rÈ  rÕ  s      r@   Ú*test_fit_fix_cov_not_positive_semidefinitezATestMultivariateNormal.test_fit_fix_cov_not_positive_semidefinitej  sÎ   € ØHˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	@ð 	@Ý”h  R ¨2¨s¨)Ð4Ñ5Ô5ˆGÝÔ#¥B¤F¨1¡I¤I°wÐ?Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s   žAA.Á.A2Á5A2c                 ó   — t           j                             d¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        ||j        ¦  «        }t          j        ||d|¬¦  «        }t          j        |¦  «        \  }}t          j        |||¬¦  «         	                    ¦   «         }t          j        ||¬¦  «        \  }	}
t          |	|¦  «         t          j        ||	|
¬¦  «         	                    ¦   «         }||k     sJ ‚|                     d¦  «        }dt          j        ||j        ¦  «        z  }|
|z   }t          j        ||	|¬¦  «         	                    ¦   «         }||k     sJ ‚d S )	NrË  rI   r¶  r.  ©r¨   r¿   r�   rž   rÃ   rÜ  ç:Œ0âŽyE>)r9   rŒ   r�   r  r“   r   r¡   rÇ  r¦   r‘   r   )rV   r–   rQ  rv   r¿   ÚsamplesÚ	mean_freeÚcov_freeÚ	logp_freeÚmean_fixÚcov_fixÚlogp_fixÚmÚcov_perturbedÚlogp_perturbeds                  r@   Útest_fit_fix_meanz(TestMultivariateNormal.test_fit_fix_meanp  sŠ  € ÝŒi×#Ò#Ð$4Ñ5Ô5ˆØ�jŠj˜‰mŒmˆØ�JŠJ�vÑÔˆÝŒf�Q˜œ‰nŒnˆÝ%Ô)¨s¸À#Ø7:ð<ñ <ô <ˆå1Ô5°gÑ>Ô>Ñˆ	�8Ý'Ô.¨w¸YØ3;ð=ñ =ô =ß=@ºS¹U¼Uð 	å/Ô3°GÀcÐJÑJÔJÑˆ�'Ý�X˜sÑ#Ô#Ð#Ý&Ô-¨g¸HØ29ð;ñ ;ô ;ß;>º3¹5¼5ð 	ð ˜)Ò#Ð#Ð#Ð#ð �JŠJ�vÑÔˆØ•2”6˜!˜QœS‘>”>Ñ!ˆØ !™ˆÝ-Ô4°WØ:BØ9FðHñ Hô H÷ 8;²s±u´uð 	ð  Ò(Ð(Ð(Ð(Ð(Ð(rB   c                 ó  — t           j                             d¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        ||j        ¦  «        }t          j        ||d|¬¦  «        }t          j        |¦  «        \  }}t          j        |||¬¦  «         	                    ¦   «         }t          j        ||¬¦  «        \  }	}
t          |	t          j        |d¬	¦  «        ¦  «         t          |
|¦  «         t          j        ||	|
¬¦  «         	                    ¦   «         }||k     sJ ‚|	d
|                     d¦  «        z  z   }t          j        |||
¬¦  «         	                    ¦   «         }||k     sJ ‚d S )NrË  rI   r¶  r.  ræ  rÃ   rá  r   r…   rç  )r9   rŒ   r�   r  r“   r   r¡   rÇ  r¦   r‘   r   r¨   )rV   r–   rQ  rv   r¿   rè  ré  rê  rë  rì  rí  rî  Úmean_perturbedrñ  s                 r@   Útest_fit_fix_covz'TestMultivariateNormal.test_fit_fix_cov�  s•  € ÝŒi×#Ò#Ð$4Ñ5Ô5ˆØ�jŠj˜‰mŒmˆØ�JŠJ�vÑÔˆÝŒf�Q˜œ‰nŒnˆÝ%Ô)¨s¸Ø/2ÀðFñ Fô Fˆå1Ô5°gÑ>Ô>Ñˆ	�8Ý'Ô.¨w¸YØ3;ð=ñ =ô =ß=@ºS¹U¼Uð 	å/Ô3°GÀSÐIÑIÔIÑˆ�'Ý�X�rœw w°QÐ7Ñ7Ô7Ñ8Ô8Ð8Ý�W˜cÑ"Ô"Ð"Ý&Ô-¨g¸HØ29ð;ñ ;ô ;ß;>º3¹5¼5ð 	ð ˜)Ò#Ð#Ð#Ð#ð " D¨3¯:ª:°a©=¬=Ñ$8Ñ8ˆÝ-Ô4°WØ:HØ9@ðBñ Bô B÷ 8;²s±u´uð 	ð  Ò(Ð(Ð(Ð(Ð(Ð(rB   N)1rÊ   rË   rÌ   rî   rõ   rü   r  r  r  r  r#  r,  r:  rE  rL  r_  rb  rM   rÑ   rÒ   r9   rQ   r,   Úfrom_diagonalrg  ro  rt  ry  r{  r�  r�  r”  r—  r›  r¡  r¥  r´  r»  rÂ  rÅ  rÉ  rÒ  rÙ  r¸   rÞ  râ  rä  rò  rõ  rÕ   rB   r@   ræ   ræ   &  sf  € € € € € ðOð Oð Oð"ð "ð "ð6(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð	?ð 	?ð 	?ð26ð 26ð 26ðh0ð 0ð 0ð,7ð 7ð 7ð0Eð Eð Eð0 ð  ð  ðAð Að Að2Bð Bð Bð „[×ÒØàˆBŒF�1‰IŒIØ$ˆJÔ$ a¨ VÑ,Ô,ð	
ñô ð;ð ;ñô ð;ð:ð :ð :ð4-ð -ð -ð1ð 1ð 1ð-ð -ð -ð)ð )ð )ð&>1ð >1ð >1ð@%ð %ð %ð*ð *ð *ð"9ð 9ð 9ð"3ð 3ð 3ð$:ð :ð :ð$ð $ð $ð(/ð /ð /ð$	4ð 	4ð 	4ðIð Ið Ið&*ð *ð *ð „[×Ò˜U FÑ+Ô+ð6ð 6ñ ,Ô+ð6ð%ð %ð %ð „[×Ò˜Z¨(¨"¬(°6Ñ*:Ô*:Ø*2¨"¬(°5©/¬/ð*;ñ <ô <ðBð Bñ<ô <ðBð „[×Ò˜Y¨¨¬°%©¬Ø)1¨¬°&Ñ)9Ô)9Ø)1¨¬°&Ñ)9Ô)9ð);ñ <ô <ð@ð @ñ<ô <ð@ð@ð @ð @ð)ð )ð )ð:)ð )ð )ð )ð )rB   ræ   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestMatrixNormalc           
      ó\  — d}d}t          j        ||fd¦  «        }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }t          t          t
          t          j        d¦  «        ¦  «         t          t          t
          |t          j        d¦  «        |¦  «         t          t          t
          ||t          j        d¦  «        ¦  «         t          t          t
          |||¦  «         t          t          t
          |||¦  «         t          t          t
          |j        ||¦  «         t           j        j	        }t          |t
          j
        ||t          j        ||f¦  «        ¦  «         t          |t
          j
        |t          j        ||f¦  «        |¦  «         t          |t
          ||t          j        ||f¦  «        ¦  «         t          |t
          |t          j        ||f¦  «        |¦  «         d S )Nre   rI   rœ   rI  çffffffæ?)rc   re   rI   r%  )r9   rl  rë   rì   rN   r   r¸   r“   rº   r~  r¡   rP   )rV   Únum_rowsÚnum_colsrá   rŽ   ÚVr  s          r@   Útest_bad_inputzTestMatrixNormal.test_bad_input«  sÎ  € àˆØˆÝŒG�X˜hÐ'¨Ñ-Ô-ˆØ•"”+˜hÑ'Ô'Ñ'­"¬'°8¸XÐ2FÈÑ*LÔ*LÑLˆØ•"”+˜hÑ'Ô'Ñ'­"¬'°8¸XÐ2FÈÑ*LÔ*LÑLˆõ 	•j¥-µ´¸'Ñ1BÔ1BÑCÔCÐCÝ•j¥-°µB´H¸R±L´LÀ!ÑDÔDÐDÝ•j¥-°°Aµr´xÀ±|´|ÑDÔDÐDÝ•j¥-°°A°qÑ9Ô9Ð9Ý•j¥-°°A°qÑ9Ô9Ð9Ý•j¥-°´°a¸Ñ;Ô;Ð;åŒIÔ!ˆå�a�Ô*Ø˜�BœG X¨xÐ$8Ñ9Ô9ñ	;ô 	;ð 	;å�a�Ô*Ø�œ (¨HÐ!5Ñ6Ô6¸ñ	;ô 	;ð 	;õ 	�a�¨¨1­b¬g°xÀÐ6JÑ.KÔ.KÑLÔLÐLÝ�a�¨­2¬7°H¸hÐ3GÑ+HÔ+HÈ!ÑLÔLÐLÐLÐLrB   c                 óÆ  — d}d}t          j        ||fd¦  «        }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }t          j        ||f¦  «        }t          j        |df¦  «        }t          j        d|f¦  «        }t          j        |¦  «        }	t          j        |¦  «        }
t          j        d¦  «        }t	          t          j        |||¬¦  «        j        ||f¦  «         t	          t          j        |¬¦  «        j        ||f¦  «         t	          t          j        |¬	¦  «        j        |df¦  «         t	          t          j        |¬
¦  «        j        d|f¦  «         t	          t          j        ||¬¦  «        j        ||f¦  «         t	          t          j        ||¬¦  «        j        ||f¦  «         t	          t          j        ||¬¦  «        j        ||f¦  «         t	          t          |¬¦  «        j        |	¦  «         t	          t          |¬¦  «        j	        |
¦  «         t	          t          |¬	¦  «        j
        |¦  «         t	          t          |¬	¦  «        j	        |¦  «         t	          t          |¬
¦  «        j
        |¦  «         t	          t          |¬
¦  «        j        |¦  «         t	          t          ||¬¦  «        j	        |
¦  «         t	          t          ||¬¦  «        j        |	¦  «         t	          t          ||¬¦  «        j
        |¦  «         d S )Nre   rI   rœ   rI  rú  r
   ©r¨   ÚrowcovÚcolcov)r¨   )r  )r  )r¨   r  )r¨   r  )r  r  )r9   rl  rë   r¸   r   r   r¡   r;   r  r  r¨   )rV   rû  rü  rá   rŽ   rý  ÚZÚZrÚZcÚIrÚIcÚI1s               r@   Útest_default_inputsz$TestMatrixNormal.test_default_inputsÅ  s:  € àˆØˆÝŒG�X˜hÐ'¨Ñ-Ô-ˆØ•"”+˜hÑ'Ô'Ñ'­"¬'°8¸XÐ2FÈÑ*LÔ*LÑLˆØ•"”+˜hÑ'Ô'Ñ'­"¬'°8¸XÐ2FÈÑ*LÔ*LÑLˆÝŒH�h Ð)Ñ*Ô*ˆÝŒX�x �mÑ$Ô$ˆÝŒX�q˜(�mÑ$Ô$ˆÝŒ[˜Ñ"Ô"ˆÝŒ[˜Ñ"Ô"ˆÝŒ[˜‰^Œ^ˆå•]Ô&¨A°aÀÐBÑBÔBÔHØ Ð)ñ	+ô 	+ð 	+å•]Ô&¨AÐ.Ñ.Ô.Ô4Ø Ð)ñ	+ô 	+ð 	+å•]Ô&¨aÐ0Ñ0Ô0Ô6Ø �]ñ	$ô 	$ð 	$å•]Ô&¨aÐ0Ñ0Ô0Ô6Ø˜�]ñ	$ô 	$ð 	$å•]Ô&¨A°aÐ8Ñ8Ô8Ô>Ø Ð)ñ	+ô 	+ð 	+å•]Ô&¨A°aÐ8Ñ8Ô8Ô>Ø Ð)ñ	+ô 	+ð 	+å•]Ô&¨a¸Ð:Ñ:Ô:Ô@Ø Ð)ñ	+ô 	+ð 	+õ 	•]¨Ð*Ñ*Ô*Ô1°2Ñ6Ô6Ð6Ý•]¨Ð*Ñ*Ô*Ô1°2Ñ6Ô6Ð6Ý•]¨!Ð,Ñ,Ô,Ô1°2Ñ6Ô6Ð6Ý•]¨!Ð,Ñ,Ô,Ô3°RÑ8Ô8Ð8Ý•]¨!Ð,Ñ,Ô,Ô1°2Ñ6Ô6Ð6Ý•]¨!Ð,Ñ,Ô,Ô3°RÑ8Ô8Ð8Ý•]¨°!Ð4Ñ4Ô4Ô;¸RÑ@Ô@Ð@Ý•]¨°!Ð4Ñ4Ô4Ô;¸RÑ@Ô@Ð@Ý•]¨!°AÐ6Ñ6Ô6Ô;¸QÑ?Ô?Ð?Ð?Ð?rB   c                 ó(  — d}d}t          j        ||fd¦  «        }t          j        |d¦  «        }d}t          j        |d¦  «        }d}t          j        |¦  «        }t          j        |¦  «        }	t          t	          |||¬¦  «        j        d|z  ¦  «         t          t	          |||¬¦  «        j        d|	z  ¦  «         t          t	          |||¬¦  «        j        d|z  ¦  «         t          t	          |||¬¦  «        j        d|	z  ¦  «         d S )Nre   rI   rœ   r›   rš   r   )r9   rl  rë   r   r   r  r  )
rV   rû  rü  rá   ÚUvÚUsÚVvÚVsr  r  s
             r@   Útest_covariance_expansionz*TestMatrixNormal.test_covariance_expansionì  s*  € àˆØˆÝŒG�X˜xÐ(¨#Ñ.Ô.ˆÝŒW�X˜sÑ#Ô#ˆØˆÝŒW�X˜sÑ#Ô#ˆØˆåŒ[˜Ñ"Ô"ˆÝŒ[˜Ñ"Ô"ˆå•]¨°"¸RÐ@Ñ@Ô@ÔGØ˜‘Vñ	ô 	ð 	å•]¨°"¸RÐ@Ñ@Ô@ÔGØ˜‘Vñ	ô 	ð 	å•]¨°"¸RÐ@Ñ@Ô@ÔGØ˜‘Vñ	ô 	ð 	å•]¨°"¸RÐ@Ñ@Ô@ÔGØ˜‘Vñ	ô 	ð 	ð 	ð 	rB   c                 ó  — t          dd¦  «        D �]m}t          dd¦  «        D �]X}t          j        ||fd¦  «        }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }t	          |||¬¦  «        }|                     d¬¦  «        }t	          j        |||d¬	¦  «        }t          ||¦  «         |                     d¬¦  «        }	|                     |	¦  «        }
t	          j        |	|||¬¦  «        }t          |
|¦  «         |                     |	¦  «        }t	          j        |	|||¬¦  «        }t          ||¦  «         �ŒZ�Œod S )
Nr
   rc   rœ   rI  rú  r   rð   r·   )r¨   r  r  rž   )	r
  r9   rl  rë   r   r¡   r   r¥   r¦   )rV   rB  rC  rá   rŽ   rý  ÚfrozenÚrvs1Úrvs2r+  Úpdf1Úpdf2Úlogpdf1Úlogpdf2s                 r@   Útest_frozen_matrix_normalz*TestMatrixNormal.test_frozen_matrix_normal  s�  € Ý�q˜‘”ð 	/ñ 	/ˆAÝ˜1˜Q‘Z”Zð /ñ /�Ý”G˜Q˜q˜E 3Ñ'Ô'�Ø�"œ+ a™.œ.Ñ(­2¬7°A°a°5¸#Ñ+>Ô+>Ñ>�Ø�"œ+ a™.œ.Ñ(­2¬7°A°a°5¸#Ñ+>Ô+>Ñ>�å&¨A°aÀÐBÑBÔB�à—z’z¨t�zÑ4Ô4�Ý$Ô(¨a¸À!Ø6:ð<ñ <ô <�å˜T 4Ñ(Ô(Ð(à—J’J¨D�JÑ1Ô1�à—z’z !‘}”}�Ý$Ô(¨°¸1ÀQÐGÑGÔG�Ý˜T 4Ñ(Ô(Ð(à Ÿ-š-¨Ñ*Ô*�Ý'Ô.¨q°qÀÈ1ÐMÑMÔM�Ý˜W gÑ.Ô.Ð.Ñ.ñ)/ð	/ð 	/rB   c                 óŽ  — t          dd¦  «        D �]²}t          dd¦  «        D �]�}t          j        ||fd¦  «        }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }t	          |||¬¦  «        }|                     d¬¦  «        }|                     |¦  «        }|                     |¦  «        }	|                     ¦   «         }
|j	         
                    ¦   «         }|j	         
                    ¦   «         }t          j        ||¦  «        }t          j        |||¬	¦  «        }t          j        |||¬	¦  «        }t          j        ||¬	¦  «        }t          ||d
¬¦  «         t          |	|d
¬¦  «         t          |
|¦  «         �ŒŸ�Œ´d S )Nr
   rc   rœ   rI  rú  r   rð   r·   rÃ   r…  r=  )r
  r9   rl  rë   r   r¡   r¥   r¦   r§   r“   ÚflattenÚkronr   r   )rV   rB  rC  rá   rŽ   rý  r  r+  r  r  Úentropy1ÚvecXÚvecMr¿   r  r  Úentropy2s                    r@   Útest_matches_multivariatez*TestMatrixNormal.test_matches_multivariate  s§  € õ �q˜‘”ð 	4ñ 	4ˆAÝ˜1˜Q‘Z”Zð 4ñ 4�Ý”G˜Q˜q˜E 3Ñ'Ô'�Ø�"œ+ a™.œ.Ñ(­2¬7°A°a°5¸#Ñ+>Ô+>Ñ>�Ø�"œ+ a™.œ.Ñ(­2¬7°A°a°5¸#Ñ+>Ô+>Ñ>�å&¨A°aÀÐBÑBÔB�Ø—J’J¨D�JÑ1Ô1�Ø—z’z !‘}”}�Ø Ÿ-š-¨Ñ*Ô*�Ø!Ÿ>š>Ñ+Ô+�à”s—{’{‘}”}�Ø”s—{’{‘}”}�Ý”g˜a ‘l”l�Ý*Ô.¨t¸$ÀCÐHÑHÔH�Ý-Ô4°TÀÈ#ÐNÑNÔN�Ý.Ô6¸DÀcÐJÑJÔJ�å  d°Ð7Ñ7Ô7Ð7Ý ¨°uÐ=Ñ=Ô=Ð=Ý ¨(Ñ3Ô3Ð3Ñ3ñ)4ð	4ð 	4rB   c           	      óX  — d}d}t          j        ||fd¦  «        }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }d}t          |||¬¦  «        }|                     |d¬	¦  «        }|                     |d
¬	¦  «        }	t          j        |t           j        d d …d d …d d …f         |	t           j        d d …d d …d d …f         fd¬¦  «        }
t          |
j        d|||f¦  «         | 	                    |
¦  «        }t          |j        d|f¦  «         t          d¦  «        D ]M}t          |¦  «        D ];}t          j	        |
||f         |||¬¦  «        }t          ||||f         d¦  «         Œ<ŒNd S )Nre   rI   rœ   rI  rú  r%  r   rð   r�   iá  r   r…   rH   r…  )r9   rl  rë   r   r¡   rª  Únewaxisr   r;   r¦   r
  r   )rV   rû  rü  rá   rŽ   rý  r–  r  ÚX1ÚX2r+  Úarray_logpdfrB  rC  Úseparate_logpdfs                  r@   Útest_array_inputz!TestMatrixNormal.test_array_input4  sÖ  € àˆØˆÝŒG�X˜hÐ'¨Ñ-Ô-ˆØ•"”+˜hÑ'Ô'Ñ'­"¬'°8¸XÐ2FÈÑ*LÔ*LÑLˆØ•"”+˜hÑ'Ô'Ñ'­"¬'°8¸XÐ2FÈÑ*LÔ*LÑLˆØˆå A¨a¸Ð:Ñ:Ô:ˆØ�ZŠZ˜Q¨TˆZÑ2Ô2ˆØ�ZŠZ˜Q¨TˆZÑ2Ô2ˆÝŒN˜B�rœz¨!¨!¨!¨A¨A¨A¨a¨a¨aÐ/Ô0°µB´J¸q¸q¸qÀÀÀÀ1À1À1Ð4DÔ1EÐFÈQÐOÑOÔOˆÝ�Q”W˜q ! X¨xÐ8Ñ9Ô9Ð9à—}’} QÑ'Ô'ˆÝ�\Ô'¨!¨Q¨Ñ0Ô0Ð0Ý�q‘”ð 	Kð 	KˆAÝ˜1‘X”Xð Kð K�Ý"/Ô"6°q¸¸1¸´vÀAØ>?Èð#Kñ #Kô #K�å °¸aÀ¸cÔ1BÀEÑJÔJÐJÐJðKð	Kð 	KrB   c                 óÎ  — d}d}t          j        ||fd¦  «        }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }dt          j        |¦  «        z  t          j        ||fd¦  «        z   }d}t          |||¬¦  «        }|                     |d¬	¦  «        }t          j        |d
¬¦  «        }	t          |	|d¬¦  «         t          j        |                     ||z  |¦  «        j	        ¦  «        }
t          |
|d¬¦  «         t          j        t          j
        |dd¦  «                             ||z  |¦  «        j	        ¦  «        }t          ||d¬¦  «         d S )Nre   rI   rœ   rI  rú  éè  r   rð   r�   r   r…   rš   r†  r
   rH   )r9   rl  rë   r   r¡   r¨   r   r¿   Úreshaper“   Úswapaxes)rV   rû  rü  rá   rŽ   rý  r–  r  r+  Úsample_meanÚsample_colcovÚsample_rowcovs               r@   Útest_momentszTestMatrixNormal.test_momentsK  sb  € àˆØˆÝŒG�X˜hÐ'¨Ñ-Ô-ˆØ•"”+˜hÑ'Ô'Ñ'­"¬'°8¸XÐ2FÈÑ*LÔ*LÑLˆØ•"”+˜hÑ'Ô'Ñ'­"¬'°8¸XÐ2FÈÑ*LÔ*LÑLˆØˆå A¨a¸Ð:Ñ:Ô:ˆØ�JŠJ˜A¨DˆJÑ1Ô1ˆå”g˜a QÐ'Ñ'Ô'ˆÝ˜ Q¨SÐ1Ñ1Ô1Ð1åœ˜qŸyšy¨¨8©°HÑ=Ô=Ô?Ñ@Ô@ˆÝ˜ q¨sÐ3Ñ3Ô3Ð3åœ�rœ{¨1¨Q¨qÑ1Ô1×9Ò9Ø89¸(¹
À8ñ Mô  MÜMNñPô Pˆå˜ q¨sÐ3Ñ3Ô3Ð3Ð3Ð3rB   c           	      óf  — t          j        t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        t          j                             d¦  «        d¬	¦  «        }t          j        d
dgddggddgddggg¦  «        }t          ||¦  «         d S )Nr
   rH   rI   re   rg   rc   r%  r   )r¨   r  r  rž   r�   g¡6‚ÿø?gÇ€À Üó¿g‚¡c´Ï¿@g—ì"ç'ë@gI2Í–é@g^½€Òjy%@gøDn3Á@gëž|\3@)r   r¡   r9   rÇ   rŒ   r�   r   )rV   rD  Úexpecteds      r@   Útest_sampleszTestMatrixNormal.test_samplesa  sÝ   € õ Ô"Ý”˜A˜q˜6 A q 6Ð*Ñ+Ô+Ý”8˜a ˜W r¨1 gÐ.Ñ/Ô/Ý”8˜a ˜V a¨ WÐ-Ñ.Ô.Ýœ×.Ò.¨qÑ1Ô1Øð
ñ 
ô 
ˆõ ”8ØÐ!2Ð3ØÐ!1Ð2ð4àÐ!2Ð3ØÐ!1Ð2ð4ð5ñ
ô 
ˆõ 	˜ Ñ)Ô)Ð)Ð)Ð)rB   N)rÊ   rË   rÌ   rþ  r	  r  r  r   r'  r/  r2  rÕ   rB   r@   rø  rø  ©  s–   € € € € € ðMð Mð Mð4%@ð %@ð %@ðNð ð ð,/ð /ð /ð04ð 4ð 4ð4Kð Kð Kð.4ð 4ð 4ð,*ð *ð *ð *ð *rB   rø  c                   ó€   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestDirichletc           	      óÌ  — t           j                             d¦  «         t           j                             dd¦  «        }t           j                             dd|¦  «        }t          |¦  «        }t          |                     ¦   «         t          j        |¦  «        ¦  «         t          |                     ¦   «         t          j        |¦  «        ¦  «         t          | 	                    ¦   «         t          j	        |¦  «        ¦  «         d}t          |¦  «        D ]Æ}t           j                             dd|¦  «        }|t          j        |¦  «        z  }t          |                     |d d…         ¦  «        t          j        |d d…         |¦  «        ¦  «         t          |                     |d d…         ¦  «        t          j        |d d…         |¦  «        ¦  «         ŒÇd S ©Nr™  r
   é    ç•Ö&è.>r.  r%  rg   )r9   rŒ   r    Úrandintr   r   r   Úvarr¨   r§   r
  r‘   r¥   r¦   ©rV   r¼   r¤  rƒ  Ú	num_testsrB  r\   s          r@   Útest_frozen_dirichletz#TestDirichlet.test_frozen_dirichletv  s€  € Ý
Œ	�Š�tÑÔÐåŒI×Ò˜a Ñ$Ô$ˆÝ”	×!Ò! &¨#¨qÑ1Ô1ˆå�eÑÔˆå�Q—U’U‘W”W�iœm¨EÑ2Ô2Ñ3Ô3Ð3Ý�Q—V’V‘X”X�yœ~¨eÑ4Ô4Ñ5Ô5Ð5Ý�Q—Y’Y‘[”[¥)Ô"3°EÑ":Ô":Ñ;Ô;Ð;Øˆ	Ý�yÑ!Ô!ð 	Lð 	LˆAÝ”	×!Ò! &¨#¨qÑ1Ô1ˆAØ•”˜‘”‰NˆAÝ˜Ÿš˜q  " œv™œ­	¬°a¸¸¸´f¸eÑ(DÔ(DÑEÔEÐEÝ˜Ÿš ! C R C¤&Ñ)Ô)­9Ô+;¸A¸c¸r¸c¼FÀEÑ+JÔ+JÑKÔKÐKÐKð		Lð 	LrB   c                 óP  — t           j                             d¦  «         t          j        g d¢¦  «        }t           j                             |d¬¦  «        }t          |j        d¦  «         t          t          t          j	        ||¦  «         t          t          t          j
        ||¦  «         t	          j	        |j        |¦  «         t	          j	        |j        d d…         |¦  «         t	          j
        |j        |¦  «         t	          j
        |j        d d…         |¦  «         d S )Nr™  ©rÄ   ç       @ç      @rf   r€   )rf   rI   rg   )r9   rŒ   r    rÇ   r   r   r;   rì   rN   r¥   r¦   r“   ©rV   r¤  r\   s      r@   Ú"test_numpy_rvs_shape_compatibilityz0TestDirichlet.test_numpy_rvs_shape_compatibilityˆ  sê   € Ý
Œ	�Š�tÑÔÐÝ”˜˜˜Ñ)Ô)ˆÝŒI×Ò ¨AÐÑ.Ô.ˆÝ�Q”W˜fÑ%Ô%Ð%Ý•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=ÝŒ�a”c˜5Ñ!Ô!Ð!ÝŒ�a”c˜#˜2˜#”h Ñ&Ô&Ð&ÝÔ˜œ˜eÑ$Ô$Ð$ÝÔ˜œ˜S˜b˜Sœ 5Ñ)Ô)Ð)Ð)Ð)rB   c                 óB  — t           j                             d¦  «         g d¢}t           j                             t          j        d|¦  «        d¬¦  «        j        }t          t          t          j        ||¦  «         t          t          t          j	        ||¦  «         d S )Nr™  )rÄ   rÅ   rA  r8  rf   r€   ©
r9   rŒ   r    r   Úmaximumr“   rì   rN   r¥   r¦   rB  s      r@   Útest_alpha_with_zerosz#TestDirichlet.test_alpha_with_zeros”  s{   € Ý
Œ	�Š�tÑÔÐØ��ˆåŒI×Ò¥¤
¨4°Ñ 7Ô 7¸aÐÑ@Ô@ÔBˆÝ•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=Ð=Ð=rB   c                 óB  — t           j                             d¦  «         g d¢}t           j                             t          j        d|¦  «        d¬¦  «        j        }t          t          t          j        ||¦  «         t          t          t          j	        ||¦  «         d S )Nr™  )rÄ   g       ÀrA  r8  rf   r€   rE  rB  s      r@   Ú test_alpha_with_negative_entriesz.TestDirichlet.test_alpha_with_negative_entriesœ  s}   € Ý
Œ	�Š�tÑÔÐØ Ð Ð ˆåŒI×Ò¥¤
¨4°Ñ 7Ô 7¸aÐÑ@Ô@ÔBˆÝ•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=Ð=Ð=rB   c                 óŽ  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        ||¦  «         t          j        ||¦  «         t          j        g d¢¦  «        }t          t          j        ||¦  «        d¦  «         t          t          j        ||¦  «        t          j        d¦  «        ¦  «         d S )N©rÄ   r@  rA  ç      @©rš   rÅ   r›   rú  )rÄ   rÄ   rÄ   rÄ   rd   )r9   rÇ   r   r¥   r¦   r   rø   rB  s      r@   Útest_data_with_zerosz"TestDirichlet.test_data_with_zeros¤  s°   € Ý”Ð-Ð-Ð-Ñ.Ô.ˆÝŒHÐ)Ð)Ð)Ñ*Ô*ˆÝŒ�a˜ÑÔÐÝÔ˜˜EÑ"Ô"Ð"Ý”Ð-Ð-Ð-Ñ.Ô.ˆÝ�IœM¨!¨UÑ3Ô3°QÑ7Ô7Ð7Ý�IÔ,¨Q°Ñ6Ô6½¼¸q¹	¼	ÑBÔBÐBÐBÐBrB   c                 óâ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          t          t          j        ||¦  «         t          t          t          j        ||¦  «         d S )N)rÄ   rI  rA  rL  rM  ©r9   rÇ   rì   rN   r   r¥   r¦   rB  s      r@   Ú$test_data_with_zeros_and_small_alphaz2TestDirichlet.test_data_with_zeros_and_small_alpha­  óa   € Ý”Ð-Ð-Ð-Ñ.Ô.ˆÝŒHÐ)Ð)Ð)Ñ*Ô*ˆÝ•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=Ð=Ð=rB   c                 óâ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          t          t          j        ||¦  «         t          t          t          j        ||¦  «         d S )NrK  )rš   çš™™™™™¹¿rœ   rú  rP  rB  s      r@   Útest_data_with_negative_entriesz-TestDirichlet.test_data_with_negative_entries³  sa   € Ý”Ð-Ð-Ð-Ñ.Ô.ˆÝŒHÐ*Ð*Ð*Ñ+Ô+ˆÝ•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=Ð=Ð=rB   c                 óâ   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          t          t          j        ||¦  «         t          t          t          j        ||¦  «         d S )NrK  )rš   çš™™™™™ñ?rœ   rú  rP  rB  s      r@   Ú test_data_with_too_large_entriesz.TestDirichlet.test_data_with_too_large_entries¹  rR  rB   c                 óà   — t          j        g d¢¦  «        }t          j        dd¦  «        }t          t          t
          j        ||¦  «         t          t          t
          j        ||¦  «         d S )Nr?  )rH   rf   rf   g’$I’$I²?©r9   rÇ   rl  rì   rN   r   r¥   r¦   rB  s      r@   Útest_data_too_deep_cz"TestDirichlet.test_data_too_deep_c¿  sY   € Ý”˜˜˜Ñ)Ô)ˆÝŒG�I˜vÑ&Ô&ˆÝ•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=Ð=Ð=rB   c                 óè   — t          j        ddgddgg¦  «        }t          j        dd¦  «        }t          t          t
          j        ||¦  «         t          t          t
          j        ||¦  «         d S )NrÄ   r@  rA  rL  )rH   rH   rf   ç      Ð?rZ  rB  s      r@   Útest_alpha_too_deepz!TestDirichlet.test_alpha_too_deepÅ  sb   € Ý”˜3 ˜* s¨C jÐ1Ñ2Ô2ˆÝŒG�I˜uÑ%Ô%ˆÝ•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=Ð=Ð=rB   c                 ó°   — t          j        g d¢¦  «        }t          j        dd¦  «        }t          j        ||¦  «         t          j        ||¦  «         d S )Nr?  ©rI   rf   çUUUUUUÕ?)r9   rÇ   rl  r   r¥   r¦   rB  s      r@   Útest_alpha_correct_depthz&TestDirichlet.test_alpha_correct_depthË  sQ   € Ý”˜˜˜Ñ)Ô)ˆÝŒG�F˜EÑ"Ô"ˆÝŒ�a˜ÑÔÐÝÔ˜˜EÑ"Ô"Ð"Ð"Ð"rB   c                 óà   — t          j        g d¢¦  «        }t          j        dd¦  «        }t          t          t
          j        ||¦  «         t          t          t
          j        ||¦  «         d S )Nr?  r`  rI  rZ  rB  s      r@   Útest_non_simplex_dataz#TestDirichlet.test_non_simplex_dataÑ  sY   € Ý”˜˜˜Ñ)Ô)ˆÝŒG�F˜EÑ"Ô"ˆÝ•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=Ð=Ð=rB   c                 óà   — t          j        g d¢¦  «        }t          j        dd¦  «        }t          t          t
          j        ||¦  «         t          t          t
          j        ||¦  «         d S )NrK  )rH   rf   rI  rZ  rB  s      r@   Útest_data_vector_too_shortz(TestDirichlet.test_data_vector_too_short×  ó\   € Ý”Ð-Ð-Ð-Ñ.Ô.ˆÝŒG�F˜EÑ"Ô"ˆÝ•j¥)¤-°°EÑ:Ô:Ð:Ý•j¥)Ô"2°A°uÑ=Ô=Ð=Ð=Ð=rB   c                 óà   — t          j        g d¢¦  «        }t          j        dd¦  «        }t          t          t
          j        ||¦  «         t          t          t
          j        ||¦  «         d S )NrK  )rc   rf   r›   rZ  rB  s      r@   Útest_data_vector_too_longz'TestDirichlet.test_data_vector_too_longÝ  rg  rB   c                 óB  — t          j        g d¢¦  «        }t          |¦  «        }g d¢}g d¢}g d¢g d¢g d¢g}t          |                     ¦   «         |¦  «         t          |                     ¦   «         |¦  «         t          |                     ¦   «         |¦  «         d S )N)rÄ   çš™™™™™é?r›   ©rI  çš™™™™™Ù?rš   )çUUUUUUµ?ç{®Gáz´?ç¸…ëQ¸ž?)rn  ç±¿ç‘¿)rq  ro  çOè´�N‹¿)rr  rs  rp  )r9   rÇ   r   r   r¨   r:  r¿   )rV   r¤  rƒ  Úexpected_meanÚexpected_varÚexpected_covs         r@   Útest_mean_var_covzTestDirichlet.test_mean_var_covã  sª   € õ ”˜˜˜Ñ(Ô(ˆÝ�eÑÔˆà'˜˜ˆØ-Ð-Ð-ˆà.Ð.Ð.Ø.Ð.Ð.Ø/Ð/Ð/ð
ˆõ 	" !§&¢&¡(¤(¨MÑ:Ô:Ð:Ý! !§%¢%¡'¤'¨<Ñ8Ô8Ð8Ý! !§%¢%¡'¤'¨<Ñ8Ô8Ð8Ð8Ð8rB   c                 óŽ  — t          j        dg¦  «        }t          |¦  «        }t          |                     ¦   «         j        d¦  «         t          |                     ¦   «         j        d¦  «         t          |                     dg¦  «        j        d¦  «         t          |                     dg¦  «        j        d¦  «         d S )Nr›   r   rÄ   )	r9   rÇ   r   r   r¨   ró   r:  r¥   r¦   )rV   r¤  rƒ  s      r@   rõ   z TestDirichlet.test_scalar_valuesõ  s˜   € Ý”˜#˜‘”ˆÝ�eÑÔˆõ 	�Q—V’V‘X”X”] AÑ&Ô&Ð&Ý�Q—U’U‘W”W”\ 1Ñ%Ô%Ð%å�Q—U’U˜B˜4‘[”[Ô% qÑ)Ô)Ð)Ý�Q—X’X˜r˜d‘^”^Ô(¨!Ñ,Ô,Ð,Ð,Ð,rB   c                 óø  — t           j                             d¦  «         t           j                             dd¦  «        }t           j                             dd|¦  «        }t          |¦  «        }d}t          |¦  «        D ]x}t           j                             dd|¦  «        }|t          j        |¦  «        z  }t          | 	                    |d d…         ¦  «        | 	                    |¦  «        ¦  «         Œyd S r6  )
r9   rŒ   r    r9  r   r   r
  r‘   r   r¥   r;  s          r@   Ú test_K_and_K_minus_1_calls_equalz.TestDirichlet.test_K_and_K_minus_1_calls_equal   sÔ   € õ 	Œ	�Š�tÑÔÐåŒI×Ò˜a Ñ$Ô$ˆÝ”	×!Ò! &¨#¨qÑ1Ô1ˆå�eÑÔˆØˆ	Ý�yÑ!Ô!ð 	9ð 	9ˆAÝ”	×!Ò! &¨#¨qÑ1Ô1ˆAØ•”˜‘”‰NˆAÝ §¢ a¨¨¨¤f¡¤¨q¯uªu°Q©x¬xÑ8Ô8Ð8Ð8ð	9ð 	9rB   c                 óž  — t           j                             d¦  «         t           j                             dd¦  «        }t           j                             dd|¦  «        }t          |¦  «        }d}d}d }t          |¦  «        D ]Ç}t          |¦  «        D ]U}t           j                             dd|¦  «        }	|	t          j        |	¦  «        z  }	|�t          j        ||	f¦  «        }ŒS|	}ŒV| 	                    |j
        ¦  «        }
d }|D ]1}| 	                    |¦  «        }|�t          j        ||¦  «        }Œ/|}Œ2t          |
|¦  «         ŒÈd S )Nr™  r
   r7  r8  r.  r%  rc   )r9   rŒ   r    r9  r   r   r
  r‘   Úvstackr¥   r“   Úappendr   )rV   r¼   r¤  rƒ  r<  Únum_multipleÚxmrB  rï  r\   ÚrmÚrsÚxsr(  s                 r@   Útest_multiple_entry_callsz'TestDirichlet.test_multiple_entry_calls  sK  € å
Œ	�Š�tÑÔÐåŒI×Ò˜a Ñ$Ô$ˆÝ”	×!Ò! &¨#¨qÑ1Ô1ˆÝ�eÑÔˆàˆ	ØˆØˆÝ�yÑ!Ô!ð 	.ð 	.ˆAÝ˜<Ñ(Ô(ð ð �Ý”I×%Ò% f¨c°1Ñ5Ô5�Ø•R”V˜A‘Y”Y‘�Ø�>Ýœ B¨ 7Ñ+Ô+�B�Bà�B�BØ—’�r”t‘”ˆBØˆBØð ð �Ø—E’E˜"‘I”I�Ø�>Ýœ 2 qÑ)Ô)�B�Bà�B�BÝ% b¨"Ñ-Ô-Ð-Ð-ð!	.ð 	.rB   c                 óÊ  — t           j                             d¦  «         t           j                             ddd¦  «        }t	          |¦  «        }t          |d         |d         ¦  «        }d}t          |¦  «        D ]q}t           j                             ddd¦  «        }|t          j        |¦  «        z  }t          | 	                    |¦  «        | 	                    |g¦  «        ¦  «         Œrt          | 
                    ¦   «         | 
                    ¦   «         d         ¦  «         t          |                     ¦   «         |                     ¦   «         d         ¦  «         d S )Nr™  r8  r.  rH   r   r
   r%  )r9   rŒ   r    r   r   r   r
  r‘   r   r¥   r¨   r:  )rV   r¤  rƒ  r¬  r<  rB  r\   s          r@   Útest_2D_dirichlet_is_betaz'TestDirichlet.test_2D_dirichlet_is_beta,  s  € Ý
Œ	�Š�tÑÔÐå”	×!Ò! &¨#¨qÑ1Ô1ˆÝ�eÑÔˆÝ��q”˜5 œ8Ñ$Ô$ˆàˆ	Ý�yÑ!Ô!ð 	6ð 	6ˆAÝ”	×!Ò! &¨#¨qÑ1Ô1ˆAØ•”˜‘”‰NˆAÝ §¢ a¡¤¨!¯%ª%°°©*¬*Ñ5Ô5Ð5Ð5å˜AŸFšF™HœH a§f¢f¡h¤h¨q¤kÑ2Ô2Ð2Ý˜AŸEšE™GœG Q§U¢U¡W¤W¨Q¤ZÑ0Ô0Ð0Ð0Ð0rB   N)rÊ   rË   rÌ   r=  rC  rG  rI  rN  rQ  rU  rX  r[  r^  rb  rd  rf  ri  rw  rõ   rz  rƒ  r…  rÕ   rB   r@   r4  r4  t  s7  € € € € € ðLð Lð Lð$
*ð 
*ð 
*ð>ð >ð >ð>ð >ð >ðCð Cð Cð>ð >ð >ð>ð >ð >ð>ð >ð >ð>ð >ð >ð>ð >ð >ð#ð #ð #ð>ð >ð >ð>ð >ð >ð>ð >ð >ð9ð 9ð 9ð$	-ð 	-ð 	-ð9ð 9ð 9ð.ð .ð .ð:1ð 1ð 1ð 1ð 1rB   r4  c                  óP  — t          j        ddg¦  «        } t          j        dgg¦  «        }t          t          t          | |¦  «         	 t	          | |¦  «         d S # t          $ r?}d}t          t          |¦  «        d t          |¦  «        …         |¦  «         Y d }~d S d }~ww xY w)NrÅ   rÄ   zDimension mismatch)r9   rÇ   rì   rN   r   r   Ústrr’   )rí   Úsigmar  r€  s       r@   Ú,test_multivariate_normal_dimensions_mismatchr‰  =  sµ   € õ 
Œ�3˜�*Ñ	Ô	€BÝŒH�s�e�WÑÔ€Eå•*Õ1°2°uÑ=Ô=Ð=ð
-Ý˜B Ñ&Ô&Ð&Ð&Ð&øÝð -ð -ð -Ø"ˆÝ•S˜‘V”V˜I�S ™XœX˜IÔ&¨Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,øøøøð-øøøs   Á
A Á
B%Á&4B Â B%c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestWishartc                 óh  — t          j        dd¬¦  «        }ddgt          j        d¦  «        t           j        d         t          j        dd¬¦  «        g}|D ]F}t          d|¦  «        }t	          |j        |¦  «         t	          |j        j        |j        ¦  «         ŒGt          j        ddgddgg¦  «        }ddgt           j        d         t          j        ddgddgg¦  «        g}|D ]F}t          d|¦  «        }t	          |j        |¦  «         t	          |j        j        |j        ¦  «         ŒGt          t          t          dt          j	        d¦  «        ¦  «         t          dt          j	        d¦  «        ¦  «         t          j        dd¬¦  «        }t          t          t          d|¦  «         d S )Nr
   rH   ©Úndminr   ©r
   rH   rW  rI   )
r9   rÇ   Úr_r   r   rK  r;   rì   rN   rQ   )rV   Ú
true_scaleÚscalesrK  Úws        r@   Útest_scale_dimensionsz!TestWishart.test_scale_dimensionsQ  s¬  € õ ”X˜a qÐ)Ñ)Ô)ˆ
àØˆCÝŒH�Q‰KŒKÝŒE�!ŒHÝŒH�Q˜aÐ Ñ Ô ð
ˆð ð 	:ð 	:ˆEÝ˜˜5Ñ!Ô!ˆAÝ˜œ *Ñ-Ô-Ð-Ý˜œœ¨
Ô(8Ñ9Ô9Ð9Ð9õ ”X  !˜uØ ! !˜uð&ñ 'ô 'ˆ
ð ˆqˆEÝŒE�#ŒJÝŒH�q˜�eØ˜�eðñ ô ð
ˆð ð 	:ð 	:ˆEÝ˜˜5Ñ!Ô!ˆAÝ˜œ *Ñ-Ô-Ð-Ý˜œœ¨
Ô(8Ñ9Ô9Ð9Ð9õ 	•j¥'¨1­b¬f°Q©i¬iÑ8Ô8Ð8õ 	�•R”V˜A‘Y”YÑÔÐõ ”˜ !Ð$Ñ$Ô$ˆÝ•j¥'¨1¨eÑ4Ô4Ð4Ð4Ð4rB   c           
      ó’  — ddgt          j        d¦  «        t           j        d         t          j        dd¬¦  «        t          j        dgd¬¦  «        g}t          dd¦  «        }|                     t          j        dd¬¦  «        ¦  «        }|D ]%}t          |                     |¦  «        |¦  «         Œ&g d¢t           j        d         t          j        g d¢d¬¦  «        g}t          dd¦  «        }|                     t          j        g d¢d¬¦  «        ¦  «        }|D ]%}t          |                     |¦  «        |¦  «         Œ&dddgt          j        d¦  «        t           j        d         t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d d …d d …t           j        f         g}t          dt          j        d¦  «        ¦  «        }|                     t          j        ddgddgg¦  «        d d …d d …t           j        f         ¦  «        }|D ]%}t          |                     |¦  «        |¦  «         Œ&d S )Nr
   rH   r�  rI   rL   r‘  r   )r9   rÇ   r�  r   r¥   r   r"  rQ   )rV   r+  r“  Údensityr\   s        r@   Útest_quantile_dimensionsz$TestWishart.test_quantile_dimensions|  sQ  € ð
 ØˆCÝŒH�Q‰KŒKÝŒE�!ŒHÝŒH�Q˜aÐ Ñ Ô ÝŒH�a�S Ð"Ñ"Ô"ð
ˆõ �A�a‰LŒLˆØ—%’%�œ ¨!Ð,Ñ,Ô,Ñ-Ô-ˆØð 	,ð 	,ˆAÝ˜Ÿš˜q™œ 7Ñ+Ô+Ð+Ð+ð ˆGˆGÝŒE�%ŒLÝŒH�W�W�W AÐ&Ñ&Ô&ð
ˆõ �A�a‰LŒLˆØ—%’%�œ   °Ð2Ñ2Ô2Ñ3Ô3ˆØð 	,ð 	,ˆAÝ˜Ÿš˜q™œ 7Ñ+Ô+Ð+Ð+ð
 ØˆqˆEÝŒH�Q‰KŒKÝŒE�#ŒJÝŒH�q˜�eØ˜�eðñ ô åŒH�q˜�eØ˜�eðñ ô Ø˜a˜a   ¥"¤*˜nô.ð	
ˆõ �A•b”f˜Q‘i”iÑ Ô ˆØ—%’%�œ 1 Q %Ø#$ Q %ð")ñ *ô *Ø*+¨!¨!¨A¨A¨A­b¬j¨.ô:ñ ;ô ;ˆàð 	,ð 	,ˆAÝ˜Ÿš˜q™œ 7Ñ+Ô+Ð+Ð+ð	,ð 	,rB   c           	      óþ  — d}t          j        t          j        |¦  «        dz   ¦  «        }t          j        ||dz
  z  dz  ¦  «        |t          j        |d¬¦  «        <   t          j        |j        |¦  «        }g }t          d¦  «        D ]”}t          j        t          j        |¦  «        |dz   dz  z   ¦  «        }t          j        ||dz
  z  dz  ¦  «        |t          j        |d¬¦  «        <   t          j        |j        |¦  «        }|                     |¦  «         Œ•t          j        |¦  «        j        }ddt          j	        ddd¦  «        fd||fg}|D �]"\  }}}t          ||¦  «        }t          |                     ¦   «         t          j        ||¦  «        ¦  «         t          |                     ¦   «         t          j        ||¦  «        ¦  «         t          |                     ¦   «         t          j        ||¦  «        ¦  «         t          |                     ¦   «         t          j        ||¦  «        ¦  «         t          |                     |¦  «        t          j        |||¦  «        ¦  «         �Œ$d S ©	Nre   r
   rH   rg   ©r  rc   r%  rš   )r9   rp   rê   Útril_indicesr  r“   r
  r}  rÇ   rJ  r   r   r:  r¨   Úmoder§   r¥   )	rV   rØ   rK  r+  rB  r\   Ú
parametersÚdfr“  s	            r@   rb  zTestWishart.test_frozen­  s  € ð ˆÝ”�œ	 #™œ qÑ(Ñ)Ô)ˆÝ,.¬I°c¸SÀ¹U±mÀqÑ6HÑ,IÔ,Iˆ�bŒo˜c RÐ(Ñ(Ô(Ñ)Ý”�u”w Ñ&Ô&ˆð ˆÝ�q‘”ð 	ð 	ˆAÝ”�œ	 #™œ¨¨!©¨a¡xÑ/Ñ0Ô0ˆAÝ,.¬I°c¸SÀ¹U±mÀqÑ6HÑ,IÔ,IˆA�bŒo˜c RÐ(Ñ(Ô(Ñ)Ý”�q”s˜A‘”ˆAØ�HŠH�Q‰KŒKˆKˆKÝŒH�Q‰KŒKŒMˆð �•B”K  R¨Ñ+Ô+Ð,Ø�˜ˆNð
ˆ
ð
 )ð 	>ñ 	>‰NˆR�˜Ý˜˜EÑ"Ô"ˆAÝ˜Ÿš™œ¥'¤+¨b°%Ñ"8Ô"8Ñ9Ô9Ð9Ý˜Ÿš™œ¥7¤<°°EÑ#:Ô#:Ñ;Ô;Ð;Ý˜Ÿš™œ¥7¤<°°EÑ#:Ô#:Ñ;Ô;Ð;Ý˜Ÿš™œ¥g¤o°b¸%Ñ&@Ô&@ÑAÔAÐAÝ˜Ÿš˜q™œ¥7¤;¨q°"°eÑ#<Ô#<Ñ=Ô=Ð=Ñ=ð	>ð 	>rB   c                 óÖ  — d}d}t          j        |¦  «        }d|d<   d|d<   t          ||¦  «        }t           j                             d¦  «         t          j        ||¦  «        }t           j                             d¦  «         |                     ¦   «         }t           j                             d¦  «         t           j                             d¬¦  «        }t           j        t           j                             |¦  «        t           j                             |dz
  ¦  «        t           j                             |d	z
  ¦  «        f         dz  }t          j	        |¦  «        }	||	t          j
        |d
¬¦  «        <   t           j                             |¦  «        }
|
                     |	¦  «        }t          j        ||j        ¦  «        }t          ||¦  «         t          ||¦  «         d S )NrI   r%  rI  rè   ©r
   r   iêÈ r€   r
   rH   rg   rš  )r9   rQ   r   rŒ   r    r¡   r×   r�  Ú	chisquarerp   r›  rº   rÎ   r  r“   r   )rV   rØ   rž  rK  r“  Úw_rvsÚfrozen_w_rvsÚcovariancesÚ	variancesrv   ÚDÚDAÚmanual_w_rvss                r@   Útest_wishart_2D_rvszTestWishart.test_wishart_2D_rvsÍ  s›  € ØˆØˆõ ”�s‘”ˆØˆˆc‰
Øˆˆc‰
õ �B˜ÑÔˆõ 	Œ	�Š�vÑÔÐÝ”˜B Ñ&Ô&ˆÝ
Œ	�Š�vÑÔÐØ—u’u‘w”wˆõ 	Œ	�Š�vÑÔÐÝ”i×&Ò&¨AÐ&Ñ.Ô.ˆÝ”EÝŒI×Ò Ñ#Ô#ÝŒI×Ò  1¡Ñ%Ô%ÝŒI×Ò  1¡Ñ%Ô%ð'ô
ð ñ	ˆ	õ ŒG�IÑÔˆØ(3ˆ�"Œ/˜# Ð
$Ñ
$Ô
$Ñ%õ ŒI×Ò˜uÑ%Ô%ˆØ�UŠU�1‰XŒXˆÝ”v˜b "¤$Ñ'Ô'ˆõ 	˜˜|Ñ,Ô,Ð,Ý˜ lÑ3Ô3Ð3Ð3Ð3rB   c                 ó&  — t           j                             d¦  «         d}d}t          j        |¦  «        }t          j        dddt
          ¬¦  «        }t          j        ddd¬¦  «        }|D �]!}t          ||¦  «        }t          |¦  «        }t          | 
                    ¦   «         | 
                    ¦   «         ¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         |                     |¬	¦  «        }	|f}
d
}t          d|
||	¦  «         �Œ#d S )Néž^ éô  r
   r%  rH   r/  rš   ©Únumr€   rR  r   )r9   rŒ   r    rQ   rê   r2  rJ  r   r   r   r:  r¨   r§   r¥   r¡   r   )rV   ÚsnrØ   rK  Údf_ranger+  rž  r“  Úcr¡   r>   r¤  s               r@   Útest_1D_is_chisquaredz!TestWishart.test_1D_is_chisquaredù  sN  € õ
 	Œ	�Š�vÑÔÐàˆØˆÝ”�s‘”ˆå”9˜Q  A­UÐ3Ñ3Ô3ˆÝŒK˜˜B 2Ð&Ñ&Ô&ˆØð 	=ñ 	=ˆBÝ˜˜EÑ"Ô"ˆAÝ�R‘”ˆAõ ˜AŸEšE™GœG Q§U¢U¡W¤WÑ-Ô-Ð-Ý˜AŸFšF™HœH a§f¢f¡h¤hÑ/Ô/Ð/Ý˜AŸIšI™KœK¨¯ª©¬Ñ5Ô5Ð5õ ˜AŸEšE !™HœH a§e¢e¨A¡h¤hÑ/Ô/Ð/ð —%’%˜R�%‘.”.ˆCØ�5ˆDØˆEÝ" 6¨4°¸Ñ<Ô<Ð<Ñ<ð!	=ð 	=rB   c                 óH  — t           j                             d¦  «         d}d}d}t          j        t          j        d¦  «        dz   ¦  «        }t          j        d¦  «        |t          j        dd¬¦  «        <   t          j        |j        |¦  «        }t          j        |df¦  «        }|j                             |¦  «                             |¦  «         	                    ¦   «         }t          ||¦  «        }t          ||¬	¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         t          j        d
dd¬¦  «        }	t          |                     |	¦  «        |                     |	¦  «        ¦  «         |                     |¬¦  «        }
|d|f}d}t'          d|||
¦  «         d S )Nr«  r¬  r%  re   r
   rd   rg   rš  ©rK  rš   r­  r€   r   rR  r   )r9   rŒ   r    rp   rê   r›  r  r“   rP   r¤   r   r   r   r:  r¨   r§   rJ  r¥   r¡   r   )rV   r¯  rž  rØ   rK  ÚlamdaÚsigma_lamdar“  r±  r+  r¡   r>   r¤  s                r@   Útest_is_scaled_chisquaredz%TestWishart.test_is_scaled_chisquared  s³  € õ
 	Œ	�Š�vÑÔÐàˆØˆØˆå”�œ	 !™œ Q™Ñ'Ô'ˆÝ*,¬)°A©,¬,ˆ�bŒo˜a 2Ð&Ñ&Ô&Ñ'Ý”�u”w Ñ&Ô&ˆå”˜˜Q˜Ñ Ô ˆØ”g—k’k %Ñ(Ô(×,Ò,¨UÑ3Ô3×;Ò;Ñ=Ô=ˆÝ�B˜Ñ$Ô$ˆÝ�˜;Ð'Ñ'Ô'ˆõ 	˜Ÿš™œ §¢¡¤Ñ)Ô)Ð)Ý˜Ÿš™œ !§&¢&¡(¤(Ñ+Ô+Ð+Ý˜Ÿ	š	™œ Q§Y¢Y¡[¤[Ñ1Ô1Ð1õ ŒK˜˜B 2Ð&Ñ&Ô&ˆÝ˜Ÿš˜a™œ !§%¢%¨¡(¤(Ñ+Ô+Ð+ð �eŠe˜ˆe‰nŒnˆØ�1�[Ð!ˆØˆÝ˜v t¨U°CÑ8Ô8Ð8Ð8Ð8rB   N)	rÊ   rË   rÌ   r”  r—  rb  r©  r²  r·  rÕ   rB   r@   r‹  r‹  P  sr   € € € € € ð)5ð )5ð )5ðV/,ð /,ð /,ðb>ð >ð >ð@*4ð *4ð *4ðX=ð =ð =ð>!9ð !9ð !9ð !9ð !9rB   r‹  c                   óz  — e Zd Zd„ Zd„ Zd„ Zej                             dddg¦  «        d„ ¦   «         Z	d„ Z
d	„ Zej                             ddd
g¦  «        d„ ¦   «         Zd„ Zej                             dddg¦  «        d„ ¦   «         Zd„ Zej                             ddd
g¦  «        d„ ¦   «         Zd„ Zd„ Zd„ ZdS )ÚTestMultinomialc                 ó`  — t          j        ddd¦  «        }t          |dd¬¦  «         t          j        ddgd	d
dg¦  «        }|t          j         k    sJ ‚t          j        d	d	gd	d
dg¦  «        }|d	k    sJ ‚t          j        ddgd	ddg¦  «        }t          |t          j        d¬¦  «         d S )N©rI   re   rf   ©rœ   rú  g&Múty»÷¿rç  r=  rI   re   r   rœ   rú  rj   )r   Úlogpmfr   r9   r  rv  )rV   Úvals1Úvals2Úvals3Úvals4s        r@   Útest_logpmfzTestMultinomial.test_logpmf<  s¿   € ÝÔ" 5¨!¨ZÑ8Ô8ˆÝ˜Ð1¸Ð=Ñ=Ô=Ð=åÔ" A q 6¨1¨r°2¨hÑ7Ô7ˆØ�œ˜ÒÐÐÐåÔ" A q 6¨1¨r°2¨hÑ7Ô7ˆØ˜ŠzˆzˆzˆzåÔ" A q 6¨1¨r°1¨gÑ6Ô6ˆÝ˜�rœv¨DÐ1Ñ1Ô1Ð1Ð1Ð1rB   c                 óþ   — t          j        ddd¦  «        }t          j        ddd¦  «        }t          ||d¬¦  «         t          j        dd	d
¦  «        }t          j        dd	d¦  «        }t          ||d¬¦  «         d S )Nr»  rf   r¼  rI   rœ   rç  r=  )rd   é   é   ©rš   rH  rd   rš   )r   r½  r!   r   Úpmf©rV   Úval1Úval2s      r@   Útest_reduces_binomialz%TestMultinomial.test_reduces_binomialI  s�   € õ Ô! &¨!¨ZÑ8Ô8ˆÝŒ|˜A˜q #Ñ&Ô&ˆÝ˜˜d¨Ð.Ñ.Ô.Ð.åŒ˜v r¨:Ñ6Ô6ˆÝŒy˜˜B Ñ$Ô$ˆÝ˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c                 óŽ   — dg d¢}}ddddddd	dd
ddœ
}|D ].}t          t          j        |||¦  «        ||         d¬¦  «         Œ/d S )NrI   )g      À?r]  g      ä?g     @Ï?g     ÀÂ?g      ž?g      `?g     ÀÒ?g      ¾?g      ˆ?g      ˜?g      �?)
)r   r   rI   )r
   r   rH   )rH   r   r
   )rI   r   r   ré   r£  ©rH   r
   r   )r   rH   r
   r„  )r   rI   r   ç›+¡†›„=r†  )r   r   rÇ  )rV   r¼   ÚpÚr_valsr\   s        r@   Útest_RzTestMultinomial.test_RT  s„   € ð Ð$Ð$Ð$ˆ1ˆØ(°[Ø(°[Ø(°[Ø(°[Ø(°[ð	Bð Bˆð
 ð 	Mð 	MˆAÝ�KœO¨A¨q°!Ñ4Ô4°f¸Q´iÀeÐLÑLÔLÐLÐLð	Mð 	MrB   r¼   r   rI   c                 óÔ   — t          j        |dgdz  dd¬¦  «        }t          j                             d¦  «        }|                      |dgdz  d¬¦  «        }t          ||¦  «         d S )Nr]  rI   rf   é{   r�   r€   )r   r¡   r9   rŒ   ÚRandomStater   )rV   r¼   Úsc_rvsÚrndmÚnp_rvss        r@   Útest_rvs_npzTestMultinomial.test_rvs_npe  sm   € õ ”  T F¨1¡H°1À3ÐGÑGÔGˆÝŒy×$Ò$ SÑ)Ô)ˆØ×!Ò! ! d V¨A¡X°AÐ!Ñ6Ô6ˆÝ�V˜VÑ$Ô$Ð$Ð$Ð$rB   c                 ó  — t          j        ddd¦  «        }t          |dd¬¦  «         t          j        ddd	¦  «        }t          |d
d¬¦  «         t          j        ddgddggddgddgggdd¦  «        }t          |ddgddggd¬¦  «         t          j        dt          j        ¬¦  «        }t          j        |dd	¦  «        }t          |t          j        g t          j        ¬¦  «        ¦  «         t          j        ddgdd	¦  «        }t          |dd¬¦  «         t          j        g d¢dg d¢¦  «        }t          |dd¬¦  «         t          j        g d¢dg d¢¦  «        }|dk    sJ ‚t          j        g d¢dg d¢¦  «        }|dk    sJ ‚d S )N)rc   rc   ©r
   r
   rç  r=  r»  rf   r¼  gö5’á
Í?rI   r   rÄ  rg   é	   rÆ  g’¹*7î ?gÄÒ<WÆŒÛ?©r   rH   r/  re   rH   ©rI   rI   r   rd   )gUUUUUUå?ra  r   gß¦îáÌ?rh   rÍ  )r   rÇ  r   r9   rV  Úfloat64r   )	rV   Úvals0r¾  r¿  r\   rÀ  rÁ  Úvals5Úvals6s	            r@   Útest_pmfzTestMultinomial.test_pmfm  s¯  € Ý”  a¨Ñ.Ô.ˆÝ˜˜q tÐ,Ñ,Ô,Ð,å”  q¨(Ñ3Ô3ˆÝ˜Ð1¸Ð=Ñ=Ô=Ð=å” 1 Q %¨¨1¨ °"°a°¸1¸a¸&Ð0AÐ BÀAØ (ñ*ô *ˆå˜ ¨IÐ 6¸¸A¸Ð?ÀdÐKÑKÔKÐKåŒH�U¥"¤*Ð-Ñ-Ô-ˆÝ”  1 hÑ/Ô/ˆÝ�U�BœH R­r¬zÐ:Ñ:Ô:Ñ;Ô;Ð;å”  1  q¨(Ñ3Ô3ˆÝ˜˜q tÐ,Ñ,Ô,Ð,å” 	 	 	¨1Ð.?Ð.?Ð.?Ñ@Ô@ˆÝ˜˜~°DÐ9Ñ9Ô9Ð9å” 	 	 	¨1Ð.?Ð.?Ð.?Ñ@Ô@ˆØ˜Šzˆzˆzˆzå” 	 	 	¨1Ð.?Ð.?Ð.?Ñ@Ô@ˆØ˜ŠzˆzˆzˆzˆzˆzrB   c                 ó  — t          j        ddgdddgddgg¦  «        }t          |dd	gd
¬¦  «         t          j        ddgddgddg¦  «        }t          |ddgd
¬¦  «         t          j        ddgddgggdddg¦  «        }t          |ddggd
¬¦  «         t          j        ddgdgdgggddg¦  «        }t          |dgdgggd
¬¦  «         t          j        ddgddggdggggddg¦  «        }t          |ddggggd
¬¦  «         d S )Nr
   rH   rI   rš   rH  r›   rk  g´Èv¾ŸÏ?gú~j¼t“Ø?rç  r=  re   r   )r   rÇ  r   )rV   rß  r¾  r¿  rÀ  rÁ  s         r@   Útest_pmf_broadcastingz%TestMultinomial.test_pmf_broadcastingˆ  sM  € Ý”  A ¨¨R°¨H°r¸2°hÐ+?Ñ@Ô@ˆÝ˜  d˜|°$Ð7Ñ7Ô7Ð7å”  A ¨¨A¨°°R°Ñ9Ô9ˆÝ˜  a˜y¨tÐ4Ñ4Ô4Ð4å” 1 a &¨1¨a¨&Ð!1Ð 2°A¸¸B°xÑ@Ô@ˆÝ˜  q 	˜{°Ð6Ñ6Ô6Ð6å”  A ¨1¨#°¨s¨¨°r¸2°hÑ?Ô?ˆÝ˜ $ ¨!¨ ˜°TÐ:Ñ:Ô:Ð:å” ! Q ¨!¨A¨ °Q°C°5°'°¸RÀ¸HÑEÔEˆÝ˜ 4¨ )  ˜°TÐ:Ñ:Ô:Ð:Ð:Ð:rB   rc   c                 óè   — t          j        |d¦  «        }|dz  dz  | dz  dz  | dz  dz  g| dz  dz  |dz  dz  | dz  dz  g| dz  dz  | dz  dz  |dz  dz  gg}t          ||d¬¦  «         d S )	N)r›   rœ   rI  r›   rk  rœ   rI  rú  rç  r=  ©r   r¿   r   )rV   r¼   Úcov1r�  s       r@   Útest_covzTestMultinomial.test_cov˜  s©   € åŒ˜q ,Ñ/Ô/ˆØ�2‘�b‘˜1˜"˜R™% ™( Q B r¡E¨"¡HÐ-Ø��B‘�r‘˜1˜R™4 ™7 Q B r¡E¨"¡HÐ-Ø��B‘�r‘˜A˜2˜b™5 ™8 Q r¡T¨"¡WÐ-ð/ˆõ 	˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c                 ót  — t          j        dddgddgg¦  «        }ddgddggddgddggg}t          ||d	¬
¦  «         t          j        ddgddg¦  «        }ddgddggddgddggg}t          ||d	¬
¦  «         t          j        ddgddgddgg¦  «        }ddgddggddgddggg}t          ||d	¬
¦  «         d S )Nrc   rš   rH  r›   rk  gÍÌÌÌÌÌÜ?gÍÌÌÌÌÌÜ¿gš™™™™™é¿rç  r=  re   g
×£p=
×?g
×£p=
×¿rœ   rú  rm  rN  gáz®Gáê?gáz®Gáê¿rG  g333333ó¿ræ  ©rV   rç  r�  Úcov3Úcov4Úcov5Úcov6s          r@   Útest_cov_broadcastingz%TestMultinomial.test_cov_broadcasting   s  € ÝŒ˜q B¨ 8¨b°"¨XÐ"6Ñ7Ô7ˆØ�t�˜d C˜[Ð)¨R°¨I¸¸R°yÐ+AÐBˆÝ˜˜d¨Ð.Ñ.Ô.Ð.åŒ  1˜v¨¨B xÑ0Ô0ˆØ�t�˜t S˜kÐ*¨c°4¨[¸4À¸+Ð,FÐGˆÝ˜˜d¨Ð.Ñ.Ô.Ð.åŒ  1˜v¨¨R¨°2°r°(Ð';Ñ<Ô<ˆØ˜8Ð$ x°Ð&9Ð:Ø˜8Ð$ x°Ð&9Ð:ð<ˆå˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   rH   c                 ó~   — t          j        |ddg¦  «        }t          |t          j        |d¦  «        d¬¦  «         d S ©Nr›   rk  rç  r=  ©r   r§   r   r!   )rV   r¼   Úent0s      r@   r¡  zTestMultinomial.test_entropy®  sA   € õ Ô" 1 r¨2 hÑ/Ô/ˆÝ˜�eœm¨A¨rÑ2Ô2¸Ð>Ñ>Ô>Ð>Ð>Ð>rB   c           	      ó`  — t          j        ddgddg¦  «        }t          |t          j        dd¦  «        t          j        dd¦  «        gd¬¦  «         t          j        ddgdd	gd
dgg¦  «        }t          |t          j        dd¦  «        t          j        dd
¦  «        gd¬¦  «         t          j        dgdggdd	gd
dgg¦  «        }t          |t          j        dd¦  «        t          j        dd
¦  «        gt          j        dd¦  «        t          j        dd
¦  «        ggd¬¦  «         d S )NrH   rI   r›   rœ   rç  r=  rf   rÄ  rú  rm  rN  rò  )rV   ró  Úent1Úent2s       r@   Útest_entropy_broadcastingz)TestMultinomial.test_entropy_broadcastingµ  sL  € ÝÔ" A q 6¨B°¨8Ñ4Ô4ˆÝ˜�uœ}¨Q°Ñ3Ô3µU´]À1ÀbÑ5IÔ5IÐJØ!ð	#ñ 	#ô 	#ð 	#õ Ô" A q 6¨R°¨H°r¸2°hÐ+?Ñ@Ô@ˆÝ˜�uœ}¨Q°Ñ3Ô3µU´]À1ÀbÑ5IÔ5IÐJØ!ð	#ñ 	#ô 	#ð 	#õ Ô" Q C¨!¨ :°°R°¸2¸r¸(Ð/CÑDÔDˆÝ˜Ýœ-¨¨2Ñ.Ô.µ´¸aÀÑ0DÔ0DÐEÝœ-¨¨2Ñ.Ô.µ´¸aÀÑ0DÔ0DÐEðGà!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#rB   c                 óh   — t          j        |ddg¦  «        }t          ||dz  |dz  gd¬¦  «         d S rñ  ©r   r¨   r   )rV   r¼   Úmean1s      r@   Ú	test_meanzTestMultinomial.test_meanÄ  s?   € åÔ   R¨ HÑ-Ô-ˆÝ˜  "¡ a¨¡d˜|°$Ð7Ñ7Ô7Ð7Ð7Ð7rB   c                 óh   — t          j        ddgddg¦  «        }t          |ddgddggd	¬
¦  «         d S )Nrc   rd   r›   rk  rÄ   rL  g433333ó?g433333@rç  r=  rù  )rV   rú  s     r@   Útest_mean_broadcastingz&TestMultinomial.test_mean_broadcastingÉ  sD   € ÝÔ  ! Q ¨"¨b¨Ñ2Ô2ˆÝ˜  t ¨t°T¨lÐ;À$ÐGÑGÔGÐGÐGÐGrB   c                 ó  — t           j                             d¦  «         d}d}g d¢g d¢g d¢g d¢g d¢g}t          j        |t           j        ¬	¦  «        }t          ||¦  «        }t          |                     |¦  «        t          j        |||¦  «        ¦  «         t          |                     |¦  «        t          j        |||¦  «        ¦  «         t          | 	                    ¦   «         t          j	        ||¦  «        ¦  «         d S )
Nrð   é   )rš   r›   rœ   rm  ©r   r   r   rÿ  ©r   r   r
   é   ©r   r
   r
   r%  ©r
   r
   r
   rÛ  ©r
   r
   rH   rÄ  r/  )
r9   rŒ   r    r:   rÞ  r   r   rÇ  r½  r§   )rV   r¼   Úpvalsr\   Ú	mn_frozens        r@   rb  zTestMultinomial.test_frozenÍ  sï   € å
Œ	�Š�tÑÔÐØˆØ ˆØˆZˆZ˜
˜
˜
 : : :¨i¨i¨i¸	¸	¸	ÐBˆÝŒJ�q¥¤
Ð+Ñ+Ô+ˆÝ  5Ñ)Ô)ˆ	Ý˜	Ÿš aÑ(Ô(­+¬/¸!¸QÀÑ*FÔ*FÑGÔGÐGÝ˜	×(Ò(¨Ñ+Ô+­[Ô-?ÀÀ1ÀeÑ-LÔ-LÑMÔMÐMÝ˜	×)Ò)Ñ+Ô+­[Ô-@ÀÀEÑ-JÔ-JÑKÔKÐKÐKÐKrB   c                 ó*  — d}t           j                             d¦  «        }|                     |¦  «        }d|d<   |t          j        |¦  «        z  }t          j        |¦  «        }t          j        |||¦  «        }t          j        |¦  «        sJ ‚d S )NéX   l   iŒRZØY g ÂëþKH´9rg   )r9   rŒ   r�   r‘   rP   r   r½  Úisfinite)rV   r¼   r–   rÏ  r\   r½  s         r@   Útest_gh_11860zTestMultinomial.test_gh_11860Ù  s…   € ð
 ˆÝŒi×#Ò#Ð$7Ñ8Ô8ˆØ�JŠJ�q‰MŒMˆØˆˆ"‰Ø	�RŒV�A‰YŒY‰ˆÝŒG�A‰JŒJˆÝÔ# A q¨!Ñ,Ô,ˆÝŒ{˜6Ñ"Ô"Ð"Ð"Ð"Ð"Ð"rB   N)rÊ   rË   rÌ   rÂ  rË  rÑ  rM   rÑ   rÒ   rØ  râ  rä  rè  rï  r¡  r÷  rû  rý  rb  r  rÕ   rB   r@   r¹  r¹  ;  s{  € € € € € ð2ð 2ð 2ð	/ð 	/ð 	/ðMð Mð Mð" „[×Ò˜S 1 a &Ñ)Ô)ð%ð %ñ *Ô)ð%ðð ð ð6;ð ;ð ;ð  „[×Ò˜S 1 a &Ñ)Ô)ð/ð /ñ *Ô)ð/ð/ð /ð /ð „[×Ò˜S 1 a &Ñ)Ô)ð?ð ?ñ *Ô)ð?ð#ð #ð #ð „[×Ò˜S 1 a &Ñ)Ô)ð8ð 8ñ *Ô)ð8ðHð Hð Hð
Lð 
Lð 
Lð#ð #ð #ð #ð #rB   r¹  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestInvwishartc           	      ó�  — d}t          j        t          j        |¦  «        dz   ¦  «        }t          j        ||dz
  z  dz  ¦  «        |t          j        |d¬¦  «        <   t          j        |j        |¦  «        }g }t          d¦  «        D ]”}t          j        t          j        |¦  «        |dz   dz  z   ¦  «        }t          j        ||dz
  z  dz  ¦  «        |t          j        |d¬¦  «        <   t          j        |j        |¦  «        }|                     |¦  «         Œ•t          j        |¦  «        j        }ddt          j	        ddd¦  «        fd||fg}|D ]ì\  }}}t          ||¦  «        }t          |                     ¦   «         t          j        ||¦  «        ¦  «         t          |                     ¦   «         t          j        ||¦  «        ¦  «         t          |                     ¦   «         t          j        ||¦  «        ¦  «         t          |                     |¦  «        t          j        |||¦  «        ¦  «         Œíd S r™  )r9   rp   rê   r›  r  r“   r
  r}  rÇ   rJ  r   r   r:  r¨   rœ  r   r¥   )	rV   rØ   rK  r+  rB  r\   r�  rž  Úiws	            r@   rb  zTestInvwishart.test_frozenè  sü  € ð
 ˆÝ”�œ	 #™œ qÑ(Ñ)Ô)ˆÝ,.¬I°c¸3¸q¹5±kÀ!±mÑ,DÔ,Dˆ�bŒo˜c RÐ(Ñ(Ô(Ñ)Ý”�u”w Ñ&Ô&ˆð ˆÝ�q‘”ð 	ð 	ˆAÝ”�œ	 #™œ¨¨!©¨a¡xÑ/Ñ0Ô0ˆAÝ,.¬I°c¸3¸q¹5±kÀ!±mÑ,DÔ,DˆA�bŒo˜c RÐ(Ñ(Ô(Ñ)Ý”�q”s˜A‘”ˆAØ�HŠH�Q‰KŒKˆKˆKÝŒH�Q‰KŒKŒMˆð �•B”K  R¨Ñ+Ô+Ð,Ø�˜ˆNð
ˆ
ð
 )ð 	Eð 	E‰NˆR�˜Ý˜B Ñ&Ô&ˆBÝ˜Ÿš™œ¥:¤>°"°eÑ#<Ô#<Ñ=Ô=Ð=Ý˜Ÿš™œ¥J¤O°B¸Ñ$>Ô$>Ñ?Ô?Ð?Ý˜Ÿš™œ¥J¤O°B¸Ñ$>Ô$>Ñ?Ô?Ð?Ý˜BŸFšF 1™IœI¥z¤~°a¸¸UÑ'CÔ'CÑDÔDÐDÐDð	Eð 	ErB   c                 ó:  — t           j                             d¦  «         d}d}t          j        |¦  «        }t          j        dddt
          ¬¦  «        }t          j        dd	d	¬
¦  «        }|D �]+}t          ||¦  «        }t          |dz  d¬¦  «        }t          | 
                    ¦   «         | 
                    ¦   «         ¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         |                     |¬¦  «        }	|dz  ddf}
d}t          d|
||	¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «         �Œ-d S )Nr«  r¬  r
   rc   é   rH   r/  rš   r%  r­  rI  r´  r€   r   rR  r   )r9   rŒ   r    rQ   rê   r2  rJ  r   r   r   r:  r¨   r¥   r¡   r   r§   )rV   r¯  rØ   rK  r°  r+  rž  r  Úigr¡   r>   r¤  s               r@   Útest_1D_is_invgammaz"TestInvwishart.test_1D_is_invgamma  sc  € õ
 	Œ	�Š�vÑÔÐàˆØˆÝ”�s‘”ˆå”9˜Q  A­UÐ3Ñ3Ô3ˆÝŒK˜˜B 2Ð&Ñ&Ô&ˆØð 	8ñ 	8ˆBÝ˜B Ñ&Ô&ˆBÝ˜"˜Q™$ dÐ+Ñ+Ô+ˆBõ ˜BŸFšF™HœH b§f¢f¡h¤hÑ/Ô/Ð/Ý˜BŸGšG™IœI r§w¢w¡y¤yÑ1Ô1Ð1õ ˜BŸFšF 1™IœI r§v¢v¨a¡y¤yÑ1Ô1Ð1ð —&’&˜b�&‘/”/ˆCØ�q‘D˜!˜T�?ˆDØˆEÝ" :¨t°U¸CÑ@Ô@Ð@õ ˜BŸJšJ™LœL¨"¯*ª*©,¬,Ñ7Ô7Ð7Ñ7ð%	8ð 	8rB   c                 ó
  — d}d}t          j        |¦  «        }d|d<   d|d<   t          ||¦  «        }t           j                             d¦  «         t          j        ||¦  «        }t           j                             d¦  «         |                     ¦   «         }t           j                             d¦  «         t           j                             d¬¦  «        }t           j        t           j                             |dz
  ¦  «        t           j                             |d	z
  ¦  «        t           j                             |¦  «        f         dz  }t          j	        |¦  «        }	||	t          j
        |d
¬¦  «        <   t           j                             |¦  «        }
t           j                             |	j        |
j        ¦  «        j        }t          j        ||j        ¦  «        }t!          ||¦  «         t!          ||¦  «         d S )NrI   r%  rI  rè   r   iHG	 r€   rH   r
   rg   rš  )r9   rQ   r   rŒ   r    r¡   r×   r�  r¡  rp   r›  rº   rÎ   Úsolver“   r  r   )rV   rØ   rž  rK  r  Úiw_rvsÚfrozen_iw_rvsr¤  r¥  rv   r¦  ÚLÚmanual_iw_rvss                r@   Útest_invwishart_2D_rvsz%TestInvwishart.test_invwishart_2D_rvs)  s¦  € ØˆØˆõ ”�s‘”ˆØˆˆc‰
Øˆˆc‰
õ ˜˜EÑ"Ô"ˆõ 	Œ	�Š�vÑÔÐÝ”  EÑ*Ô*ˆÝ
Œ	�Š�vÑÔÐØŸš™œˆõ 	Œ	�Š�vÑÔÐÝ”i×&Ò&¨AÐ&Ñ.Ô.ˆÝ”EÝŒI×Ò  1¡Ñ%Ô%ÝŒI×Ò  1¡Ñ%Ô%ÝŒI×Ò Ñ#Ô#ð%ô
ð ñ	ˆ	õ ŒG�IÑÔˆØ(3ˆ�"Œ/˜# Ð
$Ñ
$Ô
$Ñ%õ ŒI×Ò˜uÑ%Ô%ˆÝŒI�OŠO˜AœC ¤Ñ%Ô%Ô'ˆÝœ˜q !¤#™œˆõ 	˜ Ñ.Ô.Ð.Ý˜ }Ñ5Ô5Ð5Ð5Ð5rB   c                 óv  — d}d}dD �]0}t          j        t          j        |¦  «        dz   ¦  «        }t          j        ||dz
  z  dz  ¦  «        |t          j        |d¬¦  «        <   t          j        |j        |¦  «        }t          ||¦  «        }|                     ¦   «         }|                     ¦   «         }||z  dz  }| 	                    |d	¬
¦  «        }	|	                     d¬¦  «        }
||dz   z  dz  }d|z  }t          j        d|dz  z
  ¦  «        }t          j        |
|z
  |z  d|¬¦  «        sJ ‚�Œ2dS )z1Test that sample mean consistent with known mean.r%  é N  )r
   rc   r
   rH   rg   rš  rI  rð   r�   r   r…   rR  r†  N)r9   rp   rê   r›  r  r“   r   r¨   r:  r¡   r   Úppfre  )rV   rž  Úsample_sizerØ   rK  rÈ   Ú	Xmean_expÚXvar_expÚ	Xmean_stdr+  Ú	Xmean_estÚntestsÚ	fail_rateÚmax_diffs                 r@   Útest_sample_meanzTestInvwishart.test_sample_meanW  sR  € ð ˆØˆØð 	ñ 	ˆCÝ”G�BœI c™NœN¨QÑ.Ñ/Ô/ˆEÝ02´	¸#ÀÀqÁ¹/ÈAÑ:MÑ0NÔ0NˆE•"”/ #¨Ð,Ñ,Ô,Ñ-Ý”F˜5œ7 EÑ*Ô*ˆEå˜b %Ñ(Ô(ˆDØŸ	š	™œˆIØ—x’x‘z”zˆHØ! KÑ/°#Ñ5ˆIà—’˜k¸�Ñ=Ô=ˆAØŸš A˜™œˆIà˜# ™'‘] AÑ%ˆFØ˜v™ˆIÝ”x  I°¡MÑ 1Ñ2Ô2ˆHÝ”;Ø˜YÑ&¨)Ñ3ØØðñ ô ð ð ð ñ ð!	ð 	rB   c                 óz  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }d	}t          j        |||¦  «        }|j        d
         }t           j                             |¦  «        \  }}t           j                             |¦  «        \  }}t           j                             ||¦  «        }	|dz  |z  ||z  dz  t          j        d¦  «        z  z
  t          |dz  |¦  «        z
  ||z   dz   dz  |z  z
  d|	 
                    ¦   «         z  z
  }
t          ||
¦  «         dS )zRegression test for gh-8844.)rH   r
   r   rI  )r
   rH   rI  rI  )r   rI  rI   r
   )rI  rI  r
   rH   )rÛ  rf   rI   r
   )rf   rÛ  rc   r
   )rI   rc   rÄ  rH   )r
   r
   rH   rÛ  rd   r   rH   r
   rI  N)r9   rÇ   r   r¦   r;   rº   r5  r  rø   r3   Útracer   )rV   r+  ÚPsiÚnuÚprobrÏ  ÚsigÚlogdetXÚ	logdetPsirá   r1  s              r@   Útest_logpdf_4x4zTestInvwishart.test_logpdf_4x4r  sa  € åŒH�n�n�nØ&Ð&Ð&Ø$�n�nØ&Ð&Ð&ð(ñ )ô )ˆõ Œh˜˜˜Ø$˜˜Ø$˜˜Ø$˜˜ð&ñ 'ô 'ˆð ˆÝÔ   B¨Ñ,Ô,ˆàŒG�AŒJˆÝ”y×(Ò(¨Ñ+Ô+‰ˆˆWÝœ×*Ò*¨3Ñ/Ô/‰ˆˆYÝŒI�OŠO˜A˜sÑ#Ô#ˆØ˜‘T˜9Ñ$Ø˜!‘t˜A‘v�rœv a™yœyÑ(ñ)å" 2 a¡4¨Ñ+Ô+ñ,ð ˜A‘v ‘z 1‘n WÑ,ñ-ð ˜!Ÿ'š'™)œ)‘mñ	$ˆõ
 	˜˜hÑ'Ô'Ð'Ð'Ð'rB   N)rÊ   rË   rÌ   rb  r  r  r&  r/  rÕ   rB   r@   r  r  ç  se   € € € € € ðEð Eð Eð@8ð 8ð 8ðB,6ð ,6ð ,6ð\ð ð ð6(ð (ð (ð (ð (rB   r  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestSpecialOrthoGroupc                 óR  — t           j                             d¦  «         t          j        d¦  «        }t          j        g d¢g d¢g d¢g¦  «        }t          ||¦  «         t           j                             d¬¦  «        }t          j        d|¬¦  «        }t          ||¦  «         d S )Né  rI   )gð‘(fÎï¿g^A�È.§¿g*ãB’¡¹?)gñ:Ñdµ¯¨?gÖ‡2uóï¿gi�}ÕÂ›?)gR#xl™F¹?g‚�^`˜D ?gž×ÑÓï?rŸ   r·   )r9   rŒ   r    r   r¡   rÇ   r   rÔ  )rV   r\   r1  rž   s       r@   Útest_reproducibilityz*TestSpecialOrthoGroup.test_reproducibilityŒ  s¯   € Ý
Œ	�Š�sÑÔÐÝÔ# AÑ&Ô&ˆÝ”8ÐCÐCÐCØBÐBÐBØAÐAÐAðCñ Dô Dˆõ 	" ! XÑ.Ô.Ð.å”y×,Ò,°#Ð,Ñ6Ô6ˆÝÔ# A°LÐAÑAÔAˆÝ! ! XÑ.Ô.Ð.Ð.Ð.rB   c                 ó  — t          t          t          j        d ¦  «         t          t          t          j        d¦  «         t          t          t          j        d¦  «         t          t          t          j        d¦  «         d S ©Nr‘  r
   rò   )rì   rN   r   r¡   ©rV   s    r@   Útest_invalid_dimz&TestSpecialOrthoGroup.test_invalid_dim˜  s`   € Ý•jÕ"5Ô"9¸4Ñ@Ô@Ð@Ý•jÕ"5Ô"9¸6ÑBÔBÐBÝ•jÕ"5Ô"9¸1Ñ=Ô=Ð=Ý•jÕ"5Ô"9¸3Ñ?Ô?Ð?Ð?Ð?rB   c                 ó    — d}t          |¦  «        }|                     d¬¦  «        }t          j        |d¬¦  «        }t          ||¦  «         d S )Nrf   rð   r·   )r   r¡   r   )rV   rØ   r  r  r  s        r@   Útest_frozen_matrixz(TestSpecialOrthoGroup.test_frozen_matrixž  sR   € ØˆÝ$ SÑ)Ô)ˆà�zŠz tˆzÑ,Ô,ˆÝ"Ô& s¸Ð>Ñ>Ô>ˆå�T˜4Ñ Ô Ð Ð Ð rB   c                 ó  — d„ t          dd¦  «        D ¦   «         }d„ |D ¦   «         }t          |dgdz  d¬¦  «         |D ]G}t          t          j        ||j        ¦  «        t          j        |j        d	         ¦  «        ¦  «         ŒHd S )
Nc                 óZ   — g | ](}t          d ¦  «        D ]}t          j        |¦  «        ‘ŒŒ)S rÚ  )r
  r   r¡   ©Ú.0rØ   rB  s      r@   ú
<listcomp>z<TestSpecialOrthoGroup.test_det_and_ortho.<locals>.<listcomp>¨  sN   € ð !ð !ð !ØÝ˜Q‘x”xð!ð !àõ "Ô% cÑ*Ô*ð !ð !ð !ð !rB   rH   rÿ  c                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S rÕ   ©r9   rº   r4  ©r>  r\   s     r@   r?  z<TestSpecialOrthoGroup.test_det_and_ortho.<locals>.<listcomp>­  s&   € Ð-Ð-Ð- Q•”	—’˜aÑ Ô Ð-Ð-Ð-rB   rÄ   é   ç‚vIhÂ%<=r=  r   )r
  r   r   r9   r  r“   rQ   r;   )rV   r‚  Údetsr\   s       r@   Útest_det_and_orthoz(TestSpecialOrthoGroup.test_det_and_ortho§  s«   € ð!ð !Ý˜q ™œð!ñ !ô !ˆð
 .Ð-¨"Ð-Ñ-Ô-ˆÝ˜˜r˜d 2™g¨EÐ2Ñ2Ô2Ð2ð ð 	:ð 	:ˆAÝ%¥b¤f¨Q°´¡n¤nÝ&(¤f¨Q¬W°Q¬ZÑ&8Ô&8ñ:ô :ð :ð :ð	:ð 	:rB   c                 ó  ‡‡‡— d}d}d}t           j                             d¦  «         t          j        ||¬¦  «        ŠdŠˆfd„‰D ¦   «         Šˆfd„‰D ¦   «         }ˆfd	„|D ¦   «         }t          |gt          |¦  «        z  |¦  «         d S )
Nrc   r)  çš™™™™™©?r3  r€   ©rO  rÜ  )r
   re   r·  c                 óX   •‡‡— i | ]$\  ŠŠ‰‰ft          ˆˆfd „‰D ¦   «         ¦  «        “Œ%S )c                 ó,   •— g | ]}|‰         ‰         ‘ŒS rÕ   rÕ   ©r>  r\   ÚecÚers     €€r@   r?  z>TestSpecialOrthoGroup.test_haar.<locals>.<dictcomp>.<listcomp>Ë  ó!   ø€ Ð!8Ð!8Ð!8° ! B¤%¨¤)Ð!8Ð!8Ð!8rB   ©Úsorted©r>  rM  rN  r‚  s    @@€r@   ú
<dictcomp>z3TestSpecialOrthoGroup.test_haar.<locals>.<dictcomp>Ë  óE   øøø€ ÐLÐLÐL¹f¸bÀ"��R��&Ð!8Ð!8Ð!8Ð!8Ð!8°RÐ!8Ñ!8Ô!8Ñ9Ô9ÐLÐLÐLrB   c                 ó.   •— g | ]}‰D ]}||k    ¯||f‘ŒŒS rÕ   rÕ   ©r>  Úe0Úe1Úelss      €r@   r?  z3TestSpecialOrthoGroup.test_haar.<locals>.<listcomp>Ì  ó.   ø€ ÐAÐAÐA˜b°#ÐAÐA¨B¸¸bº¸�"�b�¸¸¸¸rB   c                 óZ   •— g | ]'\  }}t          ‰|         ‰|         ¦  «        d          ‘Œ(S rÚ  ©r   ©r>  Úp0Úp1Úprojs      €r@   r?  z3TestSpecialOrthoGroup.test_haar.<locals>.<listcomp>Í  ó4   ø€ ÐJÐJÐJ¹¸¸R•H˜T "œX t¨B¤xÑ0Ô0°Ô3ÐJÐJÐJrB   )r9   rŒ   r    r   r¡   r   r’   ©	rV   rØ   rè  Úks_probÚpairsÚks_testsrY  r`  r‚  s	         @@@r@   Ú	test_haarzTestSpecialOrthoGroup.test_haarµ  s´   øøø€ ð ˆØˆØˆÝ
Œ	�Š�sÑÔÐÝ Ô$ S¨wÐ7Ñ7Ô7ˆð +ˆàLÐLÐLÐLÈÐLÑLÔLˆØAÐAÐAÐA CÐAÑAÔAˆØJÐJÐJÐJÀEÐJÑJÔJˆÝ˜7˜)¥C¨¡J¤JÑ.°Ñ9Ô9Ð9Ð9Ð9rB   N)rÊ   rË   rÌ   r4  r8  r:  rF  rf  rÕ   rB   r@   r1  r1  ‹  sb   € € € € € ð
/ð 
/ð 
/ð@ð @ð @ð!ð !ð !ð:ð :ð :ð:ð :ð :ð :ð :rB   r1  c                   ó¢   — e Zd Zd„ Zd„ Zd„ Zd„ Zej         	                    dg d¢¦  «        d„ ¦   «         Z
d„ Zej        j        d	„ ¦   «         Zd
S )ÚTestOrthoGroupc                 óp  — d}t           j                             |¦  «         t          j        d¦  «        }t          j        d|¬¦  «        }t          t           j                             |¦  «        d¦  «         t          j        g d¢g d¢g d¢g¦  «        }t          ||¦  «         t          ||¦  «         d S )Nr3  rI   r·   rg   )gÝÓÕ‹mØ?gÓ hÀ"·¿gE�¹‡„oí?)g~7Ý²Cüì?gž’>­Ä¿g0JÐ_èÙ¿)gÝ±Ø&�Ç¿gü ¤6qrï¿g`Xþ|[°”¿)
r9   rŒ   r    r   r¡   r   rº   r4  rÇ   r   )rV   r    r\   r­   r1  s        r@   r4  z#TestOrthoGroup.test_reproducibilityÒ  s·   € ØˆÝ
Œ	�Š�tÑÔÐÝŒO˜AÑÔˆÝŒ_˜Q¨TÐ2Ñ2Ô2ˆå�BœIŸMšM¨!Ñ,Ô,¨bÑ1Ô1Ð1Ý”8Ð<Ð<Ð<Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ @ô @ˆõ 	" ! XÑ.Ô.Ð.Ý! " hÑ/Ô/Ð/Ð/Ð/rB   c                 ó  — t          t          t          j        d ¦  «         t          t          t          j        d¦  «         t          t          t          j        d¦  «         t          t          t          j        d¦  «         d S r6  )rì   rN   r   r¡   r7  s    r@   r8  zTestOrthoGroup.test_invalid_dimß  sX   € Ý•j¥+¤/°4Ñ8Ô8Ð8Ý•j¥+¤/°6Ñ:Ô:Ð:Ý•j¥+¤/°1Ñ5Ô5Ð5Ý•j¥+¤/°3Ñ7Ô7Ð7Ð7Ð7rB   c                 ó  — d}t          |¦  «        }t          |d¬¦  «        }|                     d¬¦  «        }t          j        |d¬¦  «        }|                     d¬¦  «        }t          ||¦  «         t          ||¦  «         d S )Nrf   rð   rŸ   r·   r
   r€   )r   r¡   r   ©rV   rØ   r  Úfrozen_seedr  r  Úrvs3s          r@   r:  z!TestOrthoGroup.test_frozen_matrixå  s†   € ØˆÝ˜SÑ!Ô!ˆÝ! #¨DÐ1Ñ1Ô1ˆà�zŠz tˆzÑ,Ô,ˆÝŒ˜s°Ð6Ñ6Ô6ˆØ�Š AˆÑ&Ô&ˆå�T˜4Ñ Ô Ð Ý�T˜4Ñ Ô Ð Ð Ð rB   c           	      óŠ  — d„ t          dd¦  «        D ¦   «         }t          j        d„ |D ¦   «         ¦  «        }t          t          j        |¦  «        t          j        |j        ¦  «        d¬¦  «         |D ]L}|D ]G}t          t          j        ||j	        ¦  «        t          j
        |j        d         ¦  «        ¦  «         ŒHŒMd S )Nc                 óF   ‡— g | ]Šˆfd „t          d¦  «        D ¦   «         ‘ŒS )c                 ó8   •— g | ]}t          j        ‰¦  «        ‘ŒS rÕ   )r   r¡   )r>  rB  rØ   s     €r@   r?  z@TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>.<listcomp>ò  s3   ø€ ð #ð #ð #Øõ Œ˜sÑ#Ô#ð #ð #ð #rB   r%  )r
  )r>  rØ   s    @r@   r?  z5TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>ò  sP   ø€ ð &ð &ð &àð#ð #ð #ð #Ý˜b™	œ	ð#ñ #ô #ð &ð &ð &rB   rH   rÿ  c                 ó&   — g | ]}d „ |D ¦   «         ‘ŒS )c                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S rÕ   rA  rB  s     r@   r?  z@TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>.<listcomp>÷  s&   € Ð7Ð7Ð7¨q�"œ)Ÿ-š-¨Ñ*Ô*Ð7Ð7Ð7rB   rÕ   )r>  Úxxs     r@   r?  z5TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>÷  s'   € ÐEÐEÐE¸BÐ7Ð7°BÐ7Ñ7Ô7ÐEÐEÐErB   rD  r=  r   )r
  r9   rÇ   r   ÚfabsrP   r;   r   r  r“   rQ   )rV   r‚  rE  rt  r\   s        r@   rF  z!TestOrthoGroup.test_det_and_orthoñ  sØ   € ð&ð &å˜q ™œð&ñ &ô &ˆõ
 ŒxÐEÐEÀ"ÐEÑEÔEÑFÔFˆÝ�œ ™œ¥r¤w¨t¬zÑ':Ô':ÀÐGÑGÔGÐGð ð 	>ð 	>ˆBØð >ð >�Ý)­"¬&°°A´C©.¬.Ý*,¬&°´¸´Ñ*<Ô*<ñ>ô >ð >ð >ð>ð	>ð 	>rB   rØ   )rH   rc   r%  r  c                 óœ  — t           j                             d¦  «        }t          |¬¦  «        }|                     d|¬¦  «        }t
          j                             |¦  «        }t          j        |dk    ¦  «        }t          |¦  «        }t          j        ||¦  «        }|                     d¬¦  «        \  }	}
|	dcxk     r|
k     sn J ‚d S )	Nl   ø<`L«‰r ©rØ   rš  r�   r   gffffffî?)Úconfidence_levelrI  )r9   rŒ   r�   r   r¡   rÆ   rº   r4  r‘   r’   r-   Ú	binomtestÚproportion_ci)rV   rØ   r–   rÈ   r¡   rE  r  r¼   r<   ÚlowÚhighs              r@   Útest_det_distribution_gh18272z,TestOrthoGroup.test_det_distribution_gh18272   sÈ   € õ Œi×#Ò#Ð$7Ñ8Ô8ˆÝ˜sÐ#Ñ#Ô#ˆØ�hŠh˜D¨sˆhÑ3Ô3ˆÝŒ|×Ò Ñ$Ô$ˆÝŒF�4˜!’8ÑÔˆÝ�‰IŒIˆÝŒo˜a Ñ#Ô#ˆØ×%Ò%°tÐ%Ñ<Ô<‰	ˆˆTØ�SÐÐÒÐ˜4ÒÐÐÐÐÐÐÐrB   c                 ó  ‡‡‡— d}d}d}t           j                             d¦  «         t          j        ||¬¦  «        ŠdŠˆfd„‰D ¦   «         Šˆfd„‰D ¦   «         }ˆfd	„|D ¦   «         }t          |gt          |¦  «        z  |¦  «         d S )
Nrc   r)  rH  i  r€   rI  c                 óX   •‡‡— i | ]$\  ŠŠ‰‰ft          ˆˆfd „‰D ¦   «         ¦  «        “Œ%S )c                 ó,   •— g | ]}|‰         ‰         ‘ŒS rÕ   rÕ   rL  s     €€r@   r?  z7TestOrthoGroup.test_haar.<locals>.<dictcomp>.<listcomp>#  rO  rB   rP  rR  s    @@€r@   rS  z,TestOrthoGroup.test_haar.<locals>.<dictcomp>#  rT  rB   c                 ó.   •— g | ]}‰D ]}||k    ¯||f‘ŒŒS rÕ   rÕ   rV  s      €r@   r?  z,TestOrthoGroup.test_haar.<locals>.<listcomp>$  rZ  rB   c                 óZ   •— g | ]'\  }}t          ‰|         ‰|         ¦  «        d          ‘Œ(S rÚ  r\  r]  s      €r@   r?  z,TestOrthoGroup.test_haar.<locals>.<listcomp>%  ra  rB   )r9   rŒ   r    r   r¡   r   r’   rb  s	         @@@r@   rf  zTestOrthoGroup.test_haar  s³   øøø€ ð ˆØˆØˆÝ
Œ	�Š�sÑÔÐÝŒ_˜S wÐ/Ñ/Ô/ˆð +ˆàLÐLÐLÐLÈÐLÑLÔLˆØAÐAÐAÐA CÐAÑAÔAˆØJÐJÐJÐJÀEÐJÑJÔJˆÝ˜7˜)¥C¨¡J¤JÑ.°Ñ9Ô9Ð9Ð9Ð9rB   c                 ó8  ‡— t           j                             d¦  «         d„ }t          dd¦  «        D ]eŠd	ˆfd„	} ||¦  «        } |t          j        j        j        ¦  «        }t          j                             ||¦  «        \  }}t          d|¦  «         Œfd S )
Nr3  c                 ó²   — t           j                             t           j                             | | f¬¦  «        ¦  «        \  }}}t          j        ||¦  «        S ©Nr€   )r9   rº   rà   rŒ   r×   r  )rØ   râ   Ú_srÛ   s       r@   Úrandom_orthoz<TestOrthoGroup.test_pairwise_distances.<locals>.random_ortho-  sB   € Ý”y—}’}¥R¤Y×%5Ò%5¸CÀ¸:Ð%5Ñ%FÔ%FÑGÔG‰HˆAˆr�1Ý”6˜!˜Q‘<”<ÐrB   rH   rd   r)  r…  c                 ó¼   •‡ — t          j        ˆˆ fd„t          |¦  «        D ¦   «         ¦  «        }|t           j                             | ||j        ¬¦  «        z  }|S )Nc                 ól   •— g | ]0}t          j         ‰‰¬ ¦  «         ‰‰¬ ¦  «        z
  dz  ¦  «        ‘Œ1S )rw  rH   )r9   r‘   )r>  rÚ   rØ   r¡   s     €€r@   r?  z\TestOrthoGroup.test_pairwise_distances.<locals>.generate_test_statistics.<locals>.<listcomp>3  sQ   ø€ ð "ð "ð "àõ ”F˜C˜C C˜L™LœL¨3¨3°3¨<©<¬<Ñ7¸!Ñ;Ñ<Ô<ð"ð "ð "rB   r€   )r9   rÇ   r
  rŒ   r   r;   )r¡   r–  Úepsr-   rØ   s   `   €r@   Úgenerate_test_statisticszHTestOrthoGroup.test_pairwise_distances.<locals>.generate_test_statistics2  sr   øø€ Ýœð "ð "ð "ð "ð "å" 1™XœXð"ñ "ô "ñ ô �ð
 �œ×*Ò*¨C¨4°¸5¼;Ð*ÑGÔGÑG�Ø�rB   rH  )r)  r…  )
r9   rŒ   r    r
  rÆ   r-   r   r¡   r   r   )rV   r‡  r‹  r1  rD  Ú_DrÏ  rØ   s          @r@   Útest_pairwise_distancesz&TestOrthoGroup.test_pairwise_distances(  sÁ   ø€ õ 	Œ	�Š�sÑÔÐð	 ð 	 ð 	 õ ˜˜A‘;”;ð 	&ð 	&ˆCðð ð ð ð ð ð 0Ð/°Ñ=Ô=ˆHØ-Ð-­e¬kÔ.EÔ.IÑJÔJˆFå”K×(Ò(¨°6Ñ:Ô:‰EˆB�å˜c 1Ñ%Ô%Ð%Ð%ð	&ð 	&rB   N)rÊ   rË   rÌ   r4  r8  r:  rF  rM   rÑ   rÒ   r}  rf  Úslowr�  rÕ   rB   r@   rh  rh  Ñ  s²   € € € € € ð0ð 0ð 0ð8ð 8ð 8ð
!ð 
!ð 
!ð>ð >ð >ð „[×Ò˜U N N NÑ3Ô3ð
 ð 
 ñ 4Ô3ð
 ð:ð :ð :ð6 „[Ôð&ð &ñ Ôð&ð &ð &rB   rh  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestRandomCorrelationc                 ó  — t           j                             d¦  «         d}t          j        |¦  «        }t          j        |d¬¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          ||¦  «         t          ||¦  «         d S )Nr3  ©rI  rk  rG  rñ   r·   )rÄ   ç¼Ñ“2©Ç¿ç–AµÁ‰è»?çý¢ý…Í¿)r“  rÄ   ç 4Ô($™Í?çR}ç%èÔ?)r”  r–  rÄ   çqTn¢–æÆ¿)r•  r—  r˜  rÄ   )r9   rŒ   r    r   r¡   rÇ   r   )rV   rŸ  r\   r­   r1  s        r@   r4  z*TestRandomCorrelation.test_reproducibilityD  s¥   € Ý
Œ	�Š�sÑÔÐØ!ˆÝÔ" 4Ñ(Ô(ˆÝÔ# D°sÐ;Ñ;Ô;ˆÝ”8ÐAÐAÐAØ@Ð@Ð@Ø@Ð@Ð@ØAÐAÐAðCñ Dô Dˆõ 	" ! XÑ.Ô.Ð.Ý! " hÑ/Ô/Ð/Ð/Ð/rB   c                 óÜ  — t          t          t          j        d ¦  «         t          t          t          j        d¦  «         t          t          t          j        d¦  «         t          t          t          j        dg¦  «         t          t          t          j        ddgddgg¦  «         t          t          t          j        ddg¦  «         t          t          t          j        g d¢¦  «         d S )	NÚtestrò   r
   rH   rI   re   g      à¿)r
   rH   rš   )rì   rN   r   r¡   r7  s    r@   Útest_invalid_eigsz'TestRandomCorrelation.test_invalid_eigsP  s¸   € Ý•jÕ"4Ô"8¸$Ñ?Ô?Ð?Ý•jÕ"4Ô"8¸&ÑAÔAÐAÝ•jÕ"4Ô"8¸#Ñ>Ô>Ð>Ý•jÕ"4Ô"8¸3¸%Ñ@Ô@Ð@Ý•jÕ"4Ô"8¸A¸a¸5À!ÀAÀ¸-ÑHÔHÐHÝ•jÕ"4Ô"8¸3À¸*ÑEÔEÐEÝ•jÕ"4Ô"8¸*¸*¸*ÑEÔEÐEÐEÐErB   c                 ó
  — d}t          |¦  «        }t          |d¬¦  «        }t          j        |d¬¦  «        }|                     d¬¦  «        }|                     ¦   «         }t          ||¦  «         t          ||¦  «         d S )Nr’  r3  rŸ   r·   )r   r¡   r   )rV   rŸ  r  rm  r  r  rn  s          r@   r:  z(TestRandomCorrelation.test_frozen_matrixY  sƒ   € Ø!ˆÝ# DÑ)Ô)ˆÝ(¨°CÐ8Ñ8Ô8ˆå!Ô% d¸Ð=Ñ=Ô=ˆØ�zŠz sˆzÑ+Ô+ˆØ�ŠÑ Ô ˆå�T˜4Ñ Ô Ð Ý�T˜4Ñ Ô Ð Ð Ð rB   c                 óØ  ‡
— d„ Š
t           j                             d¦  «         ˆ
fd„t          dd¦  «        D ¦   «         }|                     g d¢¦  «         d„ |D ¦   «         }d„ |D ¦   «         }d	„ |D ¦   «         }d
„ |D ¦   «         }t          ||dd¬¦  «         d„ |D ¦   «         }t          ||¦  «        D ]\  }}t          ||d¬¦  «         Œ|D ]}	t          |	|	j        d¬¦  «         Œd S )Nc                 ó,   — | |z  t          |¦  «        z  S r8   )r‘   )rB  r  s     r@   r   z3TestRandomCorrelation.test_definition.<locals>.normm  s   € Ø�Q‘3•s˜1‘v”v‘:ÐrB   rÓ  c                 ód   •— g | ],} ‰|t           j                             |¬ ¦  «        ¦  «        ‘Œ-S )r€   )r9   rŒ   r   )r>  rB  r   s     €r@   r?  z9TestRandomCorrelation.test_definition.<locals>.<listcomp>r  s8   ø€ ÐHÐHÐH°q���Q�œ	×)Ò)¨qÐ)Ñ1Ô1Ñ2Ô2ÐHÐHÐHrB   rH   rd   )re   r   r   r   c                 ó4   — g | ]}d gt          |¦  «        z  ‘ŒS )rÄ   )r’   ©r>  r  s     r@   r?  z9TestRandomCorrelation.test_definition.<locals>.<listcomp>u  s$   € Ð*Ð*Ð* ��•S˜‘V”V‘Ð*Ð*Ð*rB   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rÕ   )r   r¡   r¡  s     r@   r?  z9TestRandomCorrelation.test_definition.<locals>.<listcomp>v  s$   € Ð6Ð6Ð6¨AÕ Ô$ QÑ'Ô'Ð6Ð6Ð6rB   c                 óp   — g | ]3}t          j        t           j                             |¦  «        ¦  «        ‘Œ4S rÕ   )r9   ru  rº   r4  rB  s     r@   r?  z9TestRandomCorrelation.test_definition.<locals>.<listcomp>|  s0   € Ð6Ð6Ð6¨a•”�œ	Ÿš aÑ(Ô(Ñ)Ô)Ð6Ð6Ð6rB   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rÕ   )r9   Úprodr¡  s     r@   r?  z9TestRandomCorrelation.test_definition.<locals>.<listcomp>}  s    € Ð/Ð/Ð/ Q•b”g˜a‘j”jÐ/Ð/Ð/rB   rD  rS  c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rÕ   )r9   rp   rB  s     r@   r?  z9TestRandomCorrelation.test_definition.<locals>.<listcomp>�  s    € Ð(Ð(Ð( •”˜‘”Ð(Ð(Ð(rB   r=  )r9   rŒ   r    r
  r}  r   Úzipr“   )rV   rŸ  rP   r‚  rE  Ú
dets_knownÚdiagsr«  r¬  r\   r   s             @r@   Útest_definitionz%TestRandomCorrelation.test_definitione  sC  ø€ ð	ð 	ð 	õ 	Œ	�Š�sÑÔÐàHÐHÐHÐH½EÀ!ÀQ¹K¼KÐHÑHÔHˆØ�Š�I�I�IÑÔÐà*Ð* TÐ*Ñ*Ô*ˆØ6Ð6°Ð6Ñ6Ô6ˆð 7Ð6°2Ð6Ñ6Ô6ˆØ/Ð/¨$Ð/Ñ/Ô/ˆ
Ý˜˜j¨u¸5ÐAÑAÔAÐAð )Ð( RÐ(Ñ(Ô(ˆÝ˜˜tÑ$Ô$ð 	.ð 	.‰DˆAˆqÝ˜A˜q uÐ-Ñ-Ô-Ð-Ð-ð ð 	0ð 	0ˆAÝ˜A˜qœs¨Ð/Ñ/Ô/Ð/Ð/ð	0ð 	0rB   c           	      óð  — t          j        ddgddggt          ¬¦  «        }t          j        |¦  «        }t          |t          j        ddgddgg¦  «        ¦  «         t          j        d¬¦  «        5  t          j        ddgddgg¦  «        }t          j        ddgdt          j        dd¦  «        ggt          ¬¦  «        }t          j        |                     ¦   «         ¦  «        }t          ||j	         
                    |¦  «         
                    |¦  «        ¦  «         t          j        d	dgdd
ggt          ¬¦  «        }t          j        |                     ¦   «         ¦  «        }t          ||j	         
                    |¦  «         
                    |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ddgddggt          ¬¦  «        }t          j        |                     ¦   «         ¦  «        }t          |d         d¦  «         t          j        ddgddggt          ¬¦  «        }t          j        |                     ¦   «         ¦  «        }t          |d         d¦  «         d S )Nrš   r   r
   r/  Úignore)Úoverrg   gœu ˆ<ä7~rH  rW  rH   rO  gMùk   @)r9   rÇ   r2  r   Ú_to_corrr   ÚerrstateÚ	nextafterÚcopyr“   r  )rV   rï  ÚgÚm0s       r@   Útest_to_corrz"TestRandomCorrelation.test_to_corr‰  sU  € õ ŒH�s˜A�h  A Ð'­uÐ5Ñ5Ô5ˆÝÔ'¨Ñ*Ô*ˆÝ˜�2œ8 a¨ V¨a°¨XÐ$6Ñ7Ô7Ñ8Ô8Ð8õ
 Œ[˜hÐ'Ñ'Ô'ð 		3ð 		3Ý”˜1˜a˜& 2 q 'Ð*Ñ+Ô+ˆAå”˜E 1˜:¨­2¬<¸¸1Ñ+=Ô+=Ð'>Ð?ÅuÐMÑMÔMˆBÝ"Ô+¨B¯GªG©I¬IÑ6Ô6ˆAÝ˜A˜qœsŸwšw r™{œ{Ÿš¨qÑ1Ô1Ñ2Ô2Ð2å”˜C ˜<¨%°¨Ð6½eÐDÑDÔDˆBÝ"Ô+¨B¯GªG©I¬IÑ6Ô6ˆAÝ˜A˜qœsŸwšw r™{œ{Ÿš¨qÑ1Ô1Ñ2Ô2Ð2ð		3ð 		3ð 		3ñ 		3ô 		3ð 		3ð 		3ð 		3ð 		3ð 		3ð 		3øøøð 		3ð 		3ð 		3ð 		3õ ŒX˜˜1�v  1˜vÐ&­eÐ4Ñ4Ô4ˆÝÔ'¨¯ª©	¬	Ñ2Ô2ˆÝ˜˜#œ Ñ"Ô"Ð"õ ŒX˜ !�} q¨! fÐ-µUÐ;Ñ;Ô;ˆÝÔ'¨¯ª©	¬	Ñ2Ô2ˆÝ˜˜#œ Ñ"Ô"Ð"Ð"Ð"s   Á3D2F1Æ1F5Æ8F5N)rÊ   rË   rÌ   r4  r›  r:  rª  r´  rÕ   rB   r@   r�  r�  C  sc   € € € € € ð
0ð 
0ð 
0ðFð Fð Fð
!ð 
!ð 
!ð"0ð "0ð "0ðH#ð #ð #ð #ð #rB   r�  c                   ó>  — e Zd Zej                             dddg¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zd	„ Zej                             dg d
¢¦  «        d„ ¦   «         Z	dS )ÚTestUniformDirectionrØ   r
   rI   r�   ©Nr
   rc   )rc   re   c                 ó–  — t           j                             d¦  «        }t          ||¬¦  «        }|                     |¦  «        }t          j        |¦  «        t          j        |¦  «        }}|                     |||¬¦  «        j        }|j        |k    sJ ‚t           j	         
                    |d¬¦  «        }	t          |	d¦  «         d S )Nì   Sid)_i4 rŸ   r€   rg   r…   rÄ   )r9   rŒ   r�   r'   r¡   r¸   rQ   r   r;   rº   r   r   )
rV   rØ   r�   r–   Úuniform_direction_distrè  r¨   r¿   Úexpected_shapeÚnormss
             r@   r2  z!TestUniformDirection.test_samples«  s¶   € õ Œi×#Ò#Ð$7Ñ8Ô8ˆÝ!2°3¸SÐ!AÑ!AÔ!AÐØ(×,Ò,¨TÑ2Ô2ˆÝ”H˜S‘M”M¥2¤6¨#¡;¤;ˆcˆØ×0Ò0°°sÀÐ0ÑFÔFÔLˆØŒ} Ò.Ð.Ð.Ð.Ý”	—’˜w¨R�Ñ0Ô0ˆÝ˜˜rÑ"Ô"Ð"Ð"Ð"rB   )Nr   r‘  rò   c                 óš   — d}t          j        t          |¬¦  «        5  t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzMDimension of vector must be specified, and must be an integer greater than 0.rF   )rM   r	   rN   r'   r¡   )rV   rØ   rW   s      r@   r8  z%TestUniformDirection.test_invalid_dim¸  s“   € ð<ˆåŒ]�:¨WÐ5Ñ5Ô5ð 	'ð 	'ÝÔ! #Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   žA Á AÁAc                 ó
  — d}t          |¦  «        }t          |d¬¦  «        }|                     d¬¦  «        }t          j        |d¬¦  «        }|                     ¦   «         }t          ||¦  «         t          ||¦  «         d S )Nrc   r3  rŸ   r·   )r'   r¡   r   rl  s          r@   Útest_frozen_distributionz-TestUniformDirection.test_frozen_distribution¿  sƒ   € ØˆÝ" 3Ñ'Ô'ˆÝ'¨°#Ð6Ñ6Ô6ˆà�zŠz sˆzÑ+Ô+ˆÝ Ô$ S°sÐ;Ñ;Ô;ˆØ�ŠÑ Ô ˆå�T˜4Ñ Ô Ð Ý�T˜4Ñ Ô Ð Ð Ð rB   )rH   rc   rÄ  c                 ó(  — t           j                             d¦  «        }t          ||¬¦  «        }|                     d¬¦  «        \  }}|||z  |z  z  }|t           j                             |¦  «        z  }t          ||z  dd¬¦  «         |                     d¬¦  «        }||z  }||z  }t          j        ||¦  «        }	|	t           j	        z  }	|	dt           j	        z  z  }	t          ¦   «         }
t          |	|
j        ¦  «        }|j        d	k    sJ ‚d S )
Nl   @9š¼Y srŸ   rH   r€   r   rÎ  r†  é'  rH  )r9   rŒ   r�   r'   r¡   rº   r   r   Úarctan2rž  r   r    r°   Úpvalue)rV   rØ   r–   Úspherical_distÚv1Úv2rè  Ús1Ús2ÚanglesÚuniform_distÚkstest_results               r@   Útest_uniformz!TestUniformDirection.test_uniformË  s  € åŒi×#Ò#Ð$7Ñ8Ô8ˆÝ*¨3°SÐ9Ñ9Ô9ˆà×#Ò#¨Ð#Ñ+Ô+‰ˆˆBØ
ˆb�2‰g˜‰lÑˆØ
�bŒi�nŠn˜RÑ Ô Ñ ˆÝ˜˜R™ ¨Ð/Ñ/Ô/Ð/à ×$Ò$¨%Ð$Ñ0Ô0ˆØ�r‰\ˆØ�r‰\ˆÝ”˜B Ñ#Ô#ˆð 	•"”%‰ˆØ�!•B”E‘'Ñˆå‘y”yˆÝ˜v |Ô'7Ñ8Ô8ˆØÔ# dÒ*Ð*Ð*Ð*Ð*Ð*rB   N)
rÊ   rË   rÌ   rM   rÑ   rÒ   r2  r8  r¿  rÌ  rÕ   rB   r@   r¶  r¶  ª  sÞ   € € € € € Ø„[×Ò˜U Q¨ FÑ+Ô+Ø„[×Ò˜VÐ%9Ð%9Ð%9Ñ:Ô:ð	#ð 	#ñ ;Ô:ñ ,Ô+ð	#ð „[×Ò˜UÐ$:Ð$:Ð$:Ñ;Ô;ð'ð 'ñ <Ô;ð'ð
!ð 
!ð 
!ð „[×Ò˜U I I IÑ.Ô.ð+ð +ñ /Ô.ð+ð +ð +rB   r¶  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestUnitaryGroupc                 ó  — t           j                             d¦  «         t          j        d¦  «        }t          j        dd¬¦  «        }t          j        g d¢g d¢g d¢g¦  «        }t          ||¦  «         t          ||¦  «         d S )Nr3  rI   r·   )y~½pçÂÓ?yÎZ×?y“§¬¦ë‰¦?ÊÄ­‚èã?y¬8ÕZ˜…Ä?‘&Þž4ã?)yEHÝÎ¾rç?8iÍÓ?y¡eÝ?¢³?+ö—Ý“‡Ý¿yŸu�–=Ù¿B˜Û½Ü'—?)yqXøQÃ¿Ÿ��·±ÙÖ?yˆ˜Në6Ò¿º¿zÜ·Úá¿yŽ! 8ölã?2WÕ'Ó?)r9   rŒ   r    r   r¡   rÇ   r   )rV   r\   r­   r1  s       r@   r4  z%TestUnitaryGroup.test_reproducibilityä  s•   € Ý
Œ	�Š�sÑÔÐÝÔ˜aÑ Ô ˆÝÔ˜q¨sÐ3Ñ3Ô3ˆå”8ØIÐIÐIØHÐHÐHØKÐKÐKðMñ
ô 
ˆõ 	" ! XÑ.Ô.Ð.Ý! " hÑ/Ô/Ð/Ð/Ð/rB   c                 ó  — t          t          t          j        d ¦  «         t          t          t          j        d¦  «         t          t          t          j        d¦  «         t          t          t          j        d¦  «         d S r6  )rì   rN   r   r¡   r7  s    r@   r8  z!TestUnitaryGroup.test_invalid_dimò  s\   € Ý•j¥-Ô"3°TÑ:Ô:Ð:Ý•j¥-Ô"3°VÑ<Ô<Ð<Ý•j¥-Ô"3°QÑ7Ô7Ð7Ý•j¥-Ô"3°SÑ9Ô9Ð9Ð9Ð9rB   c                 ó  — d}t          |¦  «        }t          |d¬¦  «        }|                     d¬¦  «        }t          j        |d¬¦  «        }|                     d¬¦  «        }t          ||¦  «         t          ||¦  «         d S )Nrf   r3  rŸ   r·   r
   r€   )r   r¡   r   rl  s          r@   r:  z#TestUnitaryGroup.test_frozen_matrixø  s‡   € ØˆÝ˜sÑ#Ô#ˆÝ# C¨cÐ2Ñ2Ô2ˆà�zŠz sˆzÑ+Ô+ˆÝÔ  °3Ð7Ñ7Ô7ˆØ�Š AˆÑ&Ô&ˆå�T˜4Ñ Ô Ð Ý�T˜4Ñ Ô Ð Ð Ð rB   c                 óö   — d„ t          dd¦  «        D ¦   «         }|D ][}t          t          j        ||                     ¦   «         j        ¦  «        t          j        |j        d         ¦  «        d¬¦  «         Œ\d S )Nc                 óZ   — g | ](}t          d ¦  «        D ]}t          j        |¦  «        ‘ŒŒ)S rÚ  )r
  r   r¡   r=  s      r@   r?  z3TestUnitaryGroup.test_unitarity.<locals>.<listcomp>	  sN   € ð !ð !ð !ØÝ˜Q‘x”xð!ð !àõ Ô Ñ$Ô$ð !ð !ð !ð !rB   rH   rÿ  r   rÍ  r†  )r
  r   r9   r  Úconjr“   rQ   r;   )rV   r‚  r\   s      r@   Útest_unitarityzTestUnitaryGroup.test_unitarity	  s…   € ð!ð !Ý˜q ™œð!ñ !ô !ˆð
 ð 	Sð 	SˆAÝ�BœF 1 a§f¢f¡h¤h¤jÑ1Ô1µ2´6¸!¼'À!¼*Ñ3EÔ3EÈEÐRÑRÔRÐRÐRð	Sð 	SrB   c                 ó¼  — d}d}t           j                             d¦  «         t          j        ||¬¦  «        }t          j        d„ |D ¦   «         ¦  «        }t          j        |j        |j        ¦  «        }t          | 
                    ¦   «         t          t           j         dt           j        z  ¦  «        j        ¦  «        }t          |j        dk    ¦  «         d S )Nrc   r)  r3  r€   c                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S rÕ   )rÆ   rº   ÚeigvalsrB  s     r@   r?  z.TestUnitaryGroup.test_haar.<locals>.<listcomp>	  s(   € Ð>Ð>Ð>°a�%œ,×.Ò.¨qÑ1Ô1Ð>Ð>Ð>rB   rH   rH  )r9   rŒ   r    r   r¡   r|  rÂ  ÚimagÚrealr    Úravelr   rž  r°   r   rÃ  )rV   rØ   rè  r‚  rŸ  r\   r<   s          r@   rf  zTestUnitaryGroup.test_haar	  sµ   € ð
 ˆØˆÝ
Œ	�Š�sÑÔÐÝÔ˜s¨Ð1Ñ1Ô1ˆõ ŒyÐ>Ð>¸2Ð>Ñ>Ô>Ñ?Ô?ˆÝŒJ�t”y $¤)Ñ,Ô,ˆÝ�Q—W’W‘Y”Y¥­¬¨°µ"´%±Ñ 8Ô 8Ô <Ñ=Ô=ˆÝ�”
˜TÒ!Ñ"Ô"Ð"Ð"Ð"rB   N)rÊ   rË   rÌ   r4  r8  r:  rÕ  rf  rÕ   rB   r@   rÎ  rÎ  ã  sb   € € € € € ð0ð 0ð 0ð:ð :ð :ð
!ð 
!ð 
!ðSð Sð Sð#ð #ð #ð #ð #rB   rÎ  c                   óÒ  — e Zd Zddgddgddgddgddgddgddgddgddgddgg
ddgddgddggdg d¢fg d¢g d	¢g d
¢g d¢g d¢gg d¢g d¢g d¢g d¢gdg d¢fgZej                             de¦  «        d„ ¦   «         Zej                             de¦  «        d„ ¦   «         Zd„ Z	d„ Z
 ed¦  «        d„ ¦   «         Zd„ Zd„ ZdddddgddggdddgddgddggdfdddgddggdddgddgddggdfddgddddgddgddggdfddgddddgddgddggdfddgddgddggdddgddgddggdfddgddgddggdddgddgddggdfgZej                             d e¦  «        d!„ ¦   «         Zd"ddd"gdggdfd"gdgdd"gdggdf ej        d"g¦  «         ej        dg¦  «        dd"gdggdfgZej                             d e¦  «        d#„ ¦   «         Zd$„ Zd%„ Zd&„ Zej                             d'd(d)g¦  «        ej                             d*g d+¢¦  «        ej                             d,d-d.ej        g¦  «        d/„ ¦   «         ¦   «         ¦   «         Zd0„ Zej                             d*g d1¢¦  «        d2„ ¦   «         Zej                             d*g d3¢¦  «        d4„ ¦   «         ZdTd6„Zd7„ Zej                             d*g d8¢¦  «        ej                             d9g d:¢¦  «        ej                             d;d5d<g¦  «        d=„ ¦   «         ¦   «         ¦   «         Zej        j         d>„ ¦   «         Z!d?„ Z"d@„ Z#dA„ Z$ej                             d*dB¦  «        dC„ ¦   «         Z%dD„ Z&ej                             d,g dE¢¦  «        dF„ ¦   «         Z'ej                             dGdH ej(        dd¦  «        dIdJfdK ej        dLdgddHgg¦  «        dMdNfg¦  «        dO„ ¦   «         Z)ej                             dPg dQ¢¦  «        dR„ ¦   «         Z*dS„ Z+dS )UÚTestMultivariateTr
   rH   re   rI   rc   r   )
ç|	ßŒ–�Œ?çv
®Å2R?rÞ  g0Ü÷$H?rß  rß  g�¥Oäïû`?gåïÕ’XO?g†	ßŒ–�,?g8ÝàN¹8?)gðHPüï?g“©‚QI�À?góÒo_ê?)g9ÖÅm4€ß?g=›UŸ«á?gË¡E¶óýæ?)gÝ$�•CÓ?gh³êsµÃ?gÇº¸�à?)g–!Žuqã?g%�•C‹Ð?gÏ÷Sã¥›ì?)gO¯”eˆcá?gz¥,Cëà?g•Ô	h"lî?)rg   r
   é2   )rÄ   rI  r]  )rI  rÄ   rT  )r]  rT  rÄ   rÄ  )gJ#Ž¥RÉ<g^Ó±�Ê<gš‹L[É<gêN=à¼Ê<gü`$æ§ÁË<zx, loc, shape, df, ansc                 óv   — t          |||d¬¦  «        }|                     |¦  «        }t          ||¦  «         d S ©Nr   rŸ   )r#   r¥   r   )rV   r\   rQ  r;   rž  ÚansrÈ   Úvals           r@   Útest_pdf_correctnessz&TestMultivariateT.test_pdf_correctnessh	  s=   € å˜c 5¨"°1Ð5Ñ5Ô5ˆØ�hŠh�q‰kŒkˆÝ! # sÑ+Ô+Ð+Ð+Ð+rB   c                 óÄ   — t          |||d¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          t	          j        |¦  «        |¦  «         d S râ  )r#   r¥   r¦   r   r9   rø   )	rV   r\   rQ  r;   rž  rã  rÈ   rÉ  rÊ  s	            r@   Útest_logpdf_correctz%TestMultivariateT.test_logpdf_correctn	  sT   € å˜c 5¨"°1Ð5Ñ5Ô5ˆØ�xŠx˜‰{Œ{ˆØ�{Š{˜1‰~Œ~ˆÝ!¥"¤&¨¡,¤,°Ñ5Ô5Ð5Ð5Ð5rB   c                 ó‚   — g d¢}t          j        |d¬¦  «        }t          j        |¦  «        }t          ||¦  «         d S )N)
rÛ  rf   re   r
   éýÿÿÿrÛ  r   ré  rg   rI   r
   ©rž  )r#   r¥   r$   r   )rV   r\   rä  rã  s       r@   Útest_mvt_with_df_one_is_cauchyz0TestMultivariateT.test_mvt_with_df_one_is_cauchyv	  sE   € Ø-Ð-Ð-ˆÝÔ   qÐ)Ñ)Ô)ˆÝŒj˜‰mŒmˆÝ! # sÑ+Ô+Ð+Ð+Ð+rB   c                 óJ  — d}t          dddd¬¦  «        }|                     d¬¦  «        }t          |¦  «        \  }}||k    sJ ‚t          ddgd	d
gd
d	ggdd¬¦  «        }|                     d¬¦  «        }t          |¦  «        \  }}||k                         ¦   «         sJ ‚d S )Nrš   r   r
   é † ©rž  r    r€   rj   rI   r%  rg   é*   )r#   r¡   r%   r'  )rV   Ú	P_VAL_MINrÈ   rè  rÚ   rÏ  s         r@   Ú&test_mvt_with_high_df_is_approx_normalz8TestMultivariateT.test_mvt_with_high_df_is_approx_normal|	  sÄ   € ð
 ˆ	å˜a  v°AÐ6Ñ6Ô6ˆØ—(’( �(Ñ'Ô'ˆÝ˜'Ñ"Ô"‰ˆˆ1Ø�I’���å˜r 1˜g¨¨R¨°2°r°(Ð';ÀØ#%ð'ñ 'ô 'ˆà—(’( �(Ñ'Ô'ˆÝ˜'Ñ"Ô"‰ˆˆ1Ø�Y’×#Ò#Ñ%Ô%Ð&Ð&Ð&Ð&Ð&rB   z'scipy.stats.multivariate_normal._logpdfc                 ó"  — t          ddt          j        d¬¦  «        }t          |t          ¦  «        sJ ‚t          j        dt          j        ¬¦  «         |j        dk    sJ ‚t          j        dt          j        ¬¦  «         |j        dk    sJ ‚d S )Nr   r
   rf   rî  rê  rH   )r#   r9   r  r¢   r   r¥   Ú
call_countr¦   )rV   ÚmockrÈ   s      r@   Ú!test_mvt_with_inf_df_calls_normalz3TestMultivariateT.test_mvt_with_inf_df_calls_normalŽ	  s�   € å˜a ¥r¤v°AÐ6Ñ6Ô6ˆÝ˜$Õ :Ñ;Ô;Ð;Ð;Ð;ÝÔ˜1¥¤Ð(Ñ(Ô(Ð(ØŒ !Ò#Ð#Ð#Ð#ÝÔ˜a¥B¤FÐ+Ñ+Ô+Ð+ØŒ !Ò#Ð#Ð#Ð#Ð#Ð#rB   c                 óè  — d}t          j        |¦  «        }t          j        |¦  «        }d}t          j        |¦  «        }t          |||¦  «                             |¦  «        }t          j        |¦  «        sJ ‚t          |||¦  «                             |¦  «        }t          j        |¦  «        sJ ‚d}t           j                             ||f¦  «        }t          |||¦  «                             |¦  «        }|j        |fk    sJ ‚t          |||¦  «                             |¦  «        }|j        |fk    sJ ‚t          t          j        d¦  «        t          j        d¦  «        d¦  «         	                    ¦   «         }t          j        |¦  «        sJ ‚d}t          t          j        d¦  «        t          j        d¦  «        d¦  «         	                    |¬¦  «        }|j        |fk    sJ ‚d S )Nre   ç      @rf   r
   r€   )
r9   r¸   rQ   r#   r¥   Úisscalarr¦   rŒ   r;   r¡   )	rV   rØ   rQ  r;   rž  r\   r<   Ú	n_samplesr�   s	            r@   Útest_shape_correctnessz(TestMultivariateT.test_shape_correctness—	  sÁ  € ð ˆÝŒh�s‰mŒmˆÝ”�s‘”ˆØˆÝŒH�S‰MŒMˆÝ˜S %¨Ñ,Ô,×0Ò0°Ñ3Ô3ˆÝŒ{˜3ÑÔÐÐÐÝ˜S %¨Ñ,Ô,×3Ò3°AÑ6Ô6ˆÝŒ{˜3ÑÔÐÐÐð ˆ	ÝŒI×Ò˜i¨Ð-Ñ.Ô.ˆÝ˜S %¨Ñ,Ô,×0Ò0°Ñ3Ô3ˆØ”	˜i˜\Ò)Ð)Ð)Ð)Ý˜S %¨Ñ,Ô,×3Ò3°AÑ6Ô6ˆØ”	˜i˜\Ò)Ð)Ð)Ð)õ �RœX a™[œ[­"¬&°©)¬)°QÑ7Ô7×;Ò;Ñ=Ô=ˆÝŒ{˜3ÑÔÐÐÐð ˆÝ�RœX a™[œ[­"¬&°©)¬)°QÑ7Ô7×;Ò;ÀÐ;ÑFÔFˆØ”	˜d˜WÒ$Ð$Ð$Ð$Ð$Ð$rB   c                 ó–   — t          ¦   «         }t          |j        dg¦  «         t          |j        dgg¦  «         |j        dk    sJ ‚d S )Nr   r
   ©r#   r   rQ  r;   rž  )rV   rÈ   s     r@   Útest_default_argumentsz(TestMultivariateT.test_default_arguments·	  sJ   € ÝÑÔˆÝ�T”X ˜sÑ#Ô#Ð#Ý�T”Z 1 # Ñ'Ô'Ð'Ø”˜1’�����rB   )NNNr   r
   r
   )NNrf   r   r
   rf   Nrf   z*loc, shape, df, loc_ans, shape_ans, df_ansc                 ó˜   — t          |||¬¦  «        }t          |j        |¦  «         t          |j        |¦  «         |j        |k    sJ ‚d S )N©rQ  r;   rž  rü  ©rV   rQ  r;   rž  Úloc_ansÚ	shape_ansÚdf_ansrÈ   s           r@   Útest_default_argsz#TestMultivariateT.test_default_argsÈ	  sU   € õ  #¨U°rÐ:Ñ:Ô:ˆÝ�T”X˜wÑ'Ô'Ð'Ý�T”Z Ñ+Ô+Ð+Ø”˜6Ò!Ð!Ð!Ð!Ð!Ð!rB   rg   c                 ó¦   — t          |||¦  «        }t          |j        |¦  «         t          |j        |¦  «         t          |j        |¦  «         d S r8   rü  r   s           r@   Ú&test_scalar_list_and_ndarray_argumentsz8TestMultivariateT.test_scalar_list_and_ndarray_argumentsÖ	  sQ   € õ ˜c 5¨"Ñ-Ô-ˆÝ�T”X˜wÑ'Ô'Ð'Ý�T”Z Ñ+Ô+Ð+Ý�T”W˜fÑ%Ô%Ð%Ð%Ð%rB   c           	      ó¸  — ddgg}t          t          t          fi t          |¬¦  «        ¤Ž ddgddgddgg}t          t          t          fi t          ||¬¦  «        ¤Ž t	          j        d¦  «        }t	          j        d¦  «        }d}t          t          t          fi t          |||¬¦  «        ¤Ž d}t          t          t          fi t          |||¬¦  «        ¤Ž d S )	Nr
   )rQ  rH   rI   )rQ  r;   rg   rÿ  r   )rì   rN   r#   Údictr9   r¸   rQ   )rV   rQ  r;   rž  s       r@   Útest_argument_error_handlingz.TestMultivariateT.test_argument_error_handlingß	  s  € à�1ˆvˆhˆÝ•jÝ$ð	'ð 	'å ˜™œð	'ð 	'ð 	'ð
 �Q�˜!˜Q˜ ! Q Ð(ˆÝ•jÝ$ð	4ð 	4å ¨EÐ2Ñ2Ô2ð	4ð 	4ð 	4õ
 Œh�q‰kŒkˆÝ”�q‘	”	ˆØˆÝ•jÝ$ð	;ð 	;å ¨E°bÐ9Ñ9Ô9ð	;ð 	;ð 	;ð ˆÝ•jÝ$ð	;ð 	;å ¨E°bÐ9Ñ9Ô9ð	;ð 	;ð 	;ð 	;ð 	;rB   c                 ó\  — t           j                             d¦  «        }|                     d¬¦  «        }t          j        d¦  «        }t          ||dd¬¦  «        }t          ||dd¬¦  «        }|                     d¬¦  «        }|                     d¬¦  «        }t          ||¦  «         d S )Nre   rI   r€   rH   rî  r%  )r9   rŒ   rÔ  r   rQ   r#   r¡   r   )rV   r–   rQ  r;   r«   Údist2Úsamples1Úsamples2s           r@   r4  z&TestMultivariateT.test_reproducibilityø	  sŸ   € ÝŒi×#Ò# AÑ&Ô&ˆØ�kŠk˜qˆkÑ!Ô!ˆÝ”�q‘	”	ˆÝ˜s E¨a°aÐ8Ñ8Ô8ˆÝ˜s E¨a°aÐ8Ñ8Ô8ˆØ—9’9 "�9Ñ%Ô%ˆØ—9’9 "�9Ñ%Ô%ˆÝ�X˜xÑ(Ô(Ð(Ð(Ð(rB   c                 ó€   — t          ddgddgddggdd¬¦  «        }t          t          j        j        t
          fi |¤Ž d S )Nr   r
   F)rQ  r;   rž  r[   )r  rì   r9   rº   r~  r#   )rV   r>   s     r@   Útest_allow_singularz%TestMultivariateT.test_allow_singular
  sK   € å˜˜1˜ q¨ e¨Q¨q¨E ]°qÈÐOÑOÔOˆÝ•b”iÔ+­^ÐDÐD¸tÐDÐDÐDÐDÐDrB   r�   )r%  rI   )rc   rd   re   rI   rØ   )rH   rI   re   rc   rž  rÄ   r@  c                 ó¾   — t          t          j        |¦  «        t          j        |¦  «        |¦  «        }|                     |¬¦  «        }|j        ||fz   k    sJ ‚d S r…  )r#   r9   r¸   rQ   r¡   r;   )rV   r�   rØ   rž  rÈ   r¡   s         r@   Útest_rvszTestMultivariateT.test_rvs
  sW   € õ �bœh s™mœm­R¬V°C©[¬[¸"Ñ=Ô=ˆØ�hŠh˜DˆhÑ!Ô!ˆØŒy˜D C 7™NÒ*Ð*Ð*Ð*Ð*Ð*rB   c                 ó"  — t          j        d¦  «        }t          j        d¦  «        }d}g d¢g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g}t          j        g d¢¦  «        }t	          j        |||||¬¦  «        }t          ||d	         |z  ¦  «         d S )
NrI   r%  r£  rh   r½  r¾  r¿  r¨  r   rÀ  )rV   r¨   r¿   rž  r¬  r«  rÁ  r°   s           r@   rÂ  z TestMultivariateT.test_cdf_signs
  sª   € åŒx˜‰{Œ{ˆÝŒf�Q‰iŒiˆØˆØˆYˆY˜	˜	˜	 9 9 9¨i¨i¨iÐ8ˆØˆYˆY˜	˜	˜	 9 9 9¨i¨i¨iÐ8ˆåœ . . .Ñ1Ô1ˆÝ!Ô% a¨¨s°BÀAÐFÑFÔFˆÝ˜˜S œV NÑ2Ñ3Ô3Ð3Ð3Ð3rB   )r
   rH   rc   c                 ó0   — |                       |¦  «         d S r8   ©Úcdf_against_mvn_test©rV   rØ   s     r@   Ú$test_cdf_against_multivariate_normalz6TestMultivariateT.test_cdf_against_multivariate_normal
  s   € ð 	×!Ò! #Ñ&Ô&Ð&Ð&Ð&rB   )rI   rd   rÛ  c                 ó2   — |                       dd¦  «         d S )NrI   Tr  r  s     r@   Ú-test_cdf_against_multivariate_normal_singularz?TestMultivariateT.test_cdf_against_multivariate_normal_singular 
  s    € ð 	×!Ò! ! TÑ*Ô*Ð*Ð*Ð*rB   Fc           	      ód  — t           j                             d¦  «        }d}d|                     dd|¬¦  «        z  }t	          ||||¦  «        }d|                     dd|¬¦  «        z  t          j        |                     |¬¦  «        ¦  «        z  }d|                     dd||f¬¦  «        z   |z   }d|                     dd||f¬¦  «        z  |z   }	t          j         	                    |	||d	|d
|¬¦  «        }
t          j
         	                    |	||d
|¬¦  «        }t          |
|d¬¦  «         d S )Nì   ]J>?a rI   r%  rj   r
   r€   rg   rH   rÁ  T)rž  r©  r[   rž   )r[   r©  çü©ñÒMb@?r†  )r9   rŒ   r�   r   rÝ   Úsignr×   r-   r#   r°   r   r   )rV   rØ   rƒ   r–   r¼   r“  r¿   r¨   r«  r¬  r<   r=   s               r@   r  z&TestMultivariateT.cdf_against_mvn_test%
  sB  € åŒi×#Ò# OÑ4Ô4ˆØˆà�—’˜B ¨�Ñ,Ô,Ñ,ˆÝ   a¨¨hÑ7Ô7ˆà�3—;’;˜r 1¨3�;Ñ/Ô/Ñ/µ"´'¸#¿*º*È#¸*Ñ:NÔ:NÑ2OÔ2OÑOˆØ�—’˜R ¨!¨S¨�Ñ2Ô2Ñ2Ð2°TÑ9ˆØ�—’˜B ¨¨C¨�Ñ1Ô1Ñ1°DÑ8ˆåÔ"×&Ò& q¨$°¸È1Ø6:Èð 'ñ Nô NˆåÔ'×+Ò+¨A¨t°SÈØ89ð ,ñ ;ô ;ˆå˜˜S tÐ,Ñ,Ô,Ð,Ð,Ð,rB   c                 óR  — t           j                             d¦  «        }d}d}|                     dt          j        |¦  «        ¬¦  «        }d}t
          j                             ||||t           j         |¬¦  «        }t
          j	                             |||t          j        |¦  «        ¦  «        }t
          j
                             ||t          j        |¦  «        ¦  «        }t          ||d¬	¦  «         t          j        t          j        ||z
  ¦  «        d
k    ¦  «        sJ ‚d S )Nr  rH   r   r%  )r�   rK  rI   )r©  rž   r  r†  r<  )r9   rŒ   r�   r×   Úsqrtr-   r#   r°   r  Útr   r   r'  rô   )	rV   r–   r¿   r¨   r\   rž  r<   r=   Ú	incorrects	            r@   Útest_cdf_against_univariate_tz/TestMultivariateT.test_cdf_against_univariate_t7
  sõ   € ÝŒi×#Ò# OÑ4Ô4ˆØˆØˆØ�JŠJ˜B¥b¤g¨c¡l¤lˆJÑ3Ô3ˆØˆåÔ"×&Ò& q¨$°°RÅbÄfÀWØ47ð 'ñ 9ô 9ˆåŒg�kŠk˜!˜R ¥r¤w¨s¡|¤|Ñ4Ô4ˆÝ”J—N’N 1 d­B¬G°C©L¬LÑ9Ô9ˆ	å˜˜S tÐ,Ñ,Ô,Ð,ÝŒv•b”f˜S 9™_Ñ-Ô-°Ò4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5rB   )rH   rI   rc   r%  r    )ì   no l   øm±, l   �sO l   €�U iOfYl    Ož_ rƒ   Tc           	      ó®  — |r|dk    rt          j        d¦  «         t          j                             |¦  «        }d|                     dd|¬¦  «        z  }t          ||||¦  «        }|                     |¦  «        }|                     |¦  «         }|                     |¦  «        }	|                     ¦   «         dz  }
t          j         	                    |	|||
|d¬	¦  «        }t          j
        d
¬¦  «        5  t          d|
|t          j        |z  |	|z
  |¦  «        d         }d d d ¦  «         n# 1 swxY w Y   t          ||dd¬¦  «         t          j         	                    |	|||
||d¬¦  «        }t          j
        d
¬¦  «        5  t          d|
|||z
  |	|z
  |¦  «        d         }d d d ¦  «         n# 1 swxY w Y   t          ||dd¬¦  «         d S )Nr#  z4Agreement with qsimvtv is not great in singular caser%  rj   rH   r€   rc   T)rž   r[   r¬  )Úinvalidr  r   g-Cëâ6*?r<  ©rT  r>  )r©  rž   r[   r¸  )rM   rˆ   r9   rŒ   r�   r   rÝ   r-   r#   r°   r¯  r5   r  r   )rV   rØ   r    rƒ   r–   r“  r¿   r¨   r«  r¬  rž  r<   r=   s                r@   Útest_cdf_against_qsimvtvz*TestMultivariateT.test_cdf_against_qsimvtvF
  sz  € ð
 ð 	P˜ 
Ò*Ð*ÝŒKÐNÑOÔOÐOÝŒi×#Ò# DÑ)Ô)ˆØ�—’˜B ¨�Ñ,Ô,Ñ,ˆÝ   a¨¨hÑ7Ô7ˆØ�zŠz˜#‰ŒˆØ�ZŠZ˜‰_Œ_ÐˆØ�JŠJ�s‰OŒOˆØ�ZŠZ‰\Œ\˜AÑˆõ Ô"×&Ò& q¨$°°RÀcØ6:ð 'ñ <ô <ˆåŒ[ Ð*Ñ*Ô*ð 	Gð 	GÝ˜5 " c­2¬6°!©8°Q¸±X¸sÑCÔCÀAÔFˆCð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gå˜˜S t°$Ð7Ñ7Ô7Ð7õ Ô"×&Ò& q¨$°°RÀQØ47Èð 'ñ Nô NˆåŒ[ Ð*Ñ*Ô*ð 	Gð 	GÝ˜5 " c¨1¨t©8°Q¸±X¸sÑCÔCÀAÔFˆCð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gå˜˜S t°$Ð7Ñ7Ô7Ð7Ð7Ð7s$   Ã:+D1Ä1D5Ä8D5Æ
!F7Æ7F;Æ>F;c           
      óò  ‡	‡
‡— d}t           j                             d¦  «        }d|                     dd|¬¦  «        z  }t	          |||d¬¦  «        Š	|                     |¦  «        Š|                     |¦  «         }|                     |¦  «        }|                     ¦   «         d	z  Š
t
          j                             |‰‰	‰
||¬
¦  «        }ˆ	ˆ
ˆfd„}t          |||t
          j	         
                    ||¬¦  «        ¬¦  «        }t          ||j        d¬¦  «         ˆ	ˆ
ˆfd„}t          ||d         |d         |d         |d         |d         |d         ¦  «        }t          ||d         d¬¦  «         d S )NrI   l   	!†y‚ r%  rg   r
   r€   T)rƒ   rc   )rž   r©  c                 óR   •— t           j                             | j        ‰‰‰¦  «        S r8   )r-   r#   r¥   r“   )r\   r¿   rž  r¨   s    €€€r@   Ú	integrandzITestMultivariateT.test_cdf_against_generic_integrators.<locals>.integrandr
  s"   ø€ ÝÔ'×+Ò+¨A¬C°°s¸BÑ?Ô?Ð?rB   )rƒ  r    )Úqrngr<  r=  c                  óZ   •— t           j                             | d d d…         ‰‰‰¦  «        S )Nrg   )r-   r#   r¥   )Úzyxr¿   rž  r¨   s    €€€r@   r*  zITestMultivariateT.test_cdf_against_generic_integrators.<locals>.integrandx
  s*   ø€ ÝÔ'×+Ò+¨C°°°"°¬I°t¸SÀ"ÑEÔEÐErB   r   rH   )r9   rŒ   r�   r   rÝ   r-   r#   r°   r0   ÚqmcÚHaltonr   Úintegralr2   )rV   rØ   r–   r“  r«  r¬  r<   r*  r=   r¿   rž  r¨   s            @@@r@   Ú$test_cdf_against_generic_integratorsz6TestMultivariateT.test_cdf_against_generic_integratorsc
  s©  øøø€ ð ˆÝŒi×#Ò# NÑ3Ô3ˆØ�#—+’+˜b !¨#�+Ñ.Ô.Ñ.ˆÝ   a¨°tÐ<Ñ<Ô<ˆØ�zŠz˜#‰ŒˆØ�ZŠZ˜‰_Œ_ÐˆØ�JŠJ�s‰OŒOˆØ�ZŠZ‰\Œ\˜AÑˆåÔ"×&Ò& q¨$°°RÀcØ34ð 'ñ 6ô 6ˆð	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@õ �y ! Q­U¬Y×-=Ò-=ÀÈ#Ð-=Ñ-NÔ-NÐOÑOÔOˆÝ˜˜Sœ\°Ð5Ñ5Ô5Ð5ð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fõ �i  1¤ q¨¤t¨Q¨q¬T°1°Q´4¸¸1¼¸qÀ¼tÑDÔDˆÝ˜˜S œV¨$Ð/Ñ/Ô/Ð/Ð/Ð/rB   c                 ó  — t           j                             d¦  «        }t          j        g d¢g d¢g d¢g¦  «        }d}t	          j        ||¬¦  «        }|                     g d¢|¬¦  «        }d	}t          ||d
¬¦  «         d S )Nl   ËJ½a )gço!ß@çSÛ<ÄõÞÍ?çÍ^SsûÑ@)r3  g’R·P…¬=@ç“jTŠ0@)r4  r5  g™ˆÐk`-3@gú WÀKÿ?©r;   rž  rh   r·   g¡ø1æ®%Ð?r<  r=  )r9   rŒ   r�   rÇ   r-   r#   r°   r   )rV   r–   r¿   rž  rÈ   r<   r=   s          r@   Útest_against_matlabz%TestMultivariateT.test_against_matlab~
  s¢   € õ Œi×#Ò# JÑ/Ô/ˆÝŒhÐ?Ð?Ð?Ø?Ð?Ð?Ø?Ð?Ð?ðAñ Bô Bˆð  ˆÝÔ#¨#°"Ð5Ñ5Ô5ˆØ�hŠh�y�y�y¨sˆhÑ3Ô3ˆØˆÝ˜˜S tÐ,Ñ,Ô,Ð,Ð,Ð,rB   c                 ó
  — d}t           j                             |¦  «        }|                     d¬¦  «        }|                     d¬¦  «        |z   }t          j        d¦  «        }|                     ¦   «         }|||f}t           j                             |¦  «        }t           j                             |¦  «        }	t          j        |d|iŽ}
t          |
                     |¦  «        t          j        |g|¢R d|	iŽ¦  «         d S )Nl   2m rI   r€   r    rž   )	r9   rŒ   r�   r   rQ   r-   r#   r   r°   )rV   r    r–   rQ  r\   r;   rž  r>   Ú
rng_frozenÚrng_unfrozenrÈ   s              r@   rb  zTestMultivariateT.test_frozen�
  s÷   € ØˆÝŒi×#Ò# DÑ)Ô)ˆØ�kŠk˜qˆkÑ!Ô!ˆØ�KŠK˜QˆKÑÔ #Ñ%ˆÝ”�q‘	”	ˆØ�ZŠZ‰\Œ\ˆØ�U˜BÐˆå”Y×*Ò*¨4Ñ0Ô0ˆ
Ý”y×,Ò,¨TÑ2Ô2ˆÝÔ# TÐ;°
Ð;Ð;ˆÝ�T—X’X˜a‘[”[Ý#Ô'¨ÐL¨DÐLÐLÐL¸|ÐLÐLñ	Nô 	Nð 	Nð 	Nð 	NrB   c                 óÌ  ‡‡	‡
‡— d}d}t           j                             d¦  «        Š‰                     ||f¬¦  «        }||j        z  Š‰                     |¦  «        Š
‰                     ||fz   ¦  «        }‰                     ¦   «         dz  Š	t          j                             |‰
‰‰	‰¬¦  «        }ˆˆ	ˆ
ˆfd„}t          j        |d|¦  «        }t          ||d	d
¬¦  «         d S )Nre   r·  r  r€   rc   r·   c                 óZ   •— t          d‰‰t          j         | z  | ‰z
  ‰¦  «        d         S )NrÁ  r   )r5   r9   r  )r\   r¿   rž  r¨   r–   s    €€€€r@   Ú_cdf_1dz2TestMultivariateT.test_vectorized.<locals>._cdf_1dª
  s,   ø€ Ý˜E 2 s­R¬V¨G°A©I°q¸±v¸sÑCÔCÀAÔFÐFrB   rg   r¸  r<  r&  )	r9   rŒ   r�   r“   r-   r#   r°   Úapply_along_axisr   )rV   rØ   r¼   rv   r\   r<   r=  r=   r¿   rž  r¨   r–   s           @@@@r@   Útest_vectorizedz!TestMultivariateT.test_vectorizedž
  s  øøøø€ ØˆØˆÝŒi×#Ò# OÑ4Ô4ˆØ�JŠJ˜S #˜JˆJÑ'Ô'ˆØ�!”#‰gˆØ�zŠz˜#‰ŒˆØ�JŠJ�q˜C˜6‘zÑ"Ô"ˆØ�ZŠZ‰\Œ\˜AÑˆåÔ"×&Ò& q¨$°°RÀcÐ&ÑJÔJˆð	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gõ Ô! '¨2¨qÑ1Ô1ˆÝ˜˜S t°$Ð7Ñ7Ô7Ð7Ð7Ð7rB   r`  c                 ó*  — t           j                             d¦  «        }t          j                             dgdg|dz
  z  z   ¬¦  «        }t          j        |¬¦  «                             dg|z  |¬¦  «        }d|dz   z  }t          ||d¬	¦  «         d S )
Nr  r
   rI  )r±  )r;   r   r·   g-Cëâ6
?r=  )
r9   rŒ   r�   rÆ   rº   Útoeplitzr-   r#   r°   r   )rV   rØ   r–   rv   r<   r=   s         r@   Útest_against_analyticalz)TestMultivariateT.test_against_analytical°
  s•   € åŒi×#Ò# OÑ4Ô4ˆÝŒL×!Ò! Q C¨3¨%°3¸±7Ñ*;Ñ$;Ð!Ñ<Ô<ˆÝÔ"¨Ð+Ñ+Ô+×/Ò/°°°c±	ÈÐ/ÑLÔLˆØ�3˜‘7‰mˆÝ˜˜S tÐ,Ñ,Ô,Ð,Ð,Ð,rB   c                 óÚ   — t          j        dd¦  «        }t           j        }t          j                             ||¬¦  «        }t          j                             d |¦  «        }||k    sJ ‚d S )NrI   r6  )r9   rQ   r  r-   r#   r§   r   )rV   r¿   rž  Úmvt_entropyÚmvn_entropys        r@   Útest_entropy_inf_dfz%TestMultivariateT.test_entropy_inf_df¸
  sb   € ÝŒf�Q˜‰lŒlˆÝŒVˆÝÔ*×2Ò2¸ÀÐ2ÑDÔDˆÝÔ/×7Ò7¸¸cÑBÔBˆØ˜kÒ)Ð)Ð)Ð)Ð)Ð)rB   )r
   r%  r.  c                 ó¬   — t           j                             d|¬¦  «        }t           j                             |¬¦  «        }t	          ||d¬¦  «         d S )NrÄ   r6  rê  rD  r=  )r-   r#   r§   r   r   )rV   rž  rD  Ú	t_entropys       r@   Útest_entropy_1dz!TestMultivariateT.test_entropy_1d¿
  sM   € åÔ*×2Ò2¸ÀÐ2ÑCÔCˆÝ”G—O’O r�OÑ*Ô*ˆ	Ý˜ Y°UÐ;Ñ;Ô;Ð;Ð;Ð;rB   zdf, cov, ref, tolr%  gÔøË}’M@rÎ  r.  rI  gŒNfh@rç  c                 ó¢   — t          j        d¦  «        }t          j        |||¦  «        }t	          |                     ¦   «         ||¬¦  «         d S )Nrd  r=  )r9   r¸   r-   r#   r   r§   )rV   rž  r¿   r=   ÚtolrQ  Úmvts          r@   Ú%test_entropy_vs_numerical_integrationz7TestMultivariateT.test_entropy_vs_numerical_integrationÓ
  sH   € õ
 Œh�u‰oŒoˆÝÔ" 3¨¨RÑ0Ô0ˆÝ˜Ÿš™œ s°Ð5Ñ5Ô5Ð5Ð5Ð5rB   zdf, dim, ref, tol))r%  r
   gDdÿVWø?rÍ  )r.  r
   gU•“°Ýö?rD  )r¬  r
   g÷Ž/+¼ö?rÎ  )ç@Œµx¯Dr
   çZ_2äø³ö?rÍ  )ç}Ã”%­I²Tr
   rO  rÍ  )r%  r%  gz©°g#.@rÍ  )r)  r%  gD¬ë:f,@rD  )rN  r%  ç1÷>÷`,@rÍ  )rP  r%  rQ  rÍ  )r%  r.  g8—d¹?‰b@rÍ  )r)  r.  gç-YÒº¿a@rÎ  )rN  r.  çZGrš¼a@rÍ  )rP  r.  rR  rÍ  c                 óž   — t          j        t          j        |¦  «        |¬¦  «        }t	          |                     ¦   «         ||¬¦  «         d S )Nr6  r=  )r-   r#   r9   rQ   r   r§   )rV   rž  rØ   r=   rK  rL  s         r@   Útest_extreme_entropyz&TestMultivariateT.test_extreme_entropyÜ
  sE   € õF Ô"­¬°©¬¸Ð<Ñ<Ô<ˆÝ˜Ÿš™œ s°Ð5Ñ5Ô5Ð5Ð5Ð5rB   c                 óÀ  — t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        }||j        z  }d}t          j                             ||¬¦  «        }t          d |¬¦  «                             ¦   «         }t          ||d	¬
¦  «         d}d}t          j                             ||¬¦  «        }t          j                             ||¬¦  «        }	t          ||	d¬
¦  «         d S )N)g¸…ëQ¸ö?g
×£p=
·?g\�Âõ(\ß¿çÃõ(\�ÂÅ?g®Gáz®ç?)g®Gázò¿g{®Gáz„¿g¸…ëQ¸æ?rm  gìQ¸…ëá¿)g…ëQ¸ñ?g)\�Âõ(Ü?gìQ¸…ëÑ¿g)\�Âõ(Ü¿g�Âõ(\�Ò?)g      ø¿g®Gázî¿gq=
×£på¿g\�Âõ(\ç?gš™™™™™ñ¿)rV  g{®Gáz´¿g\�Âõ(\÷?g{®GázÔ¿gÃõ(\�Âõ?rN  r6  r}  rÍ  r=  iý  i   rj  )r9   rÇ   r“   r-   r#   r§   r   r   )
rV   Ú_Ar¿   rž  Úmul_t_entropyÚmul_norm_entropyÚdf1Údf2Ú	_entropy1Ú	_entropy2s
             r@   Útest_entropy_with_covariancez.TestMultivariateT.test_entropy_with_covariance  s  € õ ŒXØ+Ð+Ð+Ø-Ð-Ð-Ø,Ð,Ð,Ø,Ð,Ð,Ø,Ð,Ð,ð
ñ ô ˆð �2”4‰iˆð ˆÝÔ,×4Ò4¸3À2Ð4ÑFÔFˆÝ.¨t¸Ð=Ñ=Ô=×EÒEÑGÔGÐÝ˜Ð'7¸eÐDÑDÔDÐDð ˆØˆÝÔ(×0Ò0°s¸sÐ0ÑCÔCˆ	ÝÔ(×0Ò0°s¸sÐ0ÑCÔCˆ	Ý˜	 9°4Ð8Ñ8Ô8Ð8Ð8Ð8rB   ©F),rÊ   rË   rÌ   Ú	PDF_TESTSrM   rÑ   rÒ   rå  rç  rë  rñ  r6   rõ  rú  rý  ÚDEFAULT_ARGS_TESTSr  r9   rÇ   ÚARGS_SHAPES_TESTSr  r	  r4  r  r  r  rÂ  r  r  r  r"  r'  rŽ  r1  r7  rb  r?  rB  rF  rI  rQ   rM  rT  r^  rÕ   rB   r@   rÝ  rÝ  	  s!  € € € € € ð �ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFð	
ð 
ˆAˆð �ˆFØ�ˆFð	
ð
 	
ð	
ð 	
ð 	
ð1%ðP %Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$ð	
ð 	ˆˆð %Ð$Ð$Ø%Ð%Ð%Ø%Ð%Ð%ð	
ð 	
ð	
ð 	
ð 	
ð)ðK@€IðD „[×ÒÐ5°yÑAÔAð,ð ,ñ BÔAð,ð
 „[×ÒÐ5°yÑAÔAð6ð 6ñ BÔAð6ð,ð ,ð ,ð'ð 'ð 'ð$ €UÐ4Ñ5Ô5ð$ð $ñ 6Ô5ð$ð&ð &ð &ð@ð ð ð 	$Ø Ø	��A�˜˜A˜Ð ¨¨1 v°°A°¸¸A¸Ð/?ÀÐCØ	��A�˜˜A˜Ð  Q¨ F¨a°¨V°a¸°VÐ,<¸aÐ@Ø
ˆQˆ��t˜a ˜V q¨! f¨q°!¨fÐ%5°qÐ9Ø
ˆQˆ��q˜1˜a˜& A q 6¨A¨q¨6Ð"2°AÐ6Ø
ˆQˆ�1�a�&˜1˜a˜&Ð! 4¨!¨Q¨°1°a°&¸1¸a¸&Ð1AÀ1ÐEØ
ˆQˆ�1�a�&˜1˜a˜&Ð! 1 q¨! f°°1¨v¸¸1°vÐ.>ÀÐBð	Ðð „[×ÒÐIØ/ñ1ô 1ð#ð #ñ1ô 1ð#ð 
ˆQ��B�4˜1˜#˜ Ð"Ø
ˆ�ˆs�A˜�t˜q˜c˜U AÐ&Ø	ˆŒ�2�$‰Œ˜˜œ 1 #™œ¨¨B¨4°1°#°¸Ð:ðÐð „[×ÒÐIØ.ñ0ô 0ð&ð &ñ0ô 0ð&ð;ð ;ð ;ð2)ð )ð )ðEð Eð Eð
 „[×Ò˜V g¨|Ð%<Ñ=Ô=Ø„[×Ò˜U L L LÑ1Ô1Ø„[×Ò˜T B¨¨B¬FÐ#3Ñ4Ô4ð+ð +ñ 5Ô4ñ 2Ô1ñ >Ô=ð+ð

4ð 
4ð 
4ð „[×Ò˜U I I IÑ.Ô.ð'ð 'ñ /Ô.ð'ð „[×Ò˜U I I IÑ.Ô.ð+ð +ñ /Ô.ð+ð-ð -ð -ð -ð$6ð 6ð 6ð „[×Ò˜U M M MÑ2Ô2Ø„[×Ò˜Vð &Jð &Jð &Jñ Kô Kà„[×Ò˜Z¨%°¨Ñ7Ô7ð8ð 8ñ 8Ô7ñKô Kñ 3Ô2ð8ð2 „[Ôð0ð 0ñ Ôð0ð4-ð -ð -ð"Nð Nð Nð8ð 8ð 8ð$ „[×Ò˜U FÑ+Ô+ð-ð -ñ ,Ô+ð-ð*ð *ð *ð „[×Ò˜T < < <Ñ0Ô0ð<ð <ñ 1Ô0ð<ð& „[×ÒÐ0Ø! 6 2¤6¨!¨Q¡<¤<Ð1CÀUÐKØ" H B¤H¨s°A¨h¸¸B¸Ð-@Ñ$AÔ$AØ/°ð7ð8ñ9ô 9ð6ð 6ñ	9ô 9ð6ð
 „[×ÒØð	
ð 	
ð 	
ñô ð$6ð 6ñ%ô ð$6ð(9ð 9ð 9ð 9ð 9rB   rÝ  c                   ó:  — e Zd Zej                             dddgddgddfddgddgdej         fd	dgddgdej         fddgd
dgdej        fddgddggddgd
dggddgej        ej        gfd	dgd
dgdej        fddgddgdej        fddgddgdej        fddgddgdej        fddgddgdej         fg
¦  «        d„ ¦   «         Z	d„ Z
d„ Zd„ Zej                             dg d¢dfg d¢dfddgdfdgdff¦  «        d„ ¦   «         Zej                             ddgdgddfddgddgddfddgddggddgddgggddgddgddggdd gdd!ggf ej        g e¬"¦  «         ej        g e¬"¦  «        dg fddgddgddfg d#¢g d$¢d%d&fg¦  «        d'„ ¦   «         Zej                             dddgddgdd(ggddd)gfdgdggdgdggddgd*d+gfdgdgggdgdggddgd*d+ggfdgdggdggggddgd*d+gggfg¦  «        d,„ ¦   «         Zd-„ Zd.„ Zd/„ Zd0„ Zd1„ Zd2„ Zd3„ Zd4„ Zd5„ Zd6„ Zd7„ Zd8S )9ÚTestMultivariateHypergeomzx, m, n, expectedrI   re   rc   r%  rf   g©¥¹Âêñ¿r   ré  éûÿÿÿr
   rH   rm   iúÿÿÿiöÿÿÿr  rÿ  rg   iùÿÿÿc                 óV   — t          j        |||¦  «        }t          ||d¬¦  «         d S )Nç�íµ ÷Æ°>r=  )r   r½  r   ©rV   r\   rï  r¼   r1  Úvalss         r@   rÂ  z%TestMultivariateHypergeom.test_logpmf"  s3   € õ6 &Ô,¨Q°°1Ñ5Ô5ˆÝ˜˜h¨TÐ2Ñ2Ô2Ð2Ð2Ð2rB   c                 ó  — t          j        ddgddgd¬¦  «        }t          j        dddd¬¦  «        }t          ||d	¬
¦  «         t          j        ddgddgd¬¦  «        }t          j        dddd¬¦  «        }t          ||d	¬
¦  «         d S )NrI   r
   r%  rc   re   )r\   rï  r¼   é   )r  rá   r¼   r–  rç  r=  rf   é   )r   rÇ  r"   r   rÈ  s      r@   Útest_reduces_hypergeomz0TestMultivariateHypergeom.test_reduces_hypergeom@  s¢   € õ &Ô)¨Q°¨F°r¸1°gÀÐCÑCÔCˆÝŒ}˜q B¨!¨rÐ2Ñ2Ô2ˆÝ˜˜d¨Ð.Ñ.Ô.Ð.å%Ô)¨Q°¨F°r¸2°hÀ"ÐEÑEÔEˆÝŒ}˜q B¨"°Ð3Ñ3Ô3ˆÝ˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c                 óÈ   — t          ddgd¬¦  «        }|                     dd¬¦  «        }t          |                     d¦  «        |                     ¦   «         d	¬
¦  «         d S )NrI   rc   re   ©rï  r¼   r)  rÓ  r�   r   rR  r=  ©r   r¡   r   r¨   ©rV   rÀ   r¡   s      r@   r  z"TestMultivariateHypergeom.test_rvsK  s\   € õ $ q¨! f°Ð2Ñ2Ô2ˆØ�fŠf˜$¨SˆfÑ1Ô1ˆÝ˜Ÿš ™œ R§W¢W¡Y¤Y°TÐ:Ñ:Ô:Ð:Ð:Ð:rB   c                 óÔ   — t          ddgddggddg¬¦  «        }|                     dd¬	¦  «        }t          |                     d
¦  «        |                     ¦   «         d¬¦  «         d S )NrI   rc   r%  re   rÛ  ro  ©r)  rH   rÓ  r�   r   rR  r=  rp  rq  s      r@   Útest_rvs_broadcastingz/TestMultivariateHypergeom.test_rvs_broadcastingR  sg   € Ý#¨¨1 v°°2¨wÐ&7¸A¸q¸6ÐBÑBÔBˆØ�fŠf˜)°#ˆfÑ6Ô6ˆÝ˜Ÿš ™œ R§W¢W¡Y¤Y°TÐ:Ñ:Ô:Ð:Ð:Ð:rB   zm, n)r   r   r  r   r   )r   r   r   r   r   c                 ó²   — t          j        ||¦  «        }t          j        |¦  «        }|                     ¦   «         }|||dk    <   t          ||¦  «         d S )Nr   )r   r¡   r9   r:   r±  r   )rV   rï  r¼   r<   Úres_exs        r@   Útest_rvs_gh16171z*TestMultivariateHypergeom.test_rvs_gh16171W  sS   € õ
 %Ô(¨¨AÑ.Ô.ˆÝŒJ�q‰MŒMˆØ—’‘”ˆØˆˆq�AŠv‰Ý�S˜&Ñ!Ô!Ð!Ð!Ð!rB   g z÷lÂâÔ?rÄ  rÛ  gQ°µ­Ù?gEçÙ³¤|?gé�
¸çyÞ?r/  rÝ  )rc   rd   rf   rd   g‘z²p†?c                 óV   — t          j        |||¦  «        }t          ||d¬¦  «         d S ©Nri  r=  ©r   rÇ  r   rh  s         r@   râ  z"TestMultivariateHypergeom.test_pmfb  s3   € õ" &Ô)¨!¨Q°Ñ2Ô2ˆÝ˜˜h¨TÐ2Ñ2Ô2Ð2Ð2Ð2rB   rk  gõ­ æÎÕ?rÄ   rÅ   c                 óV   — t          j        |||¦  «        }t          ||d¬¦  «         d S ry  rz  rh  s         r@   rä  z/TestMultivariateHypergeom.test_pmf_broadcastingv  s3   € õ &Ô)¨!¨Q°Ñ2Ô2ˆÝ˜˜h¨TÐ2Ñ2Ô2Ð2Ð2Ð2rB   c                 óp   — t          j        g d¢d¬¦  «        }g d¢g d¢g d¢g}t          ||d¬¦  «         d S )	N)rI   rf   r%  rÿ  ro  )g«×Âf_�ä?çÁ&BUúÐ¿ç–ˆCx¬@Ø¿)r}  g�gsƒ>dò?çZ¤ásKì¿)r~  r  gö¿3å5ô?rç  r=  ©r   r¿   r   )rV   rç  r�  s      r@   rè  z"TestMultivariateHypergeom.test_covƒ  sZ   € Ý%Ô)¨J¨J¨J¸"Ð=Ñ=Ô=ˆØ6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ð8ˆõ 	˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c                 ój  — t          j        ddgddggddg¬¦  «        }dd	gd	dggd
dgdd
ggg}t          ||d¬¦  «         t          j        dgdggddg¬¦  «        }dggdggg}t          ||d¬¦  «         t          j        ddgddg¬¦  «        }dd	gd	dggddgddggg}t          ||d¬¦  «         d S )Nrf   rÛ  r%  rk  rÄ  rÿ  ro  gÍÌÌÌÌÌð?gÍÌÌÌÌÌð¿gö(\�Âõø?gö(\�Âõø¿rç  r=  re   rc   rÅ   g333333é?g333333é¿r€  rê  s          r@   rï  z/TestMultivariateHypergeom.test_cov_broadcastingŠ  s  € Ý%Ô)¨a°¨V°b¸"°XÐ,>À1ÀbÀ'ÐJÑJÔJˆØ˜� ¨ Ð.Ø˜� ¨ Ð.ð0ˆå˜˜d¨Ð.Ñ.Ô.Ð.å%Ô)¨a¨S°1°#¨J¸1¸a¸&ÐAÑAÔAˆØ��˜"˜˜ÐˆÝ˜˜d¨Ð.Ñ.Ô.Ð.å%Ô)¨Q°¨F°q¸"°gÐ>Ñ>Ô>ˆØ˜� ¨ Ð.Ø˜'Ð" W¨fÐ$5Ð6ð8ˆå˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c                 óˆ   — t          j        ddgd¬¦  «        }t          j        ddd¬¦  «        }t          ||d¬¦  «         d S )	Nr%  rc   re   ro  rk  ©rá   r¼   r–  rç  r=  )r   r:  r"   r   )rV   Úvar0Úvar1s      r@   Útest_varz"TestMultivariateHypergeom.test_var™  sL   € å%Ô)¨R°¨G°qÐ9Ñ9Ô9ˆÝŒ}˜r Q¨"Ð-Ñ-Ô-ˆÝ˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c                 óÒ  — t          j        ddgddg¬¦  «        }t          j        ddgd¬¦  «        }t          j        ddgd¬¦  «        }t          |d         |d¬¦  «         t          |d	         |d¬¦  «         t          j        ddgdd
ggddg¬¦  «        }ddgddgg}t          ||d¬¦  «         t          j        dgdggddg¬¦  «        }dgdgg}t          ||d¬¦  «         d S )Nr%  rc   re   rÄ  ro  r   rç  r=  r
   rÅ  gÌ�3—eYæ?g�I›ª{¤õ?rÅ   )r   r:  r   )rV   r„  r…  Úvar2Úvar3Úvar4Úvar5Úvar6s           r@   Útest_var_broadcastingz/TestMultivariateHypergeom.test_var_broadcastingŸ  s  € Ý%Ô)¨R°¨G¸¸1°vÐ>Ñ>Ô>ˆÝ%Ô)¨R°¨G°qÐ9Ñ9Ô9ˆÝ%Ô)¨R°¨G°qÐ9Ñ9Ô9ˆÝ˜˜Qœ ¨DÐ1Ñ1Ô1Ð1Ý˜˜Qœ ¨DÐ1Ñ1Ô1Ð1å%Ô)¨b°!¨W°r¸2°hÐ,?ÀAÀqÀ6ÐJÑJÔJˆØ˜IÐ&¨°8Ð(<Ð=ˆÝ˜˜d¨Ð.Ñ.Ô.Ð.å%Ô)¨a¨S°2°$¨K¸A¸r¸7ÐCÑCÔCˆØ��r�dˆ|ˆÝ˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c                 óð   — t          j        ddgd¬¦  «        }t          j        ddd¬¦  «        }t          |d         |d¬	¦  «         t          j        d
dgd¬¦  «        }ddg}t          ||d¬	¦  «         d S )Nr%  rc   re   ro  rk  rƒ  r   rç  r=  rÿ  rÄ  g      @rL  )r   r¨   r"   r   ©rV   Úmean0rú  rŒ  Úmean3s        r@   rû  z#TestMultivariateHypergeom.test_mean®  sˆ   € å&Ô+¨r°1¨g¸Ð;Ñ;Ô;ˆÝ”  q¨BÐ/Ñ/Ô/ˆÝ˜˜aœ %¨dÐ3Ñ3Ô3Ð3å&Ô+¨r°1¨g¸Ð<Ñ<Ô<ˆØ˜jÐ)ˆÝ˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0rB   c                 óv   — t          j        ddgddggddg¬¦  «        }ddgd	d
gg}t          ||d¬¦  «         d S )NrI   rc   r%  re   rÄ  ro  rñ   rò   gUUUUUU@gUUUUUU@rç  r=  )r   r¨   r   )rV   r�  rú  s      r@   rý  z0TestMultivariateHypergeom.test_mean_broadcasting¸  sW   € Ý&Ô+°°1¨v¸¸A°wÐ.?ÀAÀqÀ6ÐJÑJÔJˆØ˜HÐ%¨
°IÐ'>Ð?ˆÝ˜˜u¨4Ð0Ñ0Ô0Ð0Ð0Ð0rB   c                 ó@  — t          j        g d¢d¬¦  «        }t          |g d¢¦  «         t          j        g d¢d¬¦  «        }t          |t          j        t          j        t          j        g¦  «         t          j        g d¢g d¢gd¬¦  «        }t          |t          j        t          j        t          j        gg d¢gd	¬
¦  «         t          j        t          j        g t          ¬¦  «        d¬¦  «        }t          |g ¦  «         t          |j	        dk    ¦  «         d S )Nrh   r   ro  ©rÅ   rÅ   rÅ   ©r
   r   r   rH   r½  )rÄ   rÅ   rÄ   ç—ÔFFõg<r=  r/  ©r   )
r   r¨   r   r9   rv  r   rÇ   Úintr   r;   r�  s        r@   Útest_mean_edge_casesz.TestMultivariateHypergeom.test_mean_edge_cases½  s  € Ý&Ô+¨i¨i¨i¸1Ð=Ñ=Ô=ˆÝ�U˜L˜L˜LÑ)Ô)Ð)å&Ô+¨i¨i¨i¸1Ð=Ñ=Ô=ˆÝ�U�RœV¥R¤V­R¬VÐ4Ñ5Ô5Ð5å&Ô+¨y¨y¨y¸)¸)¸)Ð.DÈÐJÑJÔJˆÝ˜¥¤­¬µ´Ð 8¸,¸,¸,ÐGØ"ð	$ñ 	$ô 	$ð 	$õ 'Ô+­b¬h°rÅÐ.EÑ.EÔ.EÈÐKÑKÔKˆÝ�U˜BÑÔÐÝ�”˜uÒ$Ñ%Ô%Ð%Ð%Ð%rB   c                 óD  — t          j        g d¢d¬¦  «        }t          |g d¢d¬¦  «         t          j        g d¢d¬¦  «        }t          |t          j        t          j        t          j        g¦  «         t          j        g d¢g d	¢gd¬¦  «        }t          |t          j        t          j        t          j        gg d¢gd
¬¦  «         t          j        t	          j        g t          ¬¦  «        d¬¦  «        }t          |g ¦  «         t          |j	        dk    ¦  «         d S )Nrh   r   ro  r”  g¼‰Ø—²Òœ<r=  r•  rH   r½  r–  r/  r—  )
r   r:  r   r   r9   rv  rÇ   r˜  r   r;   )rV   r„  r…  rˆ  r‰  s        r@   Útest_var_edge_casesz-TestMultivariateHypergeom.test_var_edge_casesÌ  s  € Ý%Ô)¨I¨I¨I¸Ð;Ñ;Ô;ˆÝ˜˜l˜l˜l°Ð7Ñ7Ô7Ð7å%Ô)¨I¨I¨I¸Ð;Ñ;Ô;ˆÝ�T�BœF¥B¤F­B¬FÐ3Ñ4Ô4Ð4å%Ô)¨Y¨Y¨Y¸	¸	¸	Ð,BÀaÐHÑHÔHˆÝ˜¥¤­¬µ´Ð7¸¸¸ÐFØ"ð	$ñ 	$ô 	$ð 	$õ &Ô)­B¬H°R½sÐ,CÑ,CÔ,CÀqÐIÑIÔIˆÝ�T˜2ÑÔÐÝ�”
˜eÒ#Ñ$Ô$Ð$Ð$Ð$rB   c                 óð  — t          j        g d¢d¬¦  «        }g d¢g d¢g d¢g}t          ||d¬¦  «         t          j        g d¢d¬¦  «        }g d¢g d¢g d¢g}t          ||¦  «         t          j        t	          j        g t          ¬	¦  «        d¬¦  «        }t	          j        g t          j        ¬	¦  «                             dd¦  «        }t          ||d¬¦  «         t          |j
        d
k    ¦  «         d S )Nr•  r
   ro  r”  r–  r=  rh   r   r/  rO  )r   r¿   r   r   r9   rÇ   r˜  rÞ  r*  r   r;   )rV   Úcov0rç  rë  rì  rí  rî  s          r@   Útest_cov_edge_casesz-TestMultivariateHypergeom.test_cov_edge_casesÛ  s  € Ý%Ô)¨I¨I¨I¸Ð;Ñ;Ô;ˆØ��˜l˜l˜l¨L¨L¨LÐ9ˆÝ˜˜d¨Ð/Ñ/Ô/Ð/å%Ô)¨I¨I¨I¸Ð;Ñ;Ô;ˆØ��˜l˜l˜l¨L¨L¨LÐ9ˆÝ�T˜4Ñ Ô Ð å%Ô)­B¬H°R½sÐ,CÑ,CÔ,CÀqÐIÑIÔIˆÝŒx˜¥"¤*Ð-Ñ-Ô-×5Ò5°a¸Ñ;Ô;ˆÝ˜˜d¨Ð/Ñ/Ô/Ð/Ý�”
˜fÒ$Ñ%Ô%Ð%Ð%Ð%rB   c                 óx  — t           j                             d¦  «         d}g d¢}g d¢g d¢g d¢g d¢g d¢g}t          j        |t          ¬	¦  «        }t          ||¦  «        }t          |                     |¦  «        t          j        |||¦  «        ¦  «         t          |                     |¦  «        t          j        |||¦  «        ¦  «         t          | 	                    ¦   «         t          j	        ||¦  «        ¦  «         t          | 
                    ¦   «         t          j
        ||¦  «        ¦  «         d S )
Nrð   rÿ  )rf   rÛ  r  é   r   r  r  r  r  r/  )r9   rŒ   r    r:   r˜  r   r   rÇ  r½  r:  r¿   )rV   r¼   rï  r\   Ú
mhg_frozens        r@   rb  z%TestMultivariateHypergeom.test_frozené  s-  € å
Œ	�Š�tÑÔÐØˆØˆNˆNˆØˆ]ˆ]˜M˜M˜M¨=¨=¨=Øˆ\ˆ\˜<˜<˜<ð)ˆåŒJ�q¥Ð$Ñ$Ô$ˆÝ+¨A¨qÑ1Ô1ˆ
Ý˜
Ÿš qÑ)Ô)Ý.Ô2°1°a¸Ñ;Ô;ñ	=ô 	=ð 	=å˜
×)Ò)¨!Ñ,Ô,Ý.Ô5°a¸¸AÑ>Ô>ñ	@ô 	@ð 	@å˜
ŸšÑ(Ô(Õ*@Ô*DÀQÈÑ*JÔ*JÑKÔKÐKÝ˜
ŸšÑ(Ô(Õ*@Ô*DÀQÈÑ*JÔ*JÑKÔKÐKÐKÐKrB   c                 ó¾  — t          t          t          j        ddd¦  «         t          t          t          j        ddgd¦  «         t          t          t          j        ddgdgd¦  «         t          t          t          j        ddgddgd¦  «         t          t          t          j        ddgddgd¦  «         t          t          t          j        ddgddgd¦  «         d S )	Nrc   r%  re   g      @r÷  rk  g      %@g      /@)rì   rN   r   rÇ  Ú	TypeErrorr7  s    r@   Útest_invalid_paramsz-TestMultivariateHypergeom.test_invalid_paramsù  sÝ   € Ý•jÕ"8Ô"<¸aÀÀQÑGÔGÐGÝ•jÕ"8Ô"<¸aÀ"ÀÀqÑIÔIÐIÝ•jÕ"8Ô"<¸qÀ!¸fÀrÀdÈAÑNÔNÐNÝ•iÕ!7Ô!;¸cÀ3¸ZØ˜2�h ñ	#ô 	#ð 	#å•iÕ!7Ô!;¸aÀ¸VØ˜T�l Añ	'ô 	'ð 	'å•iÕ!7Ô!;¸aÀ¸VØ˜2�h ñ	%ô 	%ð 	%ð 	%ð 	%rB   N)rÊ   rË   rÌ   rM   rÑ   rÒ   r9   r  rv  rÂ  rm  r  rt  rw  rÇ   r˜  râ  rä  rè  rï  r†  r�  rû  rý  r™  r›  rž  rb  r¤  rÕ   rB   r@   rd  rd  !  sV  € € € € € Ø„[×ÒØð �ˆV�a˜�W˜a Ð+à�ˆV�a˜�W˜a "¤& Ð)à�!ˆW�q˜"�g˜q 2¤6 'Ð*à�ˆV�b˜"�X˜q "¤&Ð)à�!ˆf�q˜!�fÐ  R ¨2¨s¨)Ð4Ø�ˆV�b”f˜bœfÐ%ð'ð �!ˆW�r˜2�h  2¤6Ð*à�ˆW�r˜1�g˜r 2¤6Ð*à�ˆW�r˜2�h  B¤FÐ+à�ˆV�a˜�W˜b "¤&Ð)à�ˆV�a˜�W˜a "¤& Ð)ð+	
ñô ð43ð 3ñ5ô ð43ð	/ð 	/ð 	/ð;ð ;ð ;ð;ð ;ð ;ð
 „[×Ò˜VØ	Ð	Ð	˜1Ð   °Ð3Ø
ˆQˆ�ˆ�q�c˜1�Xð&ñ ô ð"ð "ñ	ô ð"ð „[×ÒØàˆS�1�#�q˜!ÐØ�ˆV�a˜�W˜a Ð+à�1ˆv˜˜1�vÐ " a ¨1¨a¨&Ð 1Ð2Ø�ˆW˜˜1�v  1˜vÐ&Ø˜+Ð&¨¨I¨Ð7ð9ð ˆRŒX�b Ð$Ñ$Ô$ h b¤h¨r¸Ð&=Ñ&=Ô&=¸qÀ"ÐEØ�ˆV�a˜�V˜Q Ð"àˆYˆY˜	˜	˜	 1 jÐ1ð	
ñô ð 3ð 3ñ!ô ð 3ð „[×ÒØà�ˆV�q˜"�g  B˜xÐ(¨!¨i¸Ð-CÐDØˆc�A�3ˆZ˜1˜# ˜s˜ a¨ V¨b°"¨XÐ6Øˆs�Q�Cˆjˆ\˜Q˜C ! ˜:¨¨1 v°°R°¨zÐ:Øˆc�A�3ˆZ˜Q˜C˜5˜'˜ Q¨ F¨r°2¨h¨Z¨LÐ9ð		
ñô ð3ð 3ñô ð3ð/ð /ð /ð/ð /ð /ð/ð /ð /ð/ð /ð /ð1ð 1ð 1ð1ð 1ð 1ð
&ð &ð &ð%ð %ð %ð&ð &ð &ðLð Lð Lð 	%ð 	%ð 	%ð 	%ð 	%rB   rd  c                   ó†  — e Zd Zd„ Zd„ Zej                             dd¦  «        d„ ¦   «         Zd„ Z	ej                             dd¦  «        ej                             d	d¦  «        d
„ ¦   «         ¦   «         Z
ej                             dd¦  «        d„ ¦   «         Zd„ Zej                             dd¦  «        d„ ¦   «         Zej                             dd¦  «        d„ ¦   «         Zej                             dd¦  «        d„ ¦   «         Zej                             dd¦  «        ej                             dg dgf¦  «        ej                             dg dgf¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             dd¦  «        d„ ¦   «         Zd„ Zej                             dd¦  «        d„ ¦   «         ZdS )ÚTestRandomTablec                 ó@   — t           j                             d¦  «        S )Nl   ÖO˜f½E)r9   rŒ   r�   r7  s    r@   Úget_rngzTestRandomTable.get_rng  s   € ÝŒy×$Ò$Ð%7Ñ8Ô8Ð8rB   c                 óÆ  — d}t          j        t          |¬¦  «        5  t          ddggddg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          ddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          ddgddg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          ddgdd	g¦  «         d d d ¦  «         n# 1 swxY w Y   d
}t          j        t          |¬¦  «        5  t          ddgddg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          ddgg d¢¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          ddgg d¢¦  «         d d d ¦  «         n# 1 swxY w Y   ddg}g d¢}t          j        ddgg d¢¦  «        \  }}}t          ||¦  «         t          ||¦  «         |t          j        |¦  «        k    sJ ‚d S )Nz`row` must be one-dimensionalrF   r
   rH   z`col` must be one-dimensionalz*each element of `row` must be non-negativerg   z*each element of `col` must be non-negativerj   z'sums over `row` and `col` must be equalr   z(each element of `row` must be an integerçÍÌÌÌÌÌ @)r
   r
   rH   z(each element of `col` must be an integer)rW  rW  r
   rI   ©rH   r
   r
   )rM   r	   rN   r&   Ú_process_parametersr   r9   r‘   )rV   rW   ÚrowÚcolr(  r±  r¼   s          r@   Útest_process_parametersz'TestRandomTable.test_process_parameters	  s6  € Ø1ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	+ð 	+Ý˜1˜a˜&˜ A q 6Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 2ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	+ð 	+Ý˜!˜Q˜ 1 a & Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ?ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý˜!˜R˜ 1 a &Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð ?ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý˜!˜Q˜ ! R Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð <ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	)ð 	)Ý˜!˜Q˜ ! Q Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð =ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	0ð 	0Ý˜#˜s˜ Y Y YÑ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð =ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	0ð 	0Ý˜!˜Q˜   Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð �!ˆfˆØˆiˆiˆÝÔ2°A°q°6¸9¸9¸9ÑEÔE‰ˆˆ1ˆaÝ�S˜!ÑÔÐÝ�S˜!ÑÔÐØ•B”F˜3‘K”KÒÐÐÐÐÐs}   žA Á AÁAÁ(B
Â
BÂBÂ2CÃCÃCÃ;DÄD Ä#D ÅE%Å%E)Å,E)ÆF.Æ.F2Æ5F2ÇG7Ç7G;Ç>G;zscale,method))r
   Úboyett)r.  Ú	patefieldc                 óü   — t          j        ddg¦  «        |z  }t          j        g d¢¦  «        |z  }t          }|                     |||d¬¦  «        }|                     ||d d¬¦  «        }t	          ||¦  «         d S )Nr
   rI   r«  ©Úmethodrž   )r9   rÇ   r&   r¡   r   )rV   rK  r´  r­  r®  Úctr1  Úgots           r@   Útest_process_rvs_method_on_Nonez/TestRandomTable.test_process_rvs_method_on_None-  s�   € õ Œh˜˜1�vÑÔ Ñ&ˆÝŒh�y�y�yÑ!Ô! EÑ)ˆåˆØ—6’6˜#˜s¨6À�6ÑBÔBˆØ�fŠf�S˜# d¸ˆfÑ;Ô;ˆå�X˜sÑ#Ô#Ð#Ð#Ð#rB   c                 ó°   — ddg}g d¢}d}t          j        t          |¬¦  «        5  t          j        ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr
   rI   r«  z$'foo' not recognized, must be one ofrF   Úfoo)r´  )rM   r	   rN   r&   r¡   )rV   r­  r®  rW   s       r@   Ú$test_process_rvs_method_bad_argumentz4TestRandomTable.test_process_rvs_method_bad_argument9  s¬   € Ø�!ˆfˆØˆiˆiˆð 9ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	5ð 	5ÝÔ˜S #¨eÐ4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   ¦AÁAÁAr  )TFrø   c                 ón  ‡‡‡‡— |                       ¦   «         }ddgŠg d¢Št          j        ‰‰dd|¬¦  «        }|rt          ‰‰¦  «        nt          }t          ||rdnd¦  «        Š|s	‰Šˆˆˆfd	„Š|rˆfd
„n‰}t	          j        |dd¬¦  «        \  }} ||¦  «        }	t          |	t          |¦  «        z  |d¬¦  «          |t          |d         ¦  «        ¦  «        }
t          |
|	d         ¦  «         | 
                    d|j        dd …         z   ¦  «        } ||¦  «        }	|	j        dk    sJ ‚t          |	j        d         ¦  «        D ]N}t          |	j        d         ¦  «        D ]1}|	||f         }|||f         } ||¦  «        }t          ||¦  «         Œ2ŒOg d¢g d¢g}t          t	          j        |d¬¦  «        ‰¦  «          ||¦  «        }	|	dk    sJ ‚g d¢g d¢g}t          t	          j        |d¬¦  «        ‰¦  «          ||¦  «        }	|	dk    sJ ‚d}t          j        t           |¬¦  «        5   |dg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t           |¬¦  «        5   |dgg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t           |¬¦  «        5   |t          j        gg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t           |¬¦  «        5   |dgg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t           |¬¦  «        5   |g d¢g¦  «         d d d ¦  «         n# 1 swxY w Y   d }t          j        t           |¬¦  «        5   |ddgd!d"gg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )#NrH   rd   ©r
   rI   re   r)  r°  ©r�   r´  rž   r½  rÇ  c                 ó   •—  ‰| ‰‰¦  «        S r8   rÕ   )r\   r®  Úoriginal_methodr­  s    €€€r@   r´  z/TestRandomTable.test_pmf_logpmf.<locals>.methodS  s   ø€ Ø&� q¨#¨sÑ3Ô3Ð3rB   c                 ó>   •— t          j         ‰| ¦  «        ¦  «        S r8   )r9   r1  )r\   r´  s    €r@   r]   z1TestRandomTable.test_pmf_logpmf.<locals>.<lambda>U  s   ø€ �œ   q¡	¤	Ñ*Ô*€ rB   r   T©r†   Úreturn_countsrš   r=  )r%  r.  r
   )r   r
   r
   )rH   r
   rI   rg   r…   ré   )r
   rH   rH   rj   z$`x` must be at least two-dimensionalrF   z%`x` must contain only integral valuesrW  z)`x` must contain only non-negative valuesz"shape of `x` must agree with `row`rL   z"shape of `x` must agree with `col`rI   re   )r¨  r&   r¡   rq   r9   Úuniquer   r’   rÏ   r   r*  r;   r
  r‘   rM   r	   rN   rv  )rV   r  rø   r–   r¡   ÚobjrÇ  Ú
unique_rvsÚcountsrÏ  Úp2Úrvs_ndrB  rC  ÚpijÚrvijÚqijr\   rW   r®  r´  r¿  r­  s                      @@@@r@   Útest_pmf_logpmfzTestRandomTable.test_pmf_logpmfB  sÌ  øøøø€ ð �lŠl‰nŒnˆØ�!ˆfˆØˆiˆiˆÝÔ˜s C¨dØ&.¸SðBñ Bô Bˆð )/Ð@�l˜3 Ñ$Ô$Ð$µLˆÝ˜¨#Ð8˜h˜h°5Ñ9Ô9ˆØð 	4Ø$ˆOð4ð 4ð 4ð 4ð 4ð 4ð 4à/2Ð>Ð*Ð*Ð*Ð*Ð*¸ˆåœY s°À$ÐGÑGÔGÑˆ
�Fð ˆC�
‰OŒOˆÝ˜�C ™HœH™ f°3Ð7Ñ7Ô7Ð7ð ˆS•�j ”mÑ$Ô$Ñ%Ô%ˆÝ�R˜˜1œÑÔÐð —’˜Y¨¬°1°2°2¬Ñ6Ñ7Ô7ˆØˆC�‰KŒKˆØŒw˜)Ò#Ð#Ð#Ð#Ý�q”w˜q”zÑ"Ô"ð 	'ð 	'ˆAÝ˜1œ7 1œ:Ñ&Ô&ð 'ð '�Ø˜˜1˜”g�Ø˜a ˜d”|�Ø�c˜$‘i”i�Ý˜S #Ñ&Ô&Ð&Ð&ð	'ð ˆYˆY˜	˜	˜	Ð"ˆÝ•R”V˜A BÐ'Ñ'Ô'¨Ñ-Ô-Ð-ØˆC�‰FŒFˆØ�AŠvˆvˆvˆvð ˆYˆY˜	˜	˜	Ð"ˆÝ•R”V˜A BÐ'Ñ'Ô'¨Ñ-Ô-Ð-ØˆC�‰FŒFˆØ�AŠvˆvˆvˆvð 9ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ØˆC��‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð :ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ØˆC�#��‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð :ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ØˆC•"”&��
‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð >ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ØˆC�"��‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 7ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ØˆC����ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 7ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ØˆC�!�Q�Ø�Q�ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sl   È7IÉIÉIÉ8JÊJÊJÊ:KËK"Ë%K"ÌL Ì L$Ì'L$ÍM#Í#M'Í*M'ÎN*Î*N.Î1N.r´  )r°  r±  c                 ó(  — |                       ¦   «         }ddg}g d¢}t          j        ||d||¬¦  «        }t          j        ||¦  «        }t	          t          j        |¦  «        t          j        |¦  «        ¦  «         t          |                     d¦  «        |d¬¦  «         t	          |                     d	¬
¦  «        t          j        |d¦  «        ¦  «         t	          |                     d¬
¦  «        t          j        |d¦  «        ¦  «         d S )NrH   rd   r¼  r)  r½  r   rH  r†  rg   r…   rs  rj   )r)  rI   )	r¨  r&   r¡   r¨   r   r9   r‘   r   Úbroadcast_to)rV   r´  r–   r­  r®  r¡   r¨   s          r@   Útest_rvs_meanzTestRandomTable.test_rvs_mean’  sð   € ð �lŠl‰nŒnˆØ�!ˆfˆØˆiˆiˆÝÔ˜s C¨d¸6Ø,/ð1ñ 1ô 1ˆåÔ   cÑ*Ô*ˆÝ•R”V˜D‘\”\¥2¤6¨#¡;¤;Ñ/Ô/Ð/Ý˜Ÿš ™œ T°Ð5Ñ5Ô5Ð5Ý�S—W’W "�WÑ%Ô%¥r¤°s¸IÑ'FÔ'FÑGÔGÐGÝ�S—W’W "�WÑ%Ô%¥r¤°s¸IÑ'FÔ'FÑGÔGÐGÐGÐGrB   c                 ó  — |                       ¦   «         }ddg}g d¢}t          j        ||dd|¬¦  «        }t          j        ||dd|¬¦  «        }t          j        |d¬	¦  «        }t          j        |d¬	¦  «        }t          ||d
¬¦  «         d S )NrH   rd   r¼  rÁ  r°  r½  r±  r   r…   ç{®Gáz”?r†  )r¨  r&   r¡   r9   r:  r   )rV   r–   r­  r®  r  r  rç  r�  s           r@   Útest_rvs_covzTestRandomTable.test_rvs_cov¡  sª   € ð �lŠl‰nŒnˆØ�!ˆfˆØˆiˆiˆÝÔ  S¨u¸XØ-0ð2ñ 2ô 2ˆåÔ  S¨u¸[Ø-0ð2ñ 2ô 2ˆåŒv�d Ð#Ñ#Ô#ˆÝŒv�d Ð#Ñ#Ô#ˆÝ˜˜d¨Ð.Ñ.Ô.Ð.Ð.Ð.rB   c           	      óP  — ddg}g d¢}t          j        ||||                      ¦   «         ¬¦  «        }|j        dk    sJ ‚t          j        ||d||                      ¦   «         ¬¦  «        }|j        dk    sJ ‚t	          ||d	         ¦  «         t          j        ||d	||                      ¦   «         ¬¦  «        }|j        d
k    sJ ‚t          j        ||d||                      ¦   «         ¬¦  «        }|j        dk    sJ ‚t          j        ||d||                      ¦   «         ¬¦  «        }|j        dk    sJ ‚t          |                     ddd¦  «        |d¬¦  «         d}	t          j        t          |	¬¦  «        5  t          j        ||d||                      ¦   «         ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |	¬¦  «        5  t          j        ||t          j        ||                      ¦   «         ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrH   rd   r¼  r³  r·  r
   r½  rL   r   )r   rH   rI   r  )r  rH   rI   )re   rc   )re   rc   rH   rI   rI   rÍ  r=  z/`size` must be a non-negative integer or `None`rF   rg   )r&   r¡   r¨  r;   r   r   r*  rM   r	   rN   r9   rv  )
rV   r´  r­  r®  rÀ   Úrv2Úrv3Úrv4Úrv5rW   s
             r@   Útest_rvs_sizezTestRandomTable.test_rvs_size¯  sÍ  € à�!ˆfˆØˆiˆiˆõ Ô˜c 3¨vØ+/¯<ª<©>¬>ð;ñ ;ô ;ˆàŒx˜6Ò!Ð!Ð!Ð!õ Ô˜s C¨a¸Ø,0¯LªL©N¬Nð<ñ <ô <ˆàŒy˜IÒ%Ð%Ð%Ð%Ý�R˜˜QœÑ Ô Ð õ Ô˜s C¨a¸Ø,0¯LªL©N¬Nð<ñ <ô <ˆàŒy˜IÒ%Ð%Ð%Ð%õ Ô˜s C¨b¸Ø,0¯LªL©N¬Nð<ñ <ô <ˆàŒy˜JÒ&Ð&Ð&Ð&åÔ˜s C¨f¸VØ,0¯LªL©N¬Nð<ñ <ô <ˆàŒy˜LÒ(Ð(Ð(Ð(å˜Ÿš B¨¨1Ñ-Ô-¨s¸Ð?Ñ?Ô?Ð?ð DˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	:ð 	:ÝÔ˜S #¨B°vØ*.¯,ª,©.¬.ð:ñ :ô :ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ Œ]�:¨WÐ5Ñ5Ô5ð 	:ð 	:ÝÔ˜S #­B¬F¸6Ø*.¯,ª,©.¬.ð:ñ :ô :ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s$   Å:,F2Æ2F6Æ9F6Ç6HÈHÈ"Hc                 ó"  — ddg}g d¢}t           }|                     ||d||                      ¦   «         ¬¦  «        }t          j        |dd¬¦  «        \  }}|                     |||¦  «        }t          |t          |¦  «        z  |d	¬
¦  «         d S )NrH   rd   r¼  rí  r½  r   TrÁ  rÑ  r=  )r&   r¡   r¨  r9   rÃ  rÇ  r   r’   )	rV   r´  r­  r®  rµ  r¡   rÅ  rÆ  rÏ  s	            r@   Útest_rvs_methodzTestRandomTable.test_rvs_methodÙ  sŸ   € ð �!ˆfˆØˆiˆiˆåˆØ�fŠf�S˜# F°6Ø"&§,¢,¡.¤.ð ñ 2ô 2ˆõ  œY s°À$ÐGÑGÔGÑˆ
�Fð �FŠF�:˜s CÑ(Ô(ˆÝ˜�C ™HœH™ f°4Ð8Ñ8Ô8Ð8Ð8Ð8rB   c                 ó(  — g d¢}g d¢}t          ||¦  «        }|                     d||                      ¦   «         ¬¦  «        }t          j        dt          |¦  «        t          |¦  «        f¦  «        }g d¢g d¢g d¢g|d<   t          ||¦  «         d S )Nr¾  )r
   r   r   r   r)  r³  )r   r   r   r   .©r&   r¡   r¨  r9   r¸   r’   r   ©rV   r´  r­  r®  rƒ  rÀ   r1  s          r@   Útest_rvs_with_zeros_in_col_rowz.TestRandomTable.test_rvs_with_zeros_in_col_rowî  sœ   € àˆiˆiˆØˆlˆlˆÝ˜˜cÑ"Ô"ˆØ�UŠU�4 °T·\²\±^´^ˆUÑDÔDˆÝ”8˜T¥3 s¡8¤8­S°©X¬XÐ6Ñ7Ô7ˆØ%˜˜Ø%˜˜Ø%˜˜ð'ˆ�‰õ 	�R˜Ñ"Ô"Ð"Ð"Ð"rB   )Nr°  r±  r®  r   r­  c                 óü   — t          ||¦  «        }|                     d||                      ¦   «         ¬¦  «        }t          j        dt          |¦  «        t          |¦  «        f¦  «        }t          ||¦  «         d S )Nr%  r³  rÜ  rÝ  s          r@   Útest_rvs_with_edge_casesz(TestRandomTable.test_rvs_with_edge_casesú  sj   € õ ˜˜cÑ"Ô"ˆØ�UŠU�2˜f°4·<²<±>´>ˆUÑBÔBˆÝ”8˜R¥ S¡¤­3¨s©8¬8Ð4Ñ5Ô5ˆÝ�R˜Ñ"Ô"Ð"Ð"Ð"rB   rÛ   r�  c                 ó¸  — dd l mc m} t          j        ddgt          j        ¬¦  «        }t          j        g d¢t          j        ¬¦  «        }t          |d|› �¦  «        }t          j        |¦  «        } ||||d|                      ¦   «         ¦  «        }|j	        dt          |¦  «        t          |¦  «        fk    sJ ‚t          j        |¦  «        |k    sJ ‚d S )Nr   r
   rI   r/  r«  Ú	rvs_rcont)Úscipy.stats._rcontr-   Ú_rcontr9   rÇ   Úint64rq   r‘   r¨  r;   r’   )rV   rÛ   rä  r­  r®  r¡   ÚntotÚresults           r@   Útest_rvs_rcontzTestRandomTable.test_rvs_rcont  sÙ   € ð 	,Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+åŒh˜˜1�v¥R¤XÐ.Ñ.Ô.ˆÝŒh�y�y�y­¬Ð1Ñ1Ô1ˆå�f˜o¨!˜o˜oÑ.Ô.ˆåŒv�c‰{Œ{ˆØ��S˜#˜t Q¨¯ª©¬Ñ7Ô7ˆàŒ| ¥3 s¡8¤8­S°©X¬XÐ6Ò6Ð6Ð6Ð6ÝŒv�f‰~Œ~ Ò%Ð%Ð%Ð%Ð%Ð%rB   c                 óØ  — ddg}g d¢}t          |||                      ¦   «         ¬¦  «        }|                     ¦   «         }t          j        ||¦  «        }t	          ||                     ¦   «         ¦  «         t          j        |||¦  «        }t	          ||                     |¦  «        ¦  «         t          j        |||¦  «        }t	          ||                     |¦  «        ¦  «         d S )NrH   rd   r¼  rŸ   )r&   r¨  r¡   r¨   r   rÇ  r½  )rV   r­  r®  rƒ  r“  r1  s         r@   rb  zTestRandomTable.test_frozen  sË   € Ø�!ˆfˆØˆiˆiˆÝ˜˜c¨¯ª©¬Ð7Ñ7Ô7ˆà—’‘”ˆåÔ$ S¨#Ñ.Ô.ˆÝ�X˜qŸvšv™xœxÑ(Ô(Ð(åÔ# F¨C°Ñ5Ô5ˆÝ�X˜qŸušu V™}œ}Ñ-Ô-Ð-åÔ& v¨s°CÑ8Ô8ˆÝ�X˜qŸxšx¨Ñ/Ô/Ñ0Ô0Ð0Ð0Ð0rB   c                 ó  — ddg}g d¢}t          |||                      ¦   «         ¬¦  «        }t          j        ||d||                      ¦   «         ¬¦  «        }|                     d|¬¦  «        }t          ||¦  «         d S )NrH   rd   r¼  rŸ   r%  r½  )r�   r´  )r&   r¨  r¡   r   )rV   r´  r­  r®  rƒ  r1  r¶  s          r@   Útest_rvs_frozenzTestRandomTable.test_rvs_frozen$  sˆ   € à�!ˆfˆØˆiˆiˆÝ˜˜c¨¯ª©¬Ð7Ñ7Ô7ˆåÔ# C¨°2¸fØ15·²±´ðAñ Aô Aˆà�eŠe˜ FˆeÑ+Ô+ˆÝ�X˜sÑ#Ô#Ð#Ð#Ð#rB   N)rÊ   rË   rÌ   r¨  r¯  rM   rÑ   rÒ   r·  rº  rÌ  rÏ  rÒ  rØ  rÚ  rÞ  rà  rè  rb  rë  rÕ   rB   r@   r¦  r¦    s€  € € € € € ð9ð 9ð 9ð" ð " ð " ðH „[×Ò˜^Ø@ñBô Bð$ð $ñBô Bð$ð5ð 5ð 5ð „[×Ò˜X }Ñ5Ô5Ø„[×Ò˜U MÑ2Ô2ðLð Lñ 3Ô2ñ 6Ô5ðLð\ „[×Ò˜XÐ'>Ñ?Ô?ðHð Hñ @Ô?ðHð/ð /ð /ð „[×Ò˜XÐ'>Ñ?Ô?ð':ð ':ñ @Ô?ð':ðR „[×Ò˜XÐ'>Ñ?Ô?ð9ð 9ñ @Ô?ð9ð( „[×Ò˜XÐ'>Ñ?Ô?ð	#ð 	#ñ @Ô?ð	#ð „[×Ò˜XÐ'DÑEÔEØ„[×Ò˜U R¨!¨ IÑ.Ô.Ø„[×Ò˜U R¨!¨ IÑ.Ô.ð#ð #ñ /Ô.ñ /Ô.ñ FÔEð#ð „[×Ò˜S &Ñ)Ô)ð&ð &ñ *Ô)ð&ð 1ð 1ð 1ð  „[×Ò˜XÐ'>Ñ?Ô?ð$ð $ñ @Ô?ð$ð $ð $rB   r¦  c                 óî   — | j         }d| _          | j        |ddiŽ t          j        | ¦  «        } | j        |ddiŽ}t          j        |¦  «        } |j        |ddiŽ}t          ||¦  «         || _         d S )Nrð   r�   rÄ  )rž   r¡   ÚpickleÚdumpsÚloadsr   )Údistfnr>   rÖ  rã   Úr0Ú	unpickledÚr1s          r@   Úcheck_picklingrô  0  s“   € ð
 Ô€Dà€FÔØ€F„J�Ð˜1ÐÐÐÝŒ�VÑÔ€AØ	ˆŒ�TÐ	" Ð	"Ð	"€Bå”˜Q‘”€IØ	ˆŒ˜Ð	% 1Ð	%Ð	%€BÝ��RÑÔÐð €FÔÐÐrB   c                  ó>  — t          j        d¦  «        } d| d<   d| d<   t          dgt          t          j        dg¦  «        fgt
          d| fgt          d| fgt          dg d	¢fgt          d
gt          d
gg}|D ]%\  }}t          ||¦  «         t          ||¦  «         Œ&d S )NrI   rI  rè   r   rÕ   rÄ   r%  rc   rl  rd  )r9   rQ   r   r   rÇ   r   r   r   r   r   r4   rô  )rK  Údistsrð  r>   s       r@   Útest_random_state_propertyr÷  D  sÀ   € ÝŒF�1‰IŒI€EØ€Eˆ$�KØ€Eˆ$�Kå	˜bÐ!Ý	•R”X˜r˜d‘^”^Ð&Ð'Ý	�2�u�+ÐÝ	�b˜%�[Ð!Ý	�q˜/˜/˜/Ð*Ð+Ý	�dÐÝ	˜dÐ#ð€Eð ð %ð %‰ˆ�Ý# F¨DÑ1Ô1Ð1Ý�v˜tÑ$Ô$Ð$Ð$ð%ð %rB   c                   ó"  — e Zd Zej                             dg d¢¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zej                             dddg¦  «        ej                             dg d	¢¦  «        d
„ ¦   «         ¦   «         Zd„ Zd„ Z	d„ Z
ej                             dddg¦  «        d„ ¦   «         Zej                             dddg¦  «        d„ ¦   «         Zej                             dej        ej        g¦  «        d„ ¦   «         Zej                             dej        ej        g¦  «        d„ ¦   «         Zej                             d ej        g d¢¦  «         ej        g d¢¦  «        ddf ej        g d¢¦  «         ej        g d¢¦  «        ddf ej        g d¢¦  «         ej        g d¢¦  «        ddf ej        g d¢¦  «         ej        g d¢¦  «        dd f ej        g d¢¦  «         ej         ej        d!¦  «         ej        d"¦  «        dg¦  «        d#d$f ej        g d¢¦  «         ej        g d¢¦  «        d#d%f ej        g d&¢¦  «         ej        g d&¢¦  «        d#d'f ej        g d&¢¦  «         ej         ej        d!¦  «         ej        d"¦  «        dddg¦  «        d#d(f ej        g d&¢¦  «         ej         ej        d)¦  «         ej        d*¦  «        dddg¦  «        d#d+fg	¦  «        d,„ ¦   «         Zej                             d ej        g d¢¦  «         ej        g d¢¦  «        dd-f ej        g d¢¦  «         ej        g d¢¦  «        dd.f ej        g d¢¦  «         ej        g d¢¦  «        dd/f ej        g d¢¦  «         ej        g d¢¦  «        dd0f ej        g d¢¦  «         ej         ej        d!¦  «         ej        d"¦  «        dg¦  «        d#d1f ej        g d¢¦  «         ej        g d¢¦  «        d#d2f ej        g d&¢¦  «         ej        g d&¢¦  «        d#d3f ej        g d&¢¦  «         ej         ej        d!¦  «         ej        d"¦  «        dddg¦  «        d#d4f ej        g d&¢¦  «         ej         ej        d)¦  «         ej        d*¦  «        dddg¦  «        d#d5fg	¦  «        d6„ ¦   «         Zej                             d7g d8¢¦  «        d9„ ¦   «         Zej                             dej        ej        g¦  «        d:„ ¦   «         Zd;„ Zej                             dg d<¢¦  «        ej                             d=g d>¢¦  «        d?„ ¦   «         ¦   «         Zd@„ ZdA„ ZdB„ ZdCS )DÚTestVonMises_FisherrØ   )rH   rI   re   rd   r�   r·  c                 óî  — t           j                             d¦  «        }t          j        |fdt          j        |¦  «        z  ¦  «        }t          |d|¬¦  «        }|                     |¦  «        }t          j        |¦  «        t          j        |¦  «        }}| 	                    |||¬¦  «        j
        }	|j
        |	k    sJ ‚t           j                             |d¬¦  «        }
t          |
d¦  «         d S )Nr¹  r
   rŸ   r€   rg   r…   rÄ   )r9   rŒ   r�   rl  r  r(   r¡   r¸   rQ   r   r;   rº   r   r   )rV   rØ   r�   r–   rí   Úvmf_distrè  r¨   r¿   r»  r¼  s              r@   r2  z TestVonMises_Fisher.test_samplesW  sÔ   € õ Œi×#Ò#Ð$7Ñ8Ô8ˆÝŒW�c�W˜a¥¤¨¡¤™nÑ-Ô-ˆÝ" 2 q¨sÐ3Ñ3Ô3ˆØ—,’,˜tÑ$Ô$ˆÝ”H˜S‘M”M¥2¤6¨#¡;¤;ˆcˆØ×0Ò0°°sÀÐ0ÑFÔFÔLˆØŒ} Ò.Ð.Ð.Ð.Ý”	—’˜w¨R�Ñ0Ô0ˆÝ˜˜rÑ"Ô"Ð"Ð"Ð"rB   rc   rÄ  Úkappa)g  4&õkCrN  gêŒ 9Y>)Fc                 óè   — t           j                             d¦  «        }t          j        |fdt          j        |¦  «        z  ¦  «        }t          |||¬¦  «        }|                     d¦  «         d S )Nr¹  r
   rŸ   r%  )r9   rŒ   r�   rl  r  r(   r¡   )rV   rØ   rü  r–   rí   rû  s         r@   Ú test_sampling_high_concentrationz4TestVonMises_Fisher.test_sampling_high_concentratione  se   € õ Œi×#Ò#Ð$7Ñ8Ô8ˆÝŒW�c�W˜a¥¤¨¡¤™nÑ-Ô-ˆÝ" 2 u°3Ð7Ñ7Ô7ˆØ�Š�RÑÔÐÐÐrB   c                 óº   — t          j        d¦  «        }d}t          j        t          |¬¦  «        5  t          |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr‘  z%'mu' must have one-dimensional shape.rF   r
   ©r9   rP   rM   r	   rN   r(   ©rV   rí   r€  s      r@   Útest_two_dimensional_muz+TestVonMises_Fisher.test_two_dimensional_mun  s�   € ÝŒW�V‰_Œ_ˆØ5ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	#ð 	#Ý˜B Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ó   ²AÁAÁAc                 óº   — t          j        d¦  «        }d}t          j        t          |¬¦  «        5  t          |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrd  z%'mu' must be a unit vector of norm 1.rF   r
   r   r  s      r@   Útest_wrong_norm_muz&TestVonMises_Fisher.test_wrong_norm_mut  s�   € ÝŒW�U‰^Œ^ˆØ5ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	#ð 	#Ý˜B Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#r  c                 óº   — t          j        d¦  «        }d}t          j        t          |¬¦  «        5  t          |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÚ  z$'mu' must have at least two entries.rF   r
   r   r  s      r@   Útest_one_entry_muz%TestVonMises_Fisher.test_one_entry_muz  s�   € ÝŒW�U‰^Œ^ˆØ4ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	#ð 	#Ý˜B Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#r  rg   )rc   rI   c                 ó–   — d}t          j        t          |¬¦  «        5  t          ddg|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz"'kappa' must be a positive scalar.rF   r
   r   ©rM   r	   rN   r(   ©rV   rü  r€  s      r@   Útest_kappa_validationz)TestVonMises_Fisher.test_kappa_validation€  s”   € à2ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	+ð 	+Ý˜Q ˜F EÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ó   ž>¾AÁAr   rÅ   c                 ó–   — d}t          j        t          |¬¦  «        5  t          ddg|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzŸFor 'kappa=0' the von Mises-Fisher distribution becomes the uniform distribution on the sphere surface. Consider using 'scipy.stats.uniform_direction' instead.rF   r
   r   r	  r
  s      r@   Útest_kappa_zeroz#TestVonMises_Fisher.test_kappa_zero†  s˜   € ðˆõ Œ]�:¨SÐ1Ñ1Ô1ð 	+ð 	+Ý˜Q ˜F EÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+r  r´  c                 ó¼   — t          j        g d¢¦  «        }d}t          j        t          |¬¦  «        5   ||ddgd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rÄ   rÅ   r   znThe dimensionality of the last axis of 'x' must match the dimensionality of the von Mises Fisher distribution.rF   r
   r   ©r9   rÇ   rM   r	   rN   ©rV   r´  r\   r€  s       r@   Útest_invalid_shapes_pdf_logpdfz2TestVonMises_Fisher.test_invalid_shapes_pdf_logpdf�  s±   € õ ŒH�[�[�[Ñ!Ô!ˆðˆõ Œ]�:¨SÐ1Ñ1Ô1ð 	!ð 	!ØˆF�1�q˜!�f˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ó   ´AÁAÁAc                 ó¼   — t          j        ddg¦  «        }d}t          j        t          |¬¦  «        5   ||ddgd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrI  rÅ   ú8'x' must be unit vectors of norm 1 along last dimension.rF   r
   r   r  r  s       r@   Útest_unnormalized_inputz+TestVonMises_Fisher.test_unnormalized_inputš  s­   € õ ŒH�c˜2�YÑÔˆØHˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	!ð 	!ØˆF�1�q˜!�f˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!r  zx, mu, kappa, reference)rÄ   rÅ   rÅ   r¸  g÷0ñµ_´?r  )rÅ   rÅ   rÄ   g»ô7m0_´?r.  gLI‹«»Ô/@gFíK:h*7g\�Âõ(\ï?rÑ  iÐ  gó3pˆBæ£>gÐ7Kõäs@)rÄ   rÅ   rÅ   rÅ   rÅ   go´Éé½¿ø@gW+x\Á(?rk  r›   gSô‹³ð-c                 óp   — t          ||¦  «                             |¦  «        }t          ||d¬¦  «         d S )NrD  r=  )r(   r¥   r   )rV   r\   rí   rü  Ú	referencer¥   s         r@   Útest_pdf_accuracyz%TestVonMises_Fisher.test_pdf_accuracy®  s<   € õ4 ˜b %Ñ(Ô(×,Ò,¨QÑ/Ô/ˆÝ˜˜Y¨UÐ3Ñ3Ô3Ð3Ð3Ð3rB   gÅ[d6U?Àgþ1*¤‰?ÀgÑJ8“j#@g©=f«äNXÀg][«­,Àg1V‡V@g‰|¿˜'@gm¢FÚ&!Àg–ÈeÏóhÀc                 óp   — t          ||¦  «                             |¦  «        }t          ||d¬¦  «         d S )NrÎ  r=  )r(   r¦   r   )rV   r\   rí   rü  r  r¦   s         r@   Útest_logpdf_accuracyz(TestVonMises_Fisher.test_logpdf_accuracyØ  s<   € õ4 !  UÑ+Ô+×2Ò2°1Ñ5Ô5ˆÝ˜ 	°Ð6Ñ6Ô6Ð6Ð6Ð6rB   zdim, kappa, reference))rI   r¸  g®©·£‰?@)rI   r.  g¡•p&ÕFü¿)rc   rš  gT†;Ó·&À)rÄ  r
   go›–ØZ@c                 óÄ   — t          j        |fdt          j        |¦  «        z  ¦  «        }t          ||¦  «                             ¦   «         }t          ||d¬¦  «         d S )Nr
   g›+¡†›„=r=  )r9   rl  r  r(   r§   r   )rV   rØ   rü  r  rí   r§   s         r@   Útest_entropy_accuracyz)TestVonMises_Fisher.test_entropy_accuracy  sY   € õ ŒW�c�W˜a¥¤¨¡¤™nÑ-Ô-ˆÝ! " eÑ,Ô,×4Ò4Ñ6Ô6ˆÝ˜ °Ð7Ñ7Ô7Ð7Ð7Ð7rB   c           	      óà  — d}t           j                             d¦  «        }t          d¦  «                             ||¬¦  «        }t          j        ddt          j        d¦  «        z  ¦  «        }d} ||||¦  «        }|j        |k    sJ ‚t          |d         ¦  «        D ]L}t          |d         ¦  «        D ]4}	 ||||	d d …f         ||¦  «        }
t          |
|||	f         d	¬
¦  «         Œ5ŒMd S )Nr‘  r¹  rI   r·   rÚ  r
   rc   r   rÍ  r=  )
r9   rŒ   r�   r'   r¡   rl  r  r;   r
  r   )rV   r´  Ú	testshaper–   r\   rí   rü  Ú
result_allrB  rC  Úcurrent_vals              r@   rE  z%TestVonMises_Fisher.test_broadcasting  s  € ð ˆ	ÝŒi×#Ò#Ð$7Ñ8Ô8ˆÝ˜aÑ Ô ×$Ò$ Y¸SÐ$ÑAÔAˆÝŒW�U˜A�bœg a™jœj™LÑ)Ô)ˆØˆØ�V˜A˜r 5Ñ)Ô)ˆ
ØÔ 9Ò,Ð,Ð,Ð,Ý�y ”|Ñ$Ô$ð 	Kð 	KˆAÝ˜9 Qœ<Ñ(Ô(ð Kð K�Ø$˜f Q q¨!¨Q¨Q¨Q w¤Z°°UÑ;Ô;�Ý ¨Z¸¸1¸Ô-=ÀEÐJÑJÔJÐJÐJðKð	Kð 	KrB   c                 óÒ  — t           j                             d¦  «        }t          j        ddg¦  «        }t          j        |d         |d         ¦  «        }d}t          ||¦  «        }t          ||¬¦  «        }t          d¦  «                             d|¬¦  «        }t          j        |d d …df         |d d …df         ¦  «        }t          | 
                    ¦   «         | 
                    ¦   «         ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )	Nr¹  r   r
   r  )rQ  rü  rH   r%  r·   )r9   rŒ   r�   rÇ   rÂ  r(   r*   r'   r¡   r   r§   r¥   r¦   )	rV   r–   rí   Úmu_anglerü  ÚvmfÚvonmises_distÚvectorsrÉ  s	            r@   Útest_vs_vonmises_2dz'TestVonMises_Fisher.test_vs_vonmises_2d  s3  € õ Œi×#Ò#Ð$7Ñ8Ô8ˆÝŒX�q˜!�fÑÔˆÝ”:˜b œe R¨¤UÑ+Ô+ˆØˆÝ˜b %Ñ(Ô(ˆÝ  X°UÐ;Ñ;Ô;ˆÝ# AÑ&Ô&×*Ò*¨2¸CÐ*Ñ@Ô@ˆÝ”˜G A A A q DœM¨7°1°1°1°a°4¬=Ñ9Ô9ˆÝ˜×-Ò-Ñ/Ô/°·²±´Ñ?Ô?Ð?Ý˜×)Ò)¨&Ñ1Ô1°3·7²7¸7Ñ3CÔ3CÑDÔDÐDÝ˜×,Ò,¨VÑ4Ô4°c·j²jÀÑ6IÔ6IÑJÔJÐJÐJÐJrB   )rH   rI   rd   zkappa, mu_tol, kappa_tol))r
   rH  rH  )r%  rR  rR  )r.  ç{®Gázt?rÑ  )r)  r<  rÑ  c                 ó²  — t          j        |fdt          j        |¦  «        z  ¦  «        }t          ||¦  «        }t           j                             d¦  «        }d}|                     ||¬¦  «        }	t          j        |	¦  «        \  }
}t          j        | 	                    |
¦  «        ¦  «        }t          |d|d¬¦  «         t          |||¬¦  «         d S )	Nr
   r¹  rÁ  r·   rÅ   r   r&  r=  )r9   rl  r  r(   rŒ   r�   r¡   rÇ  Úarccosr  r   )rV   rØ   rü  Úmu_tolÚ	kappa_tolrí   rû  r–   rù  rè  Úmu_fitÚ	kappa_fitÚangular_errors                r@   Útest_fit_accuracyz%TestVonMises_Fisher.test_fit_accuracy,  sÂ   € õ ŒW�c�W˜a¥¤¨¡¤™nÑ-Ô-ˆÝ" 2 uÑ-Ô-ˆÝŒi×#Ò#Ð$7Ñ8Ô8ˆØˆ	Ø—,’,˜y°s�,Ñ;Ô;ˆÝ+Ô/°Ñ8Ô8Ñˆ�	Ýœ	 "§&¢&¨¡.¤.Ñ1Ô1ˆÝ˜ r°¸QÐ?Ñ?Ô?Ð?Ý˜˜y¨yÐ9Ñ9Ô9Ð9Ð9Ð9rB   c                 óÂ   — t          j        d¦  «        }d}t          j        t          |¬¦  «        5  t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÚ  z'x' must be two dimensional.rF   )r9   r¸   rM   r	   rN   r(   rÇ  ©rV   r\   r€  s      r@   Ú#test_fit_error_one_dimensional_dataz7TestVonMises_Fisher.test_fit_error_one_dimensional_data=  sž   € ÝŒH�U‰OŒOˆØ,ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	#ð 	#ÝÔ Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ó   ²AÁAÁAc                 óÂ   — t          j        d¦  «        }d}t          j        t          |¬¦  «        5  t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¶  r  rF   )r9   rP   rM   r	   rN   r(   rÇ  r3  s      r@   Ú test_fit_error_unnormalized_dataz4TestVonMises_Fisher.test_fit_error_unnormalized_dataC  sž   € ÝŒG�F‰OŒOˆØHˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	#ð 	#ÝÔ Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#r5  c                 ó<  — t          j        g d¢¦  «        }d}t          ||¦  «        }t          ||d¬¦  «        }|                     d¬¦  «        }t          j        ||d¬¦  «        }|                     ¦   «         }t	          ||¦  «         t	          ||¦  «         d S )N)r   r   r
   rc   r3  rŸ   r·   )r9   rÇ   r(   r¡   r   )rV   rí   rü  r  rm  r  r  rn  s           r@   r¿  z,TestVonMises_Fisher.test_frozen_distributionI  sœ   € ÝŒX�i�i�iÑ Ô ˆØˆÝ   UÑ+Ô+ˆÝ% b¨%°cÐ:Ñ:Ô:ˆà�zŠz sˆzÑ+Ô+ˆÝÔ" 2 u¸3Ð?Ñ?Ô?ˆØ�ŠÑ Ô ˆå�T˜4Ñ Ô Ð Ý�T˜4Ñ Ô Ð Ð Ð rB   N)rÊ   rË   rÌ   rM   rÑ   rÒ   r2  rþ  r  r  r  r  r  r(   r¥   r¦   r  r  r9   rÇ   r  r  r  r  rE  r(  r1  r4  r7  r¿  rÕ   rB   r@   rù  rù  V  s½  € € € € € Ø„[×Ò˜U L L LÑ1Ô1Ø„[×Ò˜VÐ%9Ð%9Ð%9Ñ:Ô:ð
#ð 
#ñ ;Ô:ñ 2Ô1ð
#ð „[×Ò˜U Q¨ FÑ+Ô+Ø„[×Ò˜WÐ&8Ð&8Ð&8Ñ9Ô9ðð ñ :Ô9ñ ,Ô+ðð#ð #ð #ð#ð #ð #ð#ð #ð #ð „[×Ò˜W r¨6 lÑ3Ô3ð+ð +ñ 4Ô3ð+ð
 „[×Ò˜W q¨" gÑ.Ô.ð+ð +ñ /Ô.ð+ð „[×Ò˜X¨Ô(;Ø(7Ô(>ð(@ñ Aô Að!ð !ñAô Að!ð „[×Ò˜X¨Ô(;Ø(7Ô(>ð(@ñ Aô Að!ð !ñAô Að!ð$ „[×ÒÐ6Ø'˜rœx¨¨¨Ñ5Ô5°x°r´xÀÀÀÑ7MÔ7MØ#Ð%7ð9à'˜rœx¨¨¨Ñ4Ô4°h°b´h¸|¸|¸|Ñ6LÔ6LØ#Ð%8ð:à'˜rœx¨¨¨Ñ5Ô5°x°r´xÀÀÀÑ7MÔ7MØ"Ð$6ð8à'˜rœx¨¨¨Ñ4Ô4°h°b´h¸|¸|¸|Ñ6LÔ6LØ"Ð$9ð;à'˜rœx¨¨¨Ñ5Ô5Ø'˜rœx¨¨¬°©¬¸¸¼À¹¼ÀrÐ(JÑKÔKØ#Ð%:ð<ð  (˜rœx¨¨¨Ñ4Ô4°h°b´h¸|¸|¸|Ñ6LÔ6LØ#Ð%6ð8à'˜rœxÐ(<Ð(<Ð(<Ñ=Ô=Ø'˜rœxÐ(<Ð(<Ð(<Ñ=Ô=Ø#Ð%7ð9ð  (˜rœxÐ(<Ð(<Ð(<Ñ=Ô=Ø'˜rœx¨¨¬°©¬¸¸¼À¹¼ÀrØ)*¨Bð)0ñ  1ô  1à#Ð%;ð=ð  (˜rœxÐ(<Ð(<Ð(<Ñ=Ô=Ø'˜rœx¨¨¬°©¬°w°r´w¸s±|´|ÀRØ)*¨Bð)0ñ  1ô  1à#Ð%;ð=ð)>ñ?ô ?ð24ð 4ñ3?ô ?ð24ð" „[×ÒÐ6Ø'˜rœx¨¨¨Ñ5Ô5°x°r´xÀÀÀÑ7MÔ7MØ#Ð%8ð:à'˜rœx¨¨¨Ñ4Ô4°h°b´h¸|¸|¸|Ñ6LÔ6LØ#Ð%8ð:à'˜rœx¨¨¨Ñ5Ô5°x°r´xÀÀÀÑ7MÔ7MØ"Ð$5ð7à'˜rœx¨¨¨Ñ4Ô4°h°b´h¸|¸|¸|Ñ6LÔ6LØ"Ð$6ð8à'˜rœx¨¨¨Ñ5Ô5Ø'˜rœx¨¨¬°©¬¸¸¼À¹¼ÀrÐ(JÑKÔKØ#Ð%8ð:ð  (˜rœx¨¨¨Ñ4Ô4°h°b´h¸|¸|¸|Ñ6LÔ6LØ#Ð%6ð8à'˜rœxÐ(<Ð(<Ð(<Ñ=Ô=Ø'˜rœxÐ(<Ð(<Ð(<Ñ=Ô=Ø#Ð%7ð9ð  (˜rœxÐ(<Ð(<Ð(<Ñ=Ô=Ø'˜rœx¨¨¬°©¬¸¸¼À¹¼ÀrØ)*¨Bð)0ñ  1ô  1à#Ð%7ð9ð  (˜rœxÐ(<Ð(<Ð(<Ñ=Ô=Ø'˜rœx¨¨¬°©¬°w°r´w¸s±|´|ÀRØ)*¨Bð)0ñ  1ô  1à#Ð%8ð:ð);ñ<ô <ð27ð 7ñ3<ô <ð27ð$ „[×ÒÐ4ð:ð :ð :ñ;ô ;ð
8ð 8ñ;ô ;ð
8ð
 „[×Ò˜X¨Ô(;Ø(7Ô(>ð(@ñ Aô AðKð KñAô AðKðKð Kð Kð „[×Ò˜U I I IÑ.Ô.Ø„[×ÒÐ7ð2ð 2ð 2ñ3ô 3ð
	:ð 	:ñ3ô 3ñ /Ô.ð	:ð#ð #ð #ð#ð #ð #ð!ð !ð !ð !ð !rB   rù  c                   óx  — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Ze	j
                             dddg¦  «        d	„ ¦   «         Ze	j
                             dd
dg¦  «        d„ ¦   «         Zd„ Zd„ Ze	j
                             dddg¦  «        d„ ¦   «         Ze	j
                             dg d¢¦  «        d„ ¦   «         ZdS )ÚTestDirichletMultinomialc                 óÞ   — t           j                             d¦  «        }|                     ddd¬¦  «        }|                     dd|df¬¦  «        }|                     d¬	¦  «        }|||||fS )
Nì   ðt7ž)r   r.  rH   r€   r
   r  rg   r…   )r9   rŒ   r�   r   Úintegersr‘   )rV   rï  r–   r¤  r\   r¼   s         r@   Ú
get_paramsz#TestDirichletMultinomial.get_paramsX  sl   € åŒi×#Ò#Ð$5Ñ6Ô6ˆØ—’˜A˜s¨�Ñ+Ô+ˆØ�LŠL˜˜B a¨ VˆLÑ,Ô,ˆØ�EŠE�rˆE‰NŒNˆØ�A�u˜a Ð"Ð"rB   c                 ó  — t           j                             d¦  «        }|                     ddd¦  «        }|                     ddd¦  «        }t          j        |d¬¦  «        }t          ||¦  «        }t          |                     |¦  «        t          j        |||¦  «        ¦  «         t          | 	                    |¦  «        t          j	        |||¦  «        ¦  «         t          | 
                    ¦   «         t          j
        ||¦  «        ¦  «         t          |                     ¦   «         t          j        ||¦  «        ¦  «         t          |                     ¦   «         t          j        ||¦  «        ¦  «         d S )Nr<  r   r.  r%  rg   r…   )r9   rŒ   r�   r   r=  r‘   r)   r   r½  rÇ  r¨   r:  r¿   )rV   r–   r¤  r\   r¼   rƒ  s         r@   rb  z$TestDirichletMultinomial.test_frozen`  s1  € ÝŒi×#Ò#Ð$5Ñ6Ô6ˆà—’˜A˜s BÑ'Ô'ˆØ�LŠL˜˜B Ñ#Ô#ˆÝŒF�1˜2ÐÑÔˆå! %¨Ñ+Ô+ˆÝ�Q—X’X˜a‘[”[Õ"7Ô">¸qÀ%ÈÑ"KÔ"KÑLÔLÐLÝ�Q—U’U˜1‘X”XÕ4Ô8¸¸EÀ1ÑEÔEÑFÔFÐFÝ�Q—V’V‘X”XÕ4Ô9¸%ÀÑCÔCÑDÔDÐDÝ�Q—U’U‘W”WÕ3Ô7¸¸qÑAÔAÑBÔBÐBÝ�Q—U’U‘W”WÕ3Ô7¸¸qÑAÔAÑBÔBÐBÐBÐBrB   c                 ó  — t          j        g d¢¦  «        }t          j        |¦  «        }t          j        g d¢¦  «        }t          j        |||¦  «        }t          j        |||¦  «        }d}t          ||¦  «         t          |t          j        |¦  «        ¦  «         |j        |j        cxk    rdk    sn J ‚t           j	         
                    d¦  «        }|                     ddd¦  «        }|                     ddd¦  «        }t          j        |d	¬
¦  «        }t          ||¦  «                             |¦  «        }t          j        |||¦  «        }d}t          ||¦  «         t          |t          j        |¦  «        ¦  «         d S )NrL   ©rI   re   rc   gp.¸U.¸µ?rÕ   r<  r   r.  r%  rg   r…   g+»©œTº<)r9   rÇ   r‘   r)   rÇ  r½  r   rø   r;   rŒ   r�   r   r=  )rV   r\   r¼   r¤  r<   Úlogresr=   r–   s           r@   Útest_pmf_logpmf_against_Rz2TestDirichletMultinomial.test_pmf_logpmf_against_Rn  so  € õ
 ŒH�Y�Y�YÑÔˆÝŒF�1‰IŒIˆÝ”˜˜˜Ñ#Ô#ˆÝ#Ô'¨¨5°!Ñ4Ô4ˆÝ&Ô-¨a°¸Ñ:Ô:ˆØ!ˆÝ˜˜SÑ!Ô!Ð!Ý˜¥¤ s¡¤Ñ,Ô,Ð,ØŒy˜FœLÐ.Ð.Ò.Ð.¨BÒ.Ð.Ð.Ð.Ð.Ð.õ Œi×#Ò#Ð$5Ñ6Ô6ˆØ—’˜A˜s BÑ'Ô'ˆØ�LŠL˜˜B Ñ#Ô#ˆÝŒF�1˜2ÐÑÔˆÝ# E¨1Ñ-Ô-×1Ò1°!Ñ4Ô4ˆÝ&Ô-¨a°¸Ñ:Ô:ˆØ"ˆÝ˜˜SÑ!Ô!Ð!Ý˜¥¤ s¡¤Ñ,Ô,Ð,Ð,Ð,rB   c                 óÚ  — |                       d¦  «        \  }}}}}|dz  }t          t          ||¦  «                             |¦  «        d¦  «         t          t          ||¦  «                             |¦  «        t
          j         ¦  «         |                       d¦  «        \  }}}}}|                     d¬¦  «        dk    }t          j        ||         dz  ¦  «        ||<   t          t          ||¦  «                             |¦  «        |         d¦  «         t          t          ||¦  «                             |¦  «        |         t
          j         ¦  «         t          j	        t          ||¦  «                             |¦  «        |          dk    ¦  «        sJ ‚t          j	        t          ||¦  «                             |¦  «        |          t
          j         k    ¦  «        sJ ‚d S )Nr
   r   r%  r€   rI  rH   )
r>  r   r)   rÇ  r½  r9   r  rŒ   Úroundr'  )rV   r–   rï  r¤  r¼   r\   rB  s          r@   Útest_pmf_logpmf_supportz0TestDirichletMultinomial.test_pmf_logpmf_support�  s®  € ð #Ÿošo¨aÑ0Ô0ÑˆˆQ��q˜!Ø	ˆQ‰ˆÝÕ*¨5°!Ñ4Ô4×8Ò8¸Ñ;Ô;¸QÑ?Ô?Ð?ÝÕ*¨5°!Ñ4Ô4×;Ò;¸AÑ>Ô>ÅÄÀÑHÔHÐHà"Ÿošo¨bÑ1Ô1ÑˆˆQ��q˜!Ø�JŠJ˜BˆJÑÔ #Ò%ˆÝŒx˜˜!œ˜q™Ñ!Ô!ˆˆ!‰ÝÕ*¨5°!Ñ4Ô4×8Ò8¸Ñ;Ô;¸AÔ>ÀÑBÔBÐBÝÕ*¨5°!Ñ4Ô4×;Ò;¸AÑ>Ô>¸qÔAÅBÄFÀ7ÑKÔKÐKÝŒvÕ+¨E°1Ñ5Ô5×9Ò9¸!Ñ<Ô<¸a¸RÔ@À1ÒDÑEÔEÐEÐEÐEÝŒvÕ+¨E°1Ñ5Ô5×<Ò<¸QÑ?Ô?ÀÀÔCÅrÄvÀgÒMÑNÔNÐNÐNÐNÐNÐNrB   c                 ó`  — d}dg}t          j        |g¦  «        }t          ||¦  «        }t          |                     |¦  «        d¦  «         t          |                     |dz   ¦  «        d¦  «         t          |                     |¦  «        d¦  «         t          |                     |dz   ¦  «        t           j         ¦  «         t          |                     ¦   «         |¦  «         t          |                     ¦   «         d¦  «         t          | 	                    ¦   «         d¦  «         d S )Nrd   r%  r
   r   )
r9   r:   r)   r   rÇ  r½  r  r¨   r:  r¿   )rV   r¼   r¤  r\   rÈ   s        r@   Útest_dimensionality_onez0TestDirichletMultinomial.test_dimensionality_one�  sð   € àˆØ�ˆÝŒJ˜�s‰OŒOˆÝ$ U¨AÑ.Ô.ˆå�T—X’X˜a‘[”[ !Ñ$Ô$Ð$Ý�T—X’X˜a ™c‘]”] AÑ&Ô&Ð&Ý�T—[’[ ‘^”^ QÑ'Ô'Ð'Ý�T—[’[  1¡Ñ%Ô%­¬ wÑ/Ô/Ð/Ý�T—Y’Y‘[”[ !Ñ$Ô$Ð$Ý�T—X’X‘Z”Z Ñ#Ô#Ð#Ý�T—X’X‘Z”Z Ñ#Ô#Ð#Ð#Ð#rB   Úmethod_namerÇ  r½  c                 ó$  — |                       d¦  «        \  }}}}}t          t          ||¦  «        |¦  «        }t          t          j        |g|j        ¢R Ž |¦  «        } ||¦  «        }	 ||j        d         ¦  «        }
t          |	|
¦  «         d S ©Nr.  r   ©r>  rq   r)   r-   Ú	betabinomr“   r   ©rV   rI  r–   rï  r¤  r¼   r\   r´  Ú
ref_methodr<   r=   s              r@   Útest_against_betabinom_pmfz3TestDirichletMultinomial.test_against_betabinom_pmf¬  s“   € à"Ÿošo¨cÑ2Ô2ÑˆˆQ��q˜!åÕ.¨u°aÑ8Ô8¸+ÑFÔFˆÝ�Uœ_¨QÐ9°´Ð9Ð9Ð9¸;ÑGÔGˆ
àˆf�Q‰iŒiˆØˆj˜œ˜QœÑ Ô ˆÝ˜˜SÑ!Ô!Ð!Ð!Ð!rB   r¨   r:  c                 ó  — |                       d¦  «        \  }}}}}t          t          ||¦  «        |¦  «        }t          t          j        |g|j        ¢R Ž |¦  «        } |¦   «         d d …df         }	 |¦   «         }
t          |	|
¦  «         d S rK  rL  rN  s              r@   Útest_against_betabinom_momentsz7TestDirichletMultinomial.test_against_betabinom_moments·  s“   € à"Ÿošo¨cÑ2Ô2ÑˆˆQ��q˜!åÕ.¨u°aÑ8Ô8¸+ÑFÔFˆÝ�Uœ_¨QÐ9°´Ð9Ð9Ð9¸;ÑGÔGˆ
àˆf‰hŒh�q�q�q˜!�tŒnˆØˆj‰lŒlˆÝ˜˜SÑ!Ô!Ð!Ð!Ð!rB   c                 ó  — t           j                             d¦  «        }d}|                     dd¦  «        }|                     |¬¦  «        dz  }t	          ||¦  «        }d}|                     ||¬¦  «        }|                     |||¬¦  «        }t          |                     ¦   «         t          j        |d¬	¦  «        d
¬¦  «         t          | 	                    ¦   «         t          j	        |d¬	¦  «        d¬¦  «         |                     ¦   «         j
        | 	                    ¦   «         j
        cxk    r|fk    sn J ‚|                     ¦   «         }	|	j
        ||fk    sJ ‚t          |	t          j        |j        ¦  «        d¬¦  «         t          t          j        |	¦  «        | 	                    ¦   «         ¦  «         t          j        t           j                             |	¦  «        d         dk    ¦  «        sJ ‚d S )Nr<  rc   r
   r.  r€   r%  rí  r   r…   r)  r=  rR  rÑ  )r9   rŒ   r�   r=  r)   r   r   r   r¨   r:  r;   r¿   r“   r   rp   r'  rÆ   rº   r»   )
rV   r–   rØ   r¼   r¤  rÈ   rï  rÏ  r\   r¿   s
             r@   r/  z%TestDirichletMultinomial.test_momentsÂ  s¸  € ÝŒi×#Ò#Ð$5Ñ6Ô6ˆØˆØ�LŠL˜˜CÑ Ô ˆØ—
’
 �
Ñ$Ô$ rÑ)ˆÝ$ U¨AÑ.Ô.ˆð ˆØ�MŠM˜% aˆMÑ(Ô(ˆØ�OŠO˜A˜q qˆOÑ)Ô)ˆå˜Ÿ	š	™œ¥R¤W¨Q°QÐ%7Ñ%7Ô%7¸dÐCÑCÔCÐCÝ˜Ÿš™
œ
¥B¤F¨1°1Ð$5Ñ$5Ô$5¸DÐAÑAÔAÐAØ�yŠy‰{Œ{Ô  D§H¢H¡J¤JÔ$4Ð>Ð>Ò>Ð>¸¸Ò>Ð>Ð>Ð>Ð>Ð>à�hŠh‰jŒjˆØŒy˜S #˜JÒ&Ð&Ð&Ð&Ý˜�RœV A¤C™[œ[¨tÐ4Ñ4Ô4Ð4Ý•R”W˜S‘\”\ 4§8¢8¡:¤:Ñ.Ô.Ð.ÝŒv•e”l×'Ò'¨Ñ,Ô,¨QÔ/°!Ò3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4rB   c                 óÜ  — t          j        g d¢¦  «        }t          j        |¦  «        }t          j        g d¢¦  «        }d}t          t          |¬¦  «        5  t          j        g d¢||¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          |¬¦  «        5  t          j        g d¢||¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          t          |¬¦  «        5  t          j        |g d¢|¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          |¬¦  «        5  t          j        |g d	¢|¦  «         d d d ¦  «         n# 1 swxY w Y   d
}t          t          |¬¦  «        5  t          j        ||d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          |¬¦  «        5  t          j        ||d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        }t          j        g d¢¦  «        }d}t          t          |¬¦  «        5  t          j        |||                     ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrL   rA  z,`x` must contain only non-negative integers.rF   )r
   rg   rI   )r
   rª  rI   z*`alpha` must contain only positive values.)rI   r   re   )rI   rg   re   z`n` must be a positive integer.gÍÌÌÌÌŒH@r   )r
   rH   rI   re   z&`x` and `alpha` must be broadcastable.)r9   rÇ   r‘   rì   rN   r)   r½  )rV   Úx0Ún0Úalpha0Útextr\   r¤  s          r@   rX   z.TestDirichletMultinomial.test_input_validationØ  s)  € åŒX�i�i�iÑ Ô ˆÝŒV�B‰ZŒZˆÝ”˜)˜)˜)Ñ$Ô$ˆà=ˆÝ�:¨TÐ2Ñ2Ô2ð 	Að 	AÝ!Ô(¨¨¨°V¸RÑ@Ô@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Aå�:¨TÐ2Ñ2Ô2ð 	Bð 	BÝ!Ô(¨¨¨°f¸bÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð <ˆÝ�:¨TÐ2Ñ2Ô2ð 	<ð 	<Ý!Ô(¨¨Y¨Y¨Y¸Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<å�:¨TÐ2Ñ2Ô2ð 	=ð 	=Ý!Ô(¨¨Z¨Z¨Z¸Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 1ˆÝ�:¨TÐ2Ñ2Ô2ð 	;ð 	;Ý!Ô(¨¨V°TÑ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;å�:¨TÐ2Ñ2Ô2ð 	8ð 	8Ý!Ô(¨¨V°QÑ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8õ ŒH�\�\�\Ñ"Ô"ˆÝ”˜˜˜Ñ#Ô#ˆØ7ˆÝ�:¨TÐ2Ñ2Ô2ð 	<ð 	<Ý!Ô(¨¨E°1·5²5±7´7Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s~   ÁA>Á>BÂBÂCÃCÃCÃ'DÄDÄDÄ-EÅEÅEÅ5FÆFÆFÆ9GÇG Ç#G È+)I!É!I%É(I%r´  c           	      óÌ  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        dgdgdgg¦  «        }t          j        g d¢g d	¢g¦  «                             d
¦  «        }t          t          |¦  «        } ||||¦  «        }|j        dk    sJ ‚t          t          |¦  «        ¦  «        D ]°}t          t          |¦  «        ¦  «        D ]‘}t          t          |¦  «        ¦  «        D ]r}||||f         }	 |||                              ¦   «         ||                              ¦   «         ||                              ¦   «         ¦  «        }
t          |	|
¦  «         ŒsŒ’Œ±d S )NrA  rq  ©rc   rc   rf   ©rÄ  rÛ  r%  rd   rf   rÄ  rL   )rH   rH   rI   )rH   r
   r
   rI   )rH   rI   re   )
r9   rÇ   r*  rq   r)   r;   r
  r’   r¤   r   )rV   r´  r¤  r¼   r\   r<   rB  rC  r  Úres_ijkr=   s              r@   Útest_broadcasting_pmfz.TestDirichletMultinomial.test_broadcasting_pmfö  si  € å”˜)˜)˜) Y Y Y°	°	°	¸:¸:¸:ÐFÑGÔGˆÝŒH�q�c˜A˜3  �_Ñ%Ô%ˆÝŒH�i�i�i   Ð+Ñ,Ô,×4Ò4°\ÑBÔBˆÝÕ.°Ñ7Ô7ˆØˆf�Q˜˜qÑ!Ô!ˆØŒy˜IÒ%Ð%Ð%Ð%Ý•s˜1‘v”v‘”ð 	2ð 	2ˆAÝ�3˜q™6œ6‘]”]ð 2ð 2�Ý�s 5™zœzÑ*Ô*ð 2ð 2�AØ! ! Q¨ 'œl�GØ ˜&  1¤§¢¡¤°°q´×1AÒ1AÑ1CÔ1CÀQÀqÄTÇ\Â\Á^Ä^ÑTÔT�CÝ# G¨SÑ1Ô1Ð1Ð1ð2ð2ð	2ð 	2rB   )r¨   r:  r¿   c                 ó  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        dgdgdgg¦  «        }t          t          |¦  «        } |||¦  «        }|dk    r|j        d	k    snnJ ‚t          t          |¦  «        ¦  «        D ]w}t          t          |¦  «        ¦  «        D ]X}|||f         } |||                              ¦   «         ||                              ¦   «         ¦  «        }	t          ||	¦  «         ŒYŒxd S )
NrA  rq  rZ  r[  rd   rf   rÄ  r¿   )rI   re   rI   )	r9   rÇ   rq   r)   r;   r
  r’   r¤   r   )
rV   rI  r¤  r¼   r´  r<   rC  r  r\  r=   s
             r@   Útest_broadcasting_momentsz2TestDirichletMultinomial.test_broadcasting_moments  s  € å”˜)˜)˜) Y Y Y°	°	°	¸:¸:¸:ÐFÑGÔGˆÝŒH�q�c˜A˜3  �_Ñ%Ô%ˆÝÕ.°Ñ<Ô<ˆØˆf�U˜AÑÔˆØ)4¸Ò)=Ð)=ˆsŒy˜IÒ%Ð%Ð%Ð%Ð%Ð%Ý•s˜1‘v”v‘”ð 	.ð 	.ˆAÝ�3˜u™:œ:Ñ&Ô&ð .ð .�Ø˜a ˜dœ)�Ø�f˜U 1œX×-Ò-Ñ/Ô/°°1´·²±´Ñ@Ô@�Ý ¨Ñ-Ô-Ð-Ð-ð.ð	.ð 	.rB   N)rÊ   rË   rÌ   Úclassmethodr>  rb  rC  rF  rH  rM   rÑ   rÒ   rP  rR  r/  rX   r]  r_  rÕ   rB   r@   r:  r:  W  s[  € € € € € Øð#ð #ñ „[ð#ðCð Cð Cð-ð -ð -ð>Oð Oð Oð $ð $ð $ð „[×Ò˜]¨U°HÐ,=Ñ>Ô>ð"ð "ñ ?Ô>ð"ð „[×Ò˜]¨V°U¨OÑ<Ô<ð"ð "ñ =Ô<ð"ð5ð 5ð 5ð,<ð <ð <ð< „[×Ò˜X¨¨xÐ'8Ñ9Ô9ð2ð 2ñ :Ô9ð2ð „[×Ò˜]Ð,BÐ,BÐ,BÑCÔCð
.ð 
.ñ DÔCð
.ð 
.ð 
.rB   r:  c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zej	        j
        ej	                             d¦  «        d„ ¦   «         ¦   «         Zej	                             dej        ej        ej        ej        g¦  «        d	„ ¦   «         Zd
S )ÚTestNormalInverseGammac           	      óX  ‡— t           j                             d¦  «        }|                     d¦  «        \  }}}}t          j        ||||¦  «        Št          j        d|z  |dt          j        ||z  |z  ¦  «        z  ¬¦  «        }t          j        ddd¦  «        }t          ˆfd	„d
t           j	        |f¬¦  «        }| 
                    |¦  «        }	t          |j        |	¦  «         ‰                     d|¬¦  «        }t          j        |d
         |j        ¦  «        \  }
}|dk    sJ ‚d S )Nì   �&( re   rH   r
   rP  re  rc   r  c                 ó0   •— ‰                      || ¦  «        S r8   ©r¥   )rÈ  r\   Únorm_inv_gammas     €r@   r]   z8TestNormalInverseGamma.test_marginal_x.<locals>.<lambda>!  ó   ø€  ^×%7Ò%7¸¸2Ñ%>Ô%>€ rB   r   ©r>   rÁ  r�   rš   )r9   rŒ   r�   r-   Únormal_inverse_gammar   r  rJ  r.   r  r¥   r   r0  r¡   Úks_1sampr°   )rV   r–   rí   Úlmbdar«  r¬  r   r\   r<   r=   rÚ   rÃ  rg  s               @r@   Útest_marginal_xz&TestNormalInverseGamma.test_marginal_x  s  ø€ õ Œi×#Ò# JÑ/Ô/ˆØŸ*š* Q™-œ-‰ˆˆE�1�aåÔ3°B¸¸qÀ!ÑDÔDˆÝŒG�A�a‘C˜R q­¬°°U±¸Q±Ñ)?Ô)?Ñ'?Ð@Ñ@Ô@ˆõ ŒK˜˜A˜rÑ"Ô"ˆÝÐ>Ð>Ð>Ð>ÀÅ2Ä6ÐQRÐPTÐUÑUÔUˆØ�eŠe�A‰hŒhˆÝ˜œ cÑ*Ô*Ð*ð × Ò  e¸#Ð Ñ>Ô>ˆÝ”N 3 q¤6¨1¬5Ñ1Ô1‰	ˆˆ6Ø˜Š|ˆ|ˆ|ˆ|ˆ|ˆ|rB   c                 ó0  ‡— t           j                             d¦  «        }|                     d¦  «        \  }}}}t          j        ||||¦  «        Št          j        ||¬¦  «        }t          j        ddd¦  «        }t          ˆfd„t           j         t           j        |f¬¦  «        }| 	                    |¦  «        }	t          |j        |	¦  «         ‰                     d|¬	¦  «        }t          j        |d
         |j        ¦  «        \  }
}|dk    sJ ‚d S )Nrd  re   r´  rš   r%  c                 ó0   •— ‰                      | |¦  «        S r8   rf  )r\   rÈ  rg  s     €r@   r]   z9TestNormalInverseGamma.test_marginal_s2.<locals>.<lambda>6  rh  rB   ri  rÁ  r�   r
   )r9   rŒ   r�   r-   rj  r   rJ  r.   r  r¥   r   r0  r¡   rk  r°   )rV   r–   rí   rl  r«  r¬  Ú	inv_gammarÈ  r<   r=   rÚ   rÃ  rg  s               @r@   Útest_marginal_s2z'TestNormalInverseGamma.test_marginal_s2*  s  ø€ õ Œi×#Ò# JÑ/Ô/ˆØŸ*š* Q™-œ-‰ˆˆE�1�aåÔ3°B¸¸qÀ!ÑDÔDˆÝ”N 1¨AÐ.Ñ.Ô.ˆ	õ Œ[˜˜b "Ñ%Ô%ˆÝÐ>Ð>Ð>Ð>Ýœ�w¥¤¨b¨Uð4ñ 4ô 4ˆà�mŠm˜BÑÔˆÝ˜œ cÑ*Ô*Ð*ð × Ò  e¸#Ð Ñ>Ô>ˆÝ”N 3 q¤6¨9¬=Ñ9Ô9‰	ˆˆ6Ø˜Š|ˆ|ˆ|ˆ|ˆ|ˆ|rB   c                 ó˜  — t           j                             d¦  «        }|                     d¦  «        dz
  \  }}}}|                     d¬¦  «        dz
  \  }}t          j        ||||¦  «                             ||¦  «        }t          j                             ||||||¦  «        }	t          |t          j        |	¦  «        ¦  «         d S )Nrd  )re   r  r]  )rH   r  r€   )	r9   rŒ   r�   r-   rj  r¥   r¦   r   r1  )
rV   r–   rí   rl  r«  r¬  r\   rÈ  r<   r=   s
             r@   Útest_pdf_logpdfz&TestNormalInverseGamma.test_pdf_logpdf@  sµ   € åŒi×#Ò# JÑ/Ô/ˆØŸ*š* WÑ-Ô-°Ñ4‰ˆˆE�1�aØ—
’
 �
Ñ(Ô(¨4Ñ/‰ˆˆ2ÝÔ(¨¨U°A°qÑ9Ô9×=Ò=¸aÀÑDÔDˆÝÔ(×/Ò/°°2°r¸5À!ÀQÑGÔGˆÝ˜�RœV C™[œ[Ñ)Ô)Ð)Ð)Ð)rB   c                 óò  — t           j                             d¦  «        }|                     d¦  «        \  }}}}|                     d¦  «        \  }}t          j        t           j        |||¦  «                             ||¦  «        }t          |t           j        ¦  «         t          j        |d||¦  «                             ||¦  «        }t          |t           j        ¦  «         t          j        ||d|¦  «                             ||¦  «        }t          |t           j        ¦  «         t          j        |||d¦  «                             ||¦  «        }t          |t           j        ¦  «         t          j        ||||¦  «                             |d¦  «        }t          |d¦  «         t          j        |dt           j        g||¦  «                             |d¦  «        }t          |t           j        ¦  «         t          j        |d||¦  «                             ¦   «         }t          |t           j        t           j        f¦  «         t          j        ||d|¦  «         	                    ¦   «         }t          |t           j        t           j        f¦  «         t          j        t          d¬¦  «        5  t          j        |||d¦  «                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nrd  re   rH   rg   r   zDomain error in arguments...rF   )r9   rŒ   r�   r-   rj  rv  r¥   r   r¨   r:  rM   r	   rN   r¡   )	rV   r–   rí   rl  r«  r¬  r\   rÈ  r<   s	            r@   Útest_invalid_and_special_casesz5TestNormalInverseGamma.test_invalid_and_special_casesI  s¬  € åŒi×#Ò# JÑ/Ô/ˆØŸ*š* Q™-œ-‰ˆˆE�1�aØ—
’
˜1‘”‰ˆˆ2åÔ(­¬°¸¸1Ñ=Ô=×AÒAÀ!ÀRÑHÔHˆÝ�S�"œ&Ñ!Ô!Ð!åÔ(¨¨R°°AÑ6Ô6×:Ò:¸1¸bÑAÔAˆÝ�S�"œ&Ñ!Ô!Ð!åÔ(¨¨U°A°qÑ9Ô9×=Ò=¸aÀÑDÔDˆÝ�S�"œ&Ñ!Ô!Ð!åÔ(¨¨U°A°rÑ:Ô:×>Ò>¸qÀ"ÑEÔEˆÝ�S�"œ&Ñ!Ô!Ð!åÔ(¨¨U°A°qÑ9Ô9×=Ò=¸aÀÑDÔDˆÝ�S˜!ÑÔÐõ Ô(¨¨bµ"´&¨\¸1¸aÑ@Ô@×DÒDÀQÈÑKÔKˆÝ�S�"œ&Ñ!Ô!Ð!åÔ(¨¨R°°AÑ6Ô6×;Ò;Ñ=Ô=ˆÝ�S�2œ6¥2¤6Ð*Ñ+Ô+Ð+åÔ(¨¨U°B¸Ñ:Ô:×>Ò>Ñ@Ô@ˆÝ�S�2œ6¥2¤6Ð*Ñ+Ô+Ð+åŒ]�:Ð-KÐLÑLÔLð 	?ð 	?ÝÔ& r¨5°!°RÑ8Ô8×<Ò<Ñ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   Ê5*K,Ë,K0Ë3K0c                 ó  — t           j                             d¦  «        }|                     d¦  «        }|                     d¦  «        dz   }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        ||||¦  «        }t          j        ||||||¦  «        }	d„ |	D ¦   «         }
|                     ||¦  «        }|j        |	d	         j        k    sJ ‚t          | 	                    ¦   «         t          j        j        |
Ž ¦  «         | 
                    ||¦  «        }|j        |	d	         j        k    sJ ‚t          | 	                    ¦   «         t          j        j
        |
Ž ¦  «         t          j        ||||¦  «        }	d
„ |	D ¦   «         }
|                     ¦   «         }|d	         j        |	d	         j        k    sJ ‚t          |d	          	                    ¦   «         |d          	                    ¦   «         ft          j        j        |
Ž ¦  «         |                     ¦   «         }|d	         j        |	d	         j        k    sJ ‚t          |d	          	                    ¦   «         |d          	                    ¦   «         ft          j        j        |
Ž ¦  «         d}t           j                             d¦  «        }|                     ||¬¦  «        }t           j                             d¦  «        }d}t          j        j        |
||dœŽ}t          |d	                              |¦  «        |d                              |¦  «        f|¦  «         d S )Nrd  rH   )rI   r
   )re   r
   r
   )rc   r
   r
   r
   )rd   r
   r
   r
   r
   )rf   r
   r
   r
   r
   r
   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rÕ   ©r9   rÛ  ©r>  Úarrs     r@   r?  z<TestNormalInverseGamma.test_broadcasting.<locals>.<listcomp>z  ó    € ÐDÐDÐD°�rœx¨™}œ}ÐDÐDÐDrB   r   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rÕ   rx  ry  s     r@   r?  z<TestNormalInverseGamma.test_broadcasting.<locals>.<listcomp>ˆ  r{  rB   r
   )rd   rc   re   rI   rH   l   ¬�M‹r�   )rd   éx   )r9   rŒ   r�   r-   rj  Úbroadcast_arraysr¥   r;   r   rÛ  r¦   r¨   r:  r¡   r*  )rV   r–   r¬  r«  rl  rí   rÈ  r\   rÈ   ÚbroadcastedÚbroadcasted_raveledr<   r�   r;   r=   s                  r@   rE  z(TestNormalInverseGamma.test_broadcastingk  s1  € õ Œi×#Ò# JÑ/Ô/ˆØ�JŠJ�q‰MŒMˆØ�JŠJ�vÑÔ Ñ"ˆØ—
’
˜9Ñ%Ô%ˆØ�ZŠZ˜Ñ%Ô%ˆØ�ZŠZ˜Ñ(Ô(ˆØ�JŠJÐ)Ñ*Ô*ˆÝÔ)¨"¨e°Q¸Ñ:Ô:ˆõ Ô)¨!¨R°°U¸A¸qÑAÔAˆØDÐD¸ÐDÑDÔDÐà�hŠh�q˜"‰oŒoˆØŒy˜K¨œNÔ0Ò0Ð0Ð0Ð0Ý˜Ÿ	š	™œÝÔ2Ô6Ð8KÐLñ	Nô 	Nð 	Nð �kŠk˜!˜RÑ Ô ˆØŒy˜K¨œNÔ0Ò0Ð0Ð0Ð0Ý˜Ÿ	š	™œÝÔ2Ô9Ð;NÐOñ	Qô 	Qð 	Qõ Ô)¨"¨e°Q¸Ñ:Ô:ˆØDÐD¸ÐDÑDÔDÐà�iŠi‰kŒkˆØ�1ŒvŒ|˜{¨1œ~Ô3Ò3Ð3Ð3Ð3Ý˜˜QœŸš™œ¨¨Q¬¯ª©¬Ð8ÝÔ2Ô7Ð9LÐMñ	Oô 	Oð 	Oð �hŠh‰jŒjˆØ�1ŒvŒ|˜{¨1œ~Ô3Ò3Ð3Ð3Ð3Ý˜˜QœŸš™œ¨¨Q¬¯ª©¬Ð8ÝÔ2Ô6Ð8KÐLñ	Nô 	Nð 	Nð ˆÝŒi×#Ò# MÑ2Ô2ˆØ�hŠh˜D¨sˆhÑ3Ô3ˆÝŒi×#Ò# MÑ2Ô2ˆØˆÝÔ(Ô,Ð.AÈØ:=ð?ð ?ð ?ˆå˜˜QœŸš¨Ñ.Ô.°°A´·²¸uÑ0EÔ0EÐFÈÑLÔLÐLÐLÐLrB   r%  c                 ó&  ‡— t           j                             d¦  «        }|                     d¦  «        \  }}}}|dz  }t          j        ||||¦  «        Š‰                     ¦   «         }t          ˆfd„t           j         t           j        dt           j        ¦  «        }t          |d         |d         d¬¦  «         t          ˆfd„t           j         t           j        dt           j        ¦  «        }t          |d	         |d         d¬¦  «         d S )
Nrd  re   rH   c                 ó6   •— ‰                      || ¦  «        |z  S r8   rf  ©rÈ  r\   rÈ   s     €r@   r]   z5TestNormalInverseGamma.test_moments.<locals>.<lambda>©  s   ø€  D§H¢H¨Q°¡O¤O°aÑ$7€ rB   r   rg  r=  c                 ó6   •— ‰                      || ¦  «        | z  S r8   rf  rƒ  s     €r@   r]   z5TestNormalInverseGamma.test_moments.<locals>.<lambda>¬  s   ø€  D§H¢H¨Q°¡O¤O°bÑ$8€ rB   r
   )	r9   rŒ   r�   r-   rj  r¨   r1   r  r   )	rV   r–   rí   rl  r«  r¬  r<   r=   rÈ   s	           @r@   r/  z#TestNormalInverseGamma.test_momentsž  së   ø€ õ Œi×#Ò# JÑ/Ô/ˆØŸ*š* Q™-œ-‰ˆˆE�1�aØ	ˆQ‰ˆåÔ)¨"¨e°Q¸Ñ:Ô:ˆØ�iŠi‰kŒkˆåÐ7Ð7Ð7Ð7½"¼&¸Å"Ä&È!ÍRÌVÑTÔTˆÝ˜˜Aœ  A¤¨TÐ2Ñ2Ô2Ð2åÐ8Ð8Ð8Ð8½2¼6¸'Å2Ä6È1ÍbÌfÑUÔUˆÝ˜˜Aœ  A¤¨TÐ2Ñ2Ô2Ð2Ð2Ð2rB   r0  c                 óˆ  — t           j        dk     rt          j        d¦  «         t           j                             d¦  «        }|                     ddd¬¦  «                             |¦  «        \  }}}}}}t          j        d|¦  «        }	t          j
        ||||¦  «        }
|
                     ¦   «         d	         j        |	k    sJ ‚|
                     ¦   «         d
         j        |	k    sJ ‚|
                     ¦   «         d	         j        |	k    sJ ‚|
                     ¦   «         d
         j        |	k    sJ ‚|
                     ¦   «         d	         j        |	k    sJ ‚|
                     ¦   «         d
         j        |	k    sJ ‚|
                     ||¦  «        j        |	k    sJ ‚|
                     ||¦  «        j        |	k    sJ ‚d S )NÚ2z*Scalar dtypes only respected after NEP 50.rd  rI   r%  rd   r€   rÄ   r   r
   )r9   Ú__version__rM   rˆ   rŒ   r�   r   ÚastypeÚresult_typer-   rj  r¡   r0  r¨   r:  r¦   r¥   )rV   r0  r–   r\   rÈ  rí   rl  r«  r¬  Ú	dtype_outrÈ   s              r@   Ú
test_dtypez!TestNormalInverseGamma.test_dtype¯  s–  € åŒ>˜CÒÐÝŒKÐDÑEÔEÐEÝŒi×#Ò# JÑ/Ô/ˆØ!$§¢¨Q°¸ Ñ!;Ô!;×!BÒ!BÀ5Ñ!IÔ!IÑˆˆ2ˆr�5˜!˜QÝ”N 3¨Ñ.Ô.ˆ	ÝÔ)¨"¨e°Q¸Ñ:Ô:ˆØ�xŠx‰zŒz˜!Œ}Ô" iÒ/Ð/Ð/Ð/Ø�xŠx‰zŒz˜!Œ}Ô" iÒ/Ð/Ð/Ð/Ø�yŠy‰{Œ{˜1Œ~Ô# yÒ0Ð0Ð0Ð0Ø�yŠy‰{Œ{˜1Œ~Ô# yÒ0Ð0Ð0Ð0Ø�xŠx‰zŒz˜!Œ}Ô" iÒ/Ð/Ð/Ð/Ø�xŠx‰zŒz˜!Œ}Ô" iÒ/Ð/Ð/Ð/Ø�{Š{˜1˜bÑ!Ô!Ô'¨9Ò4Ð4Ð4Ð4Ø�xŠx˜˜2‰ŒÔ$¨	Ò1Ð1Ð1Ð1Ð1Ð1rB   N)rÊ   rË   rÌ   rm  rq  rs  ru  rE  rM   rÑ   rŽ  Ú	fail_slowr/  rÒ   r9   Úint32Úfloat16Úfloat32rÞ  r‹  rÕ   rB   r@   rb  rb    sà   € € € € € ðð ð ð*ð ð ð,*ð *ð *ð ?ð  ?ð  ?ðD1Mð 1Mð 1Mðf „[ÔØ„[×Ò˜2ÑÔð3ð 3ñ Ôñ Ôð3ð „[×Ò˜W r¤x°´¸R¼ZÈÌÐ&TÑUÔUð2ð 2ñ VÔUð2ð 2ð 2rB   rb  r_  )\Ú__doc__rí  Únumpy.testingr   r   r   r   r   r   rM   r	   rì   Útest_continuous_basicr   Únumpyr9   Ú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,   r-   Úscipy.integrater.   r/   r0   r1   r2   Úscipy.specialr3   Úcommon_testsr4   Ú	data._mvtr5   Úunittest.mockr6   rA   rD   rÝ   rä   ræ   rø  r4  r‰  r‹  r¹  r  r1  rh  r�  r¶  rÎ  rÝ  rd  r¦  rô  r÷  rù  r:  rb  rÕ   rB   r@   ú<module>rœ     s�  ððð ð €€€ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð €€€Ø *Ð *Ð *Ð *Ð *Ð *à 9Ð 9Ð 9Ð 9Ð 9Ð 9à Ð Ð Ð à Ð Ð Ð ðCð Cð Cð Cð Cð Cð Cð Cð Cð Cð:ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð à $Ð $Ð $Ð $Ð $Ð $Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø &Ð &Ð &Ð &Ð &Ð &à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ð'ð 'ð 'ð]!ð ]!ð ]!ð ]!ð ]!ñ ]!ô ]!ð ]!ð@ð ð ð ðð ð ð@
)ð @
)ð @
)ð @
)ð @
)ñ @
)ô @
)ð @
)ðFH*ð H*ð H*ð H*ð H*ñ H*ô H*ð H*ðVF1ð F1ð F1ð F1ð F1ñ F1ô F1ð F1ðR-ð -ð -ð&i9ð i9ð i9ð i9ð i9ñ i9ô i9ð i9ðVj#ð j#ð j#ð j#ð j#ñ j#ô j#ð j#ðXa(ð a(ð a(ð a(ð a(ñ a(ô a(ð a(ðHC:ð C:ð C:ð C:ð C:ñ C:ô C:ð C:ðLo&ð o&ð o&ð o&ð o&ñ o&ô o&ð o&ðdd#ð d#ð d#ð d#ð d#ñ d#ô d#ð d#ðN6+ð 6+ð 6+ð 6+ð 6+ñ 6+ô 6+ð 6+ðr9#ð 9#ð 9#ð 9#ð 9#ñ 9#ô 9#ð 9#ðx9ð 9ð 9ð 9ð 9ñ 9ô 9ð 9ðDa%ð a%ð a%ð a%ð a%ñ a%ô a%ð a%ðHh$ð h$ð h$ð h$ð h$ñ h$ô h$ð h$ðV	ð ð ð(%ð %ð %ð$~!ð ~!ð ~!ð ~!ð ~!ñ ~!ô ~!ð ~!ðBy.ð y.ð y.ð y.ð y.ñ y.ô y.ð y.ðxk2ð k2ð k2ð k2ð k2ñ k2ô k2ð k2ð k2ð k2rB   