U
    Ãmœd�v  ã                   @   sž  d Z ddlZddlZddlmZmZmZmZm	Z	 ddl
ZddlmZ ddlmZ ddlmZ G dd„ dƒZG d	d
„ d
ƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZdd„ Zdd„ ZG dd „ d ƒZG d!d"„ d"ƒZG d#d$„ d$ƒZ d%d&„ Z!d'd(„ Z"d)d*„ Z#d+d,„ Z$d-d.„ Z%d/d0„ Z&d1d2„ Z'd3d4„ Z(d5d6„ Z)d7d8„ Z*d9d:„ Z+d;d<„ Z,d=d>„ Z-d?d@„ Z.dAdB„ Z/dS )Cz>
Tests for tools

Author: Chad Fulton
License: Simplified-BSD
é    N)Úassert_allcloseÚassert_equalÚassert_array_lessÚassert_array_equalÚassert_almost_equal)Úsolve_discrete_lyapunov)Útools)Úacovfc                   @   sü   e Zd Zde ddgddgg¡fdddge ddgddgg¡fddddge dddgdddgdddgg¡fde ddgddgg¡ e d	d
gddgg¡ ge ddd	d
gddddgddddgddddgg¡jfe d¡e ddgddgg¡fgZdd„ ZdS )ÚTestCompanionMatrixé   r   é   éÿÿÿÿéþÿÿÿéýÿÿÿé   é   é   é   é   é   c                 C   s$   | j D ]\}}tt |¡|ƒ qd S ©N)Úcasesr   r   Úcompanion_matrix)ÚselfÚ
polynomialÚresult© r   úd/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/tsa/statespace/tests/test_tools.pyÚ
test_cases%   s    zTestCompanionMatrix.test_casesN)	Ú__name__Ú
__module__Ú__qualname__ÚnpÚarrayÚTZint64r   r   r   r   r   r   r
      s$   ÿþ0


ýÿór
   c                   @   sä   e Zd Ze d¡Zdddgdddddgfeddddgd feddddgd	 fed ddddgd	 fed dddd
ddddgfeddddgd	 fed ddddgd	 fed ddddgd	 fed ddddddddgfg	Zdd„ ZdS )ÚTestDiffé
   r   r   r   Nr   r   r   r   é<   éT   él   é„   éœ   é   éð   iP  i°  i  ip  c                 C   sœ   | j D ]�\}}}}}|}t ||||¡}t||ƒ t |¡}tj||f }tj||f }t ||||¡}t||ƒ t |¡}t ||||¡}t||ƒ qd S r   )	r   r   Údiffr   ÚpdÚSeriesr"   Úc_Ú	DataFrame)r   Zseriesr.   Z	seas_diffZseasonal_periodsr   Zseasonal_diffÚxr   r   r   r   >   s    



zTestDiff.test_cases)r   r    r!   r"   Úaranger3   r   r   r   r   r   r   r%   *   s   
ór%   c                   @   s&   e Zd Zd	dd„Zdd„ Zdd„ ZdS )
ÚTestSolveDiscreteLyapunovFc                 C   s|   |s<t  || ¡ ¡}t  |jd ¡| }t j || ¡ ¡}n2t  ||¡}t  |jd ¡| }t j || ¡ ¡}t  ||j¡S ©Nr   )	r"   ZkronZconjÚeyeÚshapeÚlinalgZsolveÚflattenZreshape)r   ÚaÚqÚcomplex_stepÚlhsr3   r   r   r   Úsolve_dicrete_lyapunov_directZ   s    z7TestSolveDiscreteLyapunov.solve_dicrete_lyapunov_directc                 C   sÂ   t  dgg¡}t  dgg¡}t ||¡}t||ƒ}t||ƒ t  dgg¡}t  dgg¡}t ||¡}t||ƒ}t||ƒ t  dgg¡}t  dgg¡}tj||dd�}| j||dd�}t||ƒ d S )Nç      à?ç      $@y      à?      ð?T©r=   )r"   r#   r   r   r   r?   ©r   r;   r<   ÚactualÚdesiredr   r   r   Útest_univariatej   s    



z)TestSolveDiscreteLyapunov.test_univariatec                 C   sÒ   t  dddg¡}t ddg¡}t  ||¡}t||ƒ}t||ƒ t  dddg¡}t ddg¡}t j||dd�}| j||dd�}t||ƒ t  dddg¡}t ddg¡}t j||d	d�}| j||d	d�}t||ƒ d S )
Nr   gš™™™™™Ù¿r@   rA   g      @yš™™™™™Ù¿š™™™™™¹?FrB   T)r   r   r"   Údiagr   r   r?   rC   r   r   r   Útest_multivariate‚   s    


z+TestSolveDiscreteLyapunov.test_multivariateN)F)r   r    r!   r?   rF   rH   r   r   r   r   r5   X   s   
r5   c                   @   sÒ  e Zd Ze d¡Zdddgfdfdddgejd fdfejd e dg¡fd	d
dfe dddg¡e dg¡fd	d
dfej	edd… edd… f ej	edd… edd… f fej	edd… edd… f fej	edd… edd… f j
ej	edd… edd… f j
fdej	edd… edd… f j
fe ej	edd… edd… f ¡ej	edd… edd… f fd	d
ej	edd… edd… f fgZde dg¡fefde ddgg¡fefgZdd„ Zdd„ ZdS )Ú
TestConcatr&   ))©r   r   r   )r   ©r   r   r   r   rJ   r   rK   r   r   r   r   TNc                 C   s,   | j D ] }ttj|d d… Ž |d ƒ qd S ©Nr   )Úvalidr   r   Úconcat©r   Úargsr   r   r   Ú
test_valid±   s    
zTestConcat.test_validc              
   C   s<   | j D ]0}t |d ¡� tj|d d… Ž  W 5 Q R X qd S rL   )ÚinvalidÚpytestÚraisesr   rN   rO   r   r   r   Útest_invalidµ   s    
zTestConcat.test_invalid)r   r    r!   r"   r4   r3   Zr_r/   r0   r1   r$   r2   rM   Ú
ValueErrorr#   rR   rQ   rU   r   r   r   r   rI   ›   s,   
"X> ÿ@  ÿ÷þrI   c                
   @   sf   e Zd Zddgdfddgdfddgdfdddgdfe dddg¡dfe dddg¡dfgZdd	„ Zd
S )ÚTestIsInvertibler   ç      à¿Tg¡�vÿÿÿï?FgÍÌÌÌÌÌì?çš™™™™™¹?c                 C   s$   | j D ]\}}tt |¡|ƒ qd S r   )r   r   r   Zis_invertible)r   r   Z
invertibler   r   r   r   Æ   s    zTestIsInvertible.test_casesN)	r   r    r!   r"   r#   r/   r0   r   r   r   r   r   r   rW   »   s   


ú	rW   c                   @   s&   e Zd Ze dg¡dfgZdd„ ZdS )Ú!TestConstrainStationaryUnivariateç       @çÙí¿Å%Ÿì¿c                 C   s(   | j D ]\}}t |¡}t||ƒ qd S r   )r   r   Úconstrain_stationary_univariater   )r   ÚunconstrainedÚconstrainedr   r   r   r   r   Ñ   s    
z,TestConstrainStationaryUnivariate.test_casesN©r   r    r!   r"   r#   r   r   r   r   r   r   rZ   Ë   s   ÿrZ   c                   @   s.   e Zd Ze dg¡e dg¡fgZdd„ ZdS )Ú#TestUnconstrainStationaryUnivariater\   r[   c                 C   s(   | j D ]\}}t |¡}t||ƒ qd S r   )r   r   Ú!unconstrain_stationary_univariater   )r   r_   r^   r   r   r   r   r   Ý   s    
z.TestUnconstrainStationaryUnivariate.test_casesNr`   r   r   r   r   ra   ×   s   ÿra   c                   @   sb   e Zd Ze dg¡e dg¡e dg¡e dg¡gZe dg¡e dg¡e dg¡gZdd	„ Zd
S )ÚTestStationaryUnivariater   rY   rX   ç+‡ÙÎ÷ï?rA   çö(\�Â5DÀç°rh‘í|¿?c                 C   sX   | j D ]"}t |¡}t |¡}t||ƒ q| jD ]"}t |¡}t |¡}t||ƒ q0d S r   )Úconstrained_casesr   rb   r]   r   Úunconstrained_cases)r   r_   r^   ÚreconstrainedÚreunconstrainedr   r   r   r   ë   s    





z#TestStationaryUnivariate.test_casesN©r   r    r!   r"   r#   rg   rh   r   r   r   r   r   rc   ã   s   
 
 
 
ÿ
 
 
ÿrc   c                   @   s6   e Zd ZdddgZdddddd	gZd
d„ Zdd„ ZdS )ÚTestValidateMatrixShape)ÚTEST©r   r   r   r   N)rm   rn   r   r   r&   )rm   ©r   r   r&   r   r   r&   )rm   ©r   r   NN)rm   )r   r   r   r   r   r   N)rm   rn   r&   r   N)rm   rn   r   r   N)rm   ro   r   r   N)rm   ro   r   r   r   c                 C   s   | j D ]}tj|Ž  qd S r   )rM   r   Úvalidate_matrix_shaperO   r   r   r   Útest_valid_cases  s    
z(TestValidateMatrixShape.test_valid_casesc              
   C   s0   | j D ]$}t t¡� tj|Ž  W 5 Q R X qd S r   )rR   rS   rT   rV   r   rq   rO   r   r   r   Útest_invalid_cases  s    
z*TestValidateMatrixShape.test_invalid_casesN©r   r    r!   rM   rR   rr   rs   r   r   r   r   rl   ÷   s   ýú	rl   c                   @   s2   e Zd ZdddgZddddgZdd	„ Zd
d„ ZdS )ÚTestValidateVectorShape)rm   rp   r   N)rm   rp   r   r&   )rm   ©r   r&   r   r&   )rm   ro   r   r&   )rm   rp   r&   N)rm   rv   r   N)rm   rv   r   r   c                 C   s   | j D ]}tj|Ž  qd S r   )rM   r   Úvalidate_vector_shaperO   r   r   r   rr      s    
z(TestValidateVectorShape.test_valid_casesc              
   C   s0   | j D ]$}t t¡� tj|Ž  W 5 Q R X qd S r   )rR   rS   rT   rV   r   rw   rO   r   r   r   rs   %  s    
z*TestValidateVectorShape.test_invalid_casesNrt   r   r   r   r   ru     s   ýüru   c            	      C   sô  t j} t dddgdddgdddgg¡}t dddgdddgdddgg¡}t d	d
dgd
ddgdddgg¡}t| |g|ƒd |dd� t ddg¡}t ddgddgg¡}t ddgddgg¡}t ddgddgg¡}t ddgddgg¡}t ddgddgg¡}t dd gd!d"gg¡}t| ||g|dd#�|gdd� t| ||g|d$d#�||gdd� t| ||g|ƒ||gdd� t| ||g|d%d#�|||gdd� t| ||g|d&d#�||||gdd� t d'¡d }tt t j|d(d#�¡t	|d)d*�d d+… ƒ d S ),Ng      @r   ç      ð?r@   g®Gáz®ç?rY   ç333333Ó?gš™™™™™É?g      @gÏ÷Sã¥›Ä?gÛù~j¼t“?g�—nƒÀò?gÅ °rh‘å?gºI+‡î?gü©ñÒMbP?©Zatolg
×£p=
·?g{®Gáz¤?gš™™™™™Ù?g      Ð?gøSã¥›ÄÀ?gL7‰A`å°?g^ºI+Ç?g;ßO�—n²?gé&1¬ª?g9´Èv¾Ÿº?gçû©ñÒMÂ?gZd;ßO�§?g!°rh‘í¼?gÙÎ÷Sã¥»?gìQ¸…ë¡?gX9´Èv¾Ÿ?g+‡ÙÎ·?gsh‘í|?µ?©Zmaxlagr   r   r   é   r   F)Zfftr   )
r   Z-_compute_multivariate_acovf_from_coefficientsr"   r#   r   rG   r4   ÚsqueezeZ"_compute_multivariate_sample_acovfr	   )	Z_acovfZSigma_uZPhi_1ZGamma_0ZPhi_2ZGamma_1ZGamma_2ZGamma_3r3   r   r   r   Útest_multivariate_acovf+  s~    þþþ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ þ þ þ þ
 þþr~   c                  C   sX   t j d¡ t  d¡} t jjdd�}ttjt j| |f dd�d t  	ddg¡dd� d S )	NiÒ  i'  )Úsizer   r{   r   ç{®Gáz„?rz   )
r"   ÚrandomÚseedr4   Únormalr   r   Z!_compute_multivariate_sample_pacfr1   rG   )r3   Úyr   r   r   Útest_multivariate_pacfg  s    
 þr…   c                   @   s¶   e Zd Ze dgg¡e d¡e dgg¡fe dgg¡ge d¡e dgg¡gfgZe dgg¡ge dgg¡e dgg¡ge ddgdd	gg¡e d
dgddgg¡ggZdd„ ZdS )Ú#TestConstrainStationaryMultivariater[   r   çÙí¿Å%Ÿì?r   éd   é2   é   ééÿÿÿé   r&   ry   r@   éâÿÿÿc                    s¾   | j D ]$\}}‰ t ||¡}t|d ˆ ƒ q| jD ]†}t|ƒtkrXt |d j	d ¡}nt |j	d ¡}t ||¡\‰ }t 
dg‡ fdd„ttˆ ƒƒD ƒ ¡j}tt tj |¡¡dƒ q2d S )Nr   r   c                    s   g | ]}t  ˆ | ¡ ‘qS r   )r"   r}   )Ú.0Úi©r_   r   r   Ú
<listcomp>’  s   ÿzBTestConstrainStationaryMultivariate.test_cases.<locals>.<listcomp>)r   r   Ú!constrain_stationary_multivariater   Úeigval_casesÚtypeÚlistr"   r7   r8   r   ÚrangeÚlenr$   r   Úabsr9   Zeigvals)r   r^   Úerror_variancer   ÚcovÚ_Z	companionr   r�   r   r   ‚  s"     ÿ

ÿÿz.TestConstrainStationaryMultivariate.test_casesN)	r   r    r!   r"   r#   r7   r   r“   r   r   r   r   r   r†   r  s   "&û	*ýr†   c                   @   s`   e Zd Ze dgg¡e d¡e dgg¡fe dgg¡ge d¡e dgg¡gfgZdd„ ZdS )Ú%TestUnconstrainStationaryMultivariater‡   r   r[   c                 C   s0   | j D ]$\}}}t ||¡}t|d |ƒ qd S r6   )r   r   Ú#unconstrain_stationary_multivariater   )r   r_   r™   r^   r   r   r   r   r   ¢  s     ÿz0TestUnconstrainStationaryMultivariate.test_casesN)r   r    r!   r"   r#   r7   r   r   r   r   r   r   rœ   ˜  s   "&ûrœ   c                   @   sh  e Zd Ze dgg¡e dgg¡e dgg¡e dgg¡e dgg¡ge ddgg¡e dgg¡e dgg¡ge ddgd	d
gg¡e ddgddgg¡ge ddddgd	d
ddgg¡g	Ze dgg¡e dgg¡e dgg¡e dgg¡ge ddgg¡e dgg¡e dgg¡ge ddgddgg¡e ddgddgg¡ge ddddgddddgg¡gZdd„ ZdS )ÚTestStationaryMultivariater   rY   rX   rd   gš™™™™™é?gš™™™™™É¿ry   r€   gq=
×£pÍ¿g333333Ã?g¸…ëQ¸ž?gš™™™™™©?g333333Ó¿re   rf   rˆ   r‰   rŠ   r   r‹   rŒ   r&   r@   r�   c                 C   sØ   | j D ]`}t|ƒtkr,t |d jd ¡}nt |jd ¡}t ||¡\}}t ||¡\}}t	||ƒ q| j
D ]d}t|ƒtkr”t |d jd ¡}nt |jd ¡}t ||¡\}}t ||¡\}}t	||dd� qnd S )Nr   g-Cëâ6?rz   )rg   r”   r•   r"   r7   r8   r   r�   r’   r   rh   )r   r_   rš   r^   r›   ri   rj   r   r   r   r   ¿  s    

z%TestStationaryMultivariate.test_casesNrk   r   r   r   r   rž   ©  s,     ÿø  *ú	rž   c                  C   sj  d} d}d}t  || f¡}t  ||| f¡}t  dddgdddgd	d
dgg¡d d …d d …t jf |d d …d d …d d …f< | ¡ }d|d< t  dddgd	d
dgdddgg¡|d d …d d …df< d|dd d …df< d|d d…df< t  d	d
dgdddgdddgg¡|d d …d d …df< d|d d…d d …df< d|d< d|d< t  dddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|dd d …df< d|d< t  dddgd	d
dgdddgg¡|d d …d d …df< d|dd d …df< d|d< t  dddgdddgdddgg¡|d d …d d …df< d|dd d …df< t  |¡}t  | t j¡¡}tj	||ddddd� t
||ƒ d S )Nr   r   é   é   é   é   é   é   é   é    é!   r   ©r   r   r   r   ©r   r   ©r   r   ©r   r   ©r   r   r   TF©Zinplace©r"   Úzerosr#   ÚnewaxisÚcopyÚasfortranarrayÚastypeÚint32r   Zreorder_missing_matrixr   ©ÚnobsÚk_endogÚk_statesÚmissingÚgivenrE   rD   r   r   r   Útest_reorder_matrix_rowsÕ  sj    þþþþþþþ
   ÿr»   c                  C   s¦  d} d}d}t  || f¡}t  ||| f¡}t  dddgdddgd	d
dgg¡d d …d d …t jf |d d …d d …d d …f< | ¡ }d|d< t  dddgdddgd
ddgg¡d d …d d …t jf |d d …d d …d d …f< d|d d …ddf< d|d d…df< t  dddgdddgdddgg¡|d d …d d …df< d|d d …d d…df< d|d< d|d< t  dddgdddgd
ddgg¡|d d …d d …df< d|d d …ddf< d|d d …ddf< d|d< t  dddgdddgd	ddgg¡|d d …d d …df< d|d d …ddf< d|d< t  dddgdddgd	d
dgg¡|d d …d d …df< d|d d …ddf< t  |¡}t  | t j¡¡}tj	||ddddd� t
|d d …d d …df |d d …d d …df ƒ d S )Nr   r   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r   r¨   r   r   r©   rª   r«   r¬   r   FTr­   r®   rµ   r   r   r   Útest_reorder_matrix_cols	  sn    þþþþþþþþ
   ÿr¼   c                  C   sÖ  d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t  d
ddgdddgdddgg¡d d …d d …t jf |d d …d d …d d …f< | ¡ }t  dddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|d d …ddf< t  dddgdddgdddgg¡|d d …d d …df< d|d d…d d …df< d|d d …d d…df< t  dddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|d d …ddf< d|dd d …df< d|d d …ddf< t  d
ddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|d d …ddf< t  d
ddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|d d …ddf< t  |¡}t  | t j¡¡}tj	||ddddd� t
||ƒ d S )Nr   r   r   r¨   r   r©   rª   r«   r¬   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r   r   TFr­   r®   ©r¶   r·   r¹   rº   rE   rD   r   r   r   Útest_reorder_submatrix=  st    þþþþþþþ
   ÿr¾   c                  C   s  d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t  d
ddgdddgdddgg¡d d …d d …t jf |d d …d d …d d …f< | ¡ }t  dddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|d d …ddf< t  dddgdddgdddgg¡|d d …d d …df< d|d d…d d …df< d|d d …d d…df< t  dddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|d d …ddf< d|dd d …df< d|d d …ddf< t  d
ddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|d d …ddf< t  d
ddgdddgdddgg¡|d d …d d …df< d|dd d …df< d|d d …ddf< t  | ¡ ¡}t  | t j¡¡}tj	||ddddd� t
||ƒ t  | ¡ ¡}tj	||ddddd� t
||ƒ d S )Nr   r   r   r¨   r   r©   rª   r«   r¬   rŸ   r   r£   r§   r   TFr­   r®   r½   r   r   r   Útest_reorder_diagonal_submatrixw  s„    þþþþþþþ   ÿ
   ÿr¿   c                  C   s¬  d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  || f¡}t  dddg¡d d …t jf |d d …d d …f< | ¡ }ddd
g|d d …d
f< d
ddg|d d …d
f< dd
d
g|d d …df< d
d
dg|d d …df< dd
d
g|d d …df< d
dd
g|d d …df< ddd
g|d d …df< dd
dg|d d …df< ddd
g|d d …df< ddd
g|d d …df< t  | ¡ ¡}t  | t j¡¡}tj	||dd� t
||ƒ d S )Nr   r   r   r¨   r   r©   rª   r«   r¬   r   r   Tr­   )r"   r¯   r#   r°   r±   r²   r³   r´   r   Zreorder_missing_vectorr   r½   r   r   r   Útest_reorder_vectorµ  s4    .rÀ   c               	   C   sð   d} d}d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t| ƒD ]8}t|t  |d d …|f ¡ ƒ}d
|d |…d d …|f< qjt j||| fdd�}t  | t j¡¡}tj	|||ddddd� t
||ƒ d S ©Nr   r   r   r   r¨   r©   rª   r«   r¬   rx   ÚF©ÚorderTFr­   ©r"   r¯   r–   ÚintÚsumr²   r³   r´   r   Úcopy_missing_matrixr   ©r¶   r·   r¸   r¹   ÚAÚtÚnÚBr   r   r   Útest_copy_missing_matrix_rowsÖ  s$    rÎ   c               	   C   sð   d} d}d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t| ƒD ]8}t|t  |d d …|f ¡ ƒ}d
|d d …d |…|f< qjt j||| fdd�}t  | t j¡¡}tj	|||ddddd� t
||ƒ d S ©Nr   r   r   r   r¨   r©   rª   r«   r¬   rx   rÂ   rÃ   FTr­   rÅ   rÉ   r   r   r   Útest_copy_missing_matrix_colsî  s$    rÐ   c               	   C   sì   d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t| ƒD ]8}t|t  |d d …|f ¡ ƒ}d
|d |…d |…|f< qft j||| fdd�}t  | t j¡¡}tj	|||ddddd� t
||ƒ d S ©Nr   r   r   r¨   r   r©   rª   r«   r¬   rx   rÂ   rÃ   TFr­   rÅ   ©r¶   r·   r¹   rÊ   rË   rÌ   rÍ   r   r   r   Útest_copy_missing_submatrix  s"    rÓ   c               	   C   s(  d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t| ƒD ]>}t|t  |d d …|f ¡ ƒ}t  |¡|d |…d |…|f< qft j||| fd
d�}t  | t j¡¡}t	j
|||ddddd� t||ƒ t j||| fd
d�}t	j
|||ddddd� t||ƒ d S )Nr   r   r   r¨   r   r©   rª   r«   r¬   rÂ   rÃ   TFr­   )r"   r¯   r–   rÆ   rÇ   r7   r²   r³   r´   r   rÈ   r   rÒ   r   r   r   Ú$test_copy_missing_diagonal_submatrix  s(    
rÔ   c                  C   sÜ   d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  || f¡}t| ƒD ]2}t|t  |d d …|f ¡ ƒ}d
|d |…|f< qdt j|| fdd�}t  | t j¡¡}tj	|||dd� t
||ƒ d S ©Nr   r   r   r¨   r   r©   rª   r«   r¬   rx   rÂ   rÃ   Tr­   )r"   r¯   r–   rÆ   rÇ   r²   r³   r´   r   Zcopy_missing_vectorr   rÒ   r   r   r   Útest_copy_missing_vector8  s"    rÖ   c               	   C   sè   d} d}d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t| ƒD ]0}t|ƒD ]"}|||f rvd
||d d …|f< qvqjt j||| fdd�}t  | t j¡¡}tj|||ddddd� t||ƒ d S rÁ   ©	r"   r¯   r–   r²   r³   r´   r   Zcopy_index_matrixr   ©r¶   r·   r¸   ÚindexrÊ   rË   r�   rÍ   r   r   r   Útest_copy_index_matrix_rowsO  s&    rÚ   c               	   C   sè   d} d}d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t| ƒD ]0}t|ƒD ]"}|||f rvd
|d d …||f< qvqjt j||| fdd�}t  | t j¡¡}tj|||ddddd� t||ƒ d S rÏ   r×   rØ   r   r   r   Útest_copy_index_matrix_colsh  s&    rÛ   c               	   C   sö   d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t| ƒD ]B}t|ƒD ]4}|||f rrd
||d d …|f< d
|d d …||f< qrqft j||| fdd�}t  | t j¡¡}tj|||ddddd� t||ƒ d S rÑ   r×   ©r¶   r·   rÙ   rÊ   rË   r�   rÍ   r   r   r   Útest_copy_index_submatrix�  s&    rÝ   c               	   C   s  d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  ||| f¡}t| ƒD ],}t|ƒD ]}|||f rrd
||||f< qrqft j||| fdd�}t  | t j¡¡}tj|||ddddd� t||ƒ t j||| fdd�}tj|||ddddd� t||ƒ d S rÑ   r×   rÜ   r   r   r   Ú"test_copy_index_diagonal_submatrixš  s*    
rÞ   c                  C   sÔ   d} d}t  || f¡}d|d< d|d d…df< d|d< d|d< d|d< d|d	< t  || f¡}t| ƒD ]*}t|ƒD ]}|||f rpd
|||f< qpqdt j|| fdd�}t  | t j¡¡}tj|||dd� t||ƒ d S rÕ   )	r"   r¯   r–   r²   r³   r´   r   Zcopy_index_vectorr   rÜ   r   r   r   Útest_copy_index_vector¶  s$    rß   )0Ú__doc__rS   Únumpyr"   Znumpy.testingr   r   r   r   r   Zpandasr/   Zscipy.linalgr   Zstatsmodels.tsa.statespacer   Zstatsmodels.tsa.stattoolsr	   r
   r%   r5   rI   rW   rZ   ra   rc   rl   ru   r~   r…   r†   rœ   rž   r»   r¼   r¾   r¿   rÀ   rÎ   rÐ   rÓ   rÔ   rÖ   rÚ   rÛ   rÝ   rÞ   rß   r   r   r   r   Ú<module>   sJ   .C <&,44:>!