
    M/Phv                        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/dS )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dS )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                 d    | j         D ]'\  }}t          t          j        |          |           (d S N)casesr   r	   companion_matrix)self
polynomialresults      k/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_tools.py
test_caseszTestCompanionMatrix.test_cases%   sD    "&* 	E 	EJ/
;;VDDDD	E 	E    N)	__name__
__module____qualname__nparrayTint64r   r!    r"   r    r   r      sa        
HBHq!fq!f%&&'	hbhA!"A ( ) ) 	*	("(III$-II$-II$/ 0 0 	1 hbhAA'(((828aVaV4D+E+E*E	F	<<<<<<<<<! 
" 
" #$		% 
!hbhAA/001E E E E 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dS )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          ||           d S 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IIA6*** Yv&&F U66>*FU66>*F 
648HIIA6*** \&))F
648HI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112E"+ + + + +r"   r,   c                   "    e Zd ZddZd Zd ZdS )TestSolveDiscreteLyapunovFc                    |s|t          j        ||                                          }t          j        |j        d                   |z
  }t           j                            ||                                          }nit          j        ||          }t          j        |j        d                   |z
  }t           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    
  	2'!QVVXX&&C&1&&,C	QYY[[11AA'!Q--C&1&&,C	QYY[[11Az!QW%%%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          }|                     ||d          }t	          ||           d S )N      ?      $@y      ?      ?TrP   )r&   r'   r	   r   r   rR   r   rN   rO   actualdesireds        r    test_univariatez)TestSolveDiscreteLyapunov.test_univariatej   s!   HseWHseW.q!44)!Q//((( HvhZ  HseW.q!44)!Q//((( HvhZ  HseW.q!$GGG44Q4M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          }|                     ||d          }t          ||           t          j        g d          }t          j        ddg          }t          j        ||d          }|                     ||d          }t          ||           d S )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2GS"I.q!44)!Q//((( "#6#6#677GS"I.q!%HHH44Q4NN((( "#6#6#677GS"I.q!$GGG44Q4MM(((((r"   N)F)r#   r$   r%   rR   rZ   r]   r*   r"   r    rC   rC   X   sF        & & & & ) ) )0) ) ) ) )r"   rC   c                      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dS )
TestConcatr-   ))r.   )r   r   r   r   r   r.   r   r`   r   TNr   r   r   c                 n    | j         D ],}t          t          j        |d d          |d                    -d S Nr   )validr   r	   concatr   argss     r    
test_validzTestConcat.test_valid   sG    J 	C 	CDu|T#2#Y7bBBBB	C 	Cr"   c                     | j         D ]J}t          j        |d                   5  t          j        |d d           d d d            n# 1 swxY w Y   Kd S rb   )invalidpytestraisesr	   rd   re   s     r    test_invalidzTestConcat.test_invalid   s    L 	) 	)DtBx(( ) )d3B3i(() ) ) ) ) ) ) ) ) ) ) ) ) ) )	) 	)s   AA	A	)r#   r$   r%   r&   rA   r@   r_r8   r9   r:   r(   r;   rc   
ValueErrorr'   ri   rg   rl   r*   r"   r    r_   r_      sB       	"A 	*
aS	<(
))RU1X	-
%.)")QC..	)1dLA
")III

		1#	/D,G
%"1"q!u
ruQqsVQqsV^4	5ruQrrUAbqbE\7JK
%"1"q!u

q1vq1v~!6!8	9	
BE!BQB%2A2,!	#
",ruQrrUAbqbE\*
+
+RU1QqS61QqS6>-B	C	
D"%"1"q!u%	'E YRYs^^	$j1
XRX1vh''	(*5G
C C 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dS )	TestIsInvertibler         Tgv?F)r   g?皙?c                 d    | j         D ]'\  }}t          t          j        |          |           (d S r   )r   r   r	   is_invertible)r   r   
invertibles      r    r!   zTestIsInvertible.test_cases   sD    &*j 	F 	F"J
,Z88*EEEE	F 	Fr"   N)	r#   r$   r%   r&   r'   r8   r9   r   r!   r*   r"   r    rp   rp      s         TD
Vd
Q		---	 	 $'	===	!	!4(EF F F F Fr"   rp   c                   <    e Zd Z ej        dg          dfgZd ZdS )!TestConstrainStationaryUnivariate       @%c                 h    | j         D ])\  }}t          j        |          }t          ||           *d S r   )r   r	   constrain_stationary_univariater   )r   unconstrainedconstrainedr   s       r    r!   z,TestConstrainStationaryUnivariate.test_cases   sE    *.* 	. 	.&M;:=IIF----	. 	.r"   Nr#   r$   r%   r&   r'   r   r!   r*   r"   r    rw   rw      sA         
2$-.E. . . . .r"   rw   c                   Z    e Zd Z ej        dg           ej        dg          fgZd ZdS )#TestUnconstrainStationaryUnivariatery   rx   c                 h    | j         D ])\  }}t          j        |          }t          ||           *d S r   )r   r	   !unconstrain_stationary_univariater   )r   r}   r|   r   s       r    r!   z.TestUnconstrainStationaryUnivariate.test_cases   sE    *.* 	3 	3&K<[IIFFM2222	3 	3r"   Nr~   r*   r"   r    r   r      sP         
'(	)	)828RD>>:E3 3 3 3 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d	S )
TestStationaryUnivariater   rr   rq   +?rU   (\5Drh|?c                    | j         D ]:}t          j        |          }t          j        |          }t	          ||           ;| j        D ]:}t          j        |          }t          j        |          }t	          ||           ;d S r   )constrained_casesr	   r   r{   r   unconstrained_cases)r   r}   r|   reconstrainedreunconstraineds        r    r!   z#TestStationaryUnivariate.test_cases   s    1 	8 	8K!CKPPM!A-PPMM;7777!5 	< 	<M?NNK#EkRROO];;;;	< 	<r"   Nr#   r$   r%   r&   r'   r   r   r!   r*   r"   r    r   r      s         	!xrx$(8(8("(E7:K:KM 	#6(++XRXug->->@	< 	< 	< 	< 	<r"   r   c                   *    e Zd Zg dZg dZd Zd ZdS )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                 6    | j         D ]}t          j        |  d S r   )rc   r	   validate_matrix_shapere   s     r    test_valid_casesz(TestValidateMatrixShape.test_valid_cases  .    J 	/ 	/D'...	/ 	/r"   c                     | j         D ]A}t          j        t                    5  t	          j        |  d d d            n# 1 swxY w Y   Bd S r   )ri   rj   rk   rn   r	   r   re   s     r    test_invalid_casesz*TestValidateMatrixShape.test_invalid_cases      L 	3 	3Dz** 3 3+T223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3   >A	A	Nr#   r$   r%   rc   ri   r   r   r*   r"   r    r   r      sT          E
  G/ / /
3 3 3 3 3r"   r   c                   *    e Zd Zg dZg dZd Zd ZdS )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                 6    | j         D ]}t          j        |  d S r   )rc   r	   validate_vector_shapere   s     r    r   z(TestValidateVectorShape.test_valid_cases   r   r"   c                     | j         D ]A}t          j        t                    5  t	          j        |  d d d            n# 1 swxY w Y   Bd S r   )ri   rj   rk   rn   r	   r   re   s     r    r   z*TestValidateVectorShape.test_invalid_cases%  r   r   Nr   r*   r"   r    r   r     sT          E
  G/ / /
3 3 3 3 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*                    d S )+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   +  s5   @F h((()))+ , ,G Hmmm%oo%oo' ( (E h---------/ 0 0G FFE7G,,Q/tDDDD
 gtTl##GHsCjCj" # #EHqQiQi! " "Eh( ) )Gh( ) )Gh( ) )Gh( ) )G u~wq111		    u~wq111	'' ' ' ' u~w''	'' ' ' ' u~wq111	'7#$0 0 0 0 u~wq111	'7G,49 9 9 9
 		"cA

5;AaHHHIIaUBQB! ! ! ! !r"   c                  P   t           j                            d           t          j        d          } t           j                            d          }t          t          j        t           j        | |f         d          d         t          j	        ddg          d           d S )	Ni  i'  )sizer   r   r   {Gz?r   )
r&   randomseedrA   normalr   r	   !_compute_multivariate_sample_pacfr:   r\   )r@   ys     r    test_multivariate_pacfr   g  s    INN4
	%A
	e$$A/adAFF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dS )#TestConstrainStationaryMultivariaterx   r   %?r   d   2         r-   r   rT   c           
      x   | j         D ]1\  }}t          j        ||          }t          |d                    2| j        D ]}t          |          t          u r&t          j        |d         j	        d                   }nt          j        |j	        d                   }t          j        ||          \  }t          j
        dgfdt          t                              D             z             j        }t          t          j        t          j                            |                    d           d S )Nr   r   c                 F    g | ]}t          j        |                    S r*   )r&   r   ).0ir}   s     r    
<listcomp>zBTestConstrainStationaryMultivariate.test_cases.<locals>.<listcomp>  s:     9 9 9 
;q>222 9 9 9r"   )r   r	   !constrain_stationary_multivariater   eigval_casestypelistr&   rH   rI   r   rangelenr(   r   absrJ   eigvals)r   r|   error_variancer   cov_	companionr}   s          @r    r!   z.TestConstrainStationaryMultivariate.test_cases  sS   :>* 	4 	46M>;<~/ /FF1I{3333 ". 
	G 
	GMM""d**f]1-3A677f]0344"D]TWXXNK. 9 9 9 9 %c+&6&6 7 79 9 9 9    bfRY%6%6y%A%ABBAFFFF
	G 
	Gr"   N)	r#   r$   r%   r&   r'   rH   r   r   r!   r*   r"   r    r   r   r  s$       
 
B4&		626!99hbh1D0E/F&G&GH
"(RD6

	VRVAYY4G3H2I)J)J(KLE 
A3%	C5'		HBHrdV,,-	B7S"I&	'	'B8b#Y2G)H)HILG G G G 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dS )%TestUnconstrainStationaryMultivariater   r   rx   c                 x    | j         D ]1\  }}}t          j        ||          }t          |d         |           2d S rE   )r   r	   #unconstrain_stationary_multivariater   )r   r}   r   r|   r   s        r    r!   z0TestUnconstrainStationaryMultivariate.test_cases  sR    :>* 	6 	66K>^- -FF1I}5555	6 	6r"   N)r#   r$   r%   r&   r'   rH   r   r!   r*   r"   r    r   r     s        
 
'()	*	*FBF1IIxrx"7G7GH
"(()*
+
+	,fbfQii("(RD6:J:J9KLE6 6 6 6 6r"   r   c                   &   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dS )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           d S )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  sO   1 	8 	8KK  D((f[^1!455f[.q122$HVYZZM1$F}VYZZM1M;7777!5 		G 		GMM""d**f]1-3A677f]0344"D]TWXXNK!&!J;X[!\!\OQ O]FFFFF		G 		Gr"   Nr   r*   r"   r    r   r     s        	1#C5'**4&HBHugY//	A3%3+	C5'		HBHtfX../	C;.	/	/	C;t-	.	.	0(((*C*C*CDEE	 	1#F8*--xrx%	/B/B	A3%3)	C5'		HBHrdV,,-	B7S"I&	'	'B8b#Y2G)H)HI///#5#5#5677G G G G Gr"   r   c                  8   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<   |                                }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        |                    t           j                            }t          j	        ||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   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    s   DGHh''GHgx.//EX|||+||+||- . ../aaBJ.>@E!!!QQQ'N jjllGGDMX|||+||*{{, - -E!!!QQQ'N GAqqq!GGBQBENX|||*{{*{{, - -E!!!QQQ'N GBQB1HGDMGDMX|||*{{*{{, - -E!!!QQQ'N GAqqq!GGAqqq!GGDMX|||+||*{{, - -E!!!QQQ'N GAqqq!GGDMX|||+||*{{, - -E!!!QQQ'N GAqqq!Gu%%Frx 8 899G	 !%ueTC C C 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<   |                                }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        |                    t           j                            }t          j	        ||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   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  	  sF   DGHh''GHgx.//EX|||+||+||- . ../aaBJ.>@E!!!QQQ'N jjllGGDMX{{{*{{*{{, - --.QQ2:-=?E!!!QQQ'N GAAAq!GGBQBENXzzz)zz)zz+ , ,E!!!QQQ'N GAAArr1HGDMGDMXzzz)zz)zz+ , ,E!!!QQQ'N GAAAq!GGAAAq!GGDMX{{{*{{*{{, - -E!!!QQQ'N GAAAq!GGDMX{{{*{{*{{, - -E!!!QQQ'N GAAAq!Gu%%Frx 8 899G	 !&eTC C C C 111a'!!!QQQ'"23333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<   |                                }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        |                    t           j                            }t          j	        ||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  r  r  r   TFr   r   r  r	  r  r  rY   rX   s         r    test_reorder_submatrixr  =  s{   DGh''GGDMGBQBENGDMGDMGDMGDMHgw-..EX|||+||+||- . ../aaBJ.>@E!!!QQQ'N jjllGX{{{*{{*{{, - -E!!!QQQ'N GAqqq!GGAAAq!GXzzz)zz*{{, - -E!!!QQQ'N GBQB1HGAAArr1HXzzz)zz)zz+ , ,E!!!QQQ'N GAqqq!GGAAAq!GGAqqq!GGAAAq!GX{{{*{{*{{, - -E!!!QQQ'N GAqqq!GGAAAq!GX{{{*{{*{{, - -E!!!QQQ'N GAqqq!GGAAAq!Gu%%Frx 8 899G	 !%tUDB B B B !!!!!r"   c                  t   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<   |                                }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        |                    t           j                            }t          j	        ||dddd           t          ||           t          j        |                                          }t          j	        ||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   r   r   r   r   r  r   TFr   r   r  s         r    test_reorder_diagonal_submatrixr  w  s   DGh''GGDMGBQBENGDMGDMGDMGDMHgw-..EX|||+||+||- . ../aaBJ.>@E!!!QQQ'N jjllGX{{{*{{*{{, - -E!!!QQQ'N GAqqq!GGAAAq!GXzzz)zz*{{, - -E!!!QQQ'N GBQB1HGAAArr1HXzzz)zz)zz+ , ,E!!!QQQ'N GAqqq!GGAAAq!GGAqqq!GGAAAq!GX{{{*{{*{{, - -E!!!QQQ'N GAqqq!GGAAAq!GX{{{*{{*{{, - -E!!!QQQ'N GAqqq!GGAAAq!Guzz||,,Frx 8 899G	 !%tUDB B B B!!!uzz||,,F	 !%tT4A A A 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<   |                                }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        |                                          }t          j        |                    t           j                            }t          j	        ||d           t          ||           d S )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    s   DGh''GGDMGBQBENGDMGDMGDMGDMHgt_%%E(999%%aaam4E!!!QQQ$KjjllG))E!!!Q$KIIGAAAqDM))E!!!Q$KIIGAAAqDM))E!!!Q$KIIGAAAqDM))E!!!Q$KIIGAAAqDM))E!!!Q$KIIGAAAqDMuzz||,,Frx 8 899G	 $????!!!!!r"   c            	      2   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          |t          j        |d d |f                   z
            }d
|d |d d |f<   =t          j        ||| fd          }t          j        |                    t           j                            }t          j	        |||dddd           t          ||           d S 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h''GGDMGBQBENGDMGDMGDMGDM
'8T*++A4[[  "&A///00"1"aaa(
'8T*#666Arx 8 899G	aGT5%NNNNAr"   c            	      2   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          |t          j        |d d |f                   z
            }d
|d d d ||f<   =t          j        ||| fd          }t          j        |                    t           j                            }t          j	        |||dddd           t          ||           d S Nr   r   r   r   r   r   r   r   r   r   r"  r#  FTr   r%  r)  s           r    test_copy_missing_matrix_colsr1    s=   DGHh''GGDMGBQBENGDMGDMGDMGDM
(GT*++A4[[  "&A///00!!!RaR(
(GT*#666Arx 8 899G	aGUD%NNN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 ]<}t          |t          j        |d d |f                   z
            }d
|d |d ||f<   =t          j        ||| fd          }t          j        |                    t           j                            }t          j	        |||dddd           t          ||           d S 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_submatrixr5    s8   DGh''GGDMGBQBENGDMGDMGDMGDM
'7D)**A4[[  "&A///00"1"bqb!)
'7D)555Arx 8 899G	aGT4MMM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 ]N}t          |t          j        |d d |f                   z
            }t          j        |          |d |d ||f<   Ot          j        ||| fd
          }t          j        |                    t           j                            }t          j
        |||dddd           t          ||           t          j        ||| fd
          }t          j
        |||dddd           t          ||           d S )Nr   r   r   r   r   r   r   r   r   r"  r#  TFr   )r&   r   r   r&  r'  rH   r  r  r  r	   r(  r   r4  s          r    $test_copy_missing_diagonal_submatrixr7    s   DGh''GGDMGBQBENGDMGDMGDMGDM
'7D)**A4[[ ! !"&A///00vayy"1"bqb!)
'7D)555Arx 8 899G	aGT4MMMMA
'7D)555A	aGT4tLLL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 ]9}t          |t          j        |d d |f                   z
            }d
|d ||f<   :t          j        || fd          }t          j        |                    t           j                            }t          j	        |||d           t          ||           d S 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   r4  s          r    test_copy_missing_vectorr;  8  s&   DGh''GGDMGBQBENGDMGDMGDMGDM
'4!!A4[[  "&A///00"1"a%
'4,,,Arx 8 89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         r
d
||d d |f<   )t          j        ||| fd          }t          j        |                    t           j                            }t          j        |||dddd           t          ||           d S r!  	r&   r   r   r  r  r  r	   copy_index_matrixr   r  r	  r
  indexr*  r+  r   r-  s           r    test_copy_index_matrix_rowsrA  O  s<   DGHHgt_%%EE$KE"1"a%LE$KE$KE$KE$K
'8T*++A4[[    w 	  	 AQT{  !QQQ'
	  	'8T*#666Aell284455E	Aq%ueTJJJ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         r
d
|d d ||f<   )t          j        ||| fd          }t          j        |                    t           j                            }t          j        |||dddd           t          ||           d S r0  r=  r?  s           r    test_copy_index_matrix_colsrC  h  s<   DGHHgt_%%EE$KE"1"a%LE$KE$KE$KE$K
(GT*++A4[[    w 	  	 AQT{  !!!Q'
	  	(GT*#666Aell284455E	Aq%eTJJJ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 ]2}t          |          D ] }|||f         rd
||d d |f<   d
|d d ||f<   !3t          j        ||| fd          }t          j        |                    t           j                            }t          j        |||dddd           t          ||           d S r3  r=  r  r	  r@  r*  r+  r   r-  s          r    test_copy_index_submatrixrF    sJ   DGHgt_%%EE$KE"1"a%LE$KE$KE$KE$K
'7D)**A4[[    w 	  	 AQT{  !QQQ'
!!!Q'
	  	'7D)555Aell284455E	Aq%tUDIIII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         rd
||||f<   't          j        ||| fd          }t          j        |                    t           j                            }t          j        |||dddd           t          ||           t          j        ||| fd          }t          j        |||dddd           t          ||           d S r3  r=  rE  s          r    "test_copy_index_diagonal_submatrixrH    s~   DGHgt_%%EE$KE"1"a%LE$KE$KE$KE$K
'7D)**A4[[    w 	  	 AQT{  !Q'
	  	'7D)555Aell284455E	Aq%tUDIIIIA
'7D)555A	Aq%tT4HHH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         rd
|||f<   &t          j        || fd          }t          j        |                    t           j                            }t          j        |||d           t          ||           d S r9  )	r&   r   r   r  r  r  r	   copy_index_vectorr   rE  s          r    test_copy_index_vectorrK    s%   DGHgt_%%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ell284455E	Aq%666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.  r1  r5  r7  r;  rA  rC  rF  rH  rK  r*   r"   r    <module>rS     s         D D D D D D D D D D D D D D     0 0 0 0 0 0 , , , , , , + + + + + +E E E E E E E E.++ ++ ++ ++ ++ ++ ++ ++\@) @) @) @) @) @) @) @)F) ) ) ) ) ) ) )@F F F F F F F F 	. 	. 	. 	. 	. 	. 	. 	.	3 	3 	3 	3 	3 	3 	3 	3< < < < < < < <(3 3 3 3 3 3 3 363 3 3 3 3 3 3 329! 9! 9!x$ $ $#G #G #G #G #G #G #G #GL6 6 6 6 6 6 6 6")G )G )G )G )G )G )G )GX1" 1" 1"h14 14 14h7" 7" 7"t;" ;" ;"|" " "B  0  0  .  6  .  2  2  2  8    r"   