
    !gv                        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      Z G d	 d
      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zd Zd Z G d d      Z G d d       Z G d! d"      Z d# Z!d$ Z"d% Z#d& Z$d' Z%d( Z&d) Z'd* Z(d+ Z)d, Z*d- Z+d. Z,d/ Z-d0 Z.d1 Z/y)2z>
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                      e Zd Zd ej                  ddgddgg      fg d ej                  ddgddgg      fg d ej                  g dg dg dg      fd ej                  ddgd	d
gg        ej                  ddgddgg       g ej                  g dg dg dg dg      j
                  f ej                  d       ej                  ddgddgg      fgZd Zy)TestCompanionMatrix   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   r   r   r   c                 j    | j                   D ]$  \  }}t        t        j                  |      |       & y N)casesr   r	   companion_matrix)self
polynomialresults      h/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/tests/test_tools.py
test_caseszTestCompanionMatrix.test_cases%   s1    "&** 	EJ//
;VD	E    N)	__name__
__module____qualname__nparrayTint64r   r!    r"   r    r   r      s    
HBHHq!fq!f%&'	hbhhA!"A ( ) 	*	("((I$-$-$/ 0 	1 hbhhAA'((8288aVaV4D+E*E	F	<! 
" #$!		% 
!hbhhAA/01E Er"   r   c                      e Zd Z ej                  d      Zg ddddddgfeddddgdz  feddddgd	z  fedz  ddddgd	z  fed
z  dddg dfeddddgd	z  fedz  ddddgd	z  fed
z  ddddgd	z  fedz  dddg dfg	Zd Zy)TestDiff
   r   r   r   r   Nr   r   r   r   r   r   )<   T   l            )   iP  i  i  ip  c                    | j                   D ]  \  }}}}}|}t        j                  ||||      }t        ||       t	        j
                  |      }t        j                  ||f   }t        j                  ||f   }t        j                  ||||      }t        ||       t	        j                  |      }t        j                  ||||      }t        ||        y r   )	r   r	   diffr   pdSeriesr&   c_	DataFrame)r   seriesr7   	seas_diffseasonal_periodsr   seasonal_diffxs           r    r!   zTestDiff.test_cases>   s    AE 	+=FD)%5v%M 

648HIA6* YYv&F UU66>*FUU66>*F 

648HIA6* \\&)F

648HIA6*+	+r"   )r#   r$   r%   r&   aranger@   r   r!   r*   r"   r    r,   r,   *   s    		"A 
AtQA'	
AtQA	
Aq!aSU	
Aq!QA	
Aq!Q/0	
Aq!aSU	
Aq!QA	
Aq!QQ	
Aq!Q12E"+r"   r,   c                        e Zd ZddZd Zd Zy)TestSolveDiscreteLyapunovc                    |sxt        j                  ||j                               }t        j                  |j                  d         |z
  }t         j
                  j                  ||j                               }nit        j                  ||      }t        j                  |j                  d         |z
  }t         j
                  j                  ||j                               }t        j                  ||j                        S Nr   )	r&   kronconjeyeshapelinalgsolveflattenreshape)r   aqcomplex_steplhsr@   s         r    solve_dicrete_lyapunov_directz7TestSolveDiscreteLyapunov.solve_dicrete_lyapunov_directZ   s    
 ''!QVVX&C&&1&,C		QYY[1A''!Q-C&&1&,C		QYY[1Azz!QWW%%r"   c                 @   t        j                  dgg      }t        j                  dgg      }t        j                  ||      }t        ||      }t	        ||       t        j                  dgg      }t        j                  dgg      }t        j                  ||      }t        ||      }t	        ||       t        j                  dgg      }t        j                  dgg      }t        j                  ||d      }| j                  ||d      }t	        ||       y )N      ?      $@y      ?      ?TrP   )r&   r'   r	   r   r   rR   r   rN   rO   actualdesireds        r    test_univariatez)TestSolveDiscreteLyapunov.test_univariatej   s    HHseWHHseW..q!4)!Q/( HHvhZ HHseW..q!4)!Q/( HHvhZ HHseW..q!$G44Q4M(r"   c                 T   t        j                  g d      }t        j                  ddg      }t        j                  ||      }t	        ||      }t        ||       t        j                  g d      }t        j                  ddg      }t        j                  ||d      }| j                  ||d      }t        ||       t        j                  g d      }t        j                  ddg      }t        j                  ||d      }| j                  ||d      }t        ||       y )N)r   gٿrT   rU   g      @)r   yٿ?rT   FrV   T)r	   r   r&   diagr   r   rR   rW   s        r    test_multivariatez+TestSolveDiscreteLyapunov.test_multivariate   s    "">2GGS"I..q!4)!Q/( ""#67GGS"I..q!%H44Q4N( ""#67GGS"I..q!$G44Q4M(r"   N)F)r#   r$   r%   rR   rZ   r]   r*   r"   r    rC   rC   X   s    & )0)r"   rC   c                   n   e Zd Z ej                  d      Zdddgfdfg dej                  d   fdfej                  d    ej                  dg      fdddf ej                  g d       ej                  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j                  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j                  dg      fefd ej                  dd	gg      fefgZd Zd Zy)
TestConcatr-   ))r.   )r   r   r   r   r   r.   r   r`   r   TNr   r   r   c                 j    | j                   D ]$  }t        t        j                  |d d  |d          & y Nr   )validr   r	   concatr   argss     r    
test_validzTestConcat.test_valid   s4    JJ 	CDu||T#2Y7bB	Cr"   c                     | j                   D ]8  }t        j                  |d         5  t        j                  |d d   d d d        : y # 1 sw Y   ExY wrb   )invalidpytestraisesr	   rd   re   s     r    test_invalidzTestConcat.test_invalid   sQ    LL 	)DtBx( )d3Bi() )	)) )s   A		A	)r#   r$   r%   r&   rA   r@   r_r8   r9   r:   r(   r;   rc   
ValueErrorr'   ri   rg   rl   r*   r"   r    r_   r_      s
   		"A 	*
aS	<(
RUU1X	-
%%.)"))QC.	)1dLA
"))I
			1#	/D,G
%%"1q!u
ruuQqVQqV^4	5ruuQrUAbqE\7JK
%%"1q!u


q1vq1v~!6!8!8	9	
BEE!BQ%2A,!!	#
",,ruuQrUAbqE\*
+RUU1Qq61Qq6>-B	C	
D"%%"1q!u%	'E YRYYs^	$j1
XRXX1vh'	(*5G
C)r"   r_   c            	           e Zd Zddgdfddgdfddgdfg ddf ej                  g d      df ej                  g d      dfgZd Zy)	TestIsInvertibler         Tgv?F)r   g?皙?c                 j    | j                   D ]$  \  }}t        t        j                  |      |       & y r   )r   r   r	   is_invertible)r   r   
invertibles      r    r!   zTestIsInvertible.test_cases   s1    &*jj 	F"J
,,Z8*E	Fr"   N)	r#   r$   r%   r&   r'   r8   r9   r   r!   r*   r"   r    rp   rp      sb     TD
Vd
Q		-	 $'	=	!4(EFr"   rp   c                   >    e Zd Z ej                  dg      dfgZd Zy)!TestConstrainStationaryUnivariate       @%c                 n    | j                   D ]&  \  }}t        j                  |      }t        ||       ( y r   )r   r	   constrain_stationary_univariater   )r   unconstrainedconstrainedr   s       r    r!   z,TestConstrainStationaryUnivariate.test_cases   s4    *.** 	.&M;::=IF-	.r"   Nr#   r$   r%   r&   r'   r   r!   r*   r"   r    rw   rw      s%     
2$-.E.r"   rw   c                   `    e Zd Z ej                  dg       ej                  dg      fgZd Zy)#TestUnconstrainStationaryUnivariatery   rx   c                 n    | j                   D ]&  \  }}t        j                  |      }t        ||       ( y r   )r   r	   !unconstrain_stationary_univariater   )r   r}   r|   r   s       r    r!   z.TestUnconstrainStationaryUnivariate.test_cases   s4    *.** 	3&K<<[IFFM2	3r"   Nr~   r*   r"   r    r   r      s3     
'(	)8288RD>:E3r"   r   c                      e Zd Z ej                  dg       ej                  dg       ej                  dg       ej                  dg      gZ ej                  dg       ej                  dg       ej                  dg      gZd Zy	)
TestStationaryUnivariater   rr   rq   +?rU   (\5Drh|?c                     | j                   D ]8  }t        j                  |      }t        j                  |      }t	        ||       : | j
                  D ]8  }t        j                  |      }t        j                  |      }t	        ||       : y r   )constrained_casesr	   r   r{   r   unconstrained_cases)r   r}   r|   reconstrainedreunconstraineds        r    r!   z#TestStationaryUnivariate.test_cases   s    11 	8K!CCKPM!AA-PMM;7	8
 "55 	<M??NK#EEkROO];	<r"   Nr#   r$   r%   r&   r'   r   r   r!   r*   r"   r    r   r      s     	!xrxx$(8("((E7:KM 	#6(+XRXXug->@	<r"   r   c                   (    e Zd Zg dZg dZd Zd Zy)TestValidateMatrixShape))TESTr   r   r   r   N)r   r   r   r   r-   )r   r   r   r-   r   r   r-   ))r   r   r   NN)r   )r   r   r   r   r   r   N)r   r   r-   r   N)r   r   r   r   N)r   r   r   r   N)r   r   r   r   r   c                 J    | j                   D ]  }t        j                  |   y r   )rc   r	   validate_matrix_shapere   s     r    test_valid_casesz(TestValidateMatrixShape.test_valid_cases  #    JJ 	/D''.	/r"   c                     | j                   D ]6  }t        j                  t              5  t	        j
                  |  d d d        8 y # 1 sw Y   CxY wr   )ri   rj   rk   rn   r	   r   re   s     r    test_invalid_casesz*TestValidateMatrixShape.test_invalid_cases  I    LL 	3Dz* 3++T23 3	33 3   AA	Nr#   r$   r%   rc   ri   r   r   r*   r"   r    r   r      s    E
G/
3r"   r   c                   (    e Zd Zg dZg dZd Zd Zy)TestValidateVectorShape))r   r   r   N)r   r   r   r-   )r   r   r-   r   r-   ))r   r   r   r-   )r   r   r-   N)r   r   r   N)r   r   r   r   c                 J    | j                   D ]  }t        j                  |   y r   )rc   r	   validate_vector_shapere   s     r    r   z(TestValidateVectorShape.test_valid_cases   r   r"   c                     | j                   D ]6  }t        j                  t              5  t	        j
                  |  d d d        8 y # 1 sw Y   CxY wr   )ri   rj   rk   rn   r	   r   re   s     r    r   z*TestValidateVectorShape.test_invalid_cases%  r   r   Nr   r*   r"   r    r   r     s    E
G/
3r"   r   c                  >   t         j                  } t        j                  g dg dg dg      }t        j                  g dg dg dg      }t        j                  g dg dg d	g      }t	         | |g|      d
   |d       t        j
                  ddg      }t        j                  ddgddgg      }t        j                  d
d
gdd
gg      }t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  ddgdd gg      }t	         | ||g|d
!      |gd       t	         | ||g|d"!      ||gd       t	         | ||g|      ||gd       t	         | ||g|d#!      |||gd       t	         | ||g|d$!      ||||gd       t        j                  d%      d&z  }t	        t        j                  t        j                  |d'!            t        |d()      d d*        y )+N)g      @r   r   )r         ?rT   )r   rT   gGz?)rT   r   r   )rr   rr   333333?)r   g?r   )g      @S㥛?~jt?)r   gn? rh?)r   r   gI+?r   gMbP?atolg
ףp=
?g{Gz?rT   rr   g?g      ?gS㥛?gL7A`?g^I+?g;On?g&1?g9v?gM?gZd;O?g!rh?gS㥻?gQ?gX9v?g+η?gsh|??maxlagr   r   r      r   r   F)fftr   )
r	   -_compute_multivariate_acovf_from_coefficientsr&   r'   r   r\   rA   squeeze"_compute_multivariate_sample_acovfr
   )	_acovfSigma_uPhi_1Gamma_0Phi_2Gamma_1Gamma_2Gamma_3r@   s	            r    test_multivariate_acovfr   +  sP   @@F hh()+ ,G HHm%%' (E hh---/ 0G FE7G,Q/tD
 ggtTl#GHHsCjCj" #EHHqQiQi! "Ehh( )Ghh( )Ghh( )Ghh( )G u~wq1		 u~wq1	'' u~w'	'' u~wq1	'7#$0 u~wq1	'7G,49
 			"cA


5;;AaHIaUBQ!r"   c                  H   t         j                  j                  d       t        j                  d      } t         j                  j	                  d      }t        t        j                  t         j                  | |f   d      d   t        j                  ddg      d       y )	Ni  i'  )sizer   r   r   {Gz?r   )
r&   randomseedrA   normalr   r	   !_compute_multivariate_sample_pacfr:   r\   )r@   ys     r    test_multivariate_pacfr   g  sq    IINN4
		%A
		e$A//adAFqI
Ad$r"   c                      e Zd Z ej                  dgg       ej
                  d       ej                  dgg      f ej                  dgg      g ej
                  d       ej                  dgg      gfgZ ej                  dgg      g ej                  dgg       ej                  dgg      g ej                  ddgdd	gg       ej                  d
dgddgg      ggZd Zy)#TestConstrainStationaryMultivariaterx   r   %?r   d   2         r-   r   rT   c                    | j                   D ]+  \  }}}t        j                  ||      }t        |d   |       - | j                  D ]  }t        |      t        u r&t        j                  |d   j                  d         }n"t        j                  |j                  d         }t        j                  ||      \  }}t        j                  dgt        t        |            D cg c]  }t        j                  ||           c}z         j                  }t        t        j                   t        j"                  j%                  |            d        y c c}w )Nr   r   )r   r	   !constrain_stationary_multivariater   eigval_casestypelistr&   rH   rI   r   rangelenr   r(   r   absrJ   eigvals)	r   r|   error_variancer}   r   cov_i	companions	            r    r!   z.TestConstrainStationaryMultivariate.test_cases  s0   :>** 	46M>;<<~/FF1I{3	4 ".. 
	GMM"d*ff]1-33A67ff]0034"DD]TWXNK.. %c+&6 79 

;q>22 9 9 a  bffRYY%6%6y%ABAF
	G9s   $ EN)	r#   r$   r%   r&   r'   rH   r   r   r!   r*   r"   r    r   r   r  s    
 
B4&	6266!9hbhh1D0E/F&GH
"((RD6
	VRVVAY4G3H2I)J(KLE 
A3%	C5'	HBHHrdV,-	B7S"I&	'B8b#Y2G)HILGr"   r   c                       e Zd Z ej                  dgg       ej
                  d       ej                  dgg      f ej                  dgg      g ej
                  d       ej                  dgg      gfgZd Zy)%TestUnconstrainStationaryMultivariater   r   rx   c                 x    | j                   D ]+  \  }}}t        j                  ||      }t        |d   |       - y rE   )r   r	   #unconstrain_stationary_multivariater   )r   r}   r   r|   r   s        r    r!   z0TestUnconstrainStationaryMultivariate.test_cases  s?    :>** 	66K>>^-FF1I}5	6r"   N)r#   r$   r%   r&   r'   rH   r   r!   r*   r"   r    r   r     s    
 
'()	*FBFF1Ixrxx"7GH
"((()*
+	,fbffQi("((RD6:J9KLE6r"   r   c                   x   e Zd Z ej                  dgg       ej                  dgg       ej                  dgg       ej                  dgg       ej                  dgg      g ej                  ddgg       ej                  dgg       ej                  dgg      g ej                  ddgd	d
gg       ej                  ddgddgg      g ej                  g dg dg      g	Z ej                  dgg       ej                  dgg       ej                  dgg       ej                  dgg      g ej                  ddgg       ej                  dgg       ej                  dgg      g ej                  ddgddgg       ej                  ddgddgg      g ej                  g dg dg      gZd Zy)TestStationaryMultivariater   rr   rq   r   g?gɿr   r   q=
ףpͿ333333?Q?皙?333333ӿ)r   r   rr   r   )r   r   r   r   r   r   r   r   r   r   r   r   r-   rT   r   )r   r   r-   r   )r   r   rT   r   c                    | j                   D ]  }t        |      t        u r&t        j                  |d   j
                  d         }n"t        j                  |j
                  d         }t        j                  ||      \  }}t        j                  ||      \  }}t        ||        | j                  D ]  }t        |      t        u r&t        j                  |d   j
                  d         }n"t        j                  |j
                  d         }t        j                  ||      \  }}t        j                  ||      \  }}t        ||d        y )Nr   g-C6?r   )r   r   r   r&   rH   rI   r	   r   r   r   r   )r   r}   r   r|   r   r   r   s          r    r!   z%TestStationaryMultivariate.test_cases  s.   11 	8KK D(ff[^11!45ff[..q12$HHVYZM1$FF}VYZM1M;7	8 "55 		GMM"d*ff]1-33A67ff]0034"DD]TWXNK!&!J!J;X[!\OQ O]F		Gr"   Nr   r*   r"   r    r   r     s    	1#C5'*4&HBHHugY/	A3%3+	C5'	HBHHtfX./	C;.	/	C;t-	.	0(*CDE	 	1#F8*-xrxx%	/B	A3%3)	C5'	HBHHrdV,-	B7S"I&	'B8b#Y2G)HI/#567Gr"   r   c                  >   d} d}d}t        j                  || f      }t        j                  ||| f      }t        j                  g dg dg dg      d d d d t         j                  f   |d d d d d d f<   |j	                         }d|d<   t        j                  g dg dg dg      |d d d d d	f<   d	|d	d d d	f<   d|d d
df<   t        j                  g dg dg dg      |d d d d df<   d	|d d
d d df<   d|d<   d|d<   t        j                  g dg dg dg      |d d d d d
f<   d	|d	d d d
f<   d	|d
d d d
f<   d|d<   t        j                  g dg dg dg      |d d d d df<   d	|dd d df<   d|d<   t        j                  g dg dg dg      |d d d d df<   d	|d
d d df<   t        j
                  |      }t        j
                  |j                  t         j                              }t        j                  ||dddd       t        ||       y )Nr   r                            !   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   TFinplacer&   zerosr'   newaxiscopyasfortranarrayastypeint32r	   reorder_missing_matrixr   nobsk_endogk_statesmissinggivenrY   rX   s          r    test_reorder_matrix_rowsr
    s8   DGHhh'GHHgx./EXX|++- ../BJJ.>@E!Q'N jjlGGDMXX|+*, -E!Q'N GAq!GGBQBENXX|**, -E!Q'N GBQB1HGDMGDMXX|**, -E!Q'N GAq!GGAq!GGDMXX|+*, -E!Q'N GAq!GGDMXX|+*, -E!Q'N GAq!Gu%Frxx 89G	  !%ueTC !r"   c                     d} d}d}t        j                  || f      }t        j                  ||| f      }t        j                  g dg dg dg      d d d d t         j                  f   |d d d d d d f<   |j	                         }d|d<   t        j                  g dg d	g d
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        j                  g dg dg dg      |d d d d df<   d|d d d ddf<   d|d<   d|d<   t        j                  g dg dg dg      |d d d d df<   d|d d ddf<   d|d d ddf<   d|d<   t        j                  g dg dg dg      |d d d d df<   d|d d ddf<   d|d<   t        j                  g dg dg dg      |d d d d df<   d|d d ddf<   t        j
                  |      }t        j
                  |j                  t         j                              }t        j                  ||dddd        t        |d d d d df   |d d d d df          y )!Nr   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   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   )r   r   r   r   FTr   r   r  s          r    test_reorder_matrix_colsr  	  s`   DGHhh'GHHgx./EXX|++- ../BJJ.>@E!Q'N jjlGGDMXX{**, --.2::-=?E!Q'N GAq!GGBQBENXXz))+ ,E!Q'N GArr1HGDMGDMXXz))+ ,E!Q'N GAq!GGAq!GGDMXX{**, -E!Q'N GAq!GGDMXX{**, -E!Q'N GAq!Gu%Frxx 89G	  !&eTC 1a'!Q'"23r"   c                     d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        j                  g d
g dg dg      d d d d t         j                  f   |d d d d d d f<   |j	                         }t        j                  g dg dg dg      |d d d d df<   d|dd d df<   d|d d ddf<   t        j                  g dg dg dg      |d d d d df<   d|d dd d df<   d|d d d ddf<   t        j                  g dg dg d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        j                  g dg dg dg      |d d d d df<   d|dd d df<   d|d d ddf<   t        j                  g dg dg dg      |d d d d df<   d|dd d df<   d|d d ddf<   t        j
                  |      }t        j
                  |j                  t         j                              }t        j                  ||dddd       t        ||       y )Nr   r   r   r   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	  rY   rX   s         r    test_reorder_submatrixr  =  s   DGhh'GGDMGBQBENGDMGDMGDMGDMHHgw-.EXX|++- ../BJJ.>@E!Q'N jjlGXX{**, -E!Q'N GAq!GGAq!GXXz)*, -E!Q'N GBQB1HGArr1HXXz))+ ,E!Q'N GAq!GGAq!GGAq!GGAq!GXX{**, -E!Q'N GAq!GGAq!GXX{**, -E!Q'N GAq!GGAq!Gu%Frxx 89G	  !%tUDB !r"   c                  f   d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        j                  g d
g dg dg      d d d d t         j                  f   |d d d d d d f<   |j	                         }t        j                  g dg dg dg      |d d d d df<   d|dd d df<   d|d d ddf<   t        j                  g dg dg dg      |d d d d df<   d|d dd d df<   d|d d d ddf<   t        j                  g dg dg d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        j                  g d
g dg dg      |d d d d df<   d|dd d df<   d|d d ddf<   t        j                  g d
g dg dg      |d d d d df<   d|dd d df<   d|d d ddf<   t        j
                  |j	                               }t        j
                  |j                  t         j                              }t        j                  ||dddd       t        ||       t        j
                  |j	                               }t        j                  ||dddd       t        ||       y )Nr   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   TFr   r   r  s         r    test_reorder_diagonal_submatrixr  w  s   DGhh'GGDMGBQBENGDMGDMGDMGDMHHgw-.EXX|++- ../BJJ.>@E!Q'N jjlGXX{**, -E!Q'N GAq!GGAq!GXXz)*, -E!Q'N GBQB1HGArr1HXXz))+ ,E!Q'N GAq!GGAq!GGAq!GGAq!GXX{**, -E!Q'N GAq!GGAq!GXX{**, -E!Q'N GAq!GGAq!Guzz|,Frxx 89G	  !%tUDB!uzz|,F	  !%tT4A!r"   c                     d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  || f      }t        j                  g d
      d d t         j                  f   |d d d d f<   |j	                         }g d|d d df<   g d|d d df<   g d|d d df<   g d|d d df<   g d|d d df<   g d|d d df<   g d|d d df<   g d|d d df<   g d|d d df<   g d|d d df<   t        j
                  |j	                               }t        j
                  |j                  t         j                              }t        j                  ||d       t        ||       y )Nr   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   r   r   )r   r   r   )r   r   r   r   Tr   )r&   r   r'   r   r   r   r  r  r	   reorder_missing_vectorr   r  s         r    test_reorder_vectorr    sm   DGhh'GGDMGBQBENGDMGDMGDMGDMHHgt_%E((9%am4E!Q$KjjlGE!Q$KGAqDME!Q$KGAqDME!Q$KGAqDME!Q$KGAqDME!Q$KGAqDMuzz|,Frxx 89G	  $?!r"   c            	      "   d} d}d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        |       D ]6  }t        |t        j                  |d d |f         z
        }d
|d |d d |f<   8 t        j                  ||| fd      }t        j
                  |j                  t         j                              }t        j                  |||dddd       t        ||       y Nr   r   r   r   r   r   r   r   r   r   ForderTFr   r&   r   r   intsumr   r  r  r	   copy_missing_matrixr   r  r  r  r  AtnBs           r    test_copy_missing_matrix_rowsr+    s   DGHhh'GGDMGBQBENGDMGDMGDMGDM
'8T*+A4[ "&&A//0"1"a( 	'8T*#6Arxx 89G	aGT5%NAr"   c            	      "   d} d}d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        |       D ]6  }t        |t        j                  |d d |f         z
        }d
|d d d ||f<   8 t        j                  ||| fd      }t        j
                  |j                  t         j                              }t        j                  |||dddd       t        ||       y Nr   r   r   r   r   r   r   r   r   r   r  r   FTr   r"  r&  s           r    test_copy_missing_matrix_colsr.    s   DGHhh'GGDMGBQBENGDMGDMGDMGDM
(GT*+A4[ "&&A//0!RaR( 	(GT*#6Arxx 89G	aGUD%NAr"   c            	         d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        |       D ]6  }t        |t        j                  |d d |f         z
        }d
|d |d ||f<   8 t        j                  ||| fd      }t        j
                  |j                  t         j                              }t        j                  |||dddd       t        ||       y Nr   r   r   r   r   r   r   r   r   r   r  r   TFr   r"  r  r  r  r'  r(  r)  r*  s          r    test_copy_missing_submatrixr2    s   DGhh'GGDMGBQBENGDMGDMGDMGDM
'7D)*A4[ "&&A//0"1"bqb!) 	'7D)5Arxx 89G	aGT4MAr"   c            	         d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        |       D ]I  }t        |t        j                  |d d |f         z
        }t        j
                  |      |d |d ||f<   K t        j                  ||| fd
      }t        j                  |j                  t         j                              }t        j                  |||dddd       t        ||       t        j                  ||| fd
      }t        j                  |||dddd       t        ||       y )Nr   r   r   r   r   r   r   r   r   r  r   TFr   )r&   r   r   r#  r$  rH   r   r  r  r	   r%  r   r1  s          r    $test_copy_missing_diagonal_submatrixr4    sX   DGhh'GGDMGBQBENGDMGDMGDMGDM
'7D)*A4[ !"&&A//0vvay"1"bqb!)! 	'7D)5Arxx 89G	aGT4MA
'7D)5A	aGT4tLAr"   c            	         d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  || f      }t        |       D ]3  }t        |t        j                  |d d |f         z
        }d
|d ||f<   5 t        j                  || fd      }t        j
                  |j                  t         j                              }t        j                  |||d       t        ||       y Nr   r   r   r   r   r   r   r   r   r   r  r   Tr   )r&   r   r   r#  r$  r   r  r  r	   copy_missing_vectorr   r1  s          r    test_copy_missing_vectorr8  8  s   DGhh'GGDMGBQBENGDMGDMGDMGDM
'4!A4[ "&&A//0"1"a% 	'4,Arxx 89G	aGT:Ar"   c            	         d} d}d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        |       D ]$  }t        |      D ]  }|||f   sd
||d d |f<    & t        j                  ||| fd      }t        j                  |j	                  t         j
                              }t        j                  |||dddd       t        ||       y r  	r&   r   r   r   r  r  r	   copy_index_matrixr   r  r  r  indexr'  r(  r   r*  s           r    test_copy_index_matrix_rowsr>  O  s   DGHHHgt_%EE$KE"1"a%LE$KE$KE$KE$K
'8T*+A4[  w 	 AQT{!Q'
	   	'8T*#6Aell28845E	Aq%ueTJAr"   c            	         d} d}d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        |       D ]$  }t        |      D ]  }|||f   sd
|d d ||f<    & t        j                  ||| fd      }t        j                  |j	                  t         j
                              }t        j                  |||dddd       t        ||       y r-  r:  r<  s           r    test_copy_index_matrix_colsr@  h  s   DGHHHgt_%EE$KE"1"a%LE$KE$KE$KE$K
(GT*+A4[  w 	 AQT{!Q'
	   	(GT*#6Aell28845E	Aq%eTJAr"   c            	         d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        |       D ].  }t        |      D ]  }|||f   sd
||d d |f<   d
|d d ||f<     0 t        j                  ||| fd      }t        j                  |j	                  t         j
                              }t        j                  |||dddd       t        ||       y r0  r:  r  r  r=  r'  r(  r   r*  s          r    test_copy_index_submatrixrC    s   DGHHgt_%EE$KE"1"a%LE$KE$KE$KE$K
'7D)*A4[  w 	 AQT{!Q'
!Q'
	  
 	'7D)5Aell28845E	Aq%tUDIAr"   c            	      z   d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  ||| f      }t        |       D ]"  }t        |      D ]  }|||f   sd
||||f<    $ t        j                  ||| fd      }t        j                  |j	                  t         j
                              }t        j                  |||dddd       t        ||       t        j                  ||| fd      }t        j                  |||dddd       t        ||       y r0  r:  rB  s          r    "test_copy_index_diagonal_submatrixrE    sF   DGHHgt_%EE$KE"1"a%LE$KE$KE$KE$K
'7D)*A4[  w 	 AQT{!Q'
	   	'7D)5Aell28845E	Aq%tUDIA
'7D)5A	Aq%tT4HAr"   c                     d} d}t        j                  || f      }d|d<   d|d ddf<   d|d<   d|d<   d|d<   d|d	<   t        j                  || f      }t        |       D ]!  }t        |      D ]  }|||f   sd
|||f<    # t        j                  || fd      }t        j                  |j	                  t         j
                              }t        j                  |||d       t        ||       y r6  )	r&   r   r   r   r  r  r	   copy_index_vectorr   rB  s          r    test_copy_index_vectorrH    s    DGHHgt_%EE$KE"1"a%LE$KE$KE$KE$K
'4!A4[ w 	AQT{!Q$	 	'4,Aell28845E	Aq%6Ar"   )0__doc__rj   numpyr&   numpy.testingr   r   r   r   r   pandasr8   scipy.linalgr   statsmodels.tsa.statespacer	   statsmodels.tsa.stattoolsr
   r   r,   rC   r_   rp   rw   r   r   r   r   r   r   r   r   r   r
  r  r  r  r  r+  r.  r2  r4  r8  r>  r@  rC  rE  rH  r*   r"   r    <module>rP     s    D D  0 , +E E.++ ++\@) @)F) )@F F 	. 	.	3 	3< <(3 363 329!x$#G #GL6 6")G )GX1"h14h7"t;"|"B00.6.2228r"   