
    !g                        d Z ddlmZmZmZ ddlZddlmZm	Z	m
Z
 ddlZddlZddlmZ ddlmZmZmZmZ ej*                  j-                         j.                  Z ej2                  ddd	
      e_        d Zd Zd Zd Zd Zej@                  jC                  dddg      ej@                  jC                  dddg      ej@                  jC                  dg d      d                      Z"ej@                  jC                  dddg      ej@                  jC                  dddg      ej@                  jC                  dddg      d                      Z#ej@                  jC                  dddg      ej@                  jC                  dddg      d               Z$ej@                  jC                  dddg      ej@                  jC                  dddg      d               Z%ej@                  jC                  dddg      ej@                  jC                  dddg      ej@                  jC                  dddg      d                      Z&ej@                  jC                  dddg      ej@                  jC                  dddg      d               Z'ej@                  jC                  dddg      ej@                  jC                  dddg      d               Z(d  Z)ej@                  jC                  d!ddg      d"        Z*ej@                  jC                  dg d#      d$        Z+d% Z,ej@                  jC                  dg d&      d'        Z-ej@                  jC                  ddd(g      d)        Z.ej@                  jC                  dd*d+g      d,        Z/y)-z<
Tests for news results

Author: Chad Fulton
License: BSD-3
    )FUTURE_STACKassert_frame_equalassert_series_equalN)assert_assert_allcloseassert_equal)datasets)dynamic_factorsarimax
structuralvarmax1959Q12009Q3Qstartendfreqc                     dD ]V  }t        | |      }t        |j                  j                  |             t	        |j
                  j                         |       X y )N)total_impactsupdate_impactsrevision_impactspost_impacted_forecastsprev_impacted_forecasts)getattrr   indexequalsr   columnstolist)newsimpact_datesimpacted_variablesattrvals        g/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/tests/test_news.pycheck_impact_indicesr&      sO    G ?dD!		  ./S[['')+=>	?    c                    | j                   j                  t        t        | j                  d         d       t        t        | j                  d         d       t        t        | j
                  d         d       t        t        | j
                  d         d       y | j                  j                  j                  }| j                  j                  j                  }t        |t              r|g}|j                         j                  d      }|j                         }|d   D cg c]  }|j                  |       c}|d<   |d   D cg c]  }|j!                  |       c}|d<   t#        | j                  j%                  |j'                  | j                  j(                                     t#        | j
                  j%                  |             y c c}w c c}w )Nrevision dater   revised variableTdrop)news_resultsr   r   lenrevisions_ilocrevisions_ixpreviousmodel_indexendog_names
isinstancestrto_framereset_indexcopyget_locr   r   r   astypedtypes)r    revisions_indexdatesr4   
desired_ixdesired_ilocdatenames           r%   check_revision_indicesrC   (   s   
 ))1S,,_=>BS,,-?@A1ES**?;<a@S**+=>?C ##**mm))55k3'&-K$--/;;;F
!(,6,G)I$(EMM$)I_% ##56,8 d#,8'( 	##** 3 3 : :;= 	>!!((45)I,8   *GGc                    | j                   j                  t        t        | j                  d         d       t        t        | j                  d         d       t        t        | j
                  d         d       t        t        | j
                  d         d       y | j                  j                  j                  }| j                  j                  j                  }t        |t              r|g}|j                         j                  d      }|j                         }|d   D cg c]  }|j                  |       c}|d<   |d   D cg c]  }|j!                  |       c}|d<   t#        | j                  j%                  |j'                  | j                  j(                                     t#        | j
                  j%                  |             y c c}w c c}w )Nupdate dater   updated variableTr+   )r-   r   r   r.   updates_iloc
updates_ixupdatedr2   r3   r4   r5   r6   r7   r8   r9   r:   r   r   r   r;   r<   )r    updates_indexr>   r4   r?   r@   rA   rB   s           r%   check_update_indicesrL   F   s    ''/S**=9:A>S**+=>?CS78!<S);<=qA ""))ll((44k3'&-K"++-99t9D
!(,6},E'G$(EMM$'G]# ##56,8 d#,8'( 	!!(( 1 1 8 89; 	<&&z23'G,8rD   c                    t        |      r|}n%t        j                  j                  g g gddg      }| j                  j
                  j                  }t        |t              r|g}t        | j                  j                  j                  |             t        | j                  j                  j                  |             t        | j                  j                  j                  |             t        | j                  j                  j                  |             t        j                  j                  ||g      }t        | j                  j                   j                  |             y )NrF   rG   names)r.   pd
