403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/scipy/stats/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/scipy/stats/tests/__pycache__/test_multivariate.cpython-311.pyc
�

d�c������dZddlZddlmZmZmZmZmZmZddl	Z	ddl	m
Zddlm
Z
ddlZddlZddlZddlmZmZmZmZddlmZmZmZmZmZmZmZmZm 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/m0Z0dd	lm1Z1m2Z2dd
l3m4Z4ddl5m6Z6ddl7m8Z8dd
l9m:Z:d�Z;Gd�d��Z<d�Z=Gd�d��Z>Gd�d��Z?Gd�d��Z@d�ZAGd�d��ZBGd�d��ZCGd�d��ZDGd�d ��ZEGd!�d"��ZFGd#�d$��ZGGd%�d&��ZHGd'�d(��ZIGd)�d*��ZJGd+�d,��ZKGd-�d.��ZLd/�ZMd0�ZNdS)1z8
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�_cho_inv_batch�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)�_covariance�
Covariance)�romb)�multigammaln)�check_random_state_property)�patchc��tj|��tj|��}}t||g|�Ri|��t|j|j��dS�N)�np�asarrayrr�shape)�res�ref�args�kwargss    �E/usr/lib/python3/dist-packages/scipy/stats/tests/test_multivariate.py�assert_closer9(sU���z�#����
�3����C��C��.�t�.�.�.�v�.�.�.����C�I�&�&�&�&�&�c�"�eZdZd�Zejejjejjejj	d�d�Z
ejee
����Z
ejgd���gd�gd�gd�gejgd���gd	�gd
�gd�gd�Ze
e
d
d�e
gd�e
dd�d�Zej�de
dd���d���Zej�dee����ej�de
��d�����Zej�dde��d
dg��ej�dee����ej�de
��d�������Zej�de��dg��ej�de
��d�����Zd�Zej�d��d���ZdS)�TestCovariancec��d}tjt|���5tjtjd����ddd��n#1swxYwYd}tjt|���5tjtjd��tjd�����ddd��n#1swxYwYd}tjt|���5tjd��ddd��n#1swxYwYd	}tjt|���5tj	tjd����ddd��n#1swxYwYd
}tjt|���5tj
dtjd��f��ddd��n#1swxYwYd}tjt|���5tj
tjd��df��ddd��n#1swxYwYd}tjt|���5tj
gd
�tjd��f��ddd��dS#1swxYwYdS)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
r@rA)�pytestr	�
ValueErrorr)�CovViaPrecisionr1�ones�eye�CovViaDiagonal�CovViaCholesky�CovViaEigendecomposition��self�messages  r8�test_input_validationz$TestCovariance.test_input_validation0s:��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�	Is}�'A�A�A�9;C�C�C�(D	�	D
�D
�1'E$�$E(�+E(�)G�G�G�))H�H"�%H"�+I>�>J�Jc�$�t|d���S)NT��allow_singular)r)�xs r8�<lambda>zTestCovariance.<lambda>Rs��%)�!�D�%A�%A�%A�r:)�Diagonal�	Precision�Cholesky�Eigendecomposition�PSDrD)�r
rA)r
��)rAr]�)r
rrA)r[���r)r_r[r�rrr)�diagonal full rankzgeneral full rankzdiagonal singularzgeneral singularr
N)r���r_rb�
cov_type_namer_c���tjgd���}gd�}ttd|����}|j|}tt
d|�������}|||����}|||����}t|��t|��ksJ�t|�	|��|�	|����dS)NrD)���r@r[�CovVia�from_)
r1�diag�getattrr)�_covariance_preprocessingr*�lower�typer�whiten)	rNrc�ArT�cov_type�
preprocessing�factoryr4r5s	         r8�test_factorieszTestCovariance.test_factories^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�5r:�matrix_typec��d|�d|�d�}||j|vrtj|��|j|}t	t
d|����}|j|}t|d���}|||����}t|j	|j	��t|j|j��t|jtj|��j��t|jtj|����tj�d��}	|	�d���}
|�|
��}|
|jz}t||z||z��t)|d	��r'd
|vr#t|�|��|
��|	�d���}
|�|
��}|
|jz}t|dz�d
���|dz�d
�����t)|d	��r)d
|vr't|�|��|
��dSdSdS)Nrf� does not support �	 matricesTrR��VGi�V�KrA��size�	_colorize�singular�r@r]rAr@r_��axis)�
_cov_typesrE�skip�	_matricesrir)rjrr9�log_pdetr�rankr3r1r2rB�random�default_rngrm�U�hasattr�colorize�sum)
rNrsrcrOrnrorp�psd�
cov_object�rngrTr4r5s
             r8�test_covariancezTestCovariance.test_covariancelsZ���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�5�5�	6�	6�0M�0Mr:ryr|c�z�d|�d|�d�}||j|vrtj|��|j|}t	t
d|����}|j|}gd�}|||����}	t}
t||d���}t||	d���}tj	�
d��}
|
�|||���}tj	�
d��}
|
�||	||
�	��}tj	�
d��}
|
||	|
�
���|���}t|	t
j
��rEt|tj|����t|tj|����nDt!|j|j��t!|j|j��t||��t|
�|||	��|�|����t|�|��|�|����t|
�|||	��|�|����t|�|��|�|����t|
�||	��|�����t|���|�����dS)Nrfrurv�皙�����?皙�����?�333333�?TrRrwrx�ry�random_state��seed)rrEr�r�rir)rjrr1r�r��rvs�
isinstance�	CovViaPSDr9�squeezerr3�pdf�logpdf�entropy)rNryrsrcrOrnrorp�meanr��mvn�dist0�dist1r�rT�x1�x2s                 r8�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�6r:c��d}|j|}ttd|����}|j|}gd�}|||����}t}	t	||d���}
t	||d���}t
j�d��}|�|||���}
t|	�	|
||��|
�	|
����t|�	|
��|
�	|
����t|	�
|
||��|
�
|
����t|�
|
��|
�
|
����dS)Nrarfr�TrRrwrx)r�rir)rjrr1r�r�r9�cdf�logcdf)rNryrcrsrnrorpr�r�r�r�r�r�rTs              r8�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�6r:c��d}tjt|���5t��ddd��dS#1swxYwYdS)Nz7The `Covariance` class cannot be instantiated directly.r>)rEr	�NotImplementedErrorr*rMs  r8�test_covariance_instantiationz,TestCovariance.test_covariance_instantiation�s���K��
�]�.�g�
>�
>�
>�	�	��L�L�L�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s
�:�>�>zignore::RuntimeWarningc��tjgd���}|jd}tj|��}t	jtd���5t||�����ddd��n#1swxYwYd}tj	�
|��}tj	�
|��}tjtj
�|����}t||��}|�|���}	tj|||���}
t|	|
��dS)N)r
r@g:�0�yE�rzThe input matrix must be...r>l.ypGw�r�)r1rhr3�zerosrEr	rFrr�r�r�r*�from_eigendecomposition�linalg�eighr)rNrn�nr�r��rng1�rng2�cov�rvr4r5s           r8�test_gh9942zTestCovariance.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)�__name__�
__module__�__qualname__rPr1rhr��inv�choleskyr�rj�array�list�_all_covariance_typesr�rrE�mark�parametrizerrr��tupler�r�r��filterwarningsr��r:r8r<r<.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�$6�$6�E�D�=�<�$6�L�[���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���r:r<c��tj�||��}tj�|��\}}}|Sr0)r1r��randn�scipyr��svd)r��M�u�s�vs     r8�_sample_orthonormal_matrixr��s7��
�	����1���A��l���q�!�!�G�A�q�!��Hr:c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zej�dejd��ejddg��g��d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d �Z&d!�Z'd"S)#�TestMultivariateNormalc�f�tjd��}tjd��}ttt
jd||��ttt
jd||��ttt
jd||��ttt
jd||��dS)NrAr@�rr
�rr
r@)r1�arange�identity�
assert_raisesrFrr�r�)rN�mur�s   r8�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�Nr:c�p�tj�d��d\}}}tj|||��}t|jd��tj�d��}tj�d��}tjtj�d����}tj|||��}t|jd��d\}}}tj	|||��}t|jd��tj�d��}tj�d��}tjtj�d����}tj	|||��}t|jd��dS)N��)��?g333333�?�@rr[)
r1r�r�rr�r�ndimr��absr�)rNrTr�r�r�r�s      r8�test_scalar_valuesz)TestMultivariateNormal.test_scalar_valuessX��
�	���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�!�!�!�!�!r:c��tj�d��tj�d��}tj�d��}tjtj�d����}tj|||��}tj|||��}t|tj	|����dS�Nr�r[)
r1r�r�r�r�rr�r�r�log�rNrTr�r��d1�d2s      r8�test_logpdfz"TestMultivariateNormal.test_logpdf���
�	���t�����I�O�O�A�����y���q�!�!���f�R�Y�_�_�Q�'�'�(�(��
 �
'��4��
5�
5��
 �
$�Q��c�
2�
2����B�F�2�J�J�'�'�'�'�'r:c��tj�d��tj�d��}t	j|��}t	j|��}t	j|dd��}t	j|dd��}t|tj|����t|tj|����dS�Nr�r[r
)	r1r�r�r�rr�r�rr��rNrTr�r��d3�d4s      r8�test_logpdf_default_valuesz1TestMultivariateNormal.test_logpdf_default_values'���	�	���t�����I�O�O�A����
 �
'��
*�
*��
 �
$�Q�
'�
'��
 �
'��4��
3�
3��
 �
$�Q��a�
0�
0����B�F�2�J�J�'�'�'���B�F�2�J�J�'�'�'�'�'r:c��tj�d��tj�d��}tj�d��}tjtj�d����}tj|||��}tj|||��}t|tj	|����dSr�)
r1r�r�r�r�rr�r�rr�r�s      r8�test_logcdfz"TestMultivariateNormal.test_logcdf4r�r:c��tj�d��tj�d��}t	j|��}t	j|��}t	j|dd��}t	j|dd��}t|tj|����t|tj|����dSr�)	r1r�r�r�rr�r�rr�r�s      r8�test_logcdf_default_valuesz1TestMultivariateNormal.test_logcdf_default_values>r�r:c�~�tj�d��d}tj�|��}t	d|dz��D]h}tj�||��}tj||j��}t||d���}t|j	j
|���idS)Nr�r]r
TrR)r1r�r�r��range�dot�Trrr�r�)rNr�r��
expected_rankr�r��distns       r8�	test_rankz TestMultivariateNormal.test_rankKs���
�	���t����
���y���q�!�!��"�1�a�!�e�_�_�	?�	?�M��	����=�1�1�A��&��A�C�.�.�C�'��c�$�G�G�G�E���)�.�
�>�>�>�>�		?�	?r:c	��tdd��D�]�}tj�|��}td|��D�]�}tj�||��}tj||j��}tj||f��}||d|�d|�f<tj|��}|d|�|d|�<t|��}tj|tj||j����}	tj||��}
ttj|��|d���}ttj|��|d���}ttj|��|	d���}
t|j
j|��t|j
j|��t|
j
j|��|�|d|���}|�|��}|
�|
��}t||��t||��|�|d|���}|�|��}|
�|
��}t||��t||��|
|dd�dfz}|
�|��}|
�|��}t|d��t|tj��������dS)Nr
r[TrRr_�)r�r1r�r�r�r�r�r�rrr�r�r�rr��inf)rNr��z�kr��cov_kk�cov_nnrTr��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                       r8�test_degenerate_distributionsz4TestMultivariateNormal.test_degenerate_distributionsVs����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	6r:c�L�d}tdd��D�]}td|��D]�}tj|��}t|��dd�d|�f}tj||j��}t
j|||���}t
j|||d���}t|j
|��tj|dk��sJ�t
j|||d���}	t|	j
|��tj|	tj
k��sJ�����dS)	N�
r@r\r
�r�r�ryT)r�r�rSr�)r�r1r�r�r�r�rr�r�rry�allr�r�)
rNr�r��r�mnr��vr�Xr�r�s
          r8�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�	0r:c�f�d}d}d}tj||z��}||z}tj||ft���}tj||��d||d�|d�f<ttj�|��d��ttj�|d|�d|�f��tj	��ttj�|d|�d|�f��d|f��t|��}t|j
