
    M/Ph                     P   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        Z ej        ddd	
          e_        d Zd Zd Zd Zd Zej         !                    dddg          ej         !                    dddg          ej         !                    dg d          d                                     Z"ej         !                    dddg          ej         !                    dddg          ej         !                    dddg          d                                     Z#ej         !                    dddg          ej         !                    dddg          d                         Z$ej         !                    dddg          ej         !                    dddg          d                         Z%ej         !                    dddg          ej         !                    dddg          ej         !                    dddg          d                                     Z&ej         !                    dddg          ej         !                    dddg          d                         Z'ej         !                    dddg          ej         !                    dddg          d                         Z(d  Z)ej         !                    d!ddg          d"             Z*ej         !                    dg d#          d$             Z+d% Z,ej         !                    dg d&          d'             Z-ej         !                    ddd(g          d)             Z.ej         !                    dd*d+g          d,             Z/dS )-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 ]`}t          | |          }t          |j                            |                     t	          |j                                        |           ad S )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        j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_news.pycheck_impact_indicesr&      sm    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           d S | j        j        j        | j        j        j	        t          t                    rg|                                                    d          }|                                }fd|d         D             |d<   fd|d         D             |d<   t          | j                            |                    | j        j                                       t          | j                            |                     d S )Nrevision dater   revised variableTdropc                 :    g | ]}                     |          S  get_loc.0datedatess     r%   
<listcomp>z*check_revision_indices.<locals>.<listcomp>;   s8     )I )I )I$(EMM$)I )I )Ir'   c                 :    g | ]}                     |          S r.   r   r2   nameendog_namess     r%   r5   z*check_revision_indices.<locals>.<listcomp>=   7     ,8 ,8 ,8 d##,8 ,8 ,8r'   )news_resultsr   r   lenrevisions_ilocrevisions_ixpreviousmodel_indexr:   
isinstancestrto_framereset_indexcopyr   r   astypedtypes)r    revisions_index
desired_ixdesired_ilocr4   r:   s       @@r%   check_revision_indicesrM   (   s   
 )1S,_=>>BBBS,-?@AA1EEES*?;<<a@@@S*+=>??CCCCC #*m)5k3'' 	(&-K$--//;;;FF
!(()I )I )I )I,6,G)I )I )I_%,8 ,8 ,8 ,8"#56,8 ,8 ,8'( 	#** 3 :;;= = 	> 	> 	>!((4455555r'   c                    | j         j        t          t          | j        d                   d           t          t          | j        d                   d           t          t          | j        d                   d           t          t          | j        d                   d           d S | j        j        j        | j        j        j	        t          t                    rg|                                                    d          }|                                }fd|d         D             |d<   fd|d         D             |d<   t          | j                            |                    | j        j                                       t          | j                            |                     d S )Nupdate dater   updated variableTr+   c                 :    g | ]}                     |          S r.   r/   r1   s     r%   r5   z(check_update_indices.<locals>.<listcomp>X   s8     'G 'G 'G$(EMM$'G 'G 'Gr'   c                 :    g | ]}                     |          S r.   r7   r8   s     r%   r5   z(check_update_indices.<locals>.<listcomp>Z   r;   r'   )r<   r   r   r=   updates_iloc
updates_ixupdatedrA   rB   r:   rC   rD   rE   rF   rG   r   r   rH   rI   )r    updates_indexrK   rL   r4   r:   s       @@r%   check_update_indicesrW   F   s    '/S*=9::A>>>S*+=>??CCCS788!<<<S);<==qAAAAA ")l(4k3'' 	(&-K"++--99t9DD
!(('G 'G 'G 'G,6},E'G 'G 'G]#,8 ,8 ,8 ,8"#56,8 ,8 ,8'( 	!(( 1 899; ; 	< 	< 	<&&z2233333r'   c                    t          |          r|}n%t          j                            g g gddg          }| j        j        j        }t          |t                    r|g}t          | j
        j                            |                     t          | j        j                            |                     t          | j        j                            |                     t          | j        j                            |                     t          j                            ||g          }t          | j        j                            |                     d S )NrO   rP   names)r=   pd
MultiIndexfrom_productr@   rA   r:   rC   rD   r   r    r   r   update_forecastsupdate_realizedweightsr   )r    rV   r!   
news_indexr:   weights_columnss         r%   check_news_indicesrc   c   s5    = A"

]//H],>? 0 A A
-%1K+s## $"mDIO"":..///D!'..z::;;;D &--j99:::DL%%j11222m00,1LMMODL ''8899999r'   c                 6   d| _         t          | ||           t          | |           t          | |           t	          | ||           |rt          | j        |d           n8t          t          j	        | j        
                                                     |rt          | j        |d           nSt          | j        j        d u            t          t          j	        | j        
                                                     | j                            t                                        d          | j                            t                                        d          z   }t          | j        |d           t          | j        |	d           t          | j        |
d           t          | j        |d           t          | j        |d           t          | j        |d           t          | j        |d           t/          | j        j                                        g d           t/          | j        j        j        ddg           t          | j        j                            |                     t/          | j        j                                        dd	g           t/          | j        j        j        d
dg           t          | j        j                            | j        j                             t          | j        d	         | j        d           t          | j        d         | j        d           | j        }g d}t/          |j                                        |           g d}t/          |j        j        |           |r| j        d	                                          !                    ddg          d	         }t          || j        d           | j        d                                          !                    ddg          d         }t          || j        d           | j        d                                          !                    ddg          d         }t          || j        d           t          |d         "                    ddg          | j        d           | j        d         "                    ddg          #                    d          "                    d          }t          || j        d           | j$        }g d}t/          |j                                        |           g d}t/          |j        j        |           |r| j$        d                                          !                    g d          d         }t          || j        d           t          | j$        d         "                    ddg          | j        d           | j$        d         "                    ddg          #                    d          "                    d          }t          || j        d           | j%        }g d}t/          |j                                        |           ddg}t/          |j        j        |           t          |j&        d d df          | j        j'        d"i tP          d           t          |j&        d d df          | j                            t                                        d          j'        d"i tP          d           t          |j&        d d df          | j                            t                                        d          j'        d"i tP          d           t          |j&        d d d f          | j        j'        d"i tP          d           t          |j&        d d d!f          | j        j'        d"i tP          d           d S )#Ng|۽g-q=)atolr   )revisedobserved (prev)detailed impacts computedr)   r*   observedforecast (prev)rO   rP   )ri   rj   r    weightimpact)impact dateimpacted variablerO   rP      r    rk   rl         )axis)r    rk   rl   )rO   rP   ri   rj   rm   rn   )rp   rq         rs   rt   )estimate (prev)impact of revisionsimpact of newstotal impactestimate (new)rm   rn   ru   rv   rw   rx   ry   r.   ))	tolerancer&   rM   rW   rc   r   r   r   npallisnullr   r<   rH   floatfillnar   r   r   r^   r_   r    r`   r   data_revisionsr   r   r   rZ   r   data_updatesdetails_by_impactdrop_duplicatesrF   unstacksumdetails_by_updateimpactslocstackr   )r    	revisionsupdatesr!   r"   rJ   rV   r   r   r   r   r^   r_   news_desiredr`   r   r   desiredactualr   r   s                        r%   
check_newsr   x   sr    DN |-?@@@ 4111 }--- t]L999  6+^%HHHHHt*113344555  8-/?eLLLLL!2d:;;;t,335566777 *11%88??BB(//66==a@@AMD&EBBBB D02I       D02I        D)+;%HHHHD(/FFFFDI|%8888 DL'6666 $,3355LLLN N N$*0!#568 8 8D%,,_==>>> "*1133/02 2 2"(.!346 6 6D#**49?;;<<<D%&78)7 7 7 7D%j143G        .IIIG"*1133W===2 2 2G"(.888 A():;&(("{Aq6**+<> 	 5EBBBB(4&((aV)<)<ZI 45AAAA(0&((aV)<)<VE	6666 	)(3;;QFCC5	2 	2 	2 	2 (2w1vsss{{771:: 	 3%@@@@ .***G"*1133W===F F FG"(.888 A (0&((\\\)B)B6K	6666 	.x8@@!QHH5	2 	2 	2 	2 (2w1vsss{{771:: 	 3%@@@@ lG1 1 1G''))733312G$g...AAA(()*$*::\::   
 AAA,,-;$$U++22155;KKlKK   
 AAA''(9""5))00339IILII   
 AAA~%&  00<00   
 AAA''(*$*::\::     r'   r   TFr   revisions_details_start)TFc                 
   t           d                                         }d }|rC|j        d d                                         }|j        d d                                         }nD|j        d d                                         }|j        d d                                         }d}| r
d|j        d<   t	          j        |          }|                    ddg          }|                    |dd	||
          }	t          j	        dd	d          }
dg}| ro|rmt          j
                            |j        dd          dggddg          }|j        d         dt          j        d                              dd          z  z  }n| rt          j
                            |j        dd          dggddg          }t          j        d|j        d         dt          j        d          z  z  f                             dd          }n't          j
                            g g gddg          }d }|rt          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
                            g g gddg          }d }t'          |           |rJt          j        |j        d         dt          j        d          z  z                               dd          }nVt          j        |j        d         |j        d         dt          j        d          z  z  f                             dd          }t          j        |j        d         dt          j        d          z  |j        d         z  f                             dd          }|rd|j        d         z  g|j        d         gfdt)          t+                              D             }t          j        t          j        ddt          j        d          z  f                   j        }nt          j        g t          j                  t          j        g t          j                  t          j        g t          j                  }t          j        t          j        d                    }t5          |	| ||
|||||||||           d S )Ninfl2009Q2r   rU                 ?      ?2010Q1)r   r   comparison_typer   r   r   r)   r*   rY   r   rs   ro   r   rq   r   periodsr   rO   rP   g      ?g      ?c                 2    g | ]}|         |         z
  S r.   r.   r2   ir^   r_   s     r%   r5   z/test_sarimax_time_invariant.<locals>.<listcomp>o  9     ? ? ? (*-=a-@@ ? ? ?r'   dtype)r   rs   )dtarG   r   ilocr   SARIMAXsmoothr    r[   period_ranger\   from_arraysr   r{   arangereshaper_arrayTprintranger=   	DataFrameSeriesfloat64zerosr   )r   r   r   endogr   endog1endog2modresr    r!   r"   rJ   r   rV   r   r   r   r   r`   r^   r_   s                       @@r%   test_sarimax_time_invariantr     sw   
 KEO $9H9%**,,9H9%**,,9H9%**,,9H9%**,, $ B /&
!
!C
**c3Z
 
 C88F($3,C  E ED
 ?xcJJJL    W  -33\"##)"$67 4 9 9 ";r?S")A,,2F2Fq!2L2L-LL	 
 -33\"##)"$67 4 9 9 5v{2bill!22244;GAqMM 	 -33H_.@A 4 C C  11_8QSAAAF8L "45 2 7 7 uy"S59X+>%>>%)H%%81D(DDUYx((6EIh4G+GG$I #J K K LM 	
 11H],>? 2 A A	.  P"$%KOc29Q<<//#118A 	  #%%KOV[_sBIaLL/@@@#BBI'!Q-- 	  eB	!,v{2>>@@G1   1  &*X"667!:h/0? ? ? ? ?!&s+;'<'<!=!=? ? ?,ruQRYq\\(9%9:;;=9Rrz:::)Bbj999y2:666,rx//00 tY7I&(?,	I I I I Ir'   whichexogtrendc                    t           d                                         }d }|rC|j        d d                                         }|j        d d                                         }nD|j        d d                                         }|j        d d                                         }d}| r
d|j        d<   d }d }d}	|dk    r)t	          j        |          }t	          j        |          }n|d	k    rd
}	t          j        |||	          }
|
                    g d          }|	                    ||dd|          }t          j        |          }|                    ddg          }|	                    |dd|          }g d}|D ]]}t          ||          }t          ||          }t          |t          j                  rt          ||           Mt          ||           ^d S )Nr   r   r   rU   r   r   nr   r   tr   r   )r   r   r   2008Q1r   r   r   r   r   r   r   r   r   r   r   r   r    r`   r^   r_   r   r   r>   r?   rS   rT   )r   rG   r   r   r{   	ones_liker   r   r   r    r   rC   r[   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 $9H9%**,,9H9%**,,9H9%**,,9H9%**,, $ BEEEV$$V$$	'		
 ?6U;;;D;;~~~&&DIIf5h&5  7 7E ?6""D;;Sz""DIIfH(&5  7 7EM M ME
  % %E4  E4  a## 	%1%%%%q!$$$$% %r'   c                    t           d                                         }d }|rC|j        d d                                         }|j        d d                                         }nD|j        d d                                         }|j        d d                                         }d}| r
d|j        d<   t	          j        |          }t	          j        |          }t          j        |d|          }|                    g d	          }	|		                    ||d
d|          }
t          j        |d          }|                    ddg          }|	                    |d
d|          }g d}|D ]]}t          |
|          }t          ||          }t          |t          j                  rt          ||           Mt          ||           ^d S )Nr   r   r   rU   r   r   llevel)r   )r   皙?r   r   r   r   r   r   r   )r   rG   r   r   r{   r   r   UnobservedComponentsr   r    r   rC   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_unobserved_components_time_varyingr     s    KEO $9H9%**,,9H9%**,,9H9%**,,9H9%**,, $ BL  EL  E
 *68%HHHD;;''DIIf5h&5  7 7E *68<<D;;Sz""DIIfH(&5  7 7EM M ME
  % %E4  E4  a## 	%1%%%%q!$$$$% %r'   c                    t           ddg                                         }t          j        |d                                                   dz  |d<   |j        dd          }d }|rC|j        d d                                         }|j        d d                                         }nD|j        d d                                         }|j        d d                                         }d}| r
d|j        d	<   t          j        |d
          }t          j	        d         }|
                    |          }|                    |dd|          }	t          j        ddd          }
ddg}t          j        d          }t          j        d          }|d         }||z  }||z  }| rp|rnt          j                            |j        d	d          ddggddg          }|j        d         j        }t          j        ||z  ||z  ||z  ||z  f         j        }n| rnt          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                            g g gddg          }d }|rs|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        }|rBt          j                            t          j        ddd          ddggddg          }||z
  }n't          j                            g g gddg          }d }|r||j        d         j        z  |j        d         j        fdt-          t/                              D             }t          j                            |
|gddg          }t          j        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          j        g t          j        !          t          j        g t          j        !          t          j        g t          j        !          }t          j        t          j        d"                    }t7          |	| ||
|||||||||           d S )#Nrealgdpunemp  ro   r   r   rU   r   r   r   r   r   皙?r   ?r   r   皙?r   r   r   r   )rp   rp   rp   
transitionr)   r*   rY   r   r   rO   rP   c                 2    g | ]}|         |         z
  S r.   r.   r   s     r%   r5   z.test_varmax_time_invariant.<locals>.<listcomp>W  r   r'   zimpact dateszimpacted variables)rp      )r   r   2009Q4r   )r   r   )r   rG   r{   logdiffr   r   r   VARMAXr   r   r    r[   r   r   eyer\   r]   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T3rJ   tmpr   r   rev_impacted_forecastsr   rV   r   r   r   r`   r^   r_   s                               @@r%   test_varmax_time_invariantr     s    G$%**,,EveI.//4466<E)JqrrNEO $9H9%**,,9H9%**,,9H9%**,,9H9%**,, $ B -c
*
*
*CU34F
**V

C88F($3  5 5D ?xcJJJL#W- 	A	B	\	B	bB	bB   W  -44\"##G 45"$67 5 9 9 k"o$5c28R#XrCx!GHJ	  -44\"##G 45"$67 5 9 9 k"o$5S"s(BHb3h!FGI-44H"$67 5 9 9    Bk"o$"$%S"s((*S"s(); #<<= 	 k"o$!#rCxc')Cxc(: ";;< 	 k"o$"$%R "s(BHb3h>#@@A 	 k"o$!#R "s(BHb3h>"@@A 	
+b/
 C e
V[_b3hS"s(:<<=   22_8QSAAA!#+8:L*M 3 O O 13II22H],>? 3 A A  1 
8 4 ;; *X.5? ? ? ? ?!&s+;'<'<!=!=? ? ?-,,-.!#78 - : : ,rx//}'.0 0 0#$AAAxK #%AAAxK #%4AAAxK #%4AAAxK  9Rrz:::)Bbj999y2:666,rx//00 tY7I&(?,	I I I I Ir'   c                    t           ddg                                         }t          j        |d                                                   dz  |d<   |j        dd          }d }|rC|j        d d                                         }|j        d d                                         }nD|j        d d                                         }|j        d d                                         }d}| r
d|j        d	<   d }d }d
}	|dk    rYt          j        |d                   }t          j        |d                   }t          j        d         }
t          j        d         }n,|dk    r&d}	t          j        d         }
t          j        d         }t          j
        |||	          }|                    |
          }|                    ||dd|          }t          j
        |d
          }|                    |          }|                    |dd|          }g d}|D ]]}t          ||          }t          ||          }t          |t          j                  rt#          ||           Mt%          ||           ^d S )Nr   r   r   ro   r   r   rU   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   rG   r{   r   r   r   r   r   r   r   r   r   r    r   rC   r[   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veI.//4466<E)JqrrNEO $9H9%**,,9H9%**,,9H9%**,,9H9%**,, $ BEEEVI.//VI.//%@A%89	'		%@A%89
 =e5999D;;wDIIf5h&5  7 7E =s+++D;;wDIIfH(&5  7 7EM M ME
  % %E4  E4  a## 	%1%%%%q!$$$$% %r'   c                    t           ddg                                         }t          j        |d                                                   dz  |d<   |j        dd          }d }|rC|j        d d                                         }|j        d d                                         }nD|j        d d                                         }|j        d d                                         }d}| r
d|j        d	<   t          j        |d                   }t          j        |d                   }t          j        d
         }t          j        d         }	t          j
        ||dd          }
|
                    |          }|                    ||dd|          }t          j
        |dd          }|                    |	          }|                    |dd|          }g d}|D ]]}t          ||          }t          ||          }t          |t          j                  rt#          ||           Mt%          ||           ^d S )Nr   r   r   ro   r   r   rU   r   r   )r   r   r   r   333333?r   r   r   )r   r   r   r   r   r   rp   )r   	k_factorsfactor_orderr   r   )r   r   r   r   )r   rG   r{   r   r   r   r   r   r   r
   DynamicFactorr   r    r   rC   r[   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veI.//4466<E)JqrrNEO $9H9%**,,9H9%**,,9H9%**,,9H9%**,, $ BL	*++EL	*++Ee:;Ge01G
 'U23!E E ED;;wDIIf5h&5  7 7E '!!LLLD;;wDIIfH(&5  7 7EM M ME
  % %E4  E4  a## 	%1%%%%q!$$$$% %r'   c                 V   t           d                                         }|rC|j        d d                                         }|j        d d                                         }nB|j        d d                                         }|j        d d                                         }| r
d|j        d<   t	          j        |          }|                    ddg          }t	          j        |          }|                    ddg          }|                    |d	          }	|                    |d
	          }
|                    |d	          }|                    |d
	          }g d}|D ]}t          |	|          }t          |
|          }t          ||          }t          ||          }t          |t          j                  r1t          ||           t          ||           t          ||           t          ||           t          ||           t          ||           d S )Nr   r   r   r   r   r   r   rU   r   r@   r   )r   rG   r   r   r   r   r   r    r   rC   r[   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    s1    KE -9H9%**,,9H9%**,,9H9%**,,9H9%**,, B ?6""D;;Sz""D?6""D;;Sz""D		&)	DD6:FF99T99EE IIdJIGGM M ME
  % %%t,,&--($//)400a## 	%1%%%1%%%1%%%%q!$$$q!$$$q!$$$$% %r'   c                  F   t           d                                         } t          j        | j        d<   d}t          j        |           }|                    ddg          }t          j	        t          |          5  |                    |            d d d            n# 1 swxY w Y   t          j	        t          |          5  |                    |           d d d            n# 1 swxY w Y   |                    | d          }t          |j        d	           |                    | d
          }t          |j        d	           |                    |d
          }t          |j        d	           |                    |d
          }t          |j        d	           d S )Nr   r   z8Could not automatically determine the type of comparisonr   r   matchr@   r   r   rU   )r   rG   r{   nanr   r   r   r   pytestraises
ValueErrorr    r   r   )r   msgr   r   r    s        r%   test_comparison_typesr    s   KEVEJrN
DC
/%
 
 C
**c3Z
 
 C 
z	-	-	-                	z	-	-	-                 88E:866DD&***88E9855DD&***88C833DD&***88C833DD&*****s$   <BB"%B"C&&C*-C*use_periodsc                    t           d                                         }| rt          j        }nd }|                    d          }t          j        |j        d d                   }|                    ddg          }|	                    |          } |dd	d
          }t          |j        j                            |                     |	                    |dd	          } |dd	d
          }t          |j        j                            |                     |	                    |dd          } |ddd
          }t          |j        j                            |                     |	                    ||j        d	z
  d	          } |dd	d
          }t          |j        j                            |                     |	                    ||j        dz
  d          } |ddd
          }t          |j        j                            |                     |	                    |dd	          } |dd	d          }t          |j        j                            |                     |	                    |dd          } |ddd          }t          |j        j                            |                     |	                    ||j        d	z
  d	          } |dd	d          }t          |j        j                            |                     |	                    ||j        dz
  d          } |ddd          }t          |j        j                            |                     |	                    |dd          } |ddd          }t          |j        j                            |                     |	                    |dd          } |ddd          }t          |j        j                            |                     |	                    |d|j        dz
            } |ddd          }t          |j        j                            |                     |                    d|j        dz
            }t          |j        j                            |j                             |	                    |d|j        d	z
            } |ddd          }t          |j        j                            |                     |                    d|j        d	z
            }t          |j        j                            |j                             |	                    ||j        dz
  d          } |ddd          }t          |j        j                            |                     |                    |j        dz
  d          }t          |j        j                            |j                             |	                    ||j        dz
  d          } |ddd          }t          |j        j                            |                     |                    |j        dz
  d          }t          |j        j                            |j                             t!          |          }t#          ||j        d	z               |ddd          }|j        dz
  |dz
  dfD ]}	|	                    |d|	          }t          |j        j                            |                     |	dk    rH|                    d|	          }t          |j        j                            |j                              |ddd          }|j        dz
  |dz
  dfD ]}
|	                    ||
d          }t          |j        j                            |                     |	dk    rH|                    |
d          }t          |j        j                            |j                             d S )Nr   c                  L    t          j        | i |                    d          S )Nr   r   )r[   r   to_timestamp)argskwargss     r%   index_rangez)test_start_end_dates.<locals>.index_rangeA  s(    ?D3F33@@c@JJJr'   r   r  r   r   r   r   ro   r   2009Q1r   r   rp   r   r   )r   r   r   r   r   r   rq   r   )r   rG   r[   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 -o	K 	K 	K""",,
/%*SbS/
*
*C
**c3Z
 
 C 88E??Dk!#>>>GD$++G44555 88E1855Dk!#>>>GD$++G4455588E1855Dk!#>>>GD$++G44555 88EAq899Dk!#>>>GD$++G4455588EAq899Dk!#>>>GD$++G44555 88Ex833Dkh<<<GD$++G4455588Ex833Dkh<<<GD$++G44555 88Esx!|Q877Dkh<<<GD$++G4455588Esx!|Q877Dkh<<<GD$++G44555 88Ex888DkhSAAAGD$++G4455588Ex888DkhSAAAGD$++G44555 88Esx!|8<<DkhSAAAGD$++G44555(1==ID$++IO<<===88Esx!|8<<DkhSAAAGD$++G44555(1==ID$++IO<<=== 88EA88<<DkhSAAAGD$++G44555#(Q,H==ID$++IO<<===88EA88<<DkhSAAAGD$++G44555#(Q,H==ID$++IO<<===
 UJSX\*** khSAAAG1j1nb1 F FxxX3x77"(//8899977(<<ID&,33IODDEEE khSAAAG(Q,
Q3 F FxxUx99"(//8899977%X>>ID&,33IODDEEEF Fr'   )r   range2int64numpylistc                    t           d                                         }t          |          }| dk    r?t          j        |          |_        |j        d d         }t          j        |dz             }| dk    rJt          j        |dz  d          |_        |j        d d         }t          j        |dz   dz  d          }n| dk    rdt          j        t          j	        |                    |_        |j        d d         }t          j        t          j	        |dz                       }nj| d	k    r)|j
        }|d d         }t          j        |dz             }n;| d
k    r5|                                }|d d         }t          j        |dz             }t          j        |          }|                    ddg          }|                    |          }|dd         }t!          |j        j                            |                     |                    ||j        dz
  d          }|dd         }t!          |j        j                            |                     |                    ||j        dz
  d          }|dd         }t!          |j        j                            |                     |                    ||j        dz
  d          }|dd         }t!          |j        j                            |                     |                    ||j        dz
  d          }|dd         }t!          |j        j                            |                     |                    ||j        dz
  |j        dz
            }|dd         }t!          |j        j                            |                     | dvrX|                    |j        dz
  |j        dz
            }	t!          |j        j                            |	j                             |                    ||j        |j                  }|dd         }t!          |j        j                            |                     | dvrR|                    |j        |j                  }	t!          |j        j                            |	j                             |                    ||j        |j        dz             }|dd         }t!          |j        j                            |                     | dvrW|                    |j        |j        dz             }	t!          |j        j                            |	j                             d S d S )Nr   r   r   rp   r!  )stopstep)r'  r"  r#  r$  r   r   r  ro   r  r  ir  )r#  r$  r   )r   rG   r=   r[   
RangeIndexr   r   Indexr{   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mD))Z_
mD1H--m:::Z_
mTAXN;;;	'		hry//Z_
hry2233	'		3B3Z
mD1H--	&3B3Z
mD1H--
/*
%
%C
**c3Z
 
 C 88E??D"R% GD$++G44555 88EAq899D"R% GD$++G4455588EAq899D"R% GD$++G44555 88Esx!|Q877D"R% GD$++G4455588Esx!|Q877D"R% GD$++G44555 88EA38a<8@@D"R% GD$++G44555%%%KKchl1KEE	"(//	@@AAA88Esx888D"R% GD$++G44555%%%KKchCHK==	"(//	@@AAA88Esx!|8<<D"R% GD$++G44555%%%KKchCHqLKAA	"(//	@@AAAAA &%r'   c                  T   t           d                                         } t          j        | j        d d                   }|                    ddg          }d}t          j        t          |          5  |	                    | j
                   d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   z?The index associated with the updated results is not a supersetr  )r   rG   r   r   r   r   r
  r  r  r    r   )r   r   r   r  s       r%   test_invalidr0    s    KE
/%*SbS/
*
*C
**c3Z
 
 C
KC	z	-	-	-                   s   5BB!$B!)Ti   c                 v
   t          j        t          g d                                                   j        dd          dz  }t           j        |j        d<   |                                }dddddd	}|                                D ]\  }}|j        |xx         |z  cc<   t          j
        |d
          }ddddd}t           j        t          j        t          |                                                                                    g df         }|                    |          }	|	                    |          }
|
                    |	dd|           }|j        }|j                            ddg          }|                                D ]\  }}t-          |j        |df         |j        |                    t-          |j        |df         |j        |                    t/          t          j        |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-          |j        d'         d%           t-          |j        d(         |j        d)                    d*D ]d}t-          |j        j        d+|fd,f         |j        d+|f                    t-          |j        j        d+|fd-f         |j        d+|f                    ed"}t-          |j        j        d+|fd,f         |j        d.|f         ||         z             t-          |j        j        d+|fd-f         |j        d.|f         ||         z             t-          |j        d)         |                    ddg/                                          d                    d S )0Nr   realconsrealinvcpiro   d   r   r   r   r   333333ӿr   r   r   r   r4  )r   r5  )r   r6  r   r6  r   r   r   皙?ffffff?333333?
ro   r   ro   r   r   ro   r   r   r   ro   r@   r   r   rz   r   rp   rq   rf   rg   rh   Trevisionr   r4  r   r4  rk   rl   r<  r   r6  r   r6  r=  )r   r   r   r   r   r;  )r   r5  r   r5  r   )r   r6  r   r6  rw   rx   rv   r6  r4  r5  r   ry   ru   r   level)r{   r   r   r   r   r	  rG   itemsr   r   r   r   diagr$  r   flattenr   applyr    r   revision_details_by_updaterF   r   r   r   r   groupbyr   )r   r  	y_revisedr   keyr   r   ar_coeffr   r   res_revisedr    r   revision_detailsr9   s                  r%   test_detailed_revisionsrT    s    	s & & & ' 	( 	((,tABB	8:=	>AFAF5MI" ## I __&& # #	Tcd" -
%
%
%C	 H U274 1 12233;;==1112 3F
**V

C))I&&KCr4K  M MD (N6BBAq6JJ__&& E E	T*3	>:IM#<NOOO*30A+ABAE#JOOO H^'-H(HIJJ		 	 	
 	(,S)^<!c*	, 	, 	,(,S2C-CDc
	$ 	$ 	$(,S*_=tDDDD 7C$(h7;;;$(h7457 7 7
,C$(h7;;;$(h7/02 2 2 5C$(h7)9LMMM$(h7Y')4I*JJL L L
4C$(h7;;;$(h7;;;
,C$(h7;;;$(h7;;;
 DL!12A666DL0L!679 9 9 / # #Lh-/??@M(D.)	+ 	+ 	+ 	Lh-/@@AE(D.!	# 	# 	# 	# D(D)+;;<hn%68 8 8 (D)+<<=	hn.0 0 0
 *+  1v ..2244X>    r'      c                 ,   t          j        t          g d                                                   j        dd          dz  }t           j        |j        d<   |                                }dddddd	}|                                D ]\  }}|j        |xx         |z  cc<   t          j
        |d
          }ddddd}t           j        t          j        t          |                                                                                    g df         }|                    |          }	|	                    |          }
|
                    |	dd|           }|j        }|j                            ddg          }|                                D ]\  }}t-          |j        |df         |j        |                    t-          |j        |df         |j        |                    t/          t          j        |j        |df                   d           d}g d}t          j        |j        ||f                                                   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 ]d}t-          |j        j        d'|fd(f         |j        d'|f                    t-          |j        j        d'|fd)f         |j        d'|f                    ed}t-          |j        j        d'|fd(f         |j        d*|f         ||         z             t-          |j        j        d'|fd)f         |j        d*|f         ||         z             t-          |j        d+         |                    ddg,                                          d                    d S )-Nr3  ro   r7  r8  r   r   r9  r   r:  r   r   r   r>  r?  r@  rA  r@   r   rB  rp   rq   rf   rg   rh   F)r   all prior revisionsr   rf   rg   rC  rk   r   rl   r   r;  )r4  r<  r5  r   )r6  r=  rF  r   ry   ru   r   rv   rG  r{   r   r   r   r   r	  rG   rI  r   r   r   r   rJ  r$  r   rK  r   rL  r    r   rM  rF   r   r   r   r|   r}   r   rN  r   )r   r  rO  r   rP  r   r   rQ  r   r   rR  r    r   rS  colsr9   s                   r%   test_grouped_revisionsr]  e  s   
 	s & & & ' 	( 	((,tABB	8:=	>AFAF5MI" ## I __&& # #	Tcd" -
%
%
%C	 H U274 1 12233;;==1112 3F
**V

C))I&&KCr4K  M MD (N6BBAq6JJ__&&  	T*3	>:IM#<NOOO*30A+ABAE#JOOO H^'-H(HIJJ		 	 	 	 6C???D6"&sDy188::;;;;; $(|);X)EFY')4I*JJL L L$(})<h)FG457 7 7$(|);X)EFJJJ$(x)AB/02 2 2 / # #Lh-/??@M(D.)	+ 	+ 	+ 	Lh-/@@AE(D.!	# 	# 	# 	# D(D)+;;<hn%68 8 8 (D)+<<=	hn.0 0 0
 *+  1v ..2244X>    r'   r      c                    t          j        t          g d                                                   j        dd          dz  }t           j        |j        d<   |                                }dddddd	}|                                D ]\  }}|j        |xx         |z  cc<   t          j
        |d
          }ddddd}t           j        t          j        t          |                                                                                    g df         }|                    |          }	|	                    |          }
|
                    |	dd|           }|j        }|j                            ddg          }|                                D ]\  }}t-          |j        |df         |j        |                    t-          |j        |df         |j        |                    |d         dk    }t/          t          j        |j        |df                   |           d}g d}t          j        |j        ||f                                                   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 ]d}t-          |j        j        d|fd(f         |j        d|f                    t-          |j        j        d|fd)f         |j        d|f                    ed}t-          |j        j        d|fd(f         |j        d*|f         ||         z             t-          |j        j        d|fd)f         |j        d*|f         ||         z             t-          |j        d+         |                    ddg,                                          d                    d S )-Nr3  ro   r7  r8  r   r   r9  r   r:  r   r   r   r>  r?  r@  rA  r@   r   rB  rp   rq   rf   rg   r   r   rh   )r   rW  r   rX  rY  rl   r   r;  rZ  rD  rk   r<  rE  r=  rF  ry   ru   r   rv   rG  r[  )r   r  rO  r   rP  r   r   rQ  r   r   rR  r    r   rS  expected_details_computedr\  r9   s                    r%   test_mixed_revisionsra    s    	s & & & ' 	( 	((,tABB	8:=	>AFAF5MI" ## I __&& # #	Tcd" -
%
%
%C	 H U274 1 12233;;==1112 3F
**V

C))I&&KCr4K  M MD (N6BBAq6JJ__&& 
' 
'	T*3	>:IM#<NOOO*30A+ABAE#JOOO %(Fh$6! H^'-H(HIJJ%		' 	' 	' 	' 6C???D6"&sDy188::;;;;; $(|);X)EFY')4I*JJL L L$(|);X)EFJJJ 7C$(h7;;;$(h7457 7 7
,C$(h7;;;$(h7/02 2 2 / # #Lh-/??@M(D.)	+ 	+ 	+ 	Lh-/@@AE(D.!	# 	# 	# 	# D(D)+;;<hn%68 8 8 (D)+<<=	hn.0 0 0
 *+  1v ..2244X>    r'   )0__doc__statsmodels.compat.pandasr   r   r   r#  r{   numpy.testingr   r   r   pandasr[   r
  statsmodelsr	   statsmodels.tsa.statespacer
   r   r   r   	macrodataload_pandasdatar   r   r   r&   rM   rW   rc   r   markparametrizer   r   r   r   r   r   r  r  r   r.  r0  rT  r]  ra  r.   r'   r%   <module>rm     sh                 @ @ @ @ @ @ @ @ @ @                             $$&&+BO(sCCC	? ? ?6 6 6<4 4 4:: : :*c c cL tUm44T5M2224E4E4EFF\I \I GF 32 54\I~ tUm44T5M2267"3447% 7% 54 32 547%t tUm44T5M221% 1% 32 541%h tUm44T5M22xI xI 32 54xIv tUm44T5M2267"344>% >% 54 32 54>%B tUm44T5M227% 7% 32 547%t tUm44T5M22*% *% 32 54*%Z+ + +8 u66hF hF 76hFV  #4 #4 #4 5 5EB EB5 5EBP   24D4D4DEEf f FEfR 2UCLAAT T BATn 2RI>>\ \ ?>\ \ \r'   