
p7]c        h   @   s  d  Z  d d l Z d d l m Z d d l m Z e d d d d g d	 d
 d d g d d d d g d d d d g d d d d g d d d d g d d d d  g d! d" d# d$ g d% d& d' d( g d) d* d+ d, g d- d. d/ d0 g d1 d2 d3 d4 g d5 d6 d7 d8 g d9 d: d; d< g d= d> d? d@ g dA dB dC dD g dE dF dG dH g dI dJ dK dL g dM d dN dO g dP dQ dR dS g dT dU dV dW g dX dY dZ d[ g d\ d] d^ d_ g d` da d da g db dc dd de g df dg dh di g dj dk dl dm g dn do dp dq g dr ds dt du g dv dw dx dy g dz d{ d| d} g d~ d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g d d d+ d g d d d d g d dddg ddddg dd	d
dg dddd g ddddg ddddg ddddg ddddg dd d!d"g d#d$d%d&g d'd(d)d*g d+d,d-d.g d d/d0d1g d2d3d4d5g d6d7d8d9g d:d;d<d=g d>d?d@dg dAdBdCdDg dEdFdGdHg dIddJdKg dLdMd dNg de dOdPdQg dRdSdTdq g dUdVdWdXg dYdZd[d\g d]d^dD d_g d`dadbdcg dddedfdgg dhdidjdkg dldmdndog dpdqdrdsg dtd6dudvg dwdxdydzg d{d|d}d~g ddddg gd  Z e dZ de f d    YZ	 dd Z
 dd Z d  Z e dk rd dl m Z d d l Z e j j Z e ddZ e dZ dZ e	 d Z de _ e j e g  ddd\ e _ e _ e _ e j e g  ddd\ e _ e _ e _ e j de de   e	 d Z! de! _ e j" e g  ddd\ e! _# e! _ e! _ e j" e g  ddd\ e! _$ e! _ e! _ e! j de de%  e	 d Z& de& _ e j' e de d g  ddd\ e& _( e& _ e& _ e j' e de d g  ddd\ e& _) e& _ e& _ e& j de de%  e	 d Z* de* _ e j+ e e j,   dd Z- e j e- j. j/    e* _0 e j+ e e j,   d2d Z- e j e- j. j/    e* _1 e* j de de%  n  d S(  sl   generate py modules with test cases and results from mlabwrap

currently matlab: princomp, garchar, garchma
iN(   t   assert_array_almost_equal(   t   arrayi]i%iii   i  i8iKiiiiiii
iia  ipi  i  iiii1   i   ii{   ii  i  ii  i   ii  iNiiK   i>ii=iii5i&  iiiii`  ii=  ii   i=i  ipiV  iH  i-i   iii4i  i4i`   i6   i  iii}  iii  i  iR   ii  iiVii  ii  i  i{i  i   i>i5iSi6iis   i  i  ii  i  i i   iii  iuiYiD  i  iiix  iiii  ii	  iii   ii0  iiK  ii  ii+  i1  iD   i   i  iiei  i  i  iii  ii  ia  i(  i=  iG  i  i+idi+i  iI   i-i   i<iiii  i{i   iiWi,i0  i  iiiiixi  iU   i   ii  iF  i  iV  i/io  iiii  i   iii  i  iiiiiigii  i  iz  i.i  i iiiii   is  iid  i$iii  iZ  i   iii  ii/i  iit  i5   i-  i8  iK  iPiGiiS  iF  i*  ii  i4i`iiVii   ioii  iSi3i1iY  ii   ii\i9ii5  i  ir  iiEi  iN   i*iimi3  i  ii  i;  i_  iv  iC  i}iii*	  i  i   iG  izi   i   iZ   i  i  ii   i0  i  i%  i7  ip  i  ii'  i[
  i6  i{  iCi   i  i  i  iii%  iiyi&  i  i	  i9ii  iiiii7iieii  i  iii)  i ii	i)  iiiTi@i  iX  i&  i
  i   iH  ii  i$  ii  i  i   i|iHiiR  i  iii+ii   iKiv  i  i  iji  iR  i  i"   i   iii  i   iiii  i*i  iI  ihih  g     @@t   HoldItc           B   s)   e  Z d    Z d d e e d d  Z RS(   c         C   s   | |  _  d  S(   N(   t   name(   t   selfR   (    (    sK   lib/python2.7/site-packages/statsmodels/sandbox/tests/maketests_mlabwrap.pyt   __init__t   s    c   
   	   C   s4  | d  k r" d   |  j D } n  | rJ d g } | rP | j d  qP n g  } | rz | j d |  j  d |  j } n d } | d  k	 r | j d | | f  n  x7 | D]/ } | j d | | t t |  |   f  q W| j d d g  | d  k	 r0t | d	   }	 |	 j d
 j	 |   Wd  QXn  | S(   Nc         s   s%   |  ] } | d  d k r | Vq d S(   i    t   _N(    (   t   .0t   i(    (    sK   lib/python2.7/site-packages/statsmodels/sandbox/tests/maketests_mlabwrap.pys	   <genexpr>y   s    s,   import numpy as np
from numpy import array

s.   from statsmodels.tools.testing import Holder

s   %s = Holder()s   %s.t    s   %scomment = '%s's	   %s%s = %ss   a+s   
(
   t   Nonet   __dict__t   appendR   t   reprt   getattrt   extendt   opent   writet   join(
   R   t   whatt   filenamet   headert
   useinstantt   commentt   txtt   prefixt   xt   fd(    (    sK   lib/python2.7/site-packages/statsmodels/sandbox/tests/maketests_mlabwrap.pyt   savev   s(    	-N(   t   __name__t
   __module__R   R
   t   TrueR   (    (    (    sK   lib/python2.7/site-packages/statsmodels/sandbox/tests/maketests_mlabwrap.pyR   s   s   	s   testsave.pyc         C   s  d d l  m } t j d d d d  t d  } |  | _ | j d d	 d
 d  t d  } | j t d d \ | _	 | _
 | _ | j d | d t d
 d  t d  } | j t d  d  f d d \ | _	 | _
 | _ t j d d d d  | j d | d t d
 d  t d  } | j t d  d  f t d  d  f j d  d d \ | _	 | _
 | _ t j d d d d  | j d | d t d
 d  d  S(   Ni(   t   mlabt	   precisioni   t	   linewidthid   t   dataR   s   testsave.pyR   s   generated data, divide by 1000t	   princomp1t   nouti   R   s   mlab.princomp(x, nout=3)t	   princomp2i   s   mlab.princomp(x[:20,], nout=3)t	   princomp3i    s.   mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3)(   t   mlabwrapR    t   npt   set_printoptionsR   t   xoR   t   princompR   t   coeft   factorst   valuest   Falset   mean(   R+   t   filenR    R#   t   res_princomp(    (    sK   lib/python2.7/site-packages/statsmodels/sandbox/tests/maketests_mlabwrap.pyt   generate_princomp   s&    	'4Nc         C   s   d d l  m } t d  } t j d d d 
g  | _ t j d d d g  | _ | j | j d	 | j d	 d
  | _ | j	 | j d	 | j d	 d
  | _
 | j d |  d t d d d  d  S(   Ni(   R    t   armarepg      ?g      g?g333333g{Gz?i   i   R   R   R   s<   ''mlab.garchma(-res_armarep.ar[1:], res_armarep.ma[1:], 20)
s;   mlab.garchar(-res_armarep.ar[1:], res_armarep.ma[1:], 20)''(   R(   R    R   R)   R   t   art   mat   garchmat   marept   garchart   arrepR   R0   (   R2   R    t   res_armarep(    (    sK   lib/python2.7/site-packages/statsmodels/sandbox/tests/maketests_mlabwrap.pyt   generate_armarep   s    ''c         C   s   d d l  m } | j |  j |  j d d d } | j |  j |  j d d d } t |  j j   | d  t |  j j   | d  d  S(   Ni(   t   tsat   nobsi   i   i   (	   t   statsmodels.sandboxR>   t   arma_impulse_responseR7   R6   R    R9   t   ravelR;   (   R<   R>   R;   R9   (    (    sK   lib/python2.7/site-packages/statsmodels/sandbox/tests/maketests_mlabwrap.pyt   exampletest   s
    ""t   __main__(   R    is   testsavetls.pyt   mlpacfs   mlab.parcorr(x, [], 2, nout=3)R%   i   R   R   t   mlacfs   mlab.autocorr(x, [], 2, nout=3)t   mlccfs,   mlab.crosscorr(x[4:], x[:-4], [], 2, nout=3)i   it   mlywars-   mlab.ar(x100-x100.mean(), 10, 'yw').a.ravel()i
   t   yw(2   t   __doc__t   numpyR)   t   numpy.testingR    R   R+   R   t   objectR   R4   R=   RC   R   R(   R    t   savedrvst   rvsdatat   xar2t   x100t   x1000R2   t   res_pacfR   t   parcorrt   pacf100t   lags100t	   bounds100t   pacf1000t   lags1000t
   bounds1000R   R   t   res_acft   autocorrt   acf100t   acf1000R0   t   res_ccft	   crosscorrt   ccf100t   ccf1000t   res_ywarR6   R1   t   mbarywt   aRB   t	   arcoef100t
   arcoef1000(    (    (    sK   lib/python2.7/site-packages/statsmodels/sandbox/tests/maketests_mlabwrap.pyt   <module>   s  
		
	--	--	88	