|��dS)Ng@�@�dr@��dtyperr
)r1�expr��float�
fill_diagonalrr�r��detr�r�slogdetrr�)rN�large_total_log�npos�nzero�large_entryr�r�r�s        r8�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�6r:c��tj�d��d}tj�||��}tj||j��}tj�|��}tj�dd|��}t
j|||��}t
j|||��}td��D]�}td��D]p}	t
j|||	f||��}
t|
|||	f��t
j|||	f||��}
t|
|||	fd����q��dS)Nr�r]r@rAg����MbP?��rtol)r1r�r�r�r�r�rr�r�r�r)rNr��datar�r�r�desired_pdf�desired_cdf�i�j�actuals           r8�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�	Er:c�6�tjddd��}d\}}|dz}tj|||��}t	j|||��}t||��tj|||��}t	j|||��}t||��dS)Nrr@r)�333333�?��������?��?)r1�linspacerr�rrr�)rNrTr�r��scaler�r�s       r8�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�����r:c��tjddg��}tjddgddgg��}d}d|dz
z}tjd	d|��}tj||��\}}tj||d
f��}||dd�dd�d	f<||dd�dd�df<tj|||��}	t|	|d	���}
t|	|d���}tj||d	|ddz�
��}tj||d|ddz�
��}
t|
|dd���t||
dd���dS)Nr�g@r3r��333333�?ir\r
rr@r}�rr)�locr5)r
r
�{�G�z�?�r(�atol)
r1r�r4�meshgrid�emptyrr�r+rr)rNr�r�r��deltar��xv�yv�posr��margin_x�margin_y�gauss_x�gauss_ys              r8�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�@�@�@�@�@�@r:c��tj�d��tj�d��}tj�d��}tjtj�d����}t||��}t
|�|��tj|||����t
|�|��tj|||����t
|�	|��tj	|||����t
|�
|��tj
|||����dSr�)r1r�r�r�r�rrr�r�r�r�)rNrTr�r��norm_frozens     r8�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�	Br:rBr@r
c���tjd��}tjd��}t||��}tj|j|��sJ�tj|j|��sJ�dS)N�r@r@)r1rHrIr�allcloser�r�)rNrBr��
cov_should_berJs     r8�2test_frozen_multivariate_normal_exposes_attributeszITestMultivariateNormal.test_frozen_multivariate_normal_exposes_attributessh���w�t�}�}����q�	�	�
�)�$�
�;�;���{�;�+�T�2�2�2�2�2��{�;�?�M�:�:�:�:�:�:�:r:c
���tj�d��d}tj�||��}tj||j��}tj�|��\}}tj	|d��}d|d<d|d<tj|tjtj
|��|j����}d}t||�	��}t|j|�	��}t|jtjtj|dd�������t|j|j��dS)
Nr�r^r3��?r�H�����z>r_��h㈵��>)�cond)r1r�r�r�r�r�r�r�r��fullrhr�pinvrr�r�r�)	rNr�rTr�r�r�rUr��psd_pinvs	         r8�test_pseudodet_pinvz*TestMultivariateNormal.test_pseudodet_pinvs��	�	���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�9r:c�L�gd�gd�g}ttt|��dS)NrD)r]r[r\�r�rFr�rNr�s  r8�test_exception_nonsquare_covz3TestMultivariateNormal.test_exception_nonsquare_cov-s,���y�y�)�)�)�$���j�$��,�,�,�,�,r:c��ddgdtjgg}ttt|��ddgdtjgg}ttt|��dS)Nr
r)r1�nanr�rFrr�)rN�cov_nan�cov_infs   r8�test_exception_nonfinite_covz3TestMultivariateNormal.test_exception_nonfinite_cov1sT���q�6�A�r�v�;�'���j�$��0�0�0��q�6�A�r�v�;�'���j�$��0�0�0�0�0r:c�L�ddgddgg}ttt|��dS)Nr
rr_r[r\s  r8�test_exception_non_psd_covz1TestMultivariateNormal.test_exception_non_psd_cov7s,���1�v��2�w����j�$��,�,�,�,�,r:c���tj�d��tj�d��}tj�d��}tjd��}tjj}t|t||��t|tj	|||��t|tj
|||��t|tj|||��t|tj|||��ddgddgg}d}tjtjj|���5t|���ddd��dS#1swxYwYdS)	Nr�r[)r[r[rRr�z0When `allow_singular is False`, the input matrixr>�r�)r1r�r�r�rHr��LinAlgErrorr�rr�r�r�r�rEr	)rNrTr�r��e�msgs      r8�test_exception_singular_covz2TestMultivariateNormal.test_exception_singular_cov;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�"Ec� �tjgd���}tjddd��}d|zdz
}|tj|��z}tj|||g��j}tjgd�d��}tjgd�gd	�gd
�gd��}tj|||��}t||d���tjgd
���}	tj|||��}
t|
|	d���tjgd���}tj||g��j}tjddgd��}
tjddgddggd��}tj||
|��}t||d���dS)N)g�0�Q-?gox'��V?g[S,�� t?g��DB�?g��c_.��?rr@r[rA)r
rAr@�d�r
r@r)r@r[r3)rr3rA绽���|�=�r=)gw�k:�E]?g�̙�Z�?g�0��?gL��8�?gA�G*��?g�h㈵��>)g�Iى?g��G�?gƏ)��?gėh��?g���EE�?r
rT)	r1r�r4�cosr�rr�rr�)rN�r_pdfrTrr�rr�r�r��r_cdfr��r_cdf2�r2�mean2�cov2�cdf2s                r8�
test_R_valuesz$TestMultivariateNormal.test_R_valuesNs�����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�0r:c���tjd��}tjd��}t||d���}|���}t	|ddg��dS)Nr@�r@r@TrRr)r1r�rr�r)rNr�rB�model�samples     r8�,test_multivariate_normal_rvs_zero_covariancezCTestMultivariateNormal.test_multivariate_normal_rvs_zero_covariance�sY���x��{�{���X�f�%�%�
�#�D�*�T�J�J�J���������V�a��V�$�$�$�$�$r:c��d}d}tjtj|��d|���}t	|j||f��tjdtjddgddgg��|���}t	|j|df��tdd���}|�|��}t	|j|f��dS)	Ni,r]r
rr@r�r�r�r�)rr�r1r�rr3r�)rN�Nrlr|r�s     r8�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�)�)�)�)�)r:c���tj�d��d}tj�|��}tj�||��}tj||j��}d}t
j|||��}ttj
|j��|d���t|�d��|d���dS)N�rAi�r�r'r)r1r�r�r�r�r�rr�r�numpyr�r�)rNr�r�r�r�ryr|s       r8�test_large_samplez(TestMultivariateNormal.test_large_sample�s���	�	���t����
���y���q�!�!���I�O�O�A�q�!�!���f�Q���n�n����$�(��s�D�9�9����	�&�(�+�+�S�t�<�<�<�<�����A����4�8�8�8�8�8�8r:c��tj�d��d}tj�|��}tj�||��}tj||j��}t
||��}t|���t
j||����tj	�
|��d}d|tjdtjz��dzztj
tj|����zz}t||�����dS)Nr�rArr3r@r
)r1r�r�r�r�r�rrr�r��eigr��pir�)rNr�r�r�r�r��eigs�desireds        r8�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�2r:c��tjgd���}d}ttjt	|����|��dS)N�r
r
r
r3)r1r�rrr
)rN�alphar�s   r8�test_lnBzTestMultivariateNormal.test_lnB�s@�������#�#�����B�F�4��;�;�/�/��9�9�9�9�9r:c��tj�d��}ddg}tjd��}|�d��dzdz
}|�d��dzdz
}t	j||||���}t	j|||��}t	j|||��}tj|ddd	�f|dd	d�ffd
���}	tj|dd	d�f|ddd	�ffd
���}
t	j|	||��}t	j|
||��}||z|z
|z
}
t||
��dS)N�F�Yc@Yrr@)r]rAr@r\rA��lower_limit.r
r_r})r1r�r�rIrr��concatenater)rNr�r�r��a�b�cdf1�cdf2a�cdf2b�ab1�ab2�cdf2ab1�cdf2ab2rws              r8� 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�#�#�#�#�#r:c��tj�d��}|�d��}|�d��}||jz}|�d��dzdz
}|�d��dzdz
}t	j||||���}t	||���||���}tjt	j||||�����}tjt	||���||�����}	t||d���t||d���t|	|d���dS)	Nr�rA)rArA�r@rAr\r�g-C��6?r')	r1r�r�r�rr�rr�r)
rNr�r�r�r�r�r�rw�cdf3�cdf4s
          r8�%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��.�.�.�.�.�.r:c��tjd��}tjd��}gd�gd�gd�gd�g}gd�gd�gd�gd�g}tjgd���}t	j||||���}t
