U
    Ãmœd�j  ã                   @   s(  d Z ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZ ddlmZmZmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZ ejejejejdœZej ej!ej"ej#dœZ$ej% &ej% 'e(¡¡Z)G dd„ dƒZ*G dd„ de*ƒZ+G dd„ de*ƒZ,G dd„ de*ƒZ-G dd„ de*ƒZ.G dd„ de*ƒZ/G dd„ de*ƒZ0G dd„ de0ƒZ1G dd„ de0ƒZ2G dd„ de0ƒZ3G d d!„ d!e*ƒZ4G d"d#„ d#ƒZ5G d$d%„ d%e5ƒZ6G d&d'„ d'e5ƒZ7G d(d)„ d)e5ƒZ8G d*d+„ d+e8ƒZ9G d,d-„ d-e8ƒZ:G d.d/„ d/e8ƒZ;G d0d1„ d1e5ƒZ<e=fd2d3„Z>e=fd4d5„Z?d6d7„ Z@dS )8aŒ  
Tests for _representation and _kalman_filter modules

Author: Chad Fulton
License: Simplified-BSD

References
----------

Kim, Chang-Jin, and Charles R. Nelson. 1999.
"State-Space Models with Regime Switching:
Classical and Gibbs-Sampling Approaches with Applications".
MIT Press Books. The MIT Press.

Hamilton, James D. 1994.
Time Series Analysis.
Princeton, N.J.: Princeton University Press.
é    N)Úfind_best_blas_type)Úsolve_discrete_lyapunov)ÚMEMORY_NO_FORECASTÚMEMORY_NO_PREDICTEDÚMEMORY_CONSERVE)ÚMLEModel)Ú_representationÚ_kalman_filteré   )Úresults_kalman_filter)Úassert_almost_equalÚassert_allclose)ÚsÚdÚcÚzc                   @   s\   e Zd ZdZeeddfdd„ƒZedd„ ƒZedd„ ƒZd	d
„ Z	dd„ Z
dd„ Zdd„ ZdS )Ú	Clark1987a>  
    Clark's (1987) univariate unobserved components model of real GDP (as
    presented in Kim and Nelson, 1999)

    Test data produced using GAUSS code described in Kim and Nelson (1999) and
    found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm

    See `results.results_kalman_filter` for more information.
    r   c              
   C   sˆ  t j| _t | jd ¡| _tj| jd tjdddd�dgd�}t |d ¡|d	< || _	|| _
tj|d	 d
|dd�| _d | _}tj|ddf|dd�| _ddddg| jd d …d d …df< tj|df|dd�| _tj||df|dd�| _d | _}tj||df|dd�| _ddddddg| jddddd
dgdddd
ddgddddddgf< tj|df|dd�| _tjt |¡d d …d d …d f |d�| _tj||df|dd�| _tj|f|dd�| _tjt |¡d |d�| _tj| jd |d�\}}}	}
}|
|g| jddgdd
gddgf< |d
 |d
 d|	d
 g| jt |¡tj|td�f < t t t | jd d …d d …df | j¡| jd d …d d …df j¡¡| _d S )NÚstatesÚdataú
1947-01-01ú
1995-07-01ÚQS©ÚfreqÚGDP©ÚindexÚcolumnsZlgdpé   ÚF©ZndminÚdtypeÚorderr
   é   ©r!   r"   r   é   ©r!   éd   Ú
parameters)r   Zuc_uniÚtrueÚpdÚ	DataFrameÚtrue_statesÚ
date_rangeÚnpÚlogÚconserve_memoryÚloglikelihood_burnÚarrayÚobsÚk_endogÚzerosÚdesignÚobs_interceptÚobs_covÚk_statesÚ
transitionÚstate_interceptÚasfortranarrayÚeyeÚ	selectionÚ	state_covÚinitial_stateÚinitial_state_covÚdiag_indicesÚintÚdotÚT)Úclsr!   r0   r1   r   r4   r9   Úsigma_vÚsigma_eÚsigma_wÚphi_1Úphi_2© rL   úe/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyÚsetup_class:   sr    ý
 
 ÿþþÿ ÿÿ ÿ    ÿÿÿ þÿzClark1987.setup_classc              	   C   st   t | jfƒ}t|d  }|| j| j| j| j| j| j| j| j	ƒ}| 
| j| j¡ t|d  }||| j| jd�}||fS ©Nr   )r0   r1   ©r   r3   Úprefix_statespace_mapr6   r7   r8   r:   r;   r>   r?   Zinitialize_knownr@   rA   Úprefix_kalman_filter_mapr0   r1   ©rF   ÚprefixÚklassÚmodelZkfilterrL   rL   rM   Úinit_filter…   s$         ýÿzClark1987.init_filterc                    s$   ˆ   ¡  ‡ fdd„t ˆ j j¡dœS )Nc                    s   t  ˆ jj| d … ¡S ©N©r.   ÚsumÚfilterÚloglikelihood©Zburn©rF   rL   rM   Ú<lambda>¡   ó    z&Clark1987.run_filter.<locals>.<lambda>©ÚloglikeÚstate©r[   r.   r2   Úfiltered_stater^   rL   r^   rM   Ú
run_filterš   s    
þzClark1987.run_filterc                 C   s&   t | jd | jd ƒ| jd dƒ d S )Nrb   Ústarté   ©r   Úresultr)   ©ÚselfrL   rL   rM   Útest_loglike¥   s
      ÿzClark1987.test_loglikec                 C   s    t | jd d | jd d … | jjd d …df dƒ t | jd d | jd d … | jjd d …df dƒ t | jd d | jd d … | jjd d …df dƒ d S ©Nrc   r   rg   r#   r
   r%   r   ©r   rj   r)   r,   Úilocrk   rL   rL   rM   Útest_filtered_stateª   s     þ þ þzClark1987.test_filtered_statec                 C   sp   t  t  | j¡¡}|  ¡  |ƒ  ttƒt|ƒks4t‚tt | jj	¡t |j	¡ƒ tt | jj
¡t |j
¡ƒ d S rX   )ÚpickleÚloadsÚdumpsr[   ÚidÚAssertionErrorr   r.   r2   re   r\   )rl   ZpickledrL   rL   rM   Útest_pickled_filter¸   s    
ÿ
ÿzClark1987.test_pickled_filterc                 C   sj   t  | j¡}|  ¡  |ƒ  ttƒt|ƒks.t‚tt | jj¡t |j¡ƒ tt | jj	¡t |j	¡ƒ d S rX   )
ÚcopyÚdeepcopyr[   ru   rv   r   r.   r2   re   r\   )rl   ÚcopiedrL   rL   rM   Útest_copied_filterÄ   s    
ÿ
ÿzClark1987.test_copied_filterN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚclassmethodÚfloatrN   rW   rf   rm   rq   rw   r{   rL   rL   rL   rM   r   0   s   	J


r   c                       s4   e Zd ZdZe‡ fdd„ƒZdd„ Zdd„ Z‡  ZS )ÚTestClark1987SinglezP
    Basic single precision test for the loglikelihood and filtered states.
    c                    s>   t  d¡ tt| ƒjtjdd� |  ¡ \| _| _	|  
¡ | _d S ©NzNot implementedr   ©r!   r0   )ÚpytestÚskipÚsuperr‚   rN   r.   Úfloat32rW   rV   r[   rf   rj   r^   ©Ú	__class__rL   rM   rN   Ö   s    

 ÿzTestClark1987Single.setup_classc                 C   s(   t | jd | jd ƒ| jd dd� d S ©Nrb   rg   gü©ñÒMbP?)Zrtol©r   rj   r)   rk   rL   rL   rM   rm   à   s
     þz TestClark1987Single.test_loglikec                 C   s¦   t | jd d | jd d … | jjd d …df dd� t | jd d | jd d … | jjd d …df dd� t | jd d | jd d … | jjd d …df dd� d S ©	Nrc   r   rg   g{®Gáz„?©Zatolr
   r%   r   ©r   rj   r)   r,   rp   rk   rL   rL   rM   rq   æ   s    ýýýz'TestClark1987Single.test_filtered_state©	r|   r}   r~   r   r€   rN   rm   rq   Ú__classcell__rL   rL   r‰   rM   r‚   Ò   s
   	r‚   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1987DoublezP
    Basic double precision test for the loglikelihood and filtered states.
    c                    s2   t t| ƒjtdd� |  ¡ \| _| _|  ¡ | _d S ©Nr   r„   )	r‡   r’   rN   r�   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   ü   s    
 ÿzTestClark1987Double.setup_class©r|   r}   r~   r   r€   rN   r‘   rL   rL   r‰   rM   r’   ø   s   r’   c                       s4   e Zd ZdZe‡ fdd„ƒZdd„ Zdd„ Z‡  ZS )ÚTestClark1987SingleComplexz\
    Basic single precision complex test for the loglikelihood and filtered
    states.
    c                    s>   t  d¡ tt| ƒjtjdd� |  ¡ \| _| _	|  
¡ | _d S rƒ   )r…   r†   r‡   r•   rN   r.   Ú	complex64rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   
  s    

 ÿz&TestClark1987SingleComplex.setup_classc                 C   s(   t | jd | jd ƒ| jd dd� d S r‹   rŒ   rk   rL   rL   rM   rm     s
     þz'TestClark1987SingleComplex.test_loglikec                 C   s¦   t | jd d | jd d … | jjd d …df dd� t | jd d | jd d … | jjd d …df dd� t | jd d | jd d … | jjd d …df dd� d S r�   r�   rk   rL   rL   rM   rq     s    ýýýz.TestClark1987SingleComplex.test_filtered_stater�   rL   rL   r‰   rM   r•     s
   	r•   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1987DoubleComplexz\
    Basic double precision complex test for the loglikelihood and filtered
    states.
    c                    s2   t t| ƒjtdd� |  ¡ \| _| _|  ¡ | _d S r“   )	r‡   r—   rN   ÚcomplexrW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   1  s    
 ÿz&TestClark1987DoubleComplex.setup_classr”   rL   rL   r‰   rM   r—   ,  s   r—   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1987ConservezM
    Memory conservation test for the loglikelihood and filtered states.
    c                    s6   t t| ƒjtttB d� |  ¡ \| _| _|  	¡ | _
d S ©Nr„   )r‡   r™   rN   r�   r   r   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   >  s    
þz!TestClark1987Conserve.setup_classr”   rL   rL   r‰   rM   r™   :  s   r™   c                       s4   e Zd ZdZeeddf‡ fdd„	ƒZdd„ Z‡  ZS )ÚClark1987ForecastzE
    Forecasting test for the loglikelihood and filtered states.
    r'   r   c                    sX   t t| ƒ ||¡ || _| j| _tjtj| jdd d …f tj	g| f d|dd�| _d S )Nr   r   r   r    )
r‡   r›   rN   Ú	nforecastr3   Ú_obsr.   r2   Úr_Únan©rF   r!   rœ   r0   r‰   rL   rM   rN   L  s    
 ÿ&  ÿzClark1987Forecast.setup_classc                 C   s¬   t | jd d | jd | j … | jjd d …df dƒ t | jd d | jd | j … | jjd d …df dƒ t | jd d | jd | j … | jjd d …df dƒ d S rn   ©r   rj   r)   rœ   r,   rp   rk   rL   rL   rM   rq   X  s     þ þ þz%Clark1987Forecast.test_filtered_state©	r|   r}   r~   r   r€   r�   rN   rq   r‘   rL   rL   r‰   rM   r›   H  s   r›   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1987ForecastDoubleúR
    Basic double forecasting test for the loglikelihood and filtered states.
    c                    s,   t t| ƒ ¡  |  ¡ \| _| _|  ¡ | _d S rX   )r‡   r£   rN   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   k  s    z'TestClark1987ForecastDouble.setup_classr”   rL   rL   r‰   rM   r£   g  s   r£   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )Ú"TestClark1987ForecastDoubleComplexú^
    Basic double complex forecasting test for the loglikelihood and filtered
    states.
    c                    s0   t t| ƒjtd� |  ¡ \| _| _|  ¡ | _d S ©Nr&   )	r‡   r¥   rN   r˜   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   w  s
    
ÿz.TestClark1987ForecastDoubleComplex.setup_classr”   rL   rL   r‰   rM   r¥   r  s   r¥   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1987ForecastConserveú]
    Memory conservation forecasting test for the loglikelihood and filtered
    states.
    c                    s6   t t| ƒjtttB d� |  ¡ \| _| _|  	¡ | _
d S rš   )r‡   r¨   rN   r�   r   r   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   …  s    
þz)TestClark1987ForecastConserve.setup_classr”   rL   rL   r‰   rM   r¨   €  s   r¨   c                       s4   e Zd ZdZe‡ fdd„ƒZdd„ Zdd„ Z‡  ZS )ÚTestClark1987ConserveAllr©   c                    s>   t t| ƒjttd� | jd | _|  ¡ \| _| _	|  
¡ | _d S )Nr„   rg   )r‡   rª   rN   r�   r   r)   r1   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   ”  s    
 ÿz$TestClark1987ConserveAll.setup_classc                 C   s    t | jd dƒ| jd dƒ d S )Nrb   r   rh   ri   rk   rL   rL   rM   rm   �  s
      ÿz%TestClark1987ConserveAll.test_loglikec                 C   sd   | j jd }t| jd d d | j j|d df dƒ t| jd d d | j j|d df dƒ d S )Nr   rc   éÿÿÿÿr
   r#   ©r,   Úshaper   rj   rp   ©rl   ÚendrL   rL   rM   rq   ¢  s     þ þz,TestClark1987ConserveAll.test_filtered_stater�   rL   rL   r‰   rM   rª   �  s
   rª   c                   @   sL   e Zd ZdZeeddfdd„ƒZedd„ ƒZedd„ ƒZd	d
„ Z	dd„ Z
dS )Ú	Clark1989aj  
    Clark's (1989) bivariate unobserved components model of real GDP (as
    presented in Kim and Nelson, 1999)

    Tests two-dimensional observation data.

    Test data produced using GAUSS code described in Kim and Nelson (1999) and
    found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm

    See `results.results_kalman_filter` for more information.
    r   c                 C   s
  t j| _t | jd ¡| _tj| jd tjdddd�ddgd	�d
d … }t |d ¡|d< |d d |d< tj	|d|dd�j
| _d | _}d | _}|| _|| _tj||df|dd�| _ddddddgddddddgg| jd d …d d …df< tj|df|dd�| _tj||df|dd�| _tj||df|dd�| _ddddddddg| jddddddd
dgdd
ddddd
dgddddddddgf< tj|df|dd�| _tjt |¡d d …d d …d f |d�| _tj||df|dd�| _tj|f|d�| _tjt |¡d |d�| _tj	| jd |d�\
}}}	}
}}}}}}|||g| jdddgdddgdddgf< ||g| jddgddgddgf< |d | jd< |d |d dd|	d |
d g| jt |¡tj|td�f < t t t | jd d …d d …df | j¡| jd d …d d …df j
¡¡| _d S )Nr   r   r   r   r   r   r   ZUNEMPr   r#   r'   r   ÚCr    é   r
   r   r$   r   r%   rh   r&   r(   )r
   r
   r   )r   Zuc_bir)   r*   r+   r,   r-   r.   r/   r2   rE   r3   r4   r9   r0   r1   r5   r6   r7   r8   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   )rF   r!   r0   r1   r   r4   r9   rG   rH   rI   Zsigma_vlZsigma_ecrJ   rK   Zalpha_1Zalpha_2Zalpha_3rL   rL   rM   rN   º  s’    ýü

4 ÿþþÿ ÿÿ ÿÿ      ÿ"      ÿÿÿ þÿzClark1989.setup_classc              	   C   st   t | jfƒ}t|d  }|| j| j| j| j| j| j| j| j	ƒ}| 
| j| j¡ t|d  }||| j| jd�}||fS rO   rP   rS   rL   rL   rM   rW     s$         ýÿzClark1989.init_filterc                    s$   ˆ   ¡  ‡ fdd„t ˆ j j¡dœS )Nc                    s   t  ˆ jj| d … ¡S rX   rY   r]   r^   rL   rM   r_   )  r`   z&Clark1989.run_filter.<locals>.<lambda>ra   rd   r^   rL   r^   rM   rf   "  s    
þzClark1989.run_filterc                 C   s    t | jd dƒ| jd dƒ d S ©Nrb   r   r   ri   rk   rL   rL   rM   rm   -  s
     ýzClark1989.test_loglikec                 C   sÔ   t | jd d | jd d … | jjd d …df dƒ t | jd d | jd d … | jjd d …df dƒ t | jd d | jd d … | jjd d …df dƒ t | jd d | jd d … | jjd d …df dƒ d S ©	Nrc   r   rg   r#   r
   r   rh   r%   ro   rk   rL   rL   rM   rq   4  s(     þ þ þ þzClark1989.test_filtered_stateN)r|   r}   r~   r   r€   r�   rN   rW   rf   rm   rq   rL   rL   rL   rM   r°   ®  s   R


r°   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1989z|
    Basic double precision test for the loglikelihood and filtered
    states with two-dimensional observation vector.
    c                    s2   t t| ƒjtdd� |  ¡ \| _| _|  ¡ | _d S r“   )	r‡   rµ   rN   r�   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   L  s    zTestClark1989.setup_classr”   rL   rL   r‰   rM   rµ   G  s   rµ   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1989Conserveúy
    Memory conservation test for the loglikelihood and filtered states with
    two-dimensional observation vector.
    c                    s6   t t| ƒjtttB d� |  ¡ \| _| _|  	¡ | _
d S rš   )r‡   r¶   rN   r�   r   r   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   X  s    
þz!TestClark1989Conserve.setup_classr”   rL   rL   r‰   rM   r¶   S  s   r¶   c                       s4   e Zd ZdZeeddf‡ fdd„	ƒZdd„ Z‡  ZS )ÚClark1989Forecastr·   r'   r   c                    sx   t t| ƒ ||¡ || _| j| _tjtj| jtj	tj
tj
g|   d|¡f d|dd�| _|  ¡ \| _| _|  ¡ | _d S )Nr   r   r    )r‡   r¸   rN   rœ   r3   r�   r.   r2   Zc_rž   rŸ   ZreshaperW   rV   r[   rf   rj   r    r‰   rL   rM   rN   g  s    ÿÿ  ûzClark1989Forecast.setup_classc                 C   sä   t | jd d | jd | j … | jjd d …df dƒ t | jd d | jd | j … | jjd d …df dƒ t | jd d | jd | j … | jjd d …df dƒ t | jd d | jd | j … | jjd d …df dƒ d S r´   r¡   rk   rL   rL   rM   rq   y  s(     þ þ þ þz%Clark1989Forecast.test_filtered_stater¢   rL   rL   r‰   rM   r¸   b  s   r¸   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1989ForecastDoubler¤   c                    s,   t t| ƒ ¡  |  ¡ \| _| _|  ¡ | _d S rX   )r‡   r¹   rN   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   �  s    z'TestClark1989ForecastDouble.setup_classr”   rL   rL   r‰   rM   r¹   Œ  s   r¹   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )Ú"TestClark1989ForecastDoubleComplexr¦   c                    s0   t t| ƒjtd� |  ¡ \| _| _|  ¡ | _d S r§   )	r‡   rº   rN   r˜   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   œ  s
    
ÿz.TestClark1989ForecastDoubleComplex.setup_classr”   rL   rL   r‰   rM   rº   —  s   rº   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚTestClark1989ForecastConserver©   c                    s6   t t| ƒjtttB d� |  ¡ \| _| _|  	¡ | _
d S rš   )r‡   r»   rN   r�   r   r   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   ª  s    
þz)TestClark1989ForecastConserve.setup_classr”   rL   rL   r‰   rM   r»   ¥  s   r»   c                       s4   e Zd ZdZe‡ fdd„ƒZdd„ Zdd„ Z‡  ZS )ÚTestClark1989ConserveAllr©   c                    s8   t t| ƒjttd� d| _|  ¡ \| _| _|  	¡ | _
d S )Nr„   r   )r‡   r¼   rN   r�   r   r1   rW   rV   r[   rf   rj   r^   r‰   rL   rM   rN   ¹  s    
 ÿz$TestClark1989ConserveAll.setup_classc                 C   s    t | jd dƒ| jd dƒ d S r³   ri   rk   rL   rL   rM   rm   Ã  s
      ÿz%TestClark1989ConserveAll.test_loglikec                 C   s¸   | j jd }t| jd d d | j j|d df dƒ t| jd d d | j j|d df dƒ t| jd d d | j j|d df dƒ t| jd d d | j j|d df dƒ d S )	Nr   rc   r«   r
   r#   r   rh   r%   r¬   r®   rL   rL   rM   rq   È  s*     þ þ þ þz,TestClark1989ConserveAll.test_filtered_stater�   rL   rL   r‰   rM   r¼   ´  s
   	r¼   c           
      C   s   t jd| d�}t|ddd�}|j ¡  t jdg| d�}t  dg¡ | ¡}t  dg¡ | ¡}||d< ||d	< t  d¡ | ¡|d
< ||d< |j 	¡  |j 
¡  |jj}t  |j¡}t  |j¡}t||d|d   ƒ t j t  d¡| ¡ |¡}	t||	ƒ t||d|d   ƒ t|t||ƒƒ d S )Né
   r&   r
   ©r9   Zk_posdefçffffff@gÍÌÌÌÌÌì?gÍÌÌÌÌÌô?r;   r:   r>   r?   )r   r   r   )r.   r5   r   ÚssmÚinitialize_stationaryr2   ZdiagÚastyper=   Ú_initialize_filterÚ_initialize_stateÚ_statespacer@   rA   r   ÚlinalgÚinvrD   r   ©
r!   ZendogÚmodZ	interceptÚphiZsigma2rÅ   r@   rA   ZdesiredrL   rL   rM   Ú$check_stationary_initialization_1dimÜ  s(    



rË   c           
      C   s  t jd| d�}t|ddd�}|j ¡  t jddg| d�}t jddgd	d
gg| d�}t jdd	gd	dgg| d�}||d< ||d< t  d¡ | ¡|d< ||d< |j ¡  |j 	¡  |jj
}t  |j¡}t  |j¡}t j t  d¡ | ¡| |¡}	t||	ƒ t||ƒ}	t||	dd� d S )Nr½   r&   r   r¾   r¿   gffffff$Àgš™™™™™é?gš™™™™™¹?gš™™™™™É¿gffffffæ?gffffffö?g      @r;   r:   r>   r?   gñhãˆµøä>rŽ   )r.   r5   r   rÀ   rÁ   r2   r=   rÂ   rÃ   rÄ   rÅ   r@   rA   rÆ   Zsolver   r   rÈ   rL   rL   rM   Ú$check_stationary_initialization_2dimÿ  s6    

ÿÿ
ÿÿ



rÌ   c                   C   sT   t tjƒ t tjƒ t tjƒ t tjƒ ttjƒ ttjƒ ttjƒ ttjƒ d S rX   )rË   r.   rˆ   Zfloat64r–   Z
complex128rÌ   rL   rL   rL   rM   Útest_stationary_initialization  s    






rÍ   )Ar   rx   rr   Únumpyr.   Zpandasr*   Úosr…   Zscipy.linalg.blasr   Zscipy.linalgr   Z(statsmodels.tsa.statespace.kalman_filterr   r   r   Z#statsmodels.tsa.statespace.mlemodelr   Zstatsmodels.tsa.statespacer   r	   Úresultsr   Znumpy.testingr   r   ZsStatespaceZdStatespaceZcStatespaceZzStatespacerQ   ZsKalmanFilterZdKalmanFilterZcKalmanFilterZzKalmanFilterrR   ÚpathÚdirnameÚabspathÚ__file__Úcurrent_pathr   r‚   r’   r•   r—   r™   r›   r£   r¥   r¨   rª   r°   rµ   r¶   r¸   r¹   rº   r»   r¼   r�   rË   rÌ   rÍ   rL   rL   rL   rM   Ú<module>   s`     þ  þ #&' *(#