U
    Kvf                     @   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   ]/tmp/pip-unpacked-wheel-2v6byqio/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 )
NghU?g)?r   h㈵>abseps:0yE>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   )quadkwdsgMb@?)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 )NgUU?r   r   r(   r   r)   )r   r   r   r   r   r   r*   r   r   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   gT۰?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/   r2   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   r0   mu3cov3r   mvn3mvn3c)r   Zcovxr9   r:   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gvIh%<=)Zrtolgue>?g7P?gTw?r   gEOQם?g4x=?g9"8?)r:   r;   r   logpdfpdfr   r   r0   )r"   r:   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!   r8   gdg   )decimalgm0_?r	   gX*#g!4r(   F)Zrowvarg<G?gx-ZP?gD5If?   r   gvML?gzDT?g/o6q?)
r:   r9   r   r   r=   r   r0   r>   rvsZcov)r"   Zreset_randomstater:   r9   ZmvtZmvt1rC   Zmvt31r   r   r   test_mvt_pdf   s8    


z TestMVDistributions.test_mvt_pdfN)r3   r4   r5   r6   r   r?   rD   r   r   r   r   r7   l   s   
r7   __main__z-vvsz-xz--pdb)__doc__Znumpyr   Znumpy.testingr   r   Z.statsmodels.sandbox.distributions.multivariater   r   Z+statsmodels.sandbox.distributions.mv_normalr   r   r   r7   r3   Zpytestmain__file__r   r   r   r   <module>   s   ^E