||d|z��dS)	NrAr�r`�r
rr
�rr
r)r
r_r_r
r�r)r1r�rIr�rr�r)rNr�r�r�r��expected_signsr�s       r8�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�3r:c��tjdtjgd���z��}tj|��}d}tjt|���5tj	ddg|��ddd��n#1swxYwYtjt|���5tddg|��ddd��n#1swxYwYgd�}tj
|gd�|��}ttj
||���|��tj
|gd	�|��}ttj
|d|���|��dS)
Nr
rDz7`cov` represents a covariance matrix in 3 dimensions...r>r)r3r3r3r`rfr�)r1rhr�r)rGrEr	rFrr�r�r)rN�Pr�rOrTr5s      r8�
test_mean_covz$TestMultivariateNormal.test_mean_covs����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
N)(r�r�r�r�r�r�r�r�r�r�rrr%r/r6rHrKrEr�r�r1rIr*�
from_diagonalrPrYr]rbrdrjrxr}r�r�r�r�r�r�r�r�r�r:r8r�r��s3������O�O�O�"�"�"�6(�(�(�(�(�(�(�(�(�(�(�(�	?�	?�	?�26�26�26�h0�0�0�,7�7�7�0E�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�I�Ir:r�c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestMatrixNormalc
�\�d}d}tj||fd��}dtj|��ztj||fd��z}dtj|��ztj||fd��z}ttt
tjd����ttt
|tjd��|��ttt
||tjd����ttt
|||��ttt
|||��ttt
|j||��tjj	}t|t
j
||tj||f����t|t
j
|tj||f��|��t|t
||tj||f����t|t
|tj||f��|��dS)Nr]rAr�r3�ffffff�?)r[r]rAr)r1rVr�r�rFrr�r�r�rgr�rH)rN�num_rows�num_colsr�r��Vrhs       r8�test_bad_inputzTestMatrixNormal.test_bad_inputs��������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�Lr:c���d}d}tj||fd��}dtj|��ztj||fd��z}dtj|��ztj||fd��z}tj||f��}tj|df��}tjd|f��}tj|��}	tj|��}
tjd��}t	tj|||���j||f��t	tj|���j||f��t	tj|�	��j|df��t	tj|�
��jd|f��t	tj||���j||f��t	tj||���j||f��t	tj||�
��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
|��dS)Nr]rAr�r3r�r
�r��rowcov�colcov)r�)r�)r�)r�r�)r�r�)r�r�)r1rVr�r�rrr�r3r�r�r�)rNr�r�r�r�r��Z�Zr�Zc�Ir�Ic�I1s            r8�test_default_inputsz$TestMatrixNormal.test_default_inputs0s:�������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�?�?�?�?�?r:c�(�d}d}tj||fd��}tj|d��}d}tj|d��}d}tj|��}tj|��}	tt	|||���jd|z��tt	|||���jd|	z��tt	|||���jd|z��tt	|||���jd|	z��dS)Nr]rAr�r�r�r�)r1rVr�rrr�r�)
rNr�r�r��Uv�Us�Vv�Vsr�r�s
          r8�test_covariance_expansionz*TestMatrixNormal.test_covariance_expansionWs*�������G�X�x�(�#�.�.��
�W�X�s�
#�
#��
��
�W�X�s�
#�
#��
��
�[��
"�
"��
�[��
"�
"���]��"�R�@�@�@�G���V�	�	�	��]��"�R�@�@�@�G���V�	�	�	��]��"�R�@�@�@�G���V�	�	�	��]��"�R�@�@�@�G���V�	�	�	�	�	r:c��tdd��D�]m}tdd��D�]X}tj||fd��}dtj|��ztj||fd��z}dtj|��ztj||fd��z}t	|||���}|�d���}t	j|||d�	��}t
||��|�d���}	|�|	��}
t	j|	|||���}t
|
|��|�|	��}t	j|	|||���}
t
||
����Z��odS)
Nr
r[r�r3r�r�r�r�)r�r�r�r�)	r�r1rVr�rr�rr�r�)rNr,r-r�r�r��frozen�rvs1�rvs2r�pdf1�pdf2�logpdf1�logpdf2s              r8�test_frozen_matrix_normalz*TestMatrixNormal.test_frozen_matrix_normalms����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�.�.�.�.�)
/�	/�	/r:c��tdd��D�]x}tdd��D�]c}tj||fd��}dtj|��ztj||fd��z}dtj|��ztj||fd��z}t	|||���}|�d���}|�|��}|�|��}	|j�	��}
|j�	��}tj
||��}tj|
||�	��}
tj|
||�	��}t||
d
���t|	|d
�����e��zdS)Nr
r[r�r3r�r�r�r�rrnr')
r�r1rVr�rr�r�r�r��flatten�kronrr)rNr,r-r�r�r�r�rr�r��vecX�vecMr�r�r�s               r8�test_matches_multivariatez*TestMatrixNormal.test_matches_multivariate�ss���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���J�J�D�J�1�1���z�z�!�}�}�� �-�-��*�*���s�{�{�}�}���s�{�{�}�}���g�a��l�l��*�.�t�$�C�H�H�H��-�4�T��#�N�N�N����d��7�7�7�7����u�=�=�=�=�=�#
>�	>�	>r:c	�X�d}d}tj||fd��}dtj|��ztj||fd��z}dtj|��ztj||fd��z}d}t|||���}|�|d�	��}|�|d
�	��}	tj|tjdd�dd�dd�f|	tjdd�dd�dd�ffd���}
t|
jd
|||f��|�	|
��}t|jd
|f��td
��D]M}t|��D];}
tj	|
||
f|||���}t||||
fd���<�NdS)Nr]rAr�r3r�rr�r�r�i�rr}r@rn)r1rVr�rr�r��newaxisrr3r�r�r)rNr�r�r�r�r�r�r��X1�X2r�array_logpdfr,r-�separate_logpdfs               r8�test_array_inputz!TestMatrixNormal.test_array_input�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�	Kr:c���d}d}tj||fd��}dtj|��ztj||fd��z}dtj|��ztj||fd��z}d}t|||���}|�|d�	��}tj|d
���}	t
|	|d�
��tj|�||z|��j	��}
t
|
|d�
��tjtj
|dd���||z|��j	��}t
||d�
��dS)Nr]rAr�r3r���r�r�r�rr}r�ror
r@)r1rVr�rr�r�rr��reshaper��swapaxes)rNr�r�r�r�r�r�r�r�sample_mean�
sample_colcov�
sample_rowcovs            r8�test_momentszTestMatrixNormal.test_moments�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�3r:c	�f�tjtjddgddgg��tjddgddgg��tjddgddgg��tj�d��d�	��}tjd
dgdd
ggddgddggg��}t
||��dS)Nr
r@rAr]r_r[rr)r�r�r�r�ryg�6���?gǀ����g��c�Ͽ@g��"�'�@gI2͖�@g^���jy%@g�Dn3�@g�|\3@)rr�r1r�r�r�r)rNr.�expecteds   r8�test_sampleszTestMatrixNormal.test_samples�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�
�
��	���)�)�)�)�)r:N)r�r�r�r�r�r�r�r�r�r�r�r�r:r8r�r�s�������M�M�M�4%@�%@�%@�N���,/�/�/�0>�>�>�.K�K�K�.4�4�4�,*�*�*�*�*r:r�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�
TestDirichletc	���tj�d��tj�dd��}tj�dd|��}t|��}t
|���tj|����t
|���tj|����t
|�	��tj	|����d}t|��D]�}tj�dd|��}|tj|��z}t
|�|dd���tj|dd�|����t
|�
|dd���tj
|dd�|������dS�Nr�r
� ��&�.>rrr_)r1r�r��randintrrr�varr�r�r�r�r�r��rNr�r�rl�	num_testsr,rTs       r8�test_frozen_dirichletz#TestDirichlet.test_frozen_dirichlet�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�	Lr:c�P�tj�d��tjgd���}tj�|d���}t|jd��tttj	||��tttj
||��t	j	|j|��t	j	|jdd�|��t	j
|j|��t	j
|jdd�|��dS)Nr��rR�@�@r^rx)r^rAr_)r1r�r�r�rrr3r�rFr�r�r��rNr�rTs   r8�"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�)�)�)�)�)r:c�B�tj�d��gd�}tj�tjd|��d���j}t
ttj||��t
ttj	||��dS)Nr�)rRr�r�r�r^rx�
r1r�r�r�maximumr�r�rFr�r�r�s   r8�test_alpha_with_zerosz#TestDirichlet.test_alpha_with_zeros�s{��
�	���t���������I����
�4�� 7� 7�a��@�@�B���j�)�-��E�:�:�:��j�)�"2�A�u�=�=�=�=�=r:c�B�tj�d��gd�}tj�tjd|��d���j}t
ttj||��t
ttj	||��dS)Nr�)rRg�r�r�r^rxr�r�s   r8� test_alpha_with_negative_entriesz.TestDirichlet.test_alpha_with_negative_entriess}��
�	���t���� � � ���I����
�4�� 7� 7�a��@�@�B���j�)�-��E�:�:�:��j�)�"2�A�u�=�=�=�=�=r:c��tjgd���}tjgd���}tj||��tj||��tjgd���}ttj||��d��ttj||��tjd����dS)N�rRr�r��@�r�r�r�r�)rRrRrRrRr\)r1r�rr�r�rr�r�s   r8�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�Br:c���tjgd���}tjgd���}tttj||��tttj||��dS)N)rRr3r�rr�r1r�r�rFrr�r�r�s   r8�$test_data_with_zeros_and_small_alphaz2TestDirichlet.test_data_with_zeros_and_small_alpha�a����-�-�-�.�.���H�)�)�)�*�*���j�)�-��E�:�:�:��j�)�"2�A�u�=�=�=�=�=r:c���tjgd���}tjgd���}tttj||��tttj||��dS)Nr�)r�皙������r�r�rr�s   r8�test_data_with_negative_entriesz-TestDirichlet.test_data_with_negative_entriessa����-�-�-�.�.���H�*�*�*�+�+���j�)�-��E�:�:�:��j�)�"2�A�u�=�=�=�=�=r:c���tjgd���}tjgd���}tttj||��tttj||��dS)Nr�)r�皙�����?r�r�rr�s   r8� test_data_with_too_large_entriesz.TestDirichlet.test_data_with_too_large_entries!rr:c���tjgd���}tjdd��}ttt
j||��ttt
j||��dS)Nr�)r@r^r^g�$I�$I�?�r1r�rVr�rFrr�r�r�s   r8�test_data_too_deep_cz"TestDirichlet.test_data_too_deep_c'sY�������)�)���G�I�v�&�&���j�)�-��E�:�:�:��j�)�"2�A�u�=�=�=�=�=r:c���tjddgddgg��}tjdd��}ttt
j||��ttt
j||��dS)NrRr�r�r)r@r@r^��?rr�s   r8�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�=�=�=�=�=r:c��tjgd���}tjdd��}tj||��tj||��dS)Nr��rAr^�UUUUUU�?)r1r�rVrr�r�r�s   r8�test_alpha_correct_depthz&TestDirichlet.test_alpha_correct_depth3sQ�������)�)���G�F�E�"�"���
�a��������E�"�"�"�"�"r:c���tjgd���}tjdd��}ttt
j||��ttt
j||��dS)Nr�rr3rr�s   r8�test_non_simplex_dataz#TestDirichlet.test_non_simplex_data9sY�������)�)���G�F�E�"�"���j�)�-��E�:�:�:��j�)�"2�A�u�=�=�=�=�=r:c���tjgd���}tjdd��}ttt
j||��ttt
j||��dS)Nr�)r@r^r3rr�s   r8�test_data_vector_too_shortz(TestDirichlet.test_data_vector_too_short?�\����-�-�-�.�.���G�F�E�"�"���j�)�-��E�:�:�:��j�)�"2�A�u�=�=�=�=�=r:c���tjgd���}tjdd��}ttt
j||��ttt
j||��dS)Nr�)r[r^r�rr�s   r8�test_data_vector_too_longz'TestDirichlet.test_data_vector_too_longErr:c���tjgd���}t|��}gd�}gd�}t|���|��t|���|��dS)N)rR皙�����?r�)gUUUUUU�?g{�G�z�?g���Q��?�r3皙�����?r�)r1r�rrr�r�)rNr�rl�expected_var�
expected_means     r8�test_mean_and_varzTestDirichlet.test_mean_and_varKsl�������(�(���e����-�-�-��'���
�!�!�%�%�'�'�<�8�8�8�!�!�&�&�(�(�M�:�:�:�:�:r:c��tjdg��}t|��}t|���jd��t|���jd��t|�dg��jd��t|�dg��jd��dS)Nr�rrR)	r1r�rrr�r�r�r�r�)rNr�rls   r8r�z TestDirichlet.test_scalar_valuesUs�����#������e����	�Q�V�V�X�X�]�A�&�&�&��Q�U�U�W�W�\�1�%�%�%��Q�U�U�B�4�[�[�%�q�)�)�)��Q�X�X�r�d�^�^�(�!�,�,�,�,�,r:c��tj�d��tj�dd��}tj�dd|��}t|��}d}t
|��D]x}tj�dd|��}|tj|��z}t|�	|dd���|�	|�����ydSr�)
r1r�r�r�rrr�r�rr�r�s       r8� 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�	9r:c��tj�d��tj�dd��}tj�dd|��}t|��}d}d}d}t
|��D]�}t
|��D]U}tj�dd|��}	|	tj|	��z}	|�tj||	f��}�S|	}�V|�	|j
��}
d}|D]1}|�	|��}
|�tj||
��}�/|
}�2t|
|����dS)Nr�r
r�r�rrr[)
r1r�r�r�rrr�r��vstackr�r��appendr)rNr�r�rlr��num_multiple�xmr,�mrT�rm�rs�xsrs              r8�test_multiple_entry_callsz'TestDirichlet.test_multiple_entry_callsosK��
�	���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�"�-�-�-�-�!	.�	.r:c���tj�d��tj�ddd��}t	|��}t|d|d��}d}t
|��D]q}tj�ddd��}|tj|��z}t|�	|��|�	|g�����rt|�
��|�
��d��t|���|���d��dS)Nr�r�rr@rr
r)r1r�r�rrrr�r�rr�r�r�)rNr�rlr�r�r,rTs       r8�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�0r:N)r�r�r�r�r�r�r�rrr	rrrrrrrr$r�r'r1r3r�r:r8r�r��s7������L�L�L�$
*�
*�
*�>�>�>�>�>�>�C�C�C�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�#�#�#�>�>�>�>�>�>�>�>�>�;�;�;�	-�	-�	-�
9�
9�
9�.�.�.�:1�1�1�1�1r:r�c�P�tjddg��}tjdgg��}ttt||��	t	||��dS#t$r?}d}tt
|��dt|���|��Yd}~dSd}~wwxYw)Nr�rRzDimension mismatch)r1r�r�rFrr�str�len)r��sigmarhris    r8�,test_multivariate_normal_dimensions_mismatchr8�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�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestWishartc�h�tjdd���}ddgtjd��tjdtjdd���g}|D]F}td|��}t	|j|��t	|jj|j���Gtjddgddgg��}ddgtjdtjddgddgg��g}|D]F}td|��}t	|j|��t	|jj|j���Gtttdtj	d����tdtj	d����tjdd���}tttd|��dS)Nr
r@��ndminr�r
r@rrA)
r1r��r_rrr5r3r�rFrI)rN�
true_scale�scalesr5�ws     r8�test_scale_dimensionsz!TestWishart.test_scale_dimensions�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�4r:c
��ddgtjd��tjdtjdd���tjdgd���g}tdd��}|�tjdd�����}|D]%}t|�|��|���&gd�tjdtjgd�d���g}tdd��}|�tjgd�d�����}|D]%}t|�|��|���&dddgtjd��tjdtjddgddgg��tjddgddgg��dd�dd�tjfg}tdtjd����}|�tjddgddgg��dd�dd�tjf��}|D]%}t|�|��|���&dS)Nr
r@r<rArDrzr)r1r�r?rr�rr�rI)rNrrB�densityrTs     r8�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�+�+�+�+�	,�	,r:c	��d}tjtj|��dz��}tj||dz
zdz��|tj|d���<tj|j|��}g}t
d��D]�}tjtj|��|dzdzz��}tj||dz
zdz��|tj|d���<tj|j|��}|�|����tj|��j}ddtj	ddd��fd||fg}|D�]"\}}}t||��}t|���tj||����t|�
��tj
||����t|���tj||����t|���tj||����t|�|��tj|||������$dS�	Nr]r
r@r_�r�r[rr�)r1rhr��tril_indicesr�r�r�r*r�r4rrr�r��moder�r�)	rN�dimr5rr,rT�
parameters�dfrBs	         r8rKzTestWishart.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�#<�#<�=�=�=�=�
	>�	>r:c�&�tj�d��d}d}tj|��}tjdddt
���}tjddd���}|D�]!}t||��}t|��}t|�
��|�
����t|���|�����t|���|�����t|�
|��|�
|����|�|�	��}	|f}
d
}td|
||	����#dS)N�^��r
rr@rr���numrxr;r)r1r�r�rIr�rr4rrrr�r�r�r�r�r)rN�snrLr5�df_rangerrNrB�cr�r6r�s            r8�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���<�<�<�<�!	=�	=r:c�H�tj�d��d}d}d}tjtjd��dz��}tjd��|tjdd���<tj|j|��}tj|df��}|j�|���|���	��}t||��}t||�	��}t|�
��|�
����t|���|�����t|���|�����tjd
dd���}	t|�|	��|�|	����|�|���}
|d
|f}d}t'd|||
��dS)NrPrQrr]r
r\r_rI�r5r�rRrxrr;r)r1r�r�rhr�rJr�r�rHr�rrrr�r�r�r4r�r�r)
rNrTrNrLr5�lamda�sigma_lamdarBrVrr�r6r�s
             r8�test_is_scaled_chisquaredz%TestWishart.test_is_scaled_chisquaredLs���
	�	���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�8r:N)r�r�r�rCrFrKrWr\r�r:r8r:r:�sb������)5�)5�)5�V/,�/,�/,�b>�>�>�@=�=�=�>!9�!9�!9�!9�!9r:r:c�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�TestMultinomialc�.�tjddd��}t|dd���tjddgd	d
dg��}t|tjd���tjddgd	ddg��}t|tjd���dS)
N�rAr]r^�r�r�g&M�ty����:�0�yE>r'rAr]rr�r�rb)r�logpmfrr1�NAN)rN�vals1�vals2�vals3s    r8�test_logpmfzTestMultinomial.test_logpmfps����"�5�!�Z�8�8����1��=�=�=�=��"�A�q�6�1�r�2�h�7�7����r�v�D�1�1�1�1��"�A�q�6�1�r�1�g�6�6����r�v�D�1�1�1�1�1�1r:c��tjddd��}tjddd��}t||d���tjdd	d
��}tjdd	d��}t||d���dS)
Nr`r^rarAr�rbr')r\���r�r2r\r�)rrcr"r�pmf�rN�val1�val2s   r8�test_reduces_binomialz%TestMultinomial.test_reduces_binomialzs����!�&�!�Z�8�8���|�A�q�#�&�&����d��.�.�.�.���v�r�:�6�6���y��B��$�$����d��.�.�.�.�.�.r:c��dgd�}}ddddddd	dd
dd�
}|D].}ttj|||��||d
����/dS)NrA)g�?rg�?g@�?g��?g�?g`?g��?g�?g�?g�?g�?)
)rrrA)r
rr@)r@rr
)rArrr�r�)r@r
r)rr@r
rm)rrAr�+����=ro)rrrm)rNr��p�r_valsrTs     r8�test_RzTestMultinomial.test_R�s����$�$�$�1��(�[�(�[�(�[�(�[�(�[�	B�B��
�	M�	M�A��K�O�A�q�!�4�4�f�Q�i�e�L�L�L�L�L�	M�	Mr:c���tjddgdzdd���}tj�d��}|�ddgdzd���}t||��dS)NrArr^�{r�rx)rr�r1r��RandomStater)rN�sc_rvs�rndm�np_rvss    r8�test_rvs_npzTestMultinomial.test_rvs_np�sk�����T�F�1�H�1�3�G�G�G���y�$�$�S�)�)���!�!�!�d�V�A�X�A�!�6�6���V�V�$�$�$�$�$r:c��tjddd��}t|dd���tjddd	��}t|d
d���tjddgdd
ggddgddgggd
d��}t|ddgddggd���tjdtj���}tj|dd	��}t
|tjgtj�����tjddgdd	��}t|dd���tjgd�dgd���}t|dd���dS)N)r[r[�r
r
rbr'r`r^rag�5��
�?rArrjr_�	rlg��*7�?g��<Wƌ�?�rr@rr]r@�rArArr\)gUUUUUU�?rrgߦ���?)rrmrr1r?�float64r)rN�vals0rerfrTrg�vals4�vals5s        r8�test_pmfzTestMultinomial.test_pmf�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�9�9r:c��tjddgdddgddgg��}t|dd	gd
���tjddgddgddg��}t|dd
gd
���tjddgddgggdddg��}t|dd
ggd
���tjddgdgdgggddg��}t|dgd
gggd
���tjddgddggdggggddg��}t|dd
ggggd
���dS)Nr
r@rAr�r2r�rg��v���?g�~j�t��?rbr'r]r)rrmr)rNr�rerfrgr�s      r8�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�:�:�:�:�:�:r:c�j�tjdd��}gd�gd�gd�g}t||d���dS)Nr[)r�r�r3)rg333333ӿ��)g433333ӿg�������?��)r�r�g�?rbr'�rr�r�rN�cov1rvs   r8�test_covzTestMultinomial.test_cov�sR����q�,�/�/��-�-�-�-�-�-�-�-�-�/��	��d��.�.�.�.�.�.r:c�t�tjdddgddgg��}ddgddggddgddggg}t||d	�
��tjddgddg��}dd
gd
dggddgddggg}t||d	�
��tjddgddgddgg��}ddgddggddgddggg}t||d	�
��dS)Nr[r�r2r�rg�������?g������ܿg�������rbr'r]g
ףp=
�?g
ףp=
׿r�r�r!r8g�z�G��?g�z�G��r1g333333�r��rNr�rv�cov3�cov4�cov5�cov6s       r8�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��.�.�.�.�.�.r:c�~�tjdddg��}t|tjdd��d���dS)Nr@r�rrbr'�rr�rr")rN�ent0s  r8r�zTestMultinomial.test_entropy�sA���"�1�r�2�h�/�/����e�m�A�r�2�2��>�>�>�>�>�>r:c	�`�tjddgddg��}t|tjdd��tjdd��gd���tjddgdd	gd
dgg��}t|tjdd��tjdd
��gd���tjdgdggdd	gd
dgg��}t|tjdd��tjdd
��gtjdd��tjdd
��ggd���dS)Nr@rAr�r�rbr'r^rjr�r!r8r�)rNr��ent1�ent2s    r8�test_entropy_broadcastingz)TestMultinomial.test_entropy_broadcasting�sK���"�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��(<�(<�=��-��2�&�&��
�a��(<�(<�=�?��	�	�	�	�	�	r:c�\�tjdddg��}t|ddgd���dS)Nr[r�rrRrrbr'�rr�r�rN�mean1s  r8�	test_meanzTestMultinomial.test_mean�s7��� ��R��H�-�-�����d�|�$�7�7�7�7�7�7r:c�h�tjddgddg��}t|ddgddggd	�
��dS)Nr[r\r�rrRrg433333�?g433333@rbr'r�r�s  r8�test_mean_broadcastingz&TestMultinomial.test_mean_broadcasting�sD��� �!�Q��"�b��2�2�����t��t�T�l�;�$�G�G�G�G�G�Gr:c��tj�d��d}d}gd�gd�gd�gd�gd�g}tj|tj�	��}t||��}t
|�|��tj|||����t
|�|��tj|||����t
|�	��tj	||����dS)
Nr��)r�r�r�r!�rrrr��rrr
��rr
r
r�r
r
r
r��r
r
r@rjr)
r1r�r�r2r�rrrmrcr�)rNr��pvalsrT�	mn_frozens     r8rKzTestMultinomial.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�Kr:c�*�d}tj�d��}|�|��}d|d<|tj|��z}tj|��}tj|||��}tj|��sJ�dS)N�Xli�RZ�Yg���KH�9r_)r1r�r�r�rHrrc�isfinite)rNr�r�rtrTrcs      r8�
test_gh_11860zTestMultinomial.test_gh_11860s���

���i�#�#�$7�8�8���J�J�q�M�M����"��	�R�V�A�Y�Y����G�A�J�J���#�A�q�!�,�,���{�6�"�"�"�"�"�"�"r:N)r�r�r�rhrqrvr}r�r�r�r�r�r�r�r�rKr�r�r:r8r^r^os�������2�2�2�	/�	/�	/�M�M�M�"%�%�%�:�:�:�*;�;�;� /�/�/�/�/�/�?�?�?�
�
�
�8�8�8�H�H�H�
L�
L�
L�#�#�#�#�#r:r^c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestInvwishartc	��d}tjtj|��dz��}tj||dz
zdz��|tj|d���<tj|j|��}g}t
d��D]�}tjtj|��|dzdzz��}tj||dz
zdz��|tj|d���<tj|j|��}|�|����tj|��j}ddtj	ddd��fd||fg}|D]�\}}}t||��}t|���tj||����t|�
��tj
||����t|���tj||����t|�|��tj|||������dSrH)r1rhr�rJr�r�r�r*r�r4rrr�r�rKrr�)	rNrLr5rr,rTrMrN�iws	         r8rKzTestInvwishart.test_frozens���
�����	�#���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�	Er:c���tj�d��d}d}tj|��}tjdddt
���}tjdd	d	�
��}|D]�}t||��}t|dzd���}t|�
��|�
����t|���|�����t|�|��|�|����|�
|�
��}	|dzddf}
d}td|
||	����dS)NrPrQr
r[�r@rr�rrRr3rYrxrr;r)r1r�r�rIr�rr4rrrr�r�r�r�r)rNrTrLr5rUrrNr��igr�r6r�s            r8�test_1D_is_invgammaz"TestInvwishart.test_1D_is_invgamma/sE��
	�	���v����
������s�����9�Q��A�U�3�3�3���K��B�2�&�&�&���	A�	A�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�@�@�@�@�	A�	Ar:c��d}d}tj|��}d|d<d|d<t||��}t||��}tj�d��tj||��}tj�d��|���}tj�d��tj||��}tj�d��|���}	tj�d��tj�d���}
tjtj�	|��tj�	|dz
��tj�	|d	z
��fdz}tj
|��}|
|tj|d
���<tj�
|��}
|
�|��}tj||j��}tj�
tj�|����}|�|��}tj�tj||j����}t#||��t#||��t#||��t#|	|��dS)NrArr3r��r
ri��rxr
r@r_rI)r1rIrrr�r�r��normalr?�	chisquarerhrJr�r�r�r�r�r)rNrLrNr5rBr��w_rvs�frozen_w_rvs�iw_rvs�
frozen_iw_rvs�covariances�	variancesrn�D�DA�manual_w_rvs�iD�iDA�
manual_iw_rvss                   r8�test_wishart_invwishart_2D_rvsz-TestInvwishart.test_wishart_invwishart_2D_rvsMse����
����s������c�
���c�
�
�B�����
��E�
"�
"��	�	���v������B��&�&��
�	���v�����u�u�w�w��
�	���v�������E�*�*��
�	���v���������
�	�	���v�����i�&�&�A�&�.�.���E��I����#�#��I����1��%�%��I����1��%�%�
'�
��	�	�
�G�I����(3��"�/�#��
$�
$�
$�%�
�I���u�%�%��
�U�U�1�X�X���v�b�"�$�'�'���Y�
�
��	�
�
�e� 4� 4�
5�
5���f�f�Q�i�i���	�
�
�b�f�S�#�%�&8�&8�9�9�
�	��|�,�,�,���l�3�3�3���
�.�.�.��
�}�5�5�5�5�5r:c���tjgd�gd�gd�gd�g��}tjgd�gd�gd�gd�g��}tj||g��}|���}t|��tjd��}t|d	�|d	��|d
���t|d�|d��|d
���d
S)�Regression test for gh-8844.�r@r
rr3�r
r@r3r3�rr3rAr
�r3r3r
r@)r@r_rr3)r_r@r3r3)r3r3r
r]r]r�V瞯�<ror
N)r1r��copyrrIrr�)rN�a0�a1r��ainv�idents      r8�test_cho_inv_batchz!TestInvwishart.test_cho_inv_batch�s��
�X�~�~�~�'�'�'�%�~�~�'�'�'�)�*�*���X����(�(�(�%�~�~�'�'�'�)�*�*��
�H�b�"�X�����v�v�x�x���t������q�	�	����!�����a��)�)�5�u�=�=�=�=���!�����a��)�)�5�u�=�=�=�=�=�=r:c�z�tjgd�gd�gd�gd�g��}tjgd�gd�gd�gd�g��}d	}tj|||��}|jd
}tj�|��\}}tj�|��\}}tj�||��}	|dz|z||zdztjd��zz
t|dz|��z
||zdzdz|zz
d
|	�
��zz
}
t||
��dS)r�r�r�r�r�)r�r^rAr
)r^r�r[r
)rAr[rjr@)r
r
r@r�r\rr@r
r3N)r1r�rr�r3r�r �solver�r,�tracer)rNr�Psi�nu�probrt�sig�logdetX�	logdetPsir�r�s           r8�test_logpdf_4x4zTestInvwishart.test_logpdf_4x4�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�'�'�'�'�'r:N)r�r�r�rKr�r�r�r�r�r:r8r�r�sg������E�E�E�@A�A�A�<96�96�96�v>�>�>�"(�(�(�(�(r:r�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestSpecialOrthoGroupc�R�tj�d��tjd��}tjgd�gd�gd�g��}t
||��tj�d���}tjd|���}t
||��dS)N�rA)g�(f��g^A��.��g*�B���?)g�:�d���?g��2u��gi�}�›?)gR#xl�F�?g��^`�D�?g�����?r�r�)r1r�r�rr�r�rry)rNrTr�r�s    r8�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�.�.�.�.�.r:c��tttjd��tttjd��tttjd��tttjd��dS�Nrzr
r�)r�rFrr��rNs r8�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�?�?�?�?�?r:c��d}t|��}|�d���}tj|d���}t||��dS)Nr^r�r�)rr�r)rNrLr�r�r�s     r8�test_frozen_matrixz(TestSpecialOrthoGroup.test_frozen_matrix�sR����$�S�)�)���z�z�t�z�,�,��"�&�s��>�>�>���T�4� � � � � r:c��d�tdd��D��}d�|D��}t|dgdzd���|D]G}ttj||j��tj|jd	�����HdS)
Nc�Z�g|](}td��D]}tj|�����)S�rA)r�rr���.0rLr,s   r8�
<listcomp>z<TestSpecialOrthoGroup.test_det_and_ortho.<locals>.<listcomp>�sN��!�!�!���Q�x�x�!�!��"�%�c�*�*�!�!�!�!r:r@r�c�L�g|]!}tj�|����"Sr��r1r�r�r�rTs  r8r�z<TestSpecialOrthoGroup.test_det_and_ortho.<locals>.<listcomp>�s&��-�-�-�Q��	�
�
�a� � �-�-�-r:rR��vIh�%<=r'r)r�rrr1r�r�rIr3)rNr0�detsrTs    r8�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�
:�
:�
:�
:�	:�	:r:c�6����d}d}d}tj�d��tj||����d�t�fd��D������fd��D��}�fd	�|D��}t
|gt|��z|��dS)
Nr[r�皙�����?r�rx�r9r�)r
r]r�c3�b���K�|]'\����ft��fd��D����fV��(dS)c�,��g|]}|����Sr�r��r�rT�ec�ers  ��r8r�z=TestSpecialOrthoGroup.test_haar.<locals>.<genexpr>.<listcomp>��!���&=�&=�&=�Q�q��u�R�y�&=�&=�&=r:N��sorted�r�rrr0s @@�r8�	<genexpr>z2TestSpecialOrthoGroup.test_haar.<locals>.<genexpr>��R�������R�R�F�B��b�"�X�v�&=�&=�&=�&=�&=�"�&=�&=�&=�>�>�?�R�R�R�R�R�Rr:c�.��g|]}�D]}||k�||f��
�Sr�r��r��e0�e1�elss   �r8r�z3TestSpecialOrthoGroup.test_haar.<locals>.<listcomp>��.���A�A�A�b�#�A�A�B��b���"�b�����r:c�Z��g|]'\}}t�|�|��d��(Sr�r �r��p0�p1�projs   �r8r�z3TestSpecialOrthoGroup.test_haar.<locals>.<listcomp>��4���J�J�J���R�H�T�"�X�t�B�x�0�0��3�J�J�Jr:)r1r�r�rr��dictrr6�	rNrL�samples�ks_prob�pairs�ks_testsrrr0s	      @@@r8�	test_haarzTestSpecialOrthoGroup.test_haar�s������������
�	���s����
 �
$�S�w�
7�
7�
7��+���R�R�R�R�c�R�R�R�R�R��A�A�A�A�C�A�A�A��J�J�J�J�E�J�J�J���7�)�C��J�J�.��9�9�9�9�9r:N)r�r�r�r�r�r�r�rr�r:r8r�r��sb������
/�
/�
/�@�@�@�!�!�!�:�:�:�:�:�:�:�:r:r�c�V�eZdZd�Zd�Zd�Zd�Zd�Zej	j
d���ZdS)�TestOrthoGroupc�p�d}tj�|��tjd��}tjd|���}ttj�|��d��tjgd�gd�gd�g��}t||��t||��dS)Nr�rAr�r_)g����m�?gӠh�"��gE����o�?)g~7ݲC��?g��>�Ŀg0J�_�ٿ)gݱ�&�ǿg��6qr�g`X�|[���)
r1r�r�rr�rr�rr�r)rNr�rTr�r�s     r8r�z#TestOrthoGroup.test_reproducibility�s�����
�	���t�����O�A����
�_�Q�T�
2�
2�
2���B�I�M�M�!�,�,�b�1�1�1��8�<�<�<�=�=�=�=�=�=�?�@�@��	"�!�X�.�.�.�!�"�h�/�/�/�/�/r:c��tttjd��tttjd��tttjd��tttjd��dSr�)r�rFrr�r�s r8r�zTestOrthoGroup.test_invalid_dimsX���j�+�/�4�8�8�8��j�+�/�6�:�:�:��j�+�/�1�5�5�5��j�+�/�3�7�7�7�7�7r:c��d}t|��}t|d���}|�d���}tj|d���}|�d���}t||��t||��dS)Nr^r�r�r�r
rx)rr�r�rNrLr��frozen_seedr�r��rvs3s       r8r�z!TestOrthoGroup.test_frozen_matrixs������S�!�!��!�#�D�1�1�1���z�z�t�z�,�,����s��6�6�6�����A��&�&���T�4� � � ��T�4� � � � � r:c	��d�tdd��D��}tjd�|D����}ttj|��tj|j��d���tdgdzd	�|D����td
�|D��dgdz��|D]L}|D]G}ttj	||j
��tj|jd�����H�MdS)Nc�F��g|]��fd�td��D����S)c�8��g|]}tj�����Sr�)rr�)r�r,rLs  �r8r�z@TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>.<listcomp>s3���#�#�#����s�#�#�#�#�#r:r)r�)r�rLs @r8r�z5TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>sP���&�&�&��#�#�#�#��b�	�	�#�#�#�&�&�&r:r@r�c�&�g|]}d�|D����S)c�L�g|]!}tj�|����"Sr�r�r�s  r8r�z@TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>.<listcomp>s&��7�7�7�q�"�)�-�-��*�*�7�7�7r:r�)r��xxs  r8r�z5TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>s'��E�E�E�B�7�7�B�7�7�7�E�E�Er:r�r'rrc�`�g|]+}tj|dk��djd��,S�r�r1�nonzeror3�r�rls  r8r�z5TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>#s3��"O�"O�"O�Q�2�:�a�!�e�#4�#4�Q�#7�#=�a�#@�"O�"O�"Or:c�`�g|]+}tj|dk��djd��,Sr-r.r0s  r8r�z5TestOrthoGroup.test_det_and_ortho.<locals>.<listcomp>$s3��G�G�G�Q�2�:�a�!�e�,�,�Q�/�5�a�8�G�G�Gr:)r�r1r�r�fabsrHr3rrr�r�rI)rNr0r�r+rTs     r8r�z!TestOrthoGroup.test_det_and_orthos$��&�&��q����&�&�&��
�x�E�E�"�E�E�E�F�F������
�
�r�w�t�z�':�':��G�G�G�G�
	�1�#�b�&�"O�"O�$�"O�"O�"O�P�P�P��G�G�$�G�G�G�"��b��Q�Q�Q��	>�	>�B��
>�
>��)�"�&��A�C�.�.�*,�&�����*<�*<�>�>�>�>�
>�	>�	>r:c�6����d}d}d}tj�d��tj||����d�t�fd��D������fd��D��}�fd	�|D��}t
|gt|��z|��dS)
Nr[r�r�irxr�c3�b���K�|]'\����ft��fd��D����fV��(dS)c�,��g|]}|����Sr�r�rs  ��r8r�z6TestOrthoGroup.test_haar.<locals>.<genexpr>.<listcomp>Brr:Nrrs @@�r8rz+TestOrthoGroup.test_haar.<locals>.<genexpr>Br	r:c�.��g|]}�D]}||k�||f��
�Sr�r�rs   �r8r�z,TestOrthoGroup.test_haar.<locals>.<listcomp>Crr:c�Z��g|]'\}}t�|�|��d��(Srrrs   �r8r�z,TestOrthoGroup.test_haar.<locals>.<listcomp>Drr:)r1r�r�rr�rrr6rs	      @@@r8rzTestOrthoGroup.test_haar,s������������
�	���s����
�_�S�w�
/�
/�
/��+���R�R�R�R�c�R�R�R�R�R��A�A�A�A�C�A�A�A��J�J�J�J�E�J�J�J���7�)�C��J�J�.��9�9�9�9�9r:c�8��tj�d��d�}tdd��D]e�d	�fd�	}||��}|tjjj��}tj�||��\}}td|���fdS)
Nr�c��tj�tj�||f�����\}}}tj||��S�Nrx)r1r�r�r�r�r�)rLr��_sr�s    r8�random_orthoz<TestOrthoGroup.test_pairwise_distances.<locals>.random_orthoLsB���y�}�}�R�Y�%5�%5�C��:�%5�%F�%F�G�G�H�A�r�1��6�!�Q�<�<�r:r@r\r�rnc����tj��fd�t|��D����}|tj�|||j���z
}|S)Nc�l��g|]0}tj����������z
dz����1S))rLr@)r1r�)r��_rLr�s  ��r8r�z\TestOrthoGroup.test_pairwise_distances.<locals>.generate_test_statistics.<locals>.<listcomp>RsQ���"�"�"���F�C�C�C�L�L�L�3�3�3�<�<�<�7�!�;�<�<�"�"�"r:rx)r1r�r�r�rr3)r�r��eps�statsrLs`   �r8�generate_test_statisticszHTestOrthoGroup.test_pairwise_distances.<locals>.generate_test_statisticsQsr������"�"�"�"�"�"�1�X�X�"�"�"����
���*�*�C�4��5�;�*�G�G�G���r:r�)r�rn)
r1r�r�r�r�rArr�r r)rNr<rBr�r.�_DrtrLs       @r8�test_pairwise_distancesz&TestOrthoGroup.test_pairwise_distancesGs����	�	���s����	 �	 �	 ���A�;�;�	&�	&�C�
�
�
�
�
�
�0�/��=�=�H�-�-�e�k�.E�.I�J�J�F��K�(�(��6�:�:�E�B���c�1�%�%�%�%�	&�	&r:N)r�r�r�r�r�r�r�rrEr��slowrDr�r:r8rr�s�������0�0�0�8�8�8�
!�
!�
!�>�>�>�*:�:�:�6�[��&�&���&�&�&r:rc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestRandomCorrelationc��tj�d��d}tj|��}tj|d���}tjgd�gd�gd�gd�g��}t
||��t
||��dS)Nr��r3rr1r�r�)rR�ѓ2�ǿ�A����?���Ϳ)rJrR�4�($��?�R}�%��?)rKrMrR�qTn���ƿ)rLrNrOrR)r1r�r�rr�r�r)rNr�rTr�r�s     r8r�z*TestRandomCorrelation.test_reproducibilitybs���
�	���s����!���"�4�(�(��
�
#�D�s�
;�
;�
;���8�A�A�A�@�@�@�@�@�@�A�A�A�C�D�D��	"�!�X�.�.�.�!�"�h�/�/�/�/�/r:c���tttjd��tttjd��tttjd��tttjdg��tttjddgddgg��tttjddg��tttjgd���dS)	N�testr�r
r@rAr]r�)r
r@r�)r�rFrr�r�s r8�test_invalid_eigsz'TestRandomCorrelation.test_invalid_eigsns����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�Er:c�
�d}t|��}t|d���}tj|d���}|�d���}|���}t||��t||��dS)NrIr�r�r�)rr�r)rNr�r�r$r�r�r%s       r8r�z(TestRandomCorrelation.test_frozen_matrixws���!��#�D�)�)��(��C�8�8�8��!�%�d��=�=�=���z�z�s�z�+�+����� � ���T�4� � � ��T�4� � � � � r:c���
�d��
tj�d���
fd�tdd��D��}|�gd���d�|D��}d�|D��}d	�|D��}d
�|D��}t||dd���d
�|D��}t
||��D]\}}t||d����|D]}	t|	|	jd����dS)Nc�,�||zt|��zSr0)r�)r,rhs  r8rz3TestRandomCorrelation.test_definition.<locals>.norm�s���Q�3�s�1�v�v�:�r:rxc�d��g|],}�|tj�|�������-S)rx)r1r�r)r�r,rs  �r8r�z9TestRandomCorrelation.test_definition.<locals>.<listcomp>�s8���H�H�H�q���Q��	�)�)�q�)�1�1�2�2�H�H�Hr:r@r\)r]rrrc�4�g|]}dgt|��z��S)rR)r6�r�rhs  r8r�z9TestRandomCorrelation.test_definition.<locals>.<listcomp>�s$��*�*�*����S��V�V��*�*�*r:c�6�g|]}tj|����Sr�)rr�rXs  r8r�z9TestRandomCorrelation.test_definition.<locals>.<listcomp>�s$��
6�
6�
6�A� �$�Q�'�'�
6�
6�
6r:c�p�g|]3}tjtj�|������4Sr�)r1r2r�rr�s  r8r�z9TestRandomCorrelation.test_definition.<locals>.<listcomp>�s0��6�6�6�a����	�
�
�a�(�(�)�)�6�6�6r:c�6�g|]}tj|����Sr�)r1�prodrXs  r8r�z9TestRandomCorrelation.test_definition.<locals>.<listcomp>�s ��/�/�/�Q�b�g�a�j�j�/�/�/r:r�r<c�6�g|]}tj|����Sr�)r1rhr�s  r8r�z9TestRandomCorrelation.test_definition.<locals>.<listcomp>�s ��(�(�(�������(�(�(r:r')r1r�r�r�r*r�zipr�)rNr�rHr0r��
dets_known�diagsr�r�rTrs          @r8�test_definitionz%TestRandomCorrelation.test_definition�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�	0r:c	���tjddgddggt���}tj|��}t|tjddgddgg����tjd���5tjddgddgg��}tjddgdtjdd��ggt���}tj|�����}t||j	�
|���
|����tjd	dgdd
ggt���}tj|�����}t||j	�
|���
|����ddd��n#1swxYwYtjddgddggt���}tj|�����}t|dd��tjd
dgddggt���}tj|�����}t|dd��dS)Nr�rr
r�ignore)�overr_g�u�<�7~r2rr@r9gM�k
@)r1r�rr�_to_corrr�errstate�	nextafterr�r�r�)rNr-�g�m0s    r8�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�1F5�8F5N)r�r�r�r�rRr�rarjr�r:r8rGrGasc������
0�
0�
0�F�F�F�
!�
!�
!�"0�"0�"0�H#�#�#�#�#r:rGc�>�eZdZej�dddg��ej�dgd���d�����Zej�dgd���d���Zd	�Zej�dgd
���d���Z	dS)
�TestUniformDirectionrLr
rAry)Nr
r[)r[r]c��tj�d��}t||���}|�|��}tj|��tj|��}}|�|||���j}|j|ksJ�tj	�
|d���}	t|	d��dS)NlSid)_i4r�rxr_r}rR)r1r�r�r(r�r�rIrr3r�rr)
rNrLryr��uniform_direction_distrr�r��expected_shape�normss
          r8r�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�"�"�"�"�"r:)Nrrzr�c��d}tjt|���5tj|��ddd��dS#1swxYwYdS)NzMDimension of vector must be specified, and must be an integer greater than 0.r>)rEr	rFr(r�)rNrLrOs   r8r�z%TestUniformDirection.test_invalid_dim�s���<��
�]�:�W�
5�
5�
5�	'�	'��!�#�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�A�A�Ac�
�d}t|��}t|d���}|�d���}tj|d���}|���}t||��t||��dS)Nr[r�r�r�)r(r�rr#s       r8�test_frozen_distributionz-TestUniformDirection.test_frozen_distribution�s�����"�3�'�'��'��#�6�6�6���z�z�s�z�+�+�� �$�S�s�;�;�;����� � ���T�4� � � ��T�4� � � � � r:)r@r[rjc�(�tj�d��}t||���}|�d���\}}|||z|zz}|tj�|��z}t||zdd���|�d���}||z}||z}tj||��}	|	tj	z
}	|	dtj	zz}	t��}
t|	|
j��}|j
d	ksJ�dS)
Nl@9��Y sr�r@rxrrsro�'r�)r1r�r�r(r�r�rr�arctan2r�rr!r��pvalue)rNrLr��spherical_dist�v1�v2r�s1�s2�angles�uniform_dist�
kstest_results            r8�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�*�*�*�*�*�*r:N)
r�r�r�rEr�r�r�r�rsr�r�r:r8rlrl�s��������[���U�Q��F�+�+��[���V�%9�%9�%9�:�:�	#�	#�;�:�,�+�	#��[���U�$:�$:�$:�;�;�'�'�<�;�'�
!�
!�
!��[���U�I�I�I�.�.�+�+�/�.�+�+�+r:rlc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestUnitaryGroupc��tj�d��tjd��}tjdd���}tjgd�gd�gd�g��}t
||��t
||��dS)Nr�rAr�)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�'�?)r1r�r�rr�r�r)rNrTr�r�s    r8r�z%TestUnitaryGroup.test_reproducibilitys���
�	���s������a� � ��
�
�q�s�
3�
3�
3���8�Y�Y�Y�X�X�X�[�[�[�]�^�^��	"�!�X�.�.�.�!�"�h�/�/�/�/�/r:c��tttjd��tttjd��tttjd��tttjd��dSr�)r�rFrr�r�s r8r�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�9r:c��d}t|��}t|d���}|�d���}tj|d���}|�d���}t||��t||��dS)Nr^r�r�r�r
rx)rr�rr#s       r8r�z#TestUnitaryGroup.test_frozen_matrixs������s�#�#��#�C�c�2�2�2���z�z�s�z�+�+��� ��3�7�7�7�����A��&�&���T�4� � � ��T�4� � � � � r:c��d�tdd��D��}|D][}ttj||���j��tj|jd��d����\dS)Nc�Z�g|](}td��D]}tj|�����)Sr�)r�rr�r�s   r8r�z3TestUnitaryGroup.test_unitarity.<locals>.<listcomp> sN��!�!�!���Q�x�x�!�!�����$�$�!�!�!�!r:r@r�rr�ro)r�rr1r��conjr�rIr3)rNr0rTs   r8�test_unitarityzTestUnitaryGroup.test_unitaritys���!�!��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�	Sr:c��d}d}tj�d��tj||���}tjd�|D����}tj|j|j��}t|�
��ttjdtjz��j
��}t|jdk��dS)Nr[r�r�rxc�L�g|]!}tj�|����"Sr�)r�r��eigvalsr�s  r8r�z.TestUnitaryGroup.test_haar.<locals>.<listcomp>4s(��>�>�>�a�%�,�.�.�q�1�1�>�>�>r:r@r�)r1r�r�rr�r)rv�imag�realr!�ravelrr�r�rrw)rNrLrr0r�rTr4s       r8rzTestUnitaryGroup.test_haar(s���
����
�	���s����
�
�s��
1�
1�
1���y�>�>�2�>�>�>�?�?���J�t�y�$�)�,�,���Q�W�W�Y�Y������"�%�� 8� 8� <�=�=����
�T�!�"�"�"�"�"r:N)r�r�r�r�r�r�r�rr�r:r8r�r�sb������
0�
0�
0�:�:�:�
!�
!�
!�S�S�S�#�#�#�#�#r:r�c��eZdZddgddgddgddgddgddgddgddgddgddgg
ddgddgddggdgd�fgd�gd	�gd
�gd�gd�ggd
�gd�gd�gd�gdgd�fgZej�de��d���Zej�de��d���Zd�Z	d�Z
ed��d���Zd�Z
d�ZdddddgddggdddgddgddggdfdddgddggdddgddgddggdfddgddddgddgddggdfddgddddgddgddggdfddgddgddggdddgddgddggdfddgddgddggdddgddgddggdfgZej�d e��d!���Zd"ddd"gdggdfd"gdgdd"gdggdfejd"g��ejdg��dd"gdggdfgZej�d e��d#���Zd$�Zd%�Zd&�Zej�d'd(d)g��ej�d*gd+���ej�d,d-d.ejg��d/�������ZdS)0�TestMultivariateTr
r@r]rAr[r)
�|	ߌ���?�v
��2R?r�g0��$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�?)r_r
�2)rRr3r)r3rRr)rrrRrj)gJ#��R�<g^����<g��L[�<g�N=��<g�`$��<zx, loc, shape, df, ansc�v�t|||d���}|�|��}t||��dS�Nrr�)r$r�r)rNrTr:r3rN�ans�dist�vals        r8�test_pdf_correctnessz&TestMultivariateT.test_pdf_correctness�s=���c�5�"�1�5�5�5���h�h�q�k�k��!�#�s�+�+�+�+�+r:c���t|||d���}|�|��}|�|��}tt	j|��|��dSr�)r$r�r�rr1r�)	rNrTr:r3rNr�r�rorps	         r8�test_logpdf_correctz%TestMultivariateT.test_logpdf_correct�sT���c�5�"�1�5�5�5���x�x��{�{���{�{�1�~�~��!�"�&��,�,��5�5�5�5�5r:c��gd�}tj|d���}tj|��}t||��dS)N)
r�r^r]r
���r�rr�r_rAr
�rN)r$r�r%r)rNrTr�r�s    r8�test_mvt_with_df_one_is_cauchyz0TestMultivariateT.test_mvt_with_df_one_is_cauchy�sE��-�-�-��� ��q�)�)�)���j��m�m��!�#�s�+�+�+�+�+r:c�J�d}tdddd���}|�d���}t|��\}}||ksJ�tddgd	d
gd
d	ggdd���}|�d���}t|��\}}||k���sJ�dS)Nr�rr
順�rNr�rxrbrArr_�*)r$r�r&r)rN�	P_VAL_MINr�rr?rts      r8�&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��#�#�%�%�&�&�&�&�&r:z'scipy.stats.multivariate_normal._logpdfc�"�tddtjd���}t|t��sJ�tjdtj���|jdksJ�tjdtj���|jdksJ�dS)Nrr
r^r�r�r@)r$r1r�r�rr��
call_countr�)rN�mockr�s   r8�!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�+�+�+�+���!�#�#�#�#�#�#r:c���d}tj|��}tj|��}d}tj|��}t|||���|��}tj|��sJ�t|||���|��}tj|��sJ�d}tj�||f��}t|||���|��}|j|fksJ�t|||���|��}|j|fksJ�ttjd��tjd��d���	��}tj|��sJ�d}ttjd��tjd��d���	|���}|j|fksJ�dS)Nr]�@r^r
rx)
r1r�rIr$r��isscalarr�r�r3r�)	rNrLr:r3rNrTr4�	n_samplesrys	         r8�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�$�$�$�$�$�$r:c��t��}t|jdg��t|jdgg��|jdksJ�dS)Nrr
�r$rr:r3rN)rNr�s  r8�test_default_argumentsz(TestMultivariateT.test_default_arguments�sJ�������T�X��s�#�#�#��T�Z�1�#��'�'�'���1������r:)NNNrr
r
)NNr^rr
r^Nr^z*loc, shape, df, loc_ans, shape_ans, df_ansc��t|||���}t|j|��t|j|��|j|ksJ�dS)N�r:r3rNr��rNr:r3rN�loc_ans�	shape_ans�df_ansr�s        r8�test_default_argsz#TestMultivariateT.test_default_args�sS���#�U�r�:�:�:���T�X�w�'�'�'��T�Z��+�+�+���6�!�!�!�!�!�!r:r_c��t|||��}t|j|��t|j|��t|j|��dSr0r�r�s        r8�&test_scalar_list_and_ndarray_argumentsz8TestMultivariateT.test_scalar_list_and_ndarray_arguments�sO���c�5�"�-�-���T�X�w�'�'�'��T�Z��+�+�+��T�W�f�%�%�%�%�%r:c	��ddgg}tttfit|�����ddgddgddgg}tttfit||�����t	jd��}t	jd��}d}tttfit|||�����d}tttfit|||�����dS)	Nr
)r:r@rA)r:r3r_r�r)r�rFr$rr1r�rI)rNr:r3rNs    r8�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�	;�	;�	;�	;�	;r:c�\�tj�d��}|�d���}tjd��}t||dd���}t||dd���}|�d���}|�d���}t||��dS)Nr]rArxr@r�r)r1r�ryrrIr$r�r)rNr�r:r3r��dist2�samples1�samples2s        r8r�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�(�(�(�(�(r:c��tddgddgddggdd���}ttjjt
fi|��dS)Nrr
F)r:r3rNrS)rr�r1r�rgr$)rNr6s  r8�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�Dr:ry)rrA)r[r\r]rArL)r@rAr]r[rNrRr�c��ttj|��tj|��|��}|�|���}|j||fzksJ�dSr:)r$r1r�rIr�r3)rNryrLrNr�r�s      r8�test_rvszTestMultivariateT.test_rvs	sW���b�h�s�m�m�R�V�C�[�[�"�=�=���h�h�D�h�!�!���y�D�C�7�N�*�*�*�*�*�*r:)r�r�r��	PDF_TESTSrEr�r�r�r�r�r�r.r�r�r��DEFAULT_ARGS_TESTSr�r1r��ARGS_SHAPES_TESTSr�r�r�r�r�r�r�r:r8r�r�:sm��������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�K]�^�^�#�#�_�^�#�
�Q��B�4�1�#���"�
���s�A��t�q�c�U�A�&�	���2�$������1�#����B�4�1�#���:����[���I�K\�]�]�&�&�^�]�&�;�;�;�2)�)�)�E�E�E�
�[���V�g�|�%<�=�=��[���U�L�L�L�1�1��[���T�B��B�F�#3�4�4�+�+�5�4�2�1�>�=�+�+�+r:r�c�D�eZdZej�dddgddgddfddgddgdejfd	dgddgdejfddgd
dgdejfddgddggd
dgd
dggddgejejgfd	dgd
dgdejfddgddgdejfddgddgdejfddgddgdejfddgddgdejfg
��d���Z	d�Z
d�Zd�Zej�dgd�dfgd�dfddgdfdgdff��d���Z
ej�ddgdgddfddgddgddfddgddggddgddgggddgddgddggdd gdd!ggfejgej��ejgej��dgfddgddgddfgd"�gd#�d$d%fg��d&���Zej�dddgddgdd'ggddd(gfdgdggdgdggddgd)d*gfdgdgggdgdggddgd)d*ggfdgdggdggggddgd)d*gggfg��d+���Zd,�Zd-�Zd.�Zd/�Zd0�Zd1�Zd2�Zd3�Zd4�Zd5�Zd6�Zd7S)8�TestMultivariateHypergeomzx, m, n, expectedrAr]r[rr^g������rr����r
r@rei����i����r�r�r_i����c�V�tj|||��}t||d���dS)Ng���ư>r')rrcr�rNrTr-r�r��valss      r8rhz%TestMultivariateHypergeom.test_logpmf)	s3��6&�,�Q��1�5�5����h�T�2�2�2�2�2�2r:c��tjddgddgd���}tjdddd���}t||d	�
��tjddgddgd���}tjdddd���}t||d	�
��dS)
NrAr
rr[r])rTr-r��)r�r�r�r�rbr'r^�)rrmr#rrns   r8�test_reduces_hypergeomz0TestMultivariateHypergeom.test_reduces_hypergeomG	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��.�.�.�.�.�.r:c���tddgd���}|�dd���}t|�d��|���d	�
��dS)NrAr[r]�r-r�r�rxr�rr;r'�rr�rr��rNr�r�s   r8r�z"TestMultivariateHypergeom.test_rvsR	s\��$�q�!�f��
2�
2�
2���f�f�$�S�f�1�1���������R�W�W�Y�Y�T�:�:�:�:�:�:r:c���tddgddggddg���}|�dd�	��}t|�d
��|���d���dS)
NrAr[rr]r�r��r�r@rxr�rr;r'r�r�s   r8�test_rvs_broadcastingz/TestMultivariateHypergeom.test_rvs_broadcastingY	sg��
#��1�v��2�w�&7�A�q�6�
B�
B�
B���f�f�)�#�f�6�6���������R�W�W�Y�Y�T�:�:�:�:�:�:r:zm, n)rrr�rr)rrrrrc��tj||��}tj|��}|���}|||dk<t||��dS)Nr)rr�r1r2r�r)rNr-r�r4�res_exs     r8�test_rvs_gh16171z*TestMultivariateHypergeom.test_rvs_gh16171^	sS��
%�(��A�.�.���J�q�M�M����������q�A�v���S�&�!�!�!�!�!r:g z�l���?rjr�gQ����?gE����|?g�
��y�?r�)r[r\r^r\g�z�p�?c�V�tj|||��}t||d���dS�NrSr'�rrmrr�s      r8r�z"TestMultivariateHypergeom.test_pmfi	s3��"&�)�!�Q��2�2����h�T�2�2�2�2�2�2r:r�g�� ���?rRr�c�V�tj|||��}t||d���dSr�r�r�s      r8r�z/TestMultivariateHypergeom.test_pmf_broadcasting}	s3��&�)�!�Q��2�2����h�T�2�2�2�2�2�2r:c�p�tjgd�d���}gd�gd�gd�g}t||d���dS)	N)rAr^rr�r�)g���f_��?�&BU�п疈Cx�@ؿ)r�g�gs�>d�?�Z��sK�)r�r�g��3�5�?rbr'�rr�rr�s   r8r�z"TestMultivariateHypergeom.test_cov�	sZ��%�)�J�J�J�"�=�=�=��6�6�6�6�6�6�6�6�6�8��	��d��.�.�.�.�.�.r:c�j�tjddgddggddg���}dd	gd	dggd
dgdd
ggg}t||d�
��tjdgdggddg���}dggdggg}t||d�
��tjddgddg���}dd	gd	dggddgddggg}t||d�
��dS)Nr^r�rr�rjr�r�g�������?g�������g�(\���?g�(\����rbr'r]r[r�g333333�?g333333�r�r�s       r8r�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��.�.�.�.�.�.r:c��tjddgd���}tjddd���}t||d���dS)	Nrr[r]r�r��r�r�r�rbr')rr�r#r)rN�var0�var1s   r8�test_varz"TestMultivariateHypergeom.test_var�	sL��%�)�R��G�q�9�9�9���}�r�Q�"�-�-�-����d��.�.�.�.�.�.r:c���tjddgddg���}tjddgd���}tjddgd���}t|d|d���t|d	|d���tjddgdd
ggddg���}ddgddgg}t||d���tjdgdggddg���}d
gd
gg}t||d���dS)Nrr[r]rjr�rrbr'r
rkg̍3�eY�?g�I��{��?r�)rr�r)rNr�r��var2�var3�var4�var5�var6s        r8�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��.�.�.�.�.�.r:c���tjddgd���}tjddd���}t|d|d�	��tjd
dgd���}dd
g}t||d�	��dS)Nrr[r]r�r�r�rrbr'r�rjg@r)rr�r#r�rN�mean0r�ru�mean3s     r8r�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�0r:c�v�tjddgddggddg���}ddgd	d
gg}t||d���dS)
NrAr[rr]rjr�r�r�gUUUUUU@gUUUUUU@rbr')rr�r)rNr�r�s   r8r�z0TestMultivariateHypergeom.test_mean_broadcasting�	sW��&�+��1�v��A�w�.?�A�q�6�J�J�J���H�%�
�I�'>�?����u�4�0�0�0�0�0�0r:c�H�tjgd�d���}t|gd���tjgd�d���}t|tjtjtjg��tjgd�gd�gd���}t|tjtjtjggd�gd	�
��tjtjgtj��d���}t|g��t|j	dk��dS)Nr`rr��r�r�r��r
rrr@r�)rRr�rR��FF�g<r'r-)
rr�rr1r_rr��int_rr3r�s     r8�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�2�7�.C�.C�q�I�I�I���U�B�������u�$�%�%�%�%�%r:c�L�tjgd�d���}t|gd�d���tjgd�d���}t|tjtjtjg��tjgd�gd	�gd���}t|tjtjtjggd�gd
���tjt	jgtj��d���}t|g��t|j	dk��dS)Nr`rr�r�g��ؗ�Ҝ<r'r�r@r�r�r-)
rr�rrr1r_r�r�rr3)rNr�r�r�r�s     r8�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���,A�,A�Q�G�G�G���T�2������
�e�#�$�$�$�$�$r:c��tjgd�d���}gd�gd�gd�g}t||d���tjgd�d���}gd�gd�gd�g}t||��tjt	jgtj��d���}t	jgtj�	���dd��}t||d���t|j
d
k��dS)Nr�r
r�r�r�r'r`rrr9)rr�rrr1r�r��float_r�rr3)rN�cov0r�r�r�r�r�s       r8�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���,A�,A�Q�G�G�G���x��"�)�,�,�,�4�4�Q��:�:����d��/�/�/�/���
�f�$�%�%�%�%�%r:c��tj�d��d}gd�}gd�gd�gd�gd�gd�g}tj|tj�	��}t||��}t
|�|��tj|||����t
|�|��tj|||����t
|�	��tj	||����t
|�
��tj
||����dS)
Nr�r�)r^r�r��
r�r�r�r�r�r)r1r�r�r2r�rrrmrcr�r�)rNr�r-rT�
mhg_frozens     r8rKz%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�Kr:c��tttjddd��tttjddgd��tttjddgdgd��tttjddgddgd��tttjddgddgd��tttjddgddgd��dS)	Nr[rr]g@r�r�g%@g/@)r�rFrrm�	TypeErrorr�s r8�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��	%�	%�	%�	%�	%r:N)r�r�r�rEr�r�r1�NINFr_rhr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrKr	r�r:r8r�r�(	sN�������[������V�a��W�a��+���V�a��W�a���)��!�W�q�"�g�q�"�'�*���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���)�+	
���43�3�5��43�	/�	/�	/�;�;�;�;�;�;�
�[���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���$9�$9�1�b�A���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� 	%�	%�	%�	%�	%r:r�c��eZdZd�Zd�Zej�dd��d���Zd�Z	ej�dd��ej�d	d��d
�����Z
ej�dd��d
���Zd�Zej�dd��d���Z
ej�dd��d���Zej�dd��d���Zej�dd��ej�dgdgf��ej�dgdgf��d�������Zej�dd��d���Zd�Zej�dd��d���ZdS)�TestRandomTablec�@�tj�d��S)Nl�O�f�E)r1r�r�r�s r8�get_rngzTestRandomTable.get_rng
s���y�$�$�%7�8�8�8r:c���d}tjt|���5tddggddg��ddd��n#1swxYwYd}tjt|���5tddgddgg��ddd��n#1swxYwYd}tjt|���5tddgddg��ddd��n#1swxYwYd}tjt|���5tddgdd	g��ddd��n#1swxYwYd
}tjt|���5tddgddg��ddd��n#1swxYwYd}tjt|���5td
d
ggd���ddd��n#1swxYwYd}tjt|���5tddggd���ddd��n#1swxYwYddg}gd�}tjddggd���\}}}t||��t||��|t
j|��ksJ�dS)Nz`row` must be one-dimensionalr>r
r@z`col` must be one-dimensionalz*each element of `row` must be non-negativer_z*each element of `col` must be non-negativerbz'sums over `row` and `col` must be equalrz(each element of `row` must be an integerg������@)r
r
r@z(each element of `col` must be an integer)rrr
rA�r@r
r
)rEr	rFr'�_process_parametersrr1r�)rNrO�row�colrrVr�s       r8�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�2C�C�C�;D�D �#D �E%�%E)�,E)�
F.�.F2�5F2�G7�7G;�>G;zscale,method))r
�boyett)r�	patefieldc��tjddg��|z}tjgd���|z}t}|�|||d���}|�||dd���}t	||��dS)Nr
rAr��methodr�)r1r�r'r�r)rNr5rrr�ctr��gots        r8�test_process_rvs_method_on_Nonez/TestRandomTable.test_process_rvs_method_on_None4
s����h��1�v����&���h�y�y�y�!�!�E�)��
���6�6�#�s�6��6�B�B���f�f�S�#�d��f�;�;���X�s�#�#�#�#�#r:c��ddg}gd�}d}tjt|���5tj||d���ddd��dS#1swxYwYdS)Nr
rArz$'foo' not recognized, must be one ofr>�foo)r)rEr	rFr'r�)rNrrrOs    r8�$test_process_rvs_method_bad_argumentz4TestRandomTable.test_process_rvs_method_bad_argument@
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�Ar�)TFr�c�n�����|���}ddg�gd��tj��dd|���}|rt����nt}t||rdnd���|s	�����fd	��|r�fd
�n�}t	j|dd�
��\}}||��}	t
|	t|��z|d���|t|d����}
t|
|	d��|�
d|jdd�z��}||��}	|	jdksJ�t|	jd��D]N}t|	jd��D]1}
|	||
f}|||
f}||��}t||���2�Ogd�gd�g}tt	j
|d������||��}	|	dksJ�gd�gd�g}tt	j
|d������||��}	|	dksJ�d}tjt |���5|dg��ddd��n#1swxYwYd}tjt |���5|dgg��ddd��n#1swxYwYd}tjt |���5|tjgg��ddd��n#1swxYwYd}tjt |���5|dgg��ddd��n#1swxYwYd}tjt |���5|gd�g��ddd��n#1swxYwYd }tjt |���5|ddgd!d"gg��ddd��dS#1swxYwYdS)#Nr@r\�r
rAr]r�r�ryrr�rcrmc����|����Sr0r�)rTr�original_methodrs ���r8rz/TestRandomTable.test_pmf_logpmf.<locals>.methodZ
s���&��q�#�s�3�3�3r:c�>��tj�|����Sr0)r1r)rTrs �r8rUz1TestRandomTable.test_pmf_logpmf.<locals>.<lambda>\
s�������q�	�	�*�*�r:rT�r~�
return_countsr�r')rrr
)rr
r
)r@r
rAr_r}r�)r
r@r@rbz$`x` must be at least two-dimensionalr>z%`x` must contain only integral valuesrz)`x` must contain only non-negative valuesz"shape of `x` must agree with `row`rDz"shape of `x` must agree with `col`rAr])rr'r�rir1�uniquerr6r�rr�r3r�r�rEr	rFr_)rNr�r�r�r��objrm�
unique_rvs�countsrt�p2�rvs_ndr,r-�pij�rvij�qijrTrOrrr$rs                   @@@@r8�test_pmf_logpmfzTestRandomTable.test_pmf_logpmfI
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�8J�J�J�:K�K"�%K"�L � L$�'L$�M#�#M'�*M'�N*�*N.�1N.r)rrc�(�|���}ddg}gd�}tj||d||���}tj||��}t	tj|��tj|����t|�d��|d���t	|�d	�
��tj|d����t	|�d�
��tj|d
����dS)Nr@r\r!r�r"rr�ror_r}r�rb)r�rA)	rr'r�r�rr1r�r�broadcast_to)rNrr�rrr�r�s       r8�
test_rvs_meanzTestRandomTable.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�Gr:c��|���}ddg}gd�}tj||dd|���}tj||dd|���}tj|d�	��}tj|d�	��}t||d
���dS)Nr@r\r!rurr"rrr}�{�G�z�?ro)rr'r�r1r�r)rNr�rrr�r�r�rvs        r8�test_rvs_covzTestRandomTable.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��.�.�.�.�.�.r:c	�P�ddg}gd�}tj||||������}|jdksJ�tj||d||������}|jdksJ�t	||d	��tj||d	||������}|jd
ksJ�tj||d||������}|jdksJ�tj||d
||������}|jdksJ�t|�ddd��|d���d}	tjt|	���5tj||d||������ddd��n#1swxYwYtjt|	���5tj||tj||������ddd��dS#1swxYwYdS)Nr@r\r!rr�r
r"rDr)rr@rAr�)r�r@rA)r]r[)r]r[r@rArAr�r'z/`size` must be a non-negative integer or `None`r>r_)r'r�rr3rrr�rEr	rFr1r_)
rNrrrr��rv2�rv3�rv4�rv5rOs
          r8�
test_rvs_sizezTestRandomTable.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�2F6�9F6�6H�H�"Hc�"�ddg}gd�}t}|�||d||������}tj|dd���\}}|�|||��}t
|t|��z|d	�
��dS)Nr@r\r!r�r"rTr&r6r')r'r�rr1r(rmrr6)	rNrrrrr�r*r+rts	         r8�test_rvs_methodzTestRandomTable.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�8r:c�(�gd�}gd�}t||��}|�d||������}tjdt|��t|��f��}gd�gd�gd�g|d<t
||��dS)Nr�)r
rrrr�r)rrrr.�r'r�rr1r�r6r�rNrrrrlr�r�s       r8�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��"�"�"�"�"r:)Nrrrrrc��t||��}|�d||������}tjdt|��t|��f��}t
||��dS)NrrrArBs       r8�test_rvs_with_edge_casesz(TestRandomTable.test_rvs_with_edge_casessj��
��c�"�"��
�U�U�2�f�4�<�<�>�>�U�
B�
B���8�R��S���3�s�8�8�4�5�5���R��"�"�"�"�"r:r�r>c��ddlmcm}tjddgtj���}tjgd�tj���}t
|d|����}tj|��}||||d|�����}|j	dt|��t|��fksJ�tj|��|ksJ�dS)Nrr
rArr�	rvs_rcont)�scipy.stats._rcontrA�_rcontr1r��int64rir�rr3r6)rNr�rIrrr��ntot�results        r8�test_rvs_rcontzTestRandomTable.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�~�~��%�%�%�%�%�%r:c���ddg}gd�}t|||������}|���}tj||��}t	||�����tj|||��}t	||�|����tj|||��}t	||�|����dS)Nr@r\r!r�)r'rr�r�rrmrc)rNrrrlr|r�s      r8rKzTestRandomTable.test_frozens����!�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�0r:c��ddg}gd�}t|||������}tj||d||������}|�d|���}t||��dS)Nr@r\r!r�rr")ryr)r'rr�r)rNrrrrlr�rs       r8�test_rvs_frozenzTestRandomTable.test_rvs_frozen+s����!�f���i�i����c������7�7�7���#�C��2�f�15�����A�A�A���e�e��F�e�+�+���X�s�#�#�#�#�#r:N)r�r�r�rrrEr�r�rrr1r4r7r=r?rCrErMrKrPr�r:r8r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�'>�?�?�$�$�@�?�$�$�$r:rc���|j}d|_|j|ddi�tj|��}|j|ddi�}tj|��}|j|ddi�}t||��||_dS)Nr�ryrj)r�r��pickle�dumps�loadsr)�distfnr6r{r��r0�	unpickled�r1s       r8�check_picklingrY6s���
��D��F���F�J���1������V���A�	���T�	"��	"�	"�B���Q���I�	����	%�1�	%�	%�B���R�����F���r:c�>�tjd��}d|d<d|d<tdgttjdg��fgt
d|fgtd|fgtdgd	�fgtd
gtd
gg}|D]%\}}t||��t||���&dS)NrAr3r�r�r�rRrr[r rM)r1rIrrr�rrrrrr-rY)r5�distsrUr6s    r8�test_random_state_propertyr\Js����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�$�$�$�$�%�%r:)O�__doc__rR�
numpy.testingrrrrrrrEr	r��test_continuous_basicrr�r1�scipy.linalgr��scipy.stats._multivariaterr
rr�scipy.statsrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*�scipy.integrater+�
scipy.specialr,�common_testsr-�
unittest.mockr.r9r<r�r�r�r�r8r:r^r�r�rrGrlr�r�r�rrYr\r�r:r8�<module>rgs������
�
�
�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�C�C�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�0�/�/�/�/�/�/�/� � � � � � �&�&�&�&�&�&�5�5�5�5�5�5�������'�'�'�B�B�B�B�B�B�B�B�J
�
�
�XI�XI�XI�XI�XI�XI�XI�XI�vE*�E*�E*�E*�E*�E*�E*�E*�P~1�~1�~1�~1�~1�~1�~1�~1�B-�-�-�&}9�}9�}9�}9�}9�}9�}9�}9�~]#�]#�]#�]#�]#�]#�]#�]#�~a(�a(�a(�a(�a(�a(�a(�a(�HC:�C:�C:�C:�C:�C:�C:�C:�Jh&�h&�h&�h&�h&�h&�h&�h&�Td#�d#�d#�d#�d#�d#�d#�d#�N6+�6+�6+�6+�6+�6+�6+�6+�p7#�7#�7#�7#�7#�7#�7#�7#�tk+�k+�k+�k+�k+�k+�k+�k+�\a%�a%�a%�a%�a%�a%�a%�a%�Hh$�h$�h$�h$�h$�h$�h$�h$�T	���(%�%�%�%�%r:

Youez - 2016 - github.com/yon3zu
LinuXploit