MultiIndexfrom_productr1   r2   r4   r5   r6   r   r    r   r   update_forecastsupdate_realizedweightsr   )r    rK   r!   
news_indexr4   weights_columnss         r%   check_news_indicesrX   c   s    ="
]]//H],>? 0 A
--%%11K+s#"mDIIOO"":./D!!''..z:;D  &&--j9:DLL%%j12mm00,1LMODLL  ''89r'   c                 V   d| _         t        | ||       t        | |       t        | |       t	        | ||       |rt        | j                  |d       n6t        t        j                  | j                  j                                      |rt        | j                  |d       nWt        | j                  j                  d u        t        t        j                  | j                  j                                      | j                  j                  t              j                  d      | j                  j                  t              j                  d      z   }t        | j                   |d       t        | j"                  |	d       t        | j$                  |
d       t        | j&                  |d       t        | j(                  |d       t        | j*                  |d       t        | j,                  |d       t/        | j0                  j2                  j5                         g d       t/        | j0                  j6                  j8                  ddg       t        | j0                  j6                  j;                  |             t/        | j<                  j2                  j5                         dd	g       t/        | j<                  j6                  j8                  d
dg       t        | j<                  j6                  j;                  | j*                  j6                               t        | j<                  d	   | j&                  d       t        | j<                  d   | j(                  d       | j>                  }g d}t/        |j2                  j5                         |       g d}t/        |j6                  j8                  |       |r^| j>                  d	   jA                         jC                  ddg      d	   }t        || j&                  d       | j>                  d   jA                         jC                  ddg      d   }t        || j(                  d       | j>                  d   jA                         jC                  ddg      d   }t        || j*                  d       t        |d   jE                  ddg      | j,                  d       | j>                  d   jE                  ddg      jG                  d      jE                  d      }t        || j                  d       | jH                  }g d}t/        |j2                  j5                         |       g d}t/        |j6                  j8                  |       |r| jH                  d   jA                         jC                  g d      d   }t        || j*                  d       t        | jH                  d   jE                  ddg      | j,                  d       | jH                  d   jE                  ddg      jG                  d      jE                  d      }t        || j                  d       | jJ                  }g d}t/        |j2                  j5                         |       ddg}t/        |j6                  j8                  |       t        |jL                  d d df    | j"                  jN                  d"i tP        d       t        |jL                  d d df    | j                  j                  t              j                  d      jN                  d"i tP        d       t        |jL                  d d df    | j                  j                  t              j                  d      jN                  d"i tP        d       t        |jL                  d d d f    | j                   jN                  d"i tP        d       t        |jL                  d d d!f    | j$                  jN                  d"i tP        d       y )#Ng|۽g-q=)atolr   )revisedobserved (prev)detailed impacts computedr)   r*   observedforecast (prev)rF   rG   )r^   r_   r    weightimpact)impact dateimpacted variablerF   rG      r    r`   ra         )axis)r    r`   ra   )rF   rG   r^   r_   rb   rc   )re   rf         rh   ri   )estimate (prev)impact of revisionsimpact of newstotal impactestimate (new)rb   rc   rj   rk   rl   rm   rn    ))	tolerancer&   rC   rL   rX   r   r   r   npallisnullr   r-   r;   floatfillnar   r   r   rS   rT   r    rU   r   data_revisionsr   r   r   rO   r   data_updatesdetails_by_impactdrop_duplicatesr8   unstacksumdetails_by_updateimpactslocstackr   )r    	revisionsupdatesr!   r"   r=   rK   r   r   r   r   rS   rT   news_desiredrU   r   rx   desiredactualr|   r}   s                        r%   
check_newsr   x   s    DN |-?@ 41 }- t]L9 ++^%Ht**11345 --/?eL!!22d:;t,,33567 **11%8??B((//6==a@AMD&&EB D002I D002I  D))+;%HD((/FDII|%8 DLL'6 $$,,335LN$$**00!#568D%%,,_=> ""**113/02""((..!346D##**499??;<D%%&78))7D%%j143G3G  ..IG"**113W=2G"((..8(():;&("{Aq6*+<> 	 5 5EB((4&(aV)<ZI 4 45A((0&(aV)<VE		6 	)(3;;QFC5	2 ((2w1vsss{771: 	 3 3%@ ..*G"**113W=FG"((..8 ((0&(\)B6K		6 	..x8@@!QH5	2 ((2w1vsss{771: 	 3 3%@ llG1G'')7312G$$g.A(()*$$**:\:
 A,,-;$$U+2215;;KlK
 A''(9""5)00399ILI
 A~%&   0<0
 A''(*$$**:\:r'   r   TFr   revisions_details_start)TFc                 
   t         d   j                         }d }|r;|j                  d d j                         }|j                  d d j                         }n<|j                  d d j                         }|j                  d d j                         }d}| rd|j                  d<   t	        j
                  |      }|j                  ddg      }|j                  |dd	||
      }	t        j                  dd	d      }
dg}| rn|rlt        j                  j                  |j                  dd  dggddg      }|j                  d   dt        j                  d      j                  dd      z  z  }n| rt        j                  j                  |j                  dd  dggddg      }t        j                   d|j                  d   dt        j                  d      z  z  f   j                  dd      }n't        j                  j                  g g gddg      }d }|rt        j                  j                  t        j                  ddd      dggddg      }t        j"                  d|j                  d   d|j                  d   z  z
  d|j                  d   z  d|j                  d   z  z
  d|j                  d   z  d|j                  d   z  z
  gg      j$                  }n't        j                  j                  g g gddg      }d }t'        |       |rJt        j                   |j                  d   dt        j                  d      z  z     j                  dd      }nXt        j                   |j                  d   |j                  d   dt        j                  d      z  z  f   j                  dd      }t        j                   |j                  d   dt        j                  d      z  |j                  d   z  f   j                  dd      }|rd|j                  d   z  g}|j                  d   g}t)        t+        |            D cg c]  }||   ||   z
   }}t        j,                  t        j                   ddt        j                  d      z  f         j$                  }nt        j.                  g t        j0                        }t        j.                  g t        j0                        }t        j.                  g t        j0                        }t        j,                  t        j2                  d            }t5        |	| ||
|||||||||||       y c c}w )Ninfl2009Q2r   rJ                 ?      ?2010Q1)r   r   comparison_typer   r   r   r)   r*   rN   r   rh   rd   r   rf   r   periodsr   rF   rG   g      ?g      ?dtype)r   rh   )dtar9   r~   ilocr   SARIMAXsmoothr    rP   period_rangerQ   from_arraysr   rq   arangereshaper_arrayTprintranger.   	DataFrameSeriesfloat64zerosr   )r   r   r   endogr   endog1endog2modresr    r!   r"   r=   r   rK   r   r   r   rS   rT   ir   rU   s                          r%   test_sarimax_time_invariantr     s   
 KEO9H%**,9H%**,9H%**,9H%**, $B //&
!C
**c3Z
 C88F($3,C  ED
 ??xcJL  W--33\\"#)"$67 4 9 ";;r?S"))A,2F2Fq!2L-LL	--33\\"#)"$67 4 9 55v{{2biil!22244;GAqM 	 --33H_.@A 4 C 11__8QSAF8L "45 2 7 uyy"S599X+>%>>%))H%%81D(DDUYYx((6EIIh4G+GG$I #J K LM1 	
 11H],>? 2 A	. "$%%KKOc299Q<//#118A 	  #%%%KKOV[[_sBIIaL/@@@#BBI'!Q- 	  eeB		!,v{{2>>@@G1    &**X"667!::h/0!&s+;'<!=? (*-=a-@@ ? ?,,ruuQRYYq\(9%9:;==99Rrzz:))Bbjj9yy2::6,,rxx/0 tY7I&(?,	I?s   Uwhichexogtrendc                 l   t         d   j                         }d }|r;|j                  d d j                         }|j                  d d j                         }n<|j                  d d j                         }|j                  d d j                         }d}| rd|j                  d<   d }d }d}	|dk(  r+t	        j
                  |      }t	        j
                  |      }n|d	k(  rd
}	t        j                  |||	      }
|
j                  g d      }|j                  ||dd|      }t        j                  |      }|j                  ddg      }|j                  |dd|      }g d}|D ]M  }t        ||      }t        ||      }t        |t        j                        rt        ||       Bt        ||       O y )Nr   r   r   rJ   r   r   nr   r   tr   r   )r   r   r   2008Q1r   r   r   r   r   r   r   r   r   r   r   r   r    rU   rS   rT   r   r   r/   r0   rH   rI   )r   r9   r~   r   rq   	ones_liker   r   r   r    r   r5   rP   r   r   r   )r   r   r   r   r   r   r   exog1exog2r   mod1res1news1mod2res2news2attrsr#   wxs                       r%   test_sarimax_time_varyingr     s    KEO9H%**,9H%**,9H%**,9H%**, $BEEEV$V$	'	
 ??6U;D;;~&DIIf5h&5  7E ??6"D;;Sz"DIIfH(&5  7EME
  %E4 E4 a#1%q!$%r'   c                 H   t         d   j                         }d }|r;|j                  d d j                         }|j                  d d j                         }n<|j                  d d j                         }|j                  d d j                         }d}| rd|j                  d<   t	        j
                  |      }t	        j
                  |      }t        j                  |d|      }|j                  g d	      }	|	j                  ||d
d|      }
t        j                  |d      }|j                  ddg      }|j                  |d
d|      }g d}|D ]M  }t        |
|      }t        ||      }t        |t        j                        rt        ||       Bt        ||       O y )Nr   r   r   rJ   r   r   llevel)r   )r   皙?r   r   r   r   r   r   r   )r   r9   r~   r   rq   r   r   UnobservedComponentsr   r    r   r5   rP   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r#   r   r   s                     r%   'test_unobserved_components_time_varyingr     s    KEO9H%**,9H%**,9H%**,9H%**, $BLL ELL E
 **68%HD;;'DIIf5h&5  7E **68<D;;Sz"DIIfH(&5  7EME
  %E4 E4 a#1%q!$%r'   c                    t         ddg   j                         }t        j                  |d         j	                         dz  |d<   |j
                  dd  }d }|r;|j                  d d j                         }|j                  d d j                         }n<|j                  d d j                         }|j                  d d j                         }d}| rd|j
                  d	<   t        j                  |d
      }t        j                  d   }|j                  |      }|j                  |dd|      }	t        j                  ddd      }
