U
    Ãmœd"o  ã                   @   s‚  d Z ddlmZmZ ddlZddlmZmZm	Z	m
Z
 ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ dd	lmZmZmZmZ ddlm  mZ dd
lmZm Z  ej!j"Z#e#dd… d Z$e#d Z%dd„ Z&dd„ Z'dd„ Z(dd„ Z)dd„ Z*ej+j,dd„ ƒZ-dd„ Z.dd„ Z/dd„ Z0dd „ Z1d!d"„ Z2d#d$„ Z3G d%d&„ d&ƒZ4d'd(„ Z5G d)d*„ d*ƒZ6G d+d,„ d,ƒZ7G d-d.„ d.ƒZ8d/d0„ Z9dS )1z/tests for some time series analysis functions

é    )Úassert_frame_equalÚassert_series_equalN)Úassert_array_almost_equalÚassert_array_equalÚassert_equalÚassert_raises)Ú
regression)Ú	macrodata)Ú	stattools)Úsavedrvs)ÚmlacfÚmlccfÚmlpacfÚmlywar)ÚvecÚvechiœÿÿÿç     @�@c                  C   sL   t jtdddd�} ttj ¡ | dƒ t jtdddd�} ttj ¡ | dƒ d S )NFé   )ÚadjustedZfftZnlagsé   )	r
   ZacfÚx100r   r   Zacf100ÚravelÚx1000Zacf1000)Zacf_x© r   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/tsa/tests/test_tsa_tools.pyÚtest_acf"   s      ÿr   c                  C   sœ   t jtdd … td d… dd�d d… } ttj ¡ d d… d d d… | dƒ t jtdd … td d… dd�d d… } ttj ¡ d d… d d d… | dƒ d S )Né   éüÿÿÿF)r   é   éÿÿÿÿr   )	r
   Zccfr   r   r   Zccf100r   r   Zccf1000)Zccf_xr   r   r   Útest_ccf+   s    ($(r    c                  C   sH   t jtddd�} ttj ¡ | dƒ t jtddd�} ttj ¡ | dƒ d S )Nr   Úmle©Úmethodé   é   )	r
   Zpacf_ywr   r   r   Úpacf100r   r   Úpacf1000)Zpacfywr   r   r   Útest_pacf_yw2   s    r(   c                  C   s@   t  td¡} ttj ¡ | dƒ t  td¡} ttj ¡ | dƒ d S )Nr   r   )	r
   Zpacf_olsr   r   r   r&   r   r   r'   )Zpacfolsr   r   r   Útest_pacf_ols:   s    r)   c                   C   sT   t tjdd … tjtddd�d  dƒ t tjdd … tjtddd�d  dƒ d S )Nr$   é
   r!   r"   r   r   r   )r   r   Z	arcoef100r   Úyule_walkerr   Z
