
    !g                         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      Z G d d	      Zed
k(  rddlZ ej                   edddg       yy)z=
Created on Sat Apr 16 15:02:13 2011
@author: Josef Perktold
    N)assert_almost_equalassert_allclose)
mvstdtprobmvstdnormcdf)MVTMVNormalc                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)Test_MVN_MVT_probc                    t        j                  g dg dg dg      | _        dt        j                  d      z  | _        dt        j                  d      z  | _        d| _        | j                  j                         }d|d<   || _        y )	N)      ?      ?r   )r      r   )r   r   r               )   r   )	npasarray
corr_equalonesabdfcopycorr2)clsr   s     v/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/sandbox/distributions/tests/test_multivariate.pysetup_classzTest_MVN_MVT_prob.setup_class   sh    _[$MNRWWQZBGGAJ##%c
	    c           	         | j                   | j                  }}| j                  }| j                  }d}d}t	        |t        ||||      d       t	        |t        |||d      d       t        |||dd      }t	        ||d	       y )
NghU?g)?r   h㈵>abseps:0yE>i )r$   maxpts   )r   r   r   r   r   r   r   )selfr   r   r   r   	probmvt_R	probmvn_Rmvn_highs           r   test_mvn_mvt_1z Test_MVN_MVT_prob.test_mvn_mvt_1   s    vvtvv1WW__
 		Iz!Q
B'GKI(Az$G	L  1jhOIx3r    c           	          | j                   | j                  }}| j                  }| j                  }d}d}t	        |t        ||||      d       t	        |t        |||d      d       y )Ng E?g^Nl?r   r"   r#   )r   r   r   r   r   r   r   )r(   r   r   r   r   r*   r)   s          r   test_mvn_mvt_2z Test_MVN_MVT_prob.test_mvn_mvt_21   s]    vvtvv1WW

		Iz!Qr'BAFI|Aq%'MqQr    c                 4   | j                   | j                  }}| j                  }| j                  }|j	                         }t
        j                   |d d  d}d}ddi}t        |||||      }	t        ||	d       t        |||dd	
      }
t        ||
d       y )NgR*?gT¸x?epsabsr%   )quadkwdsgMb@?)atol順 r"   r&   r$   g-C6?)
r   r   r   r   r   r   infr   r   r   )r(   r   r   r   r   a2r*   r)   r1   probmvtprobmvns              r   test_mvn_mvt_3z Test_MVN_MVT_prob.test_mvn_mvt_3;   s    vvtvv1WW

VVX1		e$RE2A	76r1eF4H	76r    c           
      l   | j                   | j                  }}| j                  }| j                  }|j	                         }t
        j                   |d d  d}d}t        |t        t        j                  d      | ||      d       t        |t        t        j                  d      | |dd      d       y )NgUU?r   r   r3   r"   r4   )r   r   r   r   r   r   r5   r   r   zerosr   )r(   r   blr   r   r6   r*   r)   s           r   test_mvn_mvt_4z Test_MVN_MVT_prob.test_mvn_mvt_4L   s    2WW

 VVX1		Iz"((1+sE2'NPQRI(!rc506tEFG	Ir    c           
         | j                   | j                  }}| j                  }| j                  }t	        j
                  g d      }d}d}t        t        ||dz   ||      |d       t        |t        ||dz   |dd      d       y )	N)r   r   r   gT۰?gWa?r   r   r3   r"   r4   )	r   r   r   r   r   arrayr   r   r   )r(   r   r<   r   r   a3r*   r)   s           r   test_mvn_mvt_5z Test_MVN_MVT_prob.test_mvn_mvt_5\   s    2WW

 XX&'		Jr2a4;YJI|B1e7=d(LMN	Pr    N)
__name__
__module____qualname__classmethodr   r,   r.   r9   r=   rA    r    r   r
   r
      s2      4*R7"I Pr    r
   c                   (    e Zd Zed        Zd Zd Zy)TestMVDistributionsc                    t        j                  ddgddgg      }g d}t        j                  g dg dg dg      }|| _        || _        t	        ||      }t	        t        j                  g d      |      }|| _        || _        y )Nr   r   )r                  @)r   r         ?)r   g      ?333333?)rL   rM   rK   r   r   r   )r   r?   mu3cov3r   mvn3mvn3c)r   covxrO   rP   rQ   rR   s         r   r   zTestMVDistributions.setup_classn   s}    xx#sc3Z01xx...0 1 T"'*D1	r    c                 <   | j                   }| j                  }g d}t        |j                  |      |d       g d}t        |j	                  |      |d       t        t        j                  g d      |      }g d}t        |j	                  |      |d       y )N)g&Ng&Ng&NgvIh%<=)rtol)gue>?g7P?gTw?rN   )gEOQם?g4x=?g9"8?)rP   rQ   r   logpdfpdfr   r   r?   )r(   rP   rQ   r_valmvn3bs        r   test_mvn_pdfz TestMVDistributions.test_mvn_pdf}   s    yyyy
 	D)5u=
 	E:),d3
 			$U;r    c                     | j                   }| j                  }t        ddd      }t        |j	                  t        j                  ddg            dd       t        |j                  t        j                  ddg            dd       |j	                  t        j                  d	d	g            d
z
   t        ddd      }|j	                  t        j                  d	d	g            dz
   |j                  d      }t        t        j                  |d      |j                  d       t        ||d      }t        |j                  |      g dd       t        ||d      }t        |j                  |      g dd       y )N)r   r   r   r'   rJ   gdg   )decimalgm0_?r   gX*#g!4r3   F)rowvar)g<G?gx-ZP?gD5If?   r   )gvML?gzDT?g/o6q?)
rP   rO   r   r   rV   r   r?   rW   rvscov)r(   reset_randomstaterP   rO   mvtmvt1r`   mvt31s           r   test_mvt_pdfz TestMVDistributions.test_mvt_pdf   s6   yyhh&!QCJJrxxR'9:<N$&	(CGGBHHb"X$679K$&	( 	

288RH%&*;<61a BHHb"X&'+<=ggfoBFF3u5swwJCq!EIIdO4$&	(
 #tQCGGDM3$&	(r    N)rB   rC   rD   rE   r   rZ   rf   rF   r    r   rH   rH   k   s       <((r    rH   __main__z-vvsz-xz--pdb)__doc__numpyr   numpy.testingr   r   .statsmodels.sandbox.distributions.multivariater   r   +statsmodels.sandbox.distributions.mv_normalr   r   r
   rH   rB   pytestmain__file__rF   r    r   <module>rp      s_     ? E[P [P|B( B(J zFKK6412 r    