ddg}t        j                  d      }t        j                  d      }|d   }||z  }||z  }| r}|r{t        j                   j#                  |j$                  d	d  ddggddg      }|j
                  d   j&                  }t        j(                  ||z  ||z  ||z  ||z  f   j*                  }n| r{t        j                   j#                  |j$                  d	d  ddggddg      }|j
                  d	   j&                  }t        j(                  ||z  ||z  ||z  ||z  f   j*                  }n't        j                   j#                  g g gddg      }d }|r|j
                  d	   j&                  }t        j(                  ||z  ||z  ||z  ||z  f   j*                  }|j
                  d   j&                  }t        j(                  ||z  ||z  ||z  ||z  f   j*                  }n|j
                  d	   j&                  }t        j(                  ||j
                  d   z  ||z  ||z  ||z  f   j*                  }|j
                  d	   j&                  }t        j(                  ||j
                  d   z  ||z  ||z  ||z  f   j*                  }|j
                  d	   j&                  }t        j(                  ||j
                  d   z  ||z  ||z  ||z  f   j*                  }|rCt        j                   j#                  t        j                  ddd      ddggddg      }||z
  }n't        j                   j#                  g g gddg      }d }|r||j                  d   j&                  z  }|j                  d   j&                  }t-        t/        |            D cg c]  }||   ||   z
   }}t        j                   j#                  |
|gddg      }t        j0                  t        j                  d      ||      }||j                  d d df<   ||j                  d d df<   |j*                  |j                  d d df<   |j*                  |j                  d d df<   nt        j2                  g t        j4                         }t        j2                  g t        j4                         }t        j2                  g t        j4                         }t        j0                  t        j                  d!            }t7        |	| ||
|||||||||||       y c c}w )"Nrealgdpunemp  rd   r   r   rJ   r   r   r   r   r   皙?r   ?r   r   皙?r   r   r   r   )re   re   re   
transitionr)   r*   rN   r   r   rF   rG   zimpact dateszimpacted variables)re      )r   r   2009Q4r   )r   r   )r   r9   rq   logdiffr   r~   r   VARMAXr   r   r    rP   r   r   eyerQ   rR   r   valuesc_r   r   r.   r   r   r   r   )r   r   r   r   r   r   r   paramsr   r    r!   r"   ZT0T1T2T3r=   tmpr   r   rev_impacted_forecastsr   rK   r   rS   rT   r   r   r   rU   s                                  r%   test_varmax_time_invariantr     s=    G$%**,EvveI./446<E)JJqrNEO9H%**,9H%**,9H%**,9H%**, $B --c
*CUU34F
**V
C88F($3  5D ??xcJL#W- 	A	B	\	B	bB	bB W--44\\"#G 45"$67 5 9 kk"o$$55c28R#XrCx!GHJJ	--44\\"#G 45"$67 5 9 kk"o$$55S"s(BHb3h!FGII--44H"$67 5 9   kk"o$$"$%%S"s((*S"s(); #<<=A 	 kk"o$$!#rCxc')Cxc(: ";;<1 	 kk"o$$"$%%R "s(BHb3h>#@@A 	 kk"o$$!#R "s(BHb3h>"@@A 	
++b/
 
 C ee
V[[_b3hS"s(:<<=A  22__8QSA!#+8:L*M 3 O 13II22H],>? 3 A  

8 4 ; ;; **X.55!&s+;'<!=? (*-=a-@@ ? ?--,,-.!#78 - : ,,rxx/}'.0#$AxK #%AxK #%44AxK #%44AxK 99Rrzz:))Bbjj9yy2::6,,rxx/0 tY7I&(?,	I%?s   +Y!c                    t         ddg   j                         }t        j                  |d         j	                         dz  |d<   |j
                  dd  }d }|r;|j                  d d j                         }|j                  d d j                         }n<|j                  d d j                         }|j                  d d j                         }d}| rd|j
                  d	<   d }d }d
}	|dk(  rWt        j                  |d         }t        j                  |d         }t        j                  d   }
t        j                  d   }n-|dk(  r(d}	t        j                  d   }
t        j                  d   }t        j                  |||	      }|j                  
      }|j                  ||dd|      }t        j                  |d
      }|j                        }|j                  |dd|      }g d}|D ]M  }t        ||      }t        ||      }t        |t        j                         rt#        ||       Bt%        ||       O y )Nr   r   r   rd   r   r   rJ   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   r9   rq   r   r   r   r~   r   r   r   r   r   r    r   r5   rP   r   r   r   )r   r   r   r   r   r   r   r   r   r   params1params2r   r   r   r   r   r   r   r#   r   r   s                         r%   test_varmax_time_varyingr   p  s(    G$%**,EvveI./446<E)JJqrNEO9H%**,9H%**,9H%**,9H%**, $BEEEVI./VI./%%@A%%89	'	%%@A%%89
 ==e59D;;wDIIf5h&5  7E ==s+D;;wDIIfH(&5  7EME
  %E4 E4 a#1%q!$%r'   c                    t         ddg   j                         }t        j                  |d         j	                         dz  |d<   |j
                  dd  }d }|r;|j                  d d j                         }|j                  d d j                         }n<|j                  d d j                         }|j                  d d j                         }d}| rd|j
                  d	<   t        j                  |d         }t        j                  |d         }t        j                  d
   }t        j                  d   }	t        j                  ||dd      }
|
j                  |      }|j                  ||dd|      }t        j                  |dd      }|j                  |	      }|j                  |dd|      }g d}|D ]M  }t        ||      }t        ||      }t        |t        j                         rt#        ||       Bt%        ||       O y )Nr   r   r   rd   r   r   rJ   r   r   )r   r   r   r   333333?r   r   r   )r   r   r   r   r   r   re   )r   	k_factorsfactor_orderr   r   )r   r   r   r   )r   r9   rq   r   r   r   r~   r   r   r
   DynamicFactorr   r    r   r5   rP   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r#   r   r   s                       r%    test_dynamic_factor_time_varyingr     s    G$%**,EvveI./446<E)JJqrNEO9H%**,9H%**,9H%**,9H%**, $BLL	*+ELL	*+Eee:;Gee01G
 ''U23!ED;;wDIIf5h&5  7E ''!!LD;;wDIIfH(&5  7EME
  %E4 E4 a#1%q!$%r'   c                    t         d   j                         }|r;|j                  d d j                         }|j                  d d j                         }n:|j                  d d j                         }|j                  d d j                         }| rd|j                  d<   t	        j
                  |      }|j                  ddg      }t	        j
                  |      }|j                  ddg      }|j                  |d	      }	|j                  |d
	      }
|j                  |d	      }|j                  |d
	      }g d}|D ]  }t        |	|      }t        |
|      }t        ||      }t        ||      }t        |t        j                        r%t        ||       t        ||       t        ||       rt        ||       t        ||       t        ||        y )Nr   r   r   r   r   r   r   rJ   r   r1   r   )r   r9   r~   r   r   r   r   r    r   r5   rP   r   r   r   )r   r   r   r   r   r   r   r   r   news_updated_datanews_previous_datanews_updated_resultsnews_previous_resultsr   r#   r   r   yzs                      r%   test_defaultsr     s    KE9H%**,9H%**,9H%**,9H%**,B ??6"D;;Sz"D??6"D;;Sz"D		&)	D6:F99T99E IIdJIGME
  %%t,&-($/)40a#1%1%1%q!$q!$q!$%r'   c                     t         d   j                         } t        j                  | j                  d<   d}t        j                  |       }|j                  ddg      }t        j                  t        |      5  |j                  |        d d d        t        j                  t        |      5  |j                  |       d d d        |j                  | d      }t        |j                  d	       |j                  | d
      }t        |j                  d	       |j                  |d
      }t        |j                  d	       |j                  |d
      }t        |j                  d	       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r   z8Could not automatically determine the type of comparisonr   r   matchr1   r   r   rJ   )r   r9   rq   nanr   r   r   r   pytestraises
ValueErrorr    r   r   )r   msgr   r   r    s        r%   test_comparison_typesr     s2   KEVVEJJrN
DC
//%
 C
**c3Z
 C 
z	- 	z	-  88E:86DD&&*88E985DD&&*88C83DD&&*88C83DD&&*  s   :E./E:.E7:Fuse_periodsc                    t         d   j                         }| rt        j                  }nd }|j	                  d      }t        j                  |j                  d d       }|j                  ddg      }|j                  |      } |dd	d
      }t        |j                  j                  j                  |             |j                  |dd	      } |dd	d
      }t        |j                  j                  j                  |             |j                  |dd      } |ddd
      }t        |j                  j                  j                  |             |j                  ||j                  d	z
  d	      } |dd	d
      }t        |j                  j                  j                  |             |j                  ||j                  dz
  d      } |ddd
      }t        |j                  j                  j                  |             |j                  |dd	      } |dd	d      }t        |j                  j                  j                  |             |j                  |dd      } |ddd      }t        |j                  j                  j                  |             |j                  ||j                  d	z
  d	      } |dd	d      }t        |j                  j                  j                  |             |j                  ||j                  dz
  d      } |ddd      }t        |j                  j                  j                  |             |j                  |dd      } |ddd      }t        |j                  j                  j                  |             |j                  |dd      } |ddd      }t        |j                  j                  j                  |             |j                  |d|j                  dz
        } |ddd      }t        |j                  j                  j                  |             |j                  d|j                  dz
        }t        |j                  j                  j                  |j                               |j                  |d|j                  d	z
        } |ddd      }t        |j                  j                  j                  |             |j                  d|j                  d	z
        }t        |j                  j                  j                  |j                               |j                  ||j                  dz
  d      } |ddd      }t        |j                  j                  j                  |             |j                  |j                  dz
  d      }t        |j                  j                  j                  |j                               |j                  ||j                  dz
  d      } |ddd      }t        |j                  j                  j                  |             |j                  |j                  dz
  d      }t        |j                  j                  j                  |j                               t!        |      }t#        ||j                  d	z           |ddd      }|j                  dz
  |dz
  dfD ]  }	|j                  |d|	      }t        |j                  j                  j                  |             |	dkD  sK|j                  d|	      }t        |j                  j                  j                  |j                                 |ddd      }|j                  dz
  |dz
  dfD ]  }
|j                  ||
d      }t        |j                  j                  j                  |             	dkD  sK|j                  |
d      }t        |j                  j                  j                  |j                                y )Nr   c                  L    t        j                  | i |j                  d      S )Nr   r   )rP   r   to_timestamp)argskwargss     r%   index_rangez)test_start_end_dates.<locals>.index_rangeA  s$    ??D3F3@@c@JJr'   r   r  r   r   r   r   rd   r   2009Q1r   r   re   r   r   )r   r   r   r   r   r   rf   r   )r   r9   rP   r   r  r   r   r   r   r    r   r   r   r   nobspredictr.   r   )r  r   r  r   r   r    r   	predicted
total_nobsr   r   s              r%   test_start_end_datesr  ;  s   KEoo	K""",
//%**Sb/
*C
**c3Z
 C 88E?D!#>GD$$++G45 88E185D!#>GD$$++G4588E185D!#>GD$$++G45 88EAq89D!#>GD$$++G4588EAq89D!#>GD$$++G45 88Ex83Dh<GD$$++G4588Ex83Dh<GD$$++G45 88Esxx!|Q87Dh<GD$$++G4588Esxx!|Q87Dh<GD$$++G45 88Ex88DhSAGD$$++G4588Ex88DhSAGD$$++G45 88Esxx!|8<DhSAGD$$++G45(1=ID$$++IOO<=88Esxx!|8<DhSAGD$$++G45(1=ID$$++IOO<= 88EA88<DhSAGD$$++G45#((Q,H=ID$$++IOO<=88EA88<DhSAGD$$++G45#((Q,H=ID$$++IOO<=
 UJSXX\* hSAG1j1nb1 FxxX3x7""((//897(<ID&&,,33IOODEF hSAG((Q,
Q3 FxxUx9""((//897%X>ID&&,,33IOODEFr'   )r   range2int64numpylistc                 $   t         d   j                         }t        |      }| dk(  rAt        j                  |      |_        |j                  d d }t        j                  |dz         }| dk(  rLt        j                  |dz  d      |_        |j                  d d }t        j                  |dz   dz  d      }n| dk(  rht        j                  t        j                  |            |_        |j                  d d }t        j                  t        j                  |dz               }na| d	k(  r*|j                  }|d d }t        j                  |dz         }n2| d
k(  r-|j                         }|d d }t        j                  |dz         }t        j                        }|j                  ddg      }|j                  |      }dd }t!        |j"                  j
                  j%                  |             |j                  ||j&                  dz
  d      }|dd }t!        |j"                  j
                  j%                  |             |j                  ||j&                  dz
  d      }|dd }t!        |j"                  j
                  j%                  |             |j                  ||j&                  dz
  d      }|dd }t!        |j"                  j
                  j%                  |             |j                  ||j&                  dz
  d      }|dd }t!        |j"                  j
                  j%                  |             |j                  ||j&                  dz
  |j&                  dz
        }|dd }t!        |j"                  j
                  j%                  |             | dvre|j)                  |j&                  dz
  |j&                  dz
        }	t!        |j"                  j
                  j%                  |	j
                               |j                  ||j&                  |j&                        }|dd }t!        |j"                  j
                  j%                  |             | dvr_|j)                  |j&                  |j&                        }	t!        |j"                  j
                  j%                  |	j
                               |j                  ||j&                  |j&                  dz         }|dd }t!        |j"                  j
                  j%                  |             | dvrc|j)                  |j&                  |j&                  dz         }	t!        |j"                  j
                  j%                  |	j
                               y y )Nr   r   r   re   r  )stopstep)r  r  r  r  r   r   r  rd   r
  r  ir  )r  r  r   )r   r9   r.   rP   
RangeIndexr   r   Indexrq   r   r   r   r   r   r   r    r   r   r   r  r  )
r   r   r  
endog_initindex_plus2r   r   r    r   r  s
             r%   test_start_end_intr     s    KEu:DmmD)ZZ_
mmD1H-mm:ZZ_
mmTAXN;	'	hhryy/ZZ_
hhryy23	'	3BZ
mmD1H-	&3BZ
mmD1H-
//*
%C
**c3Z
 C 88E?D"R GD$$++G45 88EAq89D"R GD$$++G4588EAq89D"R GD$$++G45 88Esxx!|Q87D"R GD$$++G4588Esxx!|Q87D"R GD$$++G45 88EA388a<8@D"R GD$$++G45%%KKchhl1KE	""((//	@A88Esxx88D"R GD$$++G45%%KKchhCHHK=	""((//	@A88Esxx!|8<D"R GD$$++G45%%KKchhCHHqLKA	""((//	@A &r'   c                  6   t         d   j                         } t        j                  | j                  d d       }|j                  ddg      }d}t        j                  t        |      5  |j                  | j                         d d d        y # 1 sw Y   y xY w)Nr   r   r   r   z?The index associated with the updated results is not a supersetr   )r   r9   r   r   r   r   r   r   r   r    r   )r   r   r   r   s       r%   test_invalidr"    sv    KE
//%**Sb/
*C
**c3Z
 C
KC	z	-   s   *BB)Ti   c                 
   t        j                  t        g d         j                         j                  dd  dz  }t         j
                  |j                  d<   |j                         }dddddd	}|j                         D ]  \  }}|j                  |xx   |z  cc<    t        j                  |d
      }ddddd}t         j                  t        j                  t        |j                                     j                         g df   }|j!                  |      }	|	j#                  |      }
|
j%                  |	dd|       }|j&                  }|j(                  j+                  ddg      }|j                         D ]  \  }}t-        |j                  |df   |j                  |          t-        |j                  |df   |j                  |          t/        t        j0                  |j                  |df         d       t-        |j                  |df   |j                  |          t-        |j                  |df   |j                  |          t-        |j                  |df   |        d}t-        |j                  |df   d       t-        |j                  |df   |d          d}t-        |j                  |df   d       t-        |j                  |df   |d           d!}t-        |j                  |df   |d"          t-        |j                  |df   |d"   |d#   z         d$}t-        |j                  |df   d%       t-        |j                  |df   d%       d&}t-        |j                  |df   d%       t-        |j                  |df   d%       t-        |j2                  d'   d%       t-        |j2                  d(   |j2                  d)          d*D ]n  }t-        |j2                  j                  d+|fd,f   |j                  d+|f          t-        |j2                  j                  d+|fd-f   |j                  d+|f          p d"}t-        |j2                  j                  d+|fd,f   |j                  d.|f   ||   z         t-        |j2                  j                  d+|fd-f   |j                  d.|f   ||   z         t-        |j2                  d)   |j5                  ddg/      j7                         d          y )0Nr   realconsrealinvcpird   d   r   r   r   r   333333ӿr   r   r   r   r&  )r   r'  )r   r(  r   r(  r   r   r   皙?ffffff?333333?
rd   r   rd   r   r   rd   r   r   r   rd   r1   r   r   rp   r   re   rf   r[   r\   r]   Trevisionr   r&  r   r&  r`   ra   r.  r   r(  r   r(  r/  )r   r   r   r   r   r-  )r   r'  r   r'  r   )r   r(  r   r(  rl   rm   rk   r(  r&  r'  r   rn   rj   r   level)rq   r   r   r   r   r   r9   itemsr~   r   r   r   diagr  r   flattenr   applyr    rv   revision_details_by_updater8   r   r   r   r}   groupbyr{   )r   r   	y_revisedr   keyr   r   ar_coeffr   r   res_revisedr    rv   revision_detailsrB   s                  r%   test_detailed_revisionsrF    s    	s & ' 	((,ttAB	8:=	>AFFAFF5MI" ##I __& #	Tcd"# --
%C	H UU2774 123;;=12 3F
**V
C))I&KCr4K  MD ((N66BBAq6J__& E	T**3	>:IMM#<NO**30A+ABAEE#JO HH^''-H(HIJ		
 	(,,S)^<!c*	,(,,S2C-CDc
	$(,,S*_=tDE 7C$((h7;$((h7457
,C$((h7;$((h7/02 5C$((h7)9LM$((h7Y')4I*JJL
4C$((h7;$((h7;
,C$((h7;$((h7;
 DLL!12A6DLL0LL!679 / #LLh-/??@MM(D.)	+ 	LLh-/@@AEE(D.!	#	# D(D)+;;<hn%68 (D)+<<=	hn.0
 *+  1v .224X>r'      c                    t        j                  t        g d         j                         j                  dd  dz  }t         j
                  |j                  d<   |j                         }dddddd	}|j                         D ]  \  }}|j                  |xx   |z  cc<    t        j                  |d
      }ddddd}t         j                  t        j                  t        |j                                     j                         g df   }|j!                  |      }	|	j#                  |      }
|
j%                  |	dd|       }|j&                  }|j(                  j+                  ddg      }|j                         D ]  \  }}t-        |j                  |df   |j                  |          t-        |j                  |df   |j                  |          t/        t        j0                  |j                  |df         d        d}g d}t        j2                  |j                  ||f   j5                               sJ t-        |j                  |dz   df   |d   |d   z         t-        |j                  |d z   df   |d!          t-        |j                  |d"z   df   d#       t-        |j                  |d$z   df   |d%          d&D ]n  }t-        |j6                  j                  d'|fd(f   |j                  d'|f          t-        |j6                  j                  d'|fd)f   |j                  d'|f          p d}t-        |j6                  j                  d'|fd(f   |j                  d*|f   ||   z         t-        |j6                  j                  d'|fd)f   |j                  d*|f   ||   z         t-        |j6                  d+   |j9                  ddg,      j;                         d          y )-Nr%  rd   r)  r*  r   r   r+  r   r,  r   r   r   r0  r1  r2  r3  r1   r   r4  re   rf   r[   r\   r]   F)r   all prior revisionsr   r[   r\   r5  r`   r   ra   r   r-  )r&  r.  r'  r   )r(  r/  r8  r   rn   rj   r   rk   r9  rq   r   r   r   r   r   r9   r;  r~   r   r   r   r<  r  r   r=  r   r>  r    rv   r?  r8   r   r   r   rr   rs   r}   r@  r{   )r   r   rA  r   rB  r   r   rC  r   r   rD  r    rv   rE  colsrB   s                   r%   test_grouped_revisionsrO  e  s   
 	s & ' 	((,ttAB	8:=	>AFFAFF5MI" ##I __& #	Tcd"# --
%C	H UU2774 123;;=12 3F
**V
C))I&KCr4K  MD ((N66BBAq6J__& 	T**3	>:IMM#<NO**30A+ABAEE#JO HH^''-H(HIJ		 6C?D66"&&sDy188:;;; $((|);X)EFY')4I*JJL$((})<h)FG457$((|);X)EFJ$((x)AB/02 / #LLh-/??@MM(D.)	+ 	LLh-/@@AEE(D.!	#	# D(D)+;;<hn%68 (D)+<<=	hn.0
 *+  1v .224X>r'   r      c                 V   t        j                  t        g d         j                         j                  dd  dz  }t         j
                  |j                  d<   |j                         }dddddd	}|j                         D ]  \  }}|j                  |xx   |z  cc<    t        j                  |d
      }ddddd}t         j                  t        j                  t        |j                                     j                         g df   }|j!                  |      }	|	j#                  |      }
|
j%                  |	dd|       }|j&                  }|j(                  j+                  ddg      }|j                         D ]  \  }}t-        |j                  |df   |j                  |          t-        |j                  |df   |j                  |          |d   dk(  }t/        t        j0                  |j                  |df         |        d}g d}t        j2                  |j                  ||f   j5                               sJ t-        |j                  |dz   df   |d   |d    z         t-        |j                  |d!z   df   d       d"}t-        |j                  |d#f   d       t-        |j                  |df   |d$          d%}t-        |j                  |d#f   d       t-        |j                  |df   |d&          d'D ]n  }t-        |j6                  j                  d|fd(f   |j                  d|f          t-        |j6                  j                  d|fd)f   |j                  d|f          p d}t-        |j6                  j                  d|fd(f   |j                  d*|f   ||   z         t-        |j6                  j                  d|fd)f   |j                  d*|f   ||   z         t-        |j6                  d+   |j9                  ddg,      j;                         d          y )-Nr%  rd   r)  r*  r   r   r+  r   r,  r   r   r   r0  r1  r2  r3  r1   r   r4  re   rf   r[   r\   r   r   r]   )r   rI  r   rJ  rK  ra   r   r-  rL  r6  r`   r.  r7  r/  r8  rn   rj   r   rk   r9  rM  )r   r   rA  r   rB  r   r   rC  r   r   rD  r    rv   rE  expected_details_computedrN  rB   s                    r%   test_mixed_revisionsrS    sE    	s & ' 	((,ttAB	8:=	>AFFAFF5MI" ##I __& #	Tcd"# --
%C	H UU2774 123;;=12 3F
**V
C))I&KCr4K  MD ((N66BBAq6J__& 
'	T**3	>:IMM#<NO**30A+ABAEE#JO %(Fh$6! HH^''-H(HIJ%		'
' 6C?D66"&&sDy188:;;; $((|);X)EFY')4I*JJL$((|);X)EFJ 7C$((h7;$((h7457
,C$((h7;$((h7/02 / #LLh-/??@MM(D.)	+ 	LLh-/@@AEE(D.!	#	# D(D)+;;<hn%68 (D)+<<=	hn.0
 *+  1v .224X>r'   )0__doc__statsmodels.compat.pandasr   r   r   r  rq   numpy.testingr   r   r   pandasrP   r   statsmodelsr	   statsmodels.tsa.statespacer
   r   r   r   	macrodataload_pandasdatar   r   r   r&   rC   rL   rX   r   markparametrizer   r   r   r   r   r   r   r   r  r   r"  rF  rO  rS  ro   r'   r%   <module>r_     s     @ @      $$&++BOO(sC	?6<4::*cL tUm4T5M224EF\I G 3 5\I~ tUm4T5M267"347% 5 3 57%t tUm4T5M21% 3 51%h tUm4T5M2xI 3 5xIv tUm4T5M267"34>% 5 3 5>%B tUm4T5M27% 3 57%t tUm4T5M2*% 3 5*%Z+8 u6hF 7hFV  #4 5EB5EBP 24DEf FfR 2UCLAT BTn 2RI>\ ?\r'   