
    !g~              	          d Z ddlmZ ddlmZmZ ddlmZ ddlZddl	Z	ddl
ZddlmZmZ ddlZddlZddlZddlmZ ddlmc mZ ddlmc mc mZ d Zd	Zd
Zd
ZdZ  e! eeed	e d            Z" e! eeede d            Z# ee"        ee#       dDdZ$e#e"z   Z%e%D  cg c]  }  e$g | dd | d     c} Z& ejN                  e%e&      d        Z(ejN                  d        Z)ejN                  d        Z*ejN                  d        Z+ejN                  d        Z,ejN                  d        Z-d Z.ejN                  d        Z/ejN                  d        Z0dDdZ1d Z2d Z3d Z4d Z5d  Z6d! Z7d" Z8d# Z9d$ Z:d% Z;d& Z<d' Z=d( Z>d) Z?d* Z@d+ ZAd, ZBd- ZCd. ZDd/ ZEejN                  d0        ZFd1 ZGd2 ZHej                  j                  d3        ZKej                  j                  d4        ZLd5 ZMd6 ZNd7 ZOej                  j                  d8dd9g      ej                  j                  d:dd9g      ej                  j                  d;d<d=g      d>                      ZQej                  j                  d?d@dAg      dB        ZRdC ZSyc c} w )Ez
Author: Samuel Scherrer
    )QUARTER_END)PLATFORM_LINUX32PLATFORM_WIN)productN)assert_allcloseassert_almost_equalETSModelc                 H    t        |       D ]  \  }}|d   |d   s| |=  y )N      )	enumerate)	modellistimodels      m/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/tests/test_exponential_smoothing.pyremove_invalid_models_from_listr   .   s1    i( 58a!    )addmul)r   r   N)TFaustouristsNoildatac                 @    dddddd}||    ||   z   ||   z   ||   z   S )NAMNd )r   r   NTF )errortrendseasonaldamped
short_names        r   short_model_namer(   D   sH    S3rJJ5
U
	
V
	 X
	r   r   )paramsidsc                    | j                   }|dd \  }}}}	|d   }
|
dk(  r
|}
d}||	   }n	|}
d }||	   }t        |||      }||vrt        j                  d| d       ||   }t	        |      }t        |
|||||	      }|||fS )Nr      r   zmodel z' not implemented or not converging in Rseasonal_periodsr#   r$   r%   damped_trend)paramr(   pytestskipget_params_from_Rr
   )requestr   r   ets_austourists_fit_results_Rets_oildata_fit_results_Rr)   r#   r$   r%   r&   datar.   resultsname	results_Rr   s                   r   setup_modelr;   T   s     ]]F%+Aa["E5(F!9D}/7+F3E5(3D7fTF"IJKIy)F)E &)##r   c                 $    t        | ddddd      S )Nr,   r   Tr-   r	   r   s    r   austourists_modelr=   {   s!     r   c                 &    | j                  d      S NFdispfit)r=   s    r   austourists_model_fitrD      s      e ,,r   c                      t        | ddd      S )Nr   Tr#   r$   r/   r	   r   s    r   oildata_modelrG      s    G5DJJr   c                  n    g d} t        j                  ddt              }t        j                  | |      S )N)Dgg}q>@g:w&3@gj3NCTQ9@gLjh;@giO	@@g4|7@g.4y<@gg#׏A@gySkB@g9@g0>@g@N0<@gИIRB@gN7@guO=@gz2?@glĖA@gk
dv3@g5^I=@g
ODA@gJD@glp:@g}֤G<@g"ĕwA@gU1SE@gٟ08@g<kU@@g8B@g[)F@g#Y=@gR,B@go=D@g|͓gH@gRF?@gXKB@gSC$kC@g[RI@ggQ?@gC+eD@gEfE@g+|K@g"S@@g2Η(E@gΥF@g^
M@gœz-kA@gp	1kF@ge *Q|G@gtoN@gɶǂ/C@gAإ|G@go
]I@gڝN@gDJXC@gj-UJ@g:\*K@gϰ fP@goD@guI@gL@gkPP@gëՇE@g@X}`aK@gP(M@gtX#sPR@gd*G@gQ?N@g>P@z
1999-01-01
2015-12-31freq)pd
date_ranger   Series)r7   indexs     r   r   r      s0    EDL MM,;GE99T5!!r   c                  d    g d} t        j                  | t        j                  ddd            S )N)1gJ[@g:Z`@gy/a@gf*IGc@gZ+Wd@g[z4Sh@g)Yn@g
nzs@gB) x@gJ݄1z@g9%uv@gzT{@g iF}@gg#z@gӯ~@gzRA@g*X@g3{Bu@ggIn@gܶak@gFce@g		o@gDFk@gqLHq@g4^p@gLiu@gcƀz@gi9P{@g6{@g?CS{@g'"XS{@gX{@g9S|@gf|@g<4fz@gw|@gh/{@gޫV&z@gdHc~@gbF@gS5J@g#qp)@g8~@gq@g||@g3}@gӍbo@g@Q.@g5;H@19652013YSrJ   )rO   )rL   rN   rM   )r7   s    r   r   r      s*    2Df 99TvvD!IJJr   c                    | j                  dd      5 }t        j                  |      }d d d        i }D ]6  }|dk(  }i ||<   ||   D ]"  }t        ||   |         s||   |   ||   |<   $ 8 |D ]a  }||   D ]W  }dD ]"  }t	        ||   |   |   d         ||   |   |<   $ dD ])  }t        j                  ||   |   |         ||   |   |<   + Y c |S # 1 sw Y   xY w)Nrzutf-8)encodingTRUE)alphabetagammaphisigma2r   )states	initstate	residualsfittedforecast
simulation)openjsonloadlenfloatnpasarray)pathf	R_resultsr8   r&   new_keyr   keys           r   obtain_R_resultsro   #  sK   	3	) !QIIaL	! G CF"v& 	CE9V$U+,*3F*;E*B '	CC  V_ 	EB .3FOE*3/2/&s+ 
 /1jjFOE*3//&s+
	" N=! !s   CC c                  j    t        j                  t              j                  dz  dz  } t	        |       S )S
    Dictionary of ets fit results obtained with script ``results/fit_ets.R``.
    r8   zfit_ets_results_seasonal.jsonpathlibPath__file__parentro   rj   s    r   r5   r5   E  s8     	X%%
	
)	* 	
 D!!r   c                  j    t        j                  t              j                  dz  dz  } t	        |       S )rq   r8   z fit_ets_results_nonseasonal.jsonrr   rw   s    r   r6   r6   R  s8     	X%%
	
,	- 	
 D!!r   c                    t        |      }| j                  t        t        | j                  |                  5  | j                  d      }ddd       |rt        || j                        }|_        S # 1 sw Y   *xY w)zD
    Fit the model with params as found by R's forecast package
    Fr@   N)	r3   
fix_paramsdictzipparam_namesrC   get_states_from_R	_k_statesr]   )r   r:   	set_stater)   rC   states_Rs         r   fit_austourists_with_R_paramsr   _  st     y)F			$s5#4#4f=>	? $iiUi#$ $Y@
J$ $s   A66A?c                     dD cg c]  }| |   	 }}|t        | d         z  }t        t        t        j                  |            }|S c c}w )N)rX   rY   rZ   r[   r^   )listfilterrh   isfinite)r:   r9   r)   s      r   r3   r3   m  sM    *KL$ioLFL
d9[)**F&f-.FM	 Ms   A	c                     |dkD  r| d   dd d|f   }|S | d   dd  }t        j                  |t        |      df      }|S )Nr   r]   r   )rh   reshaperf   )r:   k_statesxhat_Rs      r   r~   r~   v  sZ    !|8$QR8^4 M 8$QR(FS[!$45Mr   c                 4    | \  }}}|j                  d       y r?   rB   )r;   r   r)   r:   s       r   test_fit_model_austouritstsr     s    *E69	II5Ir   c                     | \  }}}|j                  |d      \  }}|d   }t        ||j                        }t        ||dd       t        ||dd       y )NT
return_rawr`   h㈵>rtolatol)smoothr~   r   r   )r;   r   r)   r:   yhatxhatyhat_Rr   s           r   test_smooth_vs_Rr     sZ    *E69f6JD$x Fy%//:FD&t$7D&t$7r   c                     | \  }}}|j                  |d      d   }|j                  |      }t        ||d   dd       y )NTr   r   r_   r   r   )r   
_residualsr   )r;   r   r)   r:   r   r_   s         r   test_residuals_vs_Rr     sH    *E69<<4<03D  &IIy5DtLr   c                     | \  }}}|j                  |      }|j                   dz  t        j                  dt        j                  z  |j                  z        dz   z  }|d   d   |z   }t        ||dd       y )N   r   loglikr   r   r   )loglikenobsrh   logpir   )r;   r   r)   r:   r   const	loglike_Rs          r   test_loglike_vs_Rr     sq    *E69mmF#GZZK!Orvva"%%i%**&<=ABE(#A&.IGYT=r   c                     | \  }}}t        ||d      }|j                  d      }t        j                  |d         }t	        ||j
                  dd       y )NTr   r,   ra   MbP?-C6?r   )r   ra   rh   ri   r   values)r;   r   r)   r:   rC   fcastexpecteds          r   test_forecast_vs_Rr     sN    *E69
'yD
ICLLOEzz)J/0HHellDAr   c                     | \  }}}t        ||d      }t        j                  g dg      j                  }|j	                  ddd|      }t        j                  |d         }t        ||j                  d	d	
       y )NTr   )g@9?gY,?gOQ?g[iY@r,   endr   )anchorrepetitionsrandom_errorsrb   r   r   )r   rh   ri   Tsimulater   r   )r;   r   r)   r:   rC   innovsimr   s           r   test_simulate_vs_Rr     so    *E69
'yD
ICJJGHIKKE
,,qAU,
KCzz)L12HHcjjt$?r   c                    | \  }}}t         r|j                  dk(  r|}nd }|j                  dd|      }|j                   dz  t	        j
                  dt        j                  z  |j                  z        dz   z  }|d   d   |z   }|j                  }		 |	|d	z
  k\  sJ y # t        $ r[ |j                  dd|      }|j                  }		 |	|d	z
  k\  sJ Y y # t        $ r! t        rt        j                  d
       n Y Y y w xY ww xY w)NAAdATg:0yE>)rA   pgtolstart_paramsr   r   r   r   r   zKnown to fail on 32-bit Linux)r   r'   rC   r   rh   r   r   llfAssertionErrorr   r1   xfail)
r;   reset_randomstater   r)   r:   startrC   r   r   r   s
             r   test_fit_vs_Rr     s   *E69((F2
))T)
>C ZZK!Orvva"%%i%**&<=ABE(#A&.IggG)d**** iiTFiC''		i$.... 	 <= >	s*   
B )D	
C&C?;D>C??Dc                     | \  }}}t        ||d      }|j                  }|j                  |dz   |      }|d   }t        |d | |dd       |d   }t        ||d  |d	d
       y )NTr   r   )r   dynamicr`   r   r   ra   r   r   )r   r   predictr   )	r;   r   r)   r:   rC   n
predictionr   
forecast_Rs	            r   test_predict_vs_Rr     sw    *E69
'yD
ICAQ2Jx FJrNFDA:&JJqrNJTEr   c           	          ddg\  }}t        | dddd||      }|j                  |j                        }||d   k(  sJ ||d   k(  sJ |d	   d
k(  sJ y )Ng\Q@z;B@g԰\A@r   Tknown)r#   r$   r/   initialization_methodinitial_levelinitial_trendr,         r   )r
   _internal_params_start_params)r   r   r   r   internal_paramss        r   test_initialization_knownr     s    $/#= M=%##E ,,U-@-@AOOA....OA....1"""r   c                    t        | dddd      }t        | dddd      }|j                  d      }|j                  d      }|j                  j                  }|j                  j                  }t	        |dd  |dd  d	
       y )Nr   T	estimated)r#   r$   r/   r   	heuristicFr@   
   g      ?r   )r
   rC   fittedvaluesr   r   )r   model_estimatedmodel_heuristicfit_estimatedfit_heuristicyhat_estimatedyhat_heuristics          r   test_initialization_heuristicr     s    )O )O $''U'3M#''U'3M"//66N"//66N N23')<3Gr   c                 2   ddg}t        | dddd|i      }|j                  d      }|j                  dk(  sJ t        | ddd      }|j                  ddi      5  |j                  d      }d d d        j                  dk(  sJ t	        |j
                  |j
                         |j                          |j                  ddi      }|j                  dk(  sJ t	        |j
                  |j
                         |j                          y # 1 sw Y   xY w)	NgGz?r   Tsmoothing_trend)r#   r$   r/   boundsFr@   rF   )r
   rC   r   rz   r   r)   summaryfit_constrained)r   rY   model1fit1model2fit2fit3s          r   test_bounded_fitr   !  s   $<D!4(F ::5:!D4''' gU%dLF			-t4	5 &zzuz%&4'''DKK-LLN !!#4d";<D4'''DKK-LLN& &s   DDc                     t        | ddd      }|j                  dk(  sJ 	 t        | dd      }y # t        $ r Y y w xY w)Nr   )r#   r$   r%   r,   r   )r%   r.   )r
   r.   
ValueError)r   r   s     r   test_seasonal_periodsr   <  sK    [UUKE!!Q&&&uqI s   1 	==c                 h   | }t        |j                  ddd      j                  |j                  ddd      j                         t        |j                  ddd      j                  |j                  ddd      j                         |j                  dd       |j                  ddt        j                  j
                  	       |j                  ddt        j                  j                         	       |j                  ddt        j                  j                  dd      	       |j                  ddd
	       |j                  ddd      j                  }|j                  ddt        j                  j                  d            j                  }t        j                  ||k(        sJ y)zS
    check whether all keywords are accepted and work without throwing errors.
    r,   r   )r   random_staterI   r   r   )r   )r   r   	bootstrap)r   r   N)r   r   r   scipystatsnormrh   randomrandnRandomStateall)rD   rC   resres2s       r   test_simulate_keywordsr   H  sb     C Qr299Q|!<CC Qu15<<Q|!<CC LLL#LL%++2B2BLCLL%++2B2B2DLELL"))//!R2HLILL+L> ,,qbr,
:
A
AC<<	r		(=(=b(A  f 	 66#+r   c                    | }|j                  dd      }t        |      dk(  sJ |j                  dd      }t        |      dk(  sJ |j                  ddd      }t        |      dk(  sJ |j                  dd	d
      }t        |      dk(  sJ |j                  dd	d
      }t        |      dk(  sJ |j                  dd      }t        |      dk(  sJ y )Nr   r   r   r            r   r   r      TF   G   P   T   r   )r   rf   )rD   rC   preds      r   test_predict_rangesr	  g  s    
C ;;QB;'Dt9??;;RR;(Dt9??;;R;4Dt9?? ;;Q";5Dt9??;;Q";5Dt9?? ;;RR;(Dt9>>r   c                     | j                  d      }|j                          | j                  d       | j                  d      }|j                          | j                  ddi      }|j                          y )NFr@   r   r   g?)rC   r   set_initialization_methodr   )r=   rC   s     r   test_summaryr    sk    


U

+CKKM //<


U

+CKKM 
+
+->,D
ECKKMr   c                     | j                   j                  | j                        }| j                   j                  | j                  dd      }t        ||d       y )NFTapprox_complex_stepapprox_centeredr,   )r   scorer)   r   )rD   score_csscore_fds      r   
test_scorer    sW    $**001F1M1MNH$**00$$! 1 H
 (A.r   c                     | j                   j                  | j                         | j                   j                  | j                  dd       y )NFTr  )r   hessianr)   )rD   s    r   test_hessianr    sG     ''(=(D(DE''$$! ( r   c                    | j                  ddd      }|j                         }t        |d   j                        dk(  sJ t	        j
                  t	        j                  |d                sJ | j                  ddd      }|j                         }t        |d   j                        dk(  sJ t	        j
                  t	        j                  |d                sJ | j                  ddd	      }|j                         }t        |d   j                        d
k(  sJ t	        j
                  t	        j                  |d                sJ | j                  dd	      }|j                         }t        |d   j                        dk(  sJ t	        j
                  t	        j                  |d                sJ | j                  dd	      }|j                         }t        |d   j                        dk(  sJ t	        j
                  t	        j                  |d                sJ | j                  dd	      }|j                         }t        |d   j                        dk(  sJ t	        j
                  t	        j                  |d                sJ | j                  dd	      }|j                         }t        |d   j                        dk(  sJ t	        j
                  t	        j                  |d                sJ | j                  d	d	      }|j                         }t        |d   j                        dk(  sJ t	        j
                  t	        j                  |d                sJ y )Nr   r  (   r  mean)   r      r  Q   C   r      D      E      O   r   r   )get_predictionsummary_framerf   r   rh   r   isnan)rD   r  r   s      r   test_prediction_resultsr(    s&    //a/MD  "Gwv%%&",,,66288GFO,,--- !//b""/MD  "Gwv%%&",,,66288GFO,,--- !//a/LD  "Gwv%%&",,,66288GFO,,--- !//bb/AD  "Gwv%%&",,,66288GFO,,--- !//bb/AD  "Gwv%%&",,,66288GFO,,--- !//bb/AD  "Gwv%%&",,,66288GFO,,--- !//bb/AD  "Gwv%%&!+++66288GFO,,--- !//bb/AD  "Gwv%%&!+++66288GFO,,---r   c                    t        | ddddd      }|j                  d      }t        j                  | dddd|j                  |j
                  |j                  d d d   	      }|j                  |j                  |j                  |j                  |j                  d
      5  |j                         }d d d        |j                  d       j                  d       ||fS # 1 sw Y   /xY w)Nr,   r   Tr-   Fr@   r   r   )r$   r/   r%   r   r   r   initial_seasonal)smoothing_levelr   smoothing_seasonaldamping_trendljungbox)r
   rC   
statespaceExponentialSmoothingr   r   r*  rz   r+  r   r,  r-  test_serial_correlation)r   	ets_modelets_resultsstatespace_modelstatespace_resultss        r   statespace_comparisonr6    s    I --U-+K!66%!//!//$55dd;
 
	$	$*::*::"-"@"@(66		

 4 .1134 ''
3..z:***4 4s   #C""C+c                 X   | \  }}t        |j                  |j                         t        |j                  |j                         t        |j                  j                  |j                  j                         t        |j                  d      |j                  d             t        |j                  d      |j                  d             |j                  d      d   }|j                  d      d   }t        s)t        |d   |d   d       t        |d   |d   d	       y y )
Nr.  )method
jarqueberabreakvarr   皙?r   r   gffffff?)
r   r   scaler   r   r1  test_normalitytest_heteroskedasticityr   r   )r6  r3  r5  ets_hetstatespace_hets        r   test_results_vs_statespacerA    s(   &;#K#);)?)?@))+=+C+CD  '');)H)H)O)O
 ++:+>22*2E "","7)))> 111DQGG'?? @ 	N  	
N1$5C@
N1$5C@	 r   c                 *   | \  }}|j                  ddd      }|j                  ddd      }|j                         }|j                         }t        |d   j                  d d |d   j                  d d        t        |d   j                  dd  |d   j                  dd  d       |j                  dd	      }|j                  dd	      }|j                         }|j                         }t        |d   j                  |d   j                  d       y )
Nr   r  r  r  ir,   <   r  r   )r%  r&  r   r   )r6  r3  r5  ets_predstatespace_predstatespace_summaryets_summarys          r   %test_prediction_results_vs_statespacerH    s;   &;#K# ))BB)GH(77"" 8 O )668((*K F""4C(6"))$3/
 F""34(6"))#$/	 )))<H(77bb7IO(668((*KF""$6v$>$E$Eqr   c                    t        | dd      j                  d      }|j                  dd      }|j                         }|j                  ddt	        d      d	d
      }|j                         }t        |d   j                  |d   j                  dd       dd lm} |j                  d       t        d      D ];  }|j                  |j                  j                  j                  d d |f   dd       = |j                  | dd  dd       |j                  |d   dd       |j                  |d   dd       |j                  |d   dd       |j                  |d   dd        |j                  |d   dd!       |j                          t        |d   j                  |d   j                  d"d"       t        |d   j                  |d   j                  d"d"       y )#Nr   )r#   r$   Fr@   r  7   r       .Ar   	simulatedr   r   simulate_repetitionsr   r8  r  mean_numericalr   r   r   TkAgg  grey皙?colorrX   -r7   label--pi_lower:	sim lower.-exact lowerpi_upper	sim upperexact upperr   )r
   rC   r%  r&  intr   r   matplotlib.pyplotpyplotswitch_backendrangeplot_resultssimulation_resultsilocshow)r   rC   
pred_exactsummary_exactpred_simsummary_simpltr   s           r    test_prediction_results_slow_AANrq  C  s    7%u
5
9
9u
9
EC##""#5J,,.M!! X " H ((*KF""$%,,	 $w4[ 
0055ad; 	 	

 HHWRS\3fH-HH]6"DH7HH[$cH=HH]:&MHBHH[$cH=HH]:&MHBHHJ J&&j!((	 J&&j!((	r   c                    t        | ddddd      j                  d      }|j                  dd	      }|j                         }|j                  ddt	        d
      dd      }|j                         }t        |d   j                  |d   j                  dd       dd lm} |j                  d       t        d      D ];  }|j                  |j                  j                  j                  d d |f   dd       = |j                  |j                  dd  dd       |j                  |d   dd       |j                  |d   dd       |j                  |d   dd        |j                  |d!   dd"       |j                  |d!   dd#       |j!                          t        |d   j                  |d   j                  d$d%       t        |d!   j                  |d!   j                  d$d%       y )&Nr   Tr,   )r#   r$   r%   r/   r.   Fr@   rC  K   r   rK  r   rL  rM  r  rO  r   r   r   rP  rQ  rR  rS  rT  rV  r7   rW  rY  rZ  r[  r\  r]  r^  r_  r`  ra  g{Gz?r   )r
   rC   r%  r&  rb  r   r   rc  rd  re  rf  rg  rh  ri  rj  endogrk  )r   rC   rl  rm  rn  ro  rp  r   s           r   !test_prediction_results_slow_AAdAru  ~  s     
cuco  ##""#5J,,.M!! X " H ((*KF""$%,,	 $w4[ 
0055ad; 	 	

 HHSYYrs^SH/HH]6"DH7HH[$cH=HH]:&MHBHH[$cH=HH]:&MHBHHJ J&&j!((	 J&&j!((	r   c                  "   t         j                  j                  d      } | j                  d      }|j	                         }t        d|j                  d         D ]  }||dz
     d||dz
     z  z
  ||   z   ||<   ! |dd  }t        j                  |d      }|j                         }t        |      j                         }t        |j                  d   |j                  d	d	
       t        |j                  dd  |j                  dd  d	d	
       y )Nr   i.  r   r;     r   )r   r+  r   r   r   )rh   r   r   standard_normalcopyrf  shapeholtwintersr0  rC   r
   r   r)   r+  r   )geneyr   modr   ets_ress          r   test_convergence_simpler    s
   
))


"CE"A	A1aggaj! 0Qx#!a%.(1Q4/!0	#$A

*
*	C '')CqkooG 

$%	 w33BC8t$r   c                 x   | j                   } G d d      }d|_         |d      |_        d}|j                  |      } |d      |_        |j                  |      }t	        ||d       d|_         |d      |_        d}|j                  |      } |d	      |_        |j                  |      }t	        ||d       y )
Nc                       e Zd Zd Zy)3test_exact_prediction_intervals.<locals>.DummyModelc                     || _         y r   )r'   )selfr'   s     r   __init__z<test_exact_prediction_intervals.<locals>.DummyModel.__init__  s	    (DOr   N)__name__
__module____qualname__r  r"   r   r   
DummyModelr    s    	)r   r  g+?AAdNr   AANr   r   AAA)rh  r-  r   _relative_forecast_variancer   )rD   rC   r  stepss_AAdNs_AANs_AAdAs_AAAs           r   test_exact_prediction_intervalsr    s    

(
(C) )
 !C6"CIE,,U3F5!CI++E2Eq) !C6"CIE,,U3F5!CI++E2Eq)r   c                    | \  }}}t        t        j                  |j                        |j                  |j
                  |j                  |j                  |j                        }|j                  |      }|j                  d      }|j                  d      }t        |j                  d   |j                  d          |j                  |j                  |j                  d      }|j                  |j                  |j                  dz   d      }	|j                  d      }
|j                  d      }t        |
j                  d	   |j                  d	          y )
Nr-   r   )r  r   r   )r   r   rN  g?)rX   )r   r   )r
   rL   rN   rt  r.   r#   r$   r%   r/   r   ra   r   rj  r%  r   r&  )r;   r   r)   r:   r   r   fcast1fcast2pred1pred2df1df2s               r   test_one_step_aheadr    s%   *E69
		%++//kkkk''F --
C\\\"F\\\"FFKKNFKKN3V[[fkk45  7EV[[fkkAo45  7E


D

)C


D

)CCHHTNCHHTN3r   r$   r   r%   r   	   r   c                     t        | d | ||dd      j                         }t        j                  t        j                  |j
                               sJ y )Nr,   r   )r$   r%   r.   r   )r
   rC   rh   anyr'  r)   )r   r$   r%   r   r   s        r   (test_estimated_initialization_short_datar    sS    
 ) 
ce  FF288CJJ'((((r   r8  r   r   c                    t        j                  d      }t        j                  t        |      dz        }t	        |dd|      j                         }t        |j                  |j                  z   |dd       |j                  dk  sJ y )	Ng      (@d   r   r#  )r%   r.   r   r   )r   r   gư>)
rh   arangearrayr   r
   rC   r   r*  r   mae)r   r8  r%   time_seriesr   s        r   test_seasonal_orderr    s    yyH((4>C/0K
$	
 
ce  s000	 77T>>r   c            	          g d} t        | dddddd      }|j                         j                  }t        j                  |      rJ |dkD  sJ y )	N)g     @[@g     @Y@g      Z@g     V@g     @Z@r   g      Y@g        r   T)rt  r   r   r   r#   r$   r/   r   )r
   rC   aiccrh   r   )rt  r   r  s      r   test_aicc_0_dofr  2  sV    .E%E 99;D{{4   !8O8r   )F)T__doc__statsmodels.compat.pandasr   statsmodels.compat.platformr   r   	itertoolsr   rd   rs   numpyrh   numpy.testingr   r   pandasrL   r1   scipy.statsr   )statsmodels.tsa.exponential_smoothing.etsr
   statsmodels.tsa.holtwinterstsar{  0statsmodels.tsa.statespace.exponential_smoothingr/  exponential_smoothingr   ERRORSTRENDS	SEASONALSDAMPEDr   MODELS_DATA_SEASONALMODELS_DATA_NONSEASONALr(   ALL_MODELS_AND_DATAALL_MODEL_IDSfixturer;   r=   rD   rG   r   r   ro   r5   r6   r   r3   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r	  r  r  r  r(  r6  rA  rH  markr2   rq  ru  r  r  r  parametrizer  r  r  )r  s   0r   <module>r     s4   2 F     >    > 1 1 E E6 
	 		FFNF4DF  FFGV\;    4 5  7 8 .0DD 2E+.&c"1g&s1v&
 *>#$ ?#$L   - - K K J" J"Z 6K 6K|D 	" 	" 	" 	"	8M>B	@>F&#"H26	>2//.d !+ !+HA@%P 7 7t < <~<*642 4-0dE]3!R)	) * 4 1	) K#=> ?$Gs   I: