U
    Kvf@#                  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/d0gd1d2d3d4gd5d6d7d8gd9d:d;d<gd=d>d?d@gdAdBdCdDgdEdFdGdHgdIdJdKdLgdMddNdOgdPdQdRdSgdTdUdVdWgdXdYdZd[gd\d]d^d_gd`daddagdbdcdddegdfdgdhdigdjdkdldmgdndodpdqgdrdsdtdugdvdwdxdygdzd{d|d}gd~dddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddd+dgddddgd dddgddddgdd	d
dgddddg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d1gd2d3d4d5gd6d7d8d9gd:d;d<d=gd>d?d@dgdAdBdCdDgdEdFdGdHgdIddJdKgdLdMddNgdedOdPdQgdRdSdTdqgdUdVdWdXgdYdZd[d\gd]d^dDd_gd`dadbdcgdddedfdggdhdidjdkgdldmdndogdpdqdrdsgdtd6dudvgdwdxdydzgd{d|d}d~gddddggdZed ZG dd dZdddZ	dddZ
dd ZedkrddlmZ ddlZejjZedd d Zed ZdZedZde_ejeg ddd\e_e_e_ejeg ddd\e_e_e_ejedd edZde_ej eg ddd\e_!e_e_ej eg ddd\e_"e_e_ejedd edZ#de#_ej$edd edd g ddd\e#_%e#_e#_ej$edd edd g ddd\e#_&e#_e#_e#jedd edZ'de'_e(ee)  ddZ*ee*j+, e'_-e(ee)  d2dZ*ee*j+, e'_.e'jedd dS (  zlgenerate py modules with test cases and results from mlabwrap

currently matlab: princomp, garchar, garchma
    N)assert_array_almost_equal)arrayi]i%ii   i  i8iKiiiiiii
iia  ipi  i  iii1      i{   ii  i  ii     ii  iNiK   i>ii=iii5i&  iiiii`  ii=  ii   i=i  ipiV  iH  i-   iii4i  i4`   6   i  iii}  iii  i  R   ii  iiVii  ii  i  i{i     i>i5iSi6is   i  i  ii  i  i    iii  iuiYiD  i  iiix  iiii  ii	  ii   ii0  iiK  ii  ii+  i1  D      i  iiei  i  i  iii  ii  ia  i(  i=  iG  i  i+idi+i  I   i-i   i<iiii  i{   iiWi,i0  i  iiiiixi  U      ii  iF  i  iV  i/io  iiii     iii  i  iiiiiigii  i  iz  i.i  i iiii   is  iid  i$iii  iZ     iii  ii/i  iit  5   i-  i8  iK  iPiGiiS  iF  i*  ii  i4i`iiVi   ioii  iSi3i1iY  ii   ii\i9ii5  i  ir  iiEi  N   i*iimi3  i  ii  i;  i_  iv  iC  i}iii*	  i     iG  iz      Z   i  i  i   i0  i  i%  i7  ip  i  ii'  i[
  i6  i{  iC   i  i  i  iii%  iiyi&  i  i	  i9ii  iiiii7iieii  i  iii)  i ii	i)  iiiTi@i  iX  i&  i
     iH  ii  i$  ii  i     i|iHiiR  i  iii+i   iKiv  i  i  iji  iR  i  "      iii     iiii  i*i  iI  ihih  g     @@c                   @   s   e Zd Zdd ZdddZdS )HoldItc                 C   s
   || _ d S )N)name)selfr+    r-   P/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/sandbox/tests/maketests_mlabwrap.py__init__t   s    zHoldIt.__init__NTc           
   
   C   s   |d krdd | j D }|r2dg}|r6|d ng }|rV|d| j  d| j }nd}|d k	rt|d||f  |D ]"}|d	||tt| |f  qx|ddg |d k	rt|d
dd}	|	d| W 5 Q R X |S )Nc                 s   s   | ]}|d  dkr|V  qdS )r   _Nr-   ).0ir-   r-   r.   	<genexpr>y   s      zHoldIt.save.<locals>.<genexpr>z,import numpy as np
from numpy import array

z.from statsmodels.tools.testing import Holder

z%s = Holder()z%s. z%scomment = '%s'z	%s%s = %sza+zutf-8)encoding
)	__dict__appendr+   reprgetattrextendopenwritejoin)
r,   whatfilenameheaderZ
useinstantcommenttxtprefixxfdr-   r-   r.   savev   s(     zHoldIt.save)NNTTN)__name__
__module____qualname__r/   rG   r-   r-   r-   r.   r*   s   s     r*   testsave.pyc                 C   s  ddl m} tjddd td}| |_|jddd	 td
}|jtdd\|_	|_
|_|j|ddd td}|jtd df dd\|_	|_
|_tjddd |j|ddd td}|jtd df td df d dd\|_	|_
|_tjddd |j|ddd d S )Nr   mlab   d   )Z	precisionZ	linewidthdatarK   zgenerated data, divide by 1000)r@   rB   Z	princomp1   ZnoutFzmlab.princomp(x, nout=3)r@   rA   rB   Z	princomp2r#   zmlab.princomp(x[:20,], nout=3)Z	princomp3z.mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3))mlabwraprM   npZset_printoptionsr*   xorG   ZprincomprE   ZcoefZfactorsvaluesmean)rV   filenrM   rP   Zres_princompr-   r-   r.   generate_princomp   s2    *rZ   c                 C   s   ddl m} td}tdddg|_tdddg|_||jd	d   |jd	d  d
|_|	|jd	d   |jd	d  d
|_
|j| ddd d S )Nr   rL   Zarmarepg      ?g      g?g333333g{Gz?   r#   Fzw''mlab.garchma(-res_armarep.ar[1:], res_armarep.ma[1:], 20)
mlab.garchar(-res_armarep.ar[1:], res_armarep.ma[1:], 20)''rS   )rT   rM   r*   rU   r   armaZgarchmamarepZgarchararreprG   )rY   rM   res_armarepr-   r-   r.   generate_armarep   s    &&ra   c                 C   sn   ddl m} |j| j| jdddd  }|j| j| jdddd  }t| j |d t| j  |d d S )Nr   )tsa   )Znobsr[   rN   )	Zstatsmodels.sandboxrb   Zarma_impulse_responser]   r\   r   r^   ravelr_   )r`   rb   r_   r^   r-   r-   r.   exampletest   s
    re   __main__rL   iztestsavetls.pyZmlpacfzmlab.parcorr(x, [], 2, nout=3)rQ   rR   T)r@   rA   Zmlacfzmlab.autocorr(x, [], 2, nout=3)FZmlccfz,mlab.crosscorr(x[4:], x[:-4], [], 2, nout=3)   Zmlywarz-mlab.ar(x100-x100.mean(), 10, 'yw').a.ravel()
   Zyw)rK   )rK   )/__doc__ZnumpyrU   Znumpy.testingr   r   rV   rE   r*   rZ   ra   re   rH   rT   rM   ZsavedrvsZrvsdataZxar2Zx100Zx1000rY   Zres_pacfrB   ZparcorrZpacf100Zlags100Z	bounds100Zpacf1000Zlags1000Z
bounds1000rG   Zres_acfZautocorrZacf100Zacf1000Zres_ccfZ	crosscorrZccf100Zccf1000Zres_ywarr\   rX   Zmbaryward   Z	arcoef100Z
arcoef1000r-   r-   r-   r.   <module>   s   































































e
	



,,