arcoef1000r   r   r   r   r   Útest_ywcoefB   s    ýýr,   c                  C   s0   t  dddddddddddg¡} t | d¡ d S )Nr$   r   r%   r   éþÿÿÿéýÿÿÿé   )ÚnpÚarrayr   r+   )Úxr   r   r   Útest_yule_walker_interO   s     r3   c              	   C   s\   t ddƒD ]L}t tj ||d  d ¡¡}t |¡}t t|ƒt 	|t
|ƒ¡¡s
t‚q
d S )Nr%   r*   r$   )ÚrangeÚtoolsZunvechr0   ÚrandomÚrandnZduplication_matrixÚarray_equalr   Údotr   ÚAssertionError)Úreset_randomstateÚkÚmZDkr   r   r   Útest_duplication_matrixW   s    
r>   c              	   C   sL   t ddƒD ]<}tj ||¡}t |¡}t t|ƒt |t	|ƒ¡¡s
t
‚q
d S )Nr%   r*   )r4   r0   r6   r7   r5   Zelimination_matrixr8   r   r9   r   r:   )r;   r<   r=   ZLkr   r   r   Útest_elimination_matrix^   s    
r?   c                 C   s@   t j dd¡}t dd¡}t  t|jƒt  |t|ƒ¡¡s<t	‚d S )Nr   r/   )
r0   r6   r7   r5   Zcommutation_matrixr8   r   ÚTr9   r:   )r;   r=   ÚKr   r   r   Útest_commutation_matrixe   s    rB   c                  C   s6   t  ddgddgg¡} t  t| ƒddddg¡s2t‚d S )Nr$   r%   r/   r   )r0   r1   r8   r   r:   ©Zarrr   r   r   Útest_veck   s    rD   c               	   C   sF   t  dddgdddgddd	gg¡} t  t| ƒdddddd	g¡sBt‚d S )
Nr$   r%   r/   r   é   é   é   r   é	   )r0   r1   r8   r   r:   rC   r   r   r   Ú	test_vechp   s    "rI   c                  C   s8   t  dddddddddg	¡} t  t | ¡¡ ¡ r4t‚d S )	Ng     @�Àg      YÀg      $Àç      ð?ç        ç      $@g      Y@r   )r0   r1   Úisnanr5   Z_ar_transparamsÚanyr:   rC   r   r   r   Útest_ar_transparamsu   s    ÿrO   c                   @   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d„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1S )2Ú
TestLagmatc                 C   sŒ   t  ¡ }|jddddg | _t| jjƒ}| d¡| _| d¡| _t	j
 d¡ t	j
 d¡| _dd„ t| jj| jjƒD ƒ}|| j_| jj| _d S )	NÚyearÚquarterÚrealgdpÚcpié90  éd   c                 S   s,   g | ]$\}}t t|ƒƒd  t t|ƒƒ ‘qS ©z-Q©ÚstrÚint©Ú.0ÚyrZqur   r   r   Ú
<listcomp>‡   s   ÿz*TestLagmat.setup_class.<locals>.<listcomp>)r	   Úload_pandasÚdataÚmacro_dfÚlistÚcolumnsÚindexÚrealgdp_locÚcpi_locr0   r6   Úseedr7   Úrandom_dataÚziprQ   rR   rT   Úseries)Úclsr`   Úcolsrd   r   r   r   Úsetup_class}   s    þzTestLagmat.setup_classc                 C   sx   | j j}| t¡}tj|d d …df ddd�}t |dd …d d…f ||dd …df f¡}t 	|| j
d¡}t||ƒ d S ©Nr%   r/   ÚBoth©Útrimr   ©ra   ÚvaluesÚastypeÚfloatr
   Úlagmatr0   Úcolumn_stackr5   Úadd_lagre   r   ©Úselfr`   Únddatarv   ÚresultsÚlag_datar   r   r   Útest_add_lag_insertŽ   s    
,zTestLagmat.test_add_lag_insertc                 C   sn   | j j}| t¡}tj|d d …df ddd�}t |dd …d d …f |f¡}tj	|| j
ddd�}t||ƒ d S ©Nr%   r/   ro   rp   F©Úinsertrr   ry   r   r   r   Útest_add_lag_noinsert–   s    
z TestLagmat.test_add_lag_noinsertc                 C   sŒ   | j j}| t¡}tj|d d …df ddd�}t |dd …d d …f |f¡}tj	|| j
ddd�}t||ƒ tj	|| j
ddd�}t||ƒ d S ©Nr   r/   ro   rp   Fr€   T)ra   rs   rt   ru   r
   rv   r0   rw   r5   rx   rf   r   ©rz   r`   r{   rv   r|   r}   Z	lag_data2r   r   r   Útest_add_lag_noinsert_atendž   s    

z&TestLagmat.test_add_lag_noinsert_atendc                 C   sv   | j j}| t¡}tj|d d …df ddd�}t |dd …d d…f ||dd …df f¡}t 	|dd¡}t
||ƒ d S rn   ©ra   rs   rt   ru   r
   rv   r0   rw   r5   rx   r   ry   r   r   r   Útest_add_lag_ndarray©   s    
,zTestLagmat.test_add_lag_ndarrayc                 C   sl   | j j}| t¡}tj|d d …df ddd�}t |dd …d d …f |f¡}tj	|dddd�}t
||ƒ d S r   r†   ry   r   r   r   Útest_add_lag_noinsert_ndarray±   s    
z(TestLagmat.test_add_lag_noinsert_ndarrayc                 C   sˆ   | j j}| t¡}tj|d d …df ddd�}t |dd …d d …f |f¡}tj	|dddd�}t
||ƒ tj	|dddd�}t
||ƒ d S rƒ   r†   r„   r   r   r   Ú"test_add_lag_noinsertatend_ndarray¹   s    

z-TestLagmat.test_add_lag_noinsertatend_ndarrayc           	      C   sš   | j }|jd }tj|dddd�\}}t |d df¡}tdƒD ]}||||| …|f< q@|d d …d d…f }|d d …dd …f }t||ƒ t||ƒ d S )Nr   r/   ÚnoneÚsep©rq   Úoriginalr   r$   )rh   Úshaper
   rv   r0   Úzerosr4   r   )	rz   r`   Únrv   ZleadsÚexpectedÚiZexpected_leadsZexpected_lagsr   r   r   Útest_sep_returnÄ   s    

zTestLagmat.test_sep_returnc                 C   sš   | j }tj|ddd�}t |dd … |f¡}tj|ddd�}t||ƒ |d d …d f }tj|ddd�}t |dd … |f¡}tj|ddd�}t||ƒ d S )Nr/   ro   rp   T©Úlagsr�   )rh   r
   rv   r0   rw   r5   rx   r   )rz   r`   rv   r|   r}   r   r   r   Útest_add_lag1dÐ   s    
zTestLagmat.test_add_lag1dc                 C   sR   | j }tj|ddd�}tj|dddd�}t||ƒ tj|dddd�}t||ƒ d S )Nr/   ro   rp   T)r•   Údropr�   F)rh   r
   rv   r5   rx   r   )rz   r`   rv   r}   r   r   r   Útest_add_lag1d_dropÞ   s    
zTestLagmat.test_add_lag1d_dropc                 C   sŠ   t jddtfgd�}| j}||d< tj|dddd�}tj|ddd	d
�}t||ƒ tj|dddd
�}t||ƒ tj|dd	d
�}t||ƒ d S )NrV   Úvariable©Zdtyper/   ro   ÚinrŒ   r   Tr”   F©	r0   r�   ru   rh   r
   rv   r5   rx   r   ©rz   r`   r{   rv   r}   r   r   r   Útest_add_lag1d_structè   s    

z TestLagmat.test_add_lag1d_structc                 C   sP   t jddtfgd�}| j}||d< tj|ddd�}tj|ddd�}t||ƒ d S )	NrV   r™   rš   r/   ro   rp   T)r•   r—   rœ   r�   r   r   r   Útest_add_lag_1d_drop_struct÷   s    z&TestLagmat.test_add_lag_1d_drop_structc                 C   s|   | j j}| t¡}tj|d d …df ddd�}t |dd …d d…f ||dd …df f¡}tj	|| j
ddd�}t||ƒ d S )Nr%   r/   ro   rp   r   T)r—   rr   ry   r   r   r   Útest_add_lag_drop_insert   s    
,z#TestLagmat.test_add_lag_drop_insertc              	   C   sx   | j j}| t¡}tj|d d …df ddd�}t |dd …t dddg¡f |f¡}t	j
|| jdddd	�}t||ƒ d S )
Nr%   r/   ro   rp   r   r$   FT)r�   r—   )ra   rs   rt   ru   r
   rv   r0   rw   r1   r5   rx   re   r   ry   r   r   r   Útest_add_lag_drop_noinsert  s    
&    ÿz%TestLagmat.test_add_lag_drop_noinsertc                 C   s¬   | j }tj|dddd�}tj|jdddd�}t||ƒ tj|dddd�}tj|jdddd�}t||ƒ tj|dddd�\}}tj|jdddd�\}}t||ƒ t||ƒ d S )	Nr/   Úbothr›   rŒ   rŠ   ÚexÚforwardr‹   )ra   r
   rv   rs   r   )rz   r`   r¢   Zboth_npr•   Zlags_npÚleadZlead_npr   r   r   Útest_dataframe_without_pandas  s     

   ÿ

z(TestLagmat.test_dataframe_without_pandasc                    sl  | j }t|jƒ}|jd }t |d df¡}|j|d |…d d…f< tddƒD ]F‰ ‡ fdd„|D ƒ}| |¡ |j|ˆ |ˆ  …dˆ  dˆ d  …f< qL|j	}|d |… }t
j|||d�}|jdd … }tj| j dd	d
dd�}t||ƒ tj| j dd	ddd�}	t|	|jd d …dd …f ƒ tj| j dd	ddd�\}	}
t|	|jd d …dd …f ƒ t|
|jd d …d d…f ƒ d S )Nr   r/   é   r   r$   c                    s   g | ]}|d  t ˆ ƒ ‘qS ©ú.L.©rY   ©r\   Úcol©Úlagr   r   r^   *  s     z2TestLagmat.test_dataframe_both.<locals>.<listcomp>©rc   rd   r¢   r›   T©rq   r�   Ú
use_pandasr£   r‹   )ra   rb   rc   rŽ   r0   r�   rs   r4   Úextendrd   ÚpdÚ	DataFrameÚilocr
   rv   r   ©rz   r`   rc   r�   rs   Znew_colsrd   r‘   r¢   r•   r¥   r   r­   r   Útest_dataframe_both#  sL    


(    ÿ
    ÿ    ÿ
zTestLagmat.test_dataframe_bothc                 C   s.   t ttj| jddd� t ttj| jjdƒ d S )Ni,  T©r±   ©r   Ú
ValueErrorr
   rv   ra   rs   ©rz   r   r   r   Útest_too_few_observations@  s        ÿz$TestLagmat.test_too_few_observationsc                 C   s4   t ttj| jdddd� t ttj| jjddd� d S )Nr/   ÚunknownT©rq   r±   rp   r¹   r»   r   r   r   Útest_unknown_trimF  s    úûzTestLagmat.test_unknown_trimc                    s^  | j }t|jƒ}|jd }t |d df¡}|j|d |…d d…f< tddƒD ]F‰ ‡ fdd„|D ƒ}| |¡ |j|ˆ |ˆ  …dˆ  dˆ d  …f< qL|j	}|d |… }t
j|||d�}tj| j dd	d
dd�}t||ƒ tj| j dd	ddd�}	t|	|jd d …dd …f ƒ tj| j dd	ddd�\}	}
t|	|jd d …dd …f ƒ t|
|jd d …d d…f ƒ d S )Nr   r/   r§   r   r$   c                    s   g | ]}|d  t ˆ ƒ ‘qS r¨   rª   r«   r­   r   r   r^   ^  s     z5TestLagmat.test_dataframe_forward.<locals>.<listcomp>r¯   r¤   r›   Tr°   r£   r‹   )ra   rb   rc   rŽ   r0   r�   rs   r4   r²   rd   r³   r´   r
   rv   r   rµ   r¶   r   r­   r   Útest_dataframe_forwardW  sJ    


(    ÿ
    ÿ    ÿ
z!TestLagmat.test_dataframe_forwardc                 C   sd   t ttj| jdddd� t ttj| jdddd� t ttj| jdddd� t ttj| jdddd� d S )Nr/   rŠ   Tr¾   Zbackward)r   rº   r
   rv   ra   rj   r»   r   r   r   Útest_pandas_errorsr  s@    úúúúzTestLagmat.test_pandas_errorsc                 C   s  t j| jjddddgd�}| j|d< tddƒD ] }| j |¡|dtt|ƒƒ < q.| d	¡}t	j
| jd
dddd�}t||ƒ t	j
| jd
dddd�}t||jd d …dd …f ƒ t	j
| jd
dddd�\}}t||jd d …d d…f ƒ t||jd d …dd …f ƒ d S )NrT   úcpi.L.1úcpi.L.2úcpi.L.3©rd   rc   r$   r   úcpi.L.rK   r/   r¤   r›   Tr°   r£   r‹   )r³   r´   rj   rd   r4   ÚshiftrY   rZ   Zfillnar
   rv   r   rµ   ©rz   r‘   r®   r¢   r•   r¥   r   r   r   Útest_series_forward”  sB    
þ

    ÿ
    ÿ    ÿ
zTestLagmat.test_series_forwardc                 C   s  t j| jjddddgd�}| j|d< tddƒD ] }| j |¡|dtt|ƒƒ < q.|jd	d … }t	j
| jd	d
ddd�}t||ƒ t	j
| jd	d
ddd�}t||jd d …dd …f ƒ t	j
| jd	d
ddd�\}}t||jd d …d d…f ƒ t||jd d …dd …f ƒ d S )NrT   rÂ   rÃ   rÄ   rÅ   r$   r   rÆ   r/   r¢   r›   Tr°   r£   r‹   )r³   r´   rj   rd   r4   rÇ   rY   rZ   rµ   r
   rv   r   rÈ   r   r   r   Útest_series_both¬  sB    
þ
    ÿ
    ÿ    ÿ
zTestLagmat.test_series_bothc                 C   s^   t  t d¡ d¡¡}t  d¡|_tj|ddd�}|j	dks@t
‚t|jƒddd	d
gksZt
‚d S )NéÈ   ©r   r%   r%   T©Úmaxlagr±   )rV   r   z0.L.1z1.L.1z0.L.2z1.L.2)r³   r´   r0   ÚarangeÚreshapeZ
RangeIndexrc   r
   rv   rŽ   r:   rb   )rz   ÚdfÚresultr   r   r   Útest_range_index_columnsÄ  s
    z#TestLagmat.test_range_index_columnsc              	   C   sN   t  t d¡ d¡¡}ddg|_tjtdd�� t	j
|ddd	� W 5 Q R X d S )
NrË   rÌ   r   Ú0zColumns names must be©Úmatchr%   TrÍ   )r³   r´   r0   rÏ   rÐ   rc   ÚpytestÚraisesrº   r
   rv   ©rz   rÑ   r   r   r   Útest_duplicate_column_namesÌ  s    
z&TestLagmat.test_duplicate_column_namesN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodrm   r~   r‚   r…   r‡   rˆ   r‰   r“   r–   r˜   rž   rŸ   r    r¡   r¦   r·   r¼   r¿   rÀ   rÁ   rÉ   rÊ   rÓ   rÚ   r   r   r   r   rP   |   s2   

	
"rP   c               
   C   sx   ddl m}  ddddddd	d
ddg
}ddddddddddg
}t||ƒD ],\}}tt |¡|ƒ tt | |ƒ¡|ƒ qFd S )Nr   )Ú	to_offsetÚAzAS-MARÚQZQSzQS-APRÚWzW-MONÚBÚDÚHr$   r   é4   rE   rG   é   )Zpandas.tseries.frequenciesrß   ri   r   r5   Zfreq_to_period)rß   Zfreqsr‘   r’   Újr   r   r   Útest_freq_to_periodÔ  s    ré   c                   @   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 )ÚTestDetrendc                 C   s$   t  d¡| _t  d¡ dd¡| _d S )Ng      @rL   rE   r%   )r0   rÏ   Údata_1drÐ   Údata_2d©rk   r   r   r   rm   ß  s    zTestDetrend.setup_classc                 C   sB   | j }ttj|dd�t |¡ƒ ttj|dd�dddddgƒ d S )Nr$   ©Úorderr   r-   r   r%   )rë   r   r5   Údetrendr0   Ú
zeros_like©rz   r`   r   r   r   Útest_detrend_1dä  s     ÿ ÿzTestDetrend.test_detrend_1dc                 C   sŽ   | j }ttj|ddd�t |¡ƒ ttj|ddd�ddgddgddgddgddggƒ ttj|ddd�dd	gdd	gdd	gdd	gdd	ggƒ d S )
Nr$   r   ©rï   Zaxisr   r-   r%   r   ç      à¿ç      à?)rì   r   r5   rð   r0   rñ   rò   r   r   r   Útest_detrend_2dí  s     ÿ þ þzTestDetrend.test_detrend_2dc              	   C   sŠ   t j| jdd�}tj|dd�}t|jt |¡ƒ t	|t j|jdd�ƒ tj|dd�}t|jt  dddddg¡ƒ t	|t j|jdd�ƒ d S )	NÚone)Únamer$   rî   r   r-   r   r%   )
r³   ÚSeriesrë   r5   rð   r   rs   r0   rñ   r   )rz   r`   Ú	detrendedr   r   r   Útest_detrend_seriesû  s     ÿzTestDetrend.test_detrend_seriesc                 C   s
  ddg}dd„ dD ƒ}t j| j||d�}tj|ddd	�}t|jt |¡ƒ t	|t j|j||d�ƒ tj|ddd	�}t|jd
d
gddgddgddgddggƒ t	|t j|j||d�ƒ tj|ddd	�}t|jddgddgddgddgddggƒ t	|t j|j||d�ƒ d S )Nrø   Útwoc                 S   s   g | ]}|‘qS r   r   )r\   Úcr   r   r   r^     s     z6TestDetrend.test_detrend_dataframe.<locals>.<listcomp>Zabcder¯   r$   r   rô   r   r-   r%   r   rõ   rö   )
r³   r´   rì   r5   rð   r   rs   r0   rñ   r   )rz   rc   rd   r`   rû   r   r   r   Útest_detrend_dataframe  s6    þ  ÿþ þþz"TestDetrend.test_detrend_dataframec                 C   s   t ttjt d¡ƒ d S )N)r/   r/   r/   )r   ÚNotImplementedErrorr5   rð   r0   Úonesr»   r   r   r   Útest_detrend_dim_too_large%  s    z&TestDetrend.test_detrend_dim_too_largeN)
rÛ   rÜ   rÝ   rÞ   rm   ró   r÷   rü   rÿ   r  r   r   r   r   rê   Þ  s   
	rê   c                   @   sP   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestAddTrendc                 C   sd   d| _ t t| j ƒ¡| _t t t| j ƒ¡d d …d f d¡| _t | j ¡| _t d| j d ¡| _	d S )NrË   r%   rJ   r$   )
r�   r0   rÏ   ru   Úarr_1dZtileÚarr_2dr  rþ   Útrí   r   r   r   rm   *  s
    &zTestAddTrend.setup_classc                 C   s¬   t  | j¡}t |¡}t  |¡}| j|d< t||ƒ tj|dd�}t  |¡}| dd| j¡ t||ƒ t  | j¡}tj|dd�}t  |¡}| j|d< | j	|d< t||ƒ d S )NÚconstT©Úprependr   Úct©Útrendr  )
r³   rú   r  r5   Ú	add_trendr´   rþ   r   r�   r  )rz   ÚsÚappendedr‘   Ú	prependedr   r   r   Útest_series2  s    








zTestAddTrend.test_seriesc                 C   sê   t  | j¡}t |¡}| ¡ }| j|d< t||ƒ tj|dd�}| ¡ }| dd| j¡ t||ƒ t  | j¡}tj|dd�}| ¡ }| j	|d< t||ƒ t  | j¡}tj|dd�}| ¡ }| j|d< | j	|d< | j	d	 |d
< t||ƒ d S )Nr  Tr  r   r  r  r  Úcttr%   Ztrend_squared)
r³   r´   r  r5   r  Úcopyrþ   r   r�   r  )rz   rÑ   r  r‘   r  r   r   r   Útest_dataframeE  s*    







zTestAddTrend.test_dataframec                 C   s   t ttj| jddd� t ttj| jddd� t | j¡}t ttj|ddd� t ttj|ddd� tj| jdd�}t|| jd d …d f ƒ tj| jddd�}t 	| j| j
f¡j}t||ƒ tj| jddd�}t 	| j| jf¡j}t||ƒ tj| jddd�}t 	| j| j| j
f¡j}t||ƒ d S )	Nrþ   Úraise)r2   r  Úhas_constantr
  r  Úskip)r  r  Úadd)r   rº   r5   r  rþ   r³   r´   r   r0   Úvstackr  r@   )rz   rÑ   ZskippedZskipped_constr‘   Úaddedr   r   r   Útest_duplicate_const_  sX    ûû    ÿ    ÿ  ÿ

z!TestAddTrend.test_duplicate_constc                 C   s6   t j| jddgd�}tj|dd� tj|ddd� d S )Nr  r  )rc   r
  r  T©r  r	  )r³   r´   r  r5   r  rÙ   r   r   r   Útest_dataframe_duplicate‡  s    z%TestAddTrend.test_dataframe_duplicatec                 C   s€  t  | j| j| j| jd f¡j}tt | j¡|d d …d d…f ƒ ttj| jdd�|d d …ddgf ƒ ttj| jdd�|d d …d d…f ƒ ttj| jdd�|ƒ t  	| jd d …d f | jd d …d f | jd d …d f d | j
f¡}ttj| j
dd	�|d d …ddd
gf ƒ ttj| j
ddd�|d d …ddd
gf ƒ ttj| j
ddd�|d d …dddd
gf ƒ ttj| j
ddd�|ƒ d S )Nr%   r  r  r   r
  r/   r  Tr  r   r  r$   )r0   r  r  rþ   r  r@   r   r5   r  Zhstackr  )rz   Úbaser   r   r   Ú
test_arrayŒ  s8     "&&üÿ ÿþþ ÿzTestAddTrend.test_arrayc                 C   s   t ttj| jdd� d S )Nr½   )r2   r  )r   rº   r5   r  r  r»   r   r   r   Útest_unknown_trendª  s       ÿzTestAddTrend.test_unknown_trendc                 C   s`   t t | jd¡| jƒ t | jd¡| jk	s.t‚t t | jd¡| jƒ t | jd¡| jk	s\t‚d S )Nr�   )r   r5   r  r  r:   r  r»   r   r   r   Útest_trend_n¯  s    zTestAddTrend.test_trend_nN)rÛ   rÜ   rÝ   rÞ   rm   r  r  r  r  r  r   r!  r   r   r   r   r  )  s   
(r  c                   @   sF   e Zd Zedd„ ƒZeddd„ƒZdd„ Zdd	„ Zd
d„ Z	dd„ Z
dS )ÚTestLagmat2DSc                 C   sh   t  ¡ }|jddddg | _tj d¡ tj d¡| _dd„ t	| jj
| jjƒD ƒ}|| j_| jj| _d S )	NrQ   rR   rS   rT   rU   rV   c                 S   s,   g | ]$\}}t t|ƒƒd  t t|ƒƒ ‘qS rW   rX   r[   r   r   r   r^   ½  s   ÿz-TestLagmat2DS.setup_class.<locals>.<listcomp>)r	   r_   r`   ra   r0   r6   rg   r7   rh   ri   rQ   rR   rd   rT   rj   )rk   r`   rd   r   r   r   rm   ·  s    þzTestLagmat2DS.setup_classÚfrontc                 C   s¾   | j \}}t || |d | f¡}t|ƒD ]v}t|d ƒD ]d}||k rx| d d …|f ||| | …|d | | f< q<| d d …|f ||d …|d | | f< q<q,|dkrº|d | … }|S )Nr$   r#  )rŽ   r0   r�   r4   )r`   r•   rq   r  r<   r‘   r¬   r’   r   r   r   Ú_prepare_expectedÄ  s    
ÿ&,zTestLagmat2DS._prepare_expectedc                 C   sª   | j }|j}t |d¡}|  |d¡}t||ƒ t |d d …d d…f d¡}|  |d d …d d…f d¡}t||ƒ | jj}t |d¡}|  |d d …d f d¡}t||ƒ d S )Nr%   r/   rE   )ra   rs   r
   Ú	lagmat2dsr$  r   rj   )rz   r`   Znpdatarv   r‘   r   r   r   Útest_lagmat2ds_numpyÔ  s    

z"TestLagmat2DS.test_lagmat2ds_numpyc                 C   sº   | j }t |d¡}|  |jd¡}t||ƒ tj|jd d …d d…f ddd�}|  |jd d …d d…f d¡}|dd … }t||ƒ | j}t |d¡}|  |jd d …d f d¡}t||ƒ d S )Nr%   r/   r¢   rp   rE   )ra   r
   r%  r$  rs   r   rµ   rj   )rz   r`   rv   r‘   r   r   r   Útest_lagmat2ds_pandasä  s    
"
z#TestLagmat2DS.test_lagmat2ds_pandasc                 C   sâ  | j }tj|ddd�}|  |jd¡}g }|D ]<}tdƒD ].}|dkrP| |¡ q8| |d t|ƒ ¡ q8q,tj	||j
|d�}t||ƒ tj|jd d …d d…f dddd	�}|  |jd d …d d…f d¡}g }|jd d …d d…f D ]>}td
ƒD ]0}|dk�r| |¡ qî| |d t|ƒ ¡ qîqâtj	||j
|d�}|jdd … }t||ƒ | j}tj|ddd�}|  |jd d …d f d¡}g }|j}tdƒD ]2}|dk�r¨| |¡ n| |d t|ƒ ¡ �qŽtj	||j
|d�}t||ƒ d S )Nr%   Tr¸   r/   r   r©   rÅ   r¢   )r±   rq   r   rE   rF   )ra   r
   r%  r$  rs   r4   ÚappendrY   r³   r´   rd   r   rµ   rj   rù   )rz   r`   rv   r‘   rl   rþ   r•   r   r   r   Útest_lagmat2ds_use_pandasô  sL    
   ÿ


z'TestLagmat2DS.test_lagmat2ds_use_pandasc              	   C   s\   t  d¡}t t¡� t |d¡ W 5 Q R X t  d¡}t t¡� t |d¡ W 5 Q R X d S )Nr%   rE   )rV   r%   r%   )r0   r1   r×   rØ   rº   r
   r%  r�   rò   r   r   r   Útest_3d_error   s    

zTestLagmat2DS.test_3d_errorN)r#  )rÛ   rÜ   rÝ   rÞ   rm   Ústaticmethodr$  r&  r'  r)  r*  r   r   r   r   r"  ¶  s   
,r"  c               	   C   sb   t j dd¡} tjtdd�� tj| ddd�}W 5 Q R X |d \}}|\}}}|j|j	k	s^t
‚d S )NrV   r%   ÚverboserÕ   F)rÎ   r,  r$   )r0   r6   Zrandr×   ZwarnsÚFutureWarningr
   ZgrangercausalitytestsZcentered_tssZuncentered_tssr:   )r`   ÚoutrÒ   ÚmodelsZres2downZ
res2djointZrconstrr   r   r   Útest_grangercausality*  s    
r0  ):Ú__doc__Zstatsmodels.compat.pandasr   r   Únumpyr0   Znumpy.testingr   r   r   r   Zpandasr³   r×   Zstatsmodelsr   Zstatsmodels.datasetsr	   Zstatsmodels.tsar
   Zstatsmodels.tsa.tests.resultsr   Z)statsmodels.tsa.tests.results.datamlw_tlsr   r   r   r   Zstatsmodels.tsa.tsatoolsZtsaZtsatoolsr5   r   r   ZrvsdataZxar2Zxor   r   r   r    r(   r)   r,   ÚmarkZsmoker3   r>   r?   rB   rD   rI   rO   rP   ré   rê   r  r"  r0  r   r   r   r   Ú<module>   sJ   	
  Z
K t