U
    Ãmœdž  ã                   @   s~   d Z ddlZddlmZmZ ddlmZmZ ddl	m
Z
mZ G dd„ dƒZG dd	„ d	ƒZed
krzddlZe edddg¡ dS )z=
Created on Sat Apr 16 15:02:13 2011
@author: Josef Perktold
é    N)Úassert_almost_equalÚassert_allclose)Ú
mvstdtprobÚmvstdnormcdf)ÚMVTÚMVNormalc                   @   s@   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )ÚTest_MVN_MVT_probc                 C   sf   t  dddgdddgdddgg¡| _dt  d¡ | _dt  d¡ | _d| _| j ¡ }d|d< || _d S )	Nç      ð?ç      à?é   éÿÿÿÿé   é   ç      à¿)é   r   )	ÚnpZasarrayÚ
corr_equalZonesÚaÚbÚdfÚcopyÚcorr2)Úclsr   © r   úr/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/sandbox/distributions/tests/test_multivariate.pyÚsetup_class   s    $
zTest_MVN_MVT_prob.setup_classc                 C   sr   | j | j }}| j}| j}d}d}t|t||||ƒdƒ t|t|||dd�dƒ t|||ddd�}t||d	ƒ d S )
Ng÷’ÆhUã?g†�ˆ)‘å?r   çñhãˆµøä>©Úabsepsç:Œ0âŽyE>i€–˜ )r   Úmaxptsé   )r   r   r   r   r   r   r   )Úselfr   r   r   r   Ú	probmvt_RÚ	probmvn_RZmvn_highr   r   r   Útest_mvn_mvt_1   s     ÿz Test_MVN_MVT_prob.test_mvn_mvt_1c                 C   sT   | j | j }}| j}| j}d}d}t|t||||ƒdƒ t|t|||dd�dƒ d S )Ngã» E¶ä?g^‘NlÒâ?r   r   r   )r   r   r   r   r   r   r   )r"   r   r   r   r   r$   r#   r   r   r   Útest_mvn_mvt_22   s    z Test_MVN_MVT_prob.test_mvn_mvt_2c                 C   s†   | j | j }}| j}| j}| ¡ }tj |d d …< d}d}ddi}t|||||d�}	t||	dd� t	|||dd	d
�}
t||
dd� d S )Ng´R­*àï?gTÂ¸ÀŠxî?Zepsabsr   )Úquadkwdsgü©ñÒMb@?)Zatolé † r   ©r    r   g-Cëâ6?)
r   r   r   r   r   r   Úinfr   r   r   )r"   r   r   r   r   Úa2r$   r#   r'   ZprobmvtZprobmvnr   r   r   Útest_mvn_mvt_3<   s    z Test_MVN_MVT_prob.test_mvn_mvt_3c              	   C   s~   | j | j }}| j}| j}| ¡ }tj |d d …< d}d}t|tt 	d¡| ||ƒdƒ t|t
t 	d¡| |ddd�dƒ d S )Ngò†êœUUÅ?r   r   r(   r   r)   )r   r   r   r   r   r   r*   r   r   Zzerosr   )r"   r   Úblr   r   r+   r$   r#   r   r   r   Útest_mvn_mvt_4M   s     ÿþz Test_MVN_MVT_prob.test_mvn_mvt_4c              	   C   sn   | j | j }}| j}| j}t dddg¡}d}d}tt||d ||ƒ|dƒ t|t||d |ddd	�dƒ d S )
Nr
   r   géò¤TÛ°±?gŸùWa¯­?r   r   r(   r   r)   )	r   r   r   r   r   Úarrayr   r   r   )r"   r   r-   r   r   Úa3r$   r#   r   r   r   Útest_mvn_mvt_5]   s     ÿÿz Test_MVN_MVT_prob.test_mvn_mvt_5N)
Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r%   r&   r,   r.   r1   r   r   r   r   r      s   


r   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestMVDistributionsc                 C   s~   t  ddgddgg¡}dddg}t  dddgdddgdddgg¡}|| _|| _t||ƒ}tt  d	d	d	g¡|ƒ}|| _|| _d S )
Nr	   r
   r   ç        g       @g      è?g      ø?g333333ã?r   )r   r/   Úmu3Úcov3r   Úmvn3Úmvn3c)r   Zcovxr8   r9   r:   r;   r   r   r   r   o   s    
þ
zTestMVDistributions.setup_classc                 C   s€   | j }| j}dddg}t| |¡|dd� dddg}t| |¡|dd� tt d	d	d	g¡|ƒ}d
ddg}t| |¡|dd� d S )Ng&N¬Àg&N¬Àg&N¬Àg‚vIhÂ%<=)Zrtolgãœu�e¤>?g»‘ý¨¥7P?g¬á¤ÅTw?r   gEOQ•×�?g4¾x£¶=—?g9"8¤’?)r9   r:   r   ÚlogpdfÚpdfr   r   r/   )r"   r9   r:   Zr_valZmvn3br   r   r   Útest_mvn_pdf~   s$      ÿ  ÿ  ÿz TestMVDistributions.test_mvn_pdfc                 C   s  | j }| j}tdddƒ}t| t ddg¡¡ddd� t| t ddg¡¡ddd� | t d	d	g¡¡d
  tdddƒ}| t d	d	g¡¡d  | d¡}ttj	|dd�|j	dd� t||dƒ}t| |¡dddgdd� t||dƒ}t| |¡dddgdd� d S )N)r   r   r   r!   r7   g²¾dÈñgý¿é   )Údecimalg�ÈÉm0_Ä?r	   gXÆ*#ÎÀg¢!4ÀèâÀr(   F)Zrowvarg¨±—ê<ØG?gì˜x-ZP?gD5åI©f?é   r   gv�âäãML?gzŸ–ÃDîT?gÉ/o6q?)
r9   r8   r   r   r<   r   r/   r=   ÚrvsZcov)r"   Zreset_randomstater9   r8   ZmvtZmvt1rB   Zmvt31r   r   r   Útest_mvt_pdf’   s8    ÿÿ

ÿý
ÿýz TestMVDistributions.test_mvt_pdfN)r2   r3   r4   r5   r   r>   rC   r   r   r   r   r6   l   s   
r6   Ú__main__z-vvsz-xz--pdb)Ú__doc__Únumpyr   Znumpy.testingr   r   Z.statsmodels.sandbox.distributions.multivariater   r   Z+statsmodels.sandbox.distributions.mv_normalr   r   r   r6   r2   ZpytestÚmainÚ__file__r   r   r   r   Ú<module>   s   ^E