a
    \:b                     @   s   d Z ddlZddlmZmZmZ ddlmZm	Z	 ddl
mZmZ G dd deZG dd	 d	eZed
krd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_array_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   s`   t g dg dg dg| _dt d | _dt d | _d| _| j }d|d< || _d S )	N)      ?      ?r   )r      r   )r   r   r               )   r   )	npZasarray
corr_equalZonesabdfcopycorr2)clsr    r   Xlib/python3.9/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 )
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_23   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   Zzerosr   )r#   r   blr   r   r,   r%   r$   r   r   r   test_mvn_mvt_4N   s    z Test_MVN_MVT_prob.test_mvn_mvt_4c              	   C   sl   | j | j }}| j}| j}tg d}d}d}tt||d |||d t|t||d |dddd d S )	N)r   r   r   gT۰?gWa?r   r   r)   r   r*   )	r   r   r   r   r   arrayr   r   r   )r#   r   r.   r   r   Z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   st   t ddgddgg}g d}t g dg dg dg}|| _|| _t||}tt g d|}|| _|| _d S )Nr
   r   )r                  @)r
   r         ?)r   g      ?333333?)r9   r:   r8   r   r   r   )r   r0   mu3cov3r   mvn3mvn3c)r   Zcovxr<   r=   r>   r?   r   r   r   r   p   s    

zTestMVDistributions.setup_classc                 C   sx   | j }| j}g d}t|||dd g d}t|||dd ttg d|}g d}t|||dd d S )	N)g&Ng&Ng&N   Zdecimal)gue>?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||g ddd t||d}t||g ddd d S )N)r   r   r   r"   r7   gdg   rA   gm0_?r
   gX*#g!4r)   F)Zrowvar)g<G?gx-ZP?gD5If?rB   r   )gvML?gzDT?g/o6q?)
r=   r<   r   r   rD   r   r0   rE   rvsZcov)r#   Zreset_randomstater=   r<   ZmvtZmvt1rH   Zmvt31r   r   r   test_mvt_pdf   s0    


z TestMVDistributions.test_mvt_pdfN)r2   r3   r4   r5   r   rF   rI   r   r   r   r   r6   m   s   
r6   __main__z-vvsz-xz--pdb)__doc__Znumpyr   Znumpy.testingr   r   r   Z.statsmodels.sandbox.distributions.multivariater   r   Z+statsmodels.sandbox.distributions.mv_normalr   r   objectr	   r6   r2   Zpytestmain__file__r   r   r   r   <module>   s   ^@