
    !g                     b   d dl mZ d dlZd dlZd dlZd dlmZ  e	 eg dddg            Z
e
D  cg c]  \  } }d|  d|  c}} Z ej                  e
e	      d
        Z ej                  g d      d        Zej                  j                   ej                  j#                  dg d      ej                  j#                  dddg      ej                  j#                  dddg      ej                  j#                  dddg      ej                  j#                  dddg      ej                  j#                  dg d      d                                                  Zej                  j                   d        Zd Zd Zd Zej                  j#                  dddg      d        Zd Zyc c}} w )    )productN)
ThetaModel)array	dataframeseriesTFztype: z, exponential: )paramsidsc                    t         j                  j                  g d      }| j                  d   rdnd}t        j                  |||j                  d      z  z         }| j                  d   rt        j                  |      }t        j                  dd      }| j                  d   dk(  r|S | j                  d   d	k(  r t        j                  |d d d f   d
g|      S t        j                  |d
|      S )Nl   Eo< iEi6   {Gz?,  
2000-01-01periodsr   r   r   y)columnsindex)namer   )nprandomRandomStateparamcumsumstandard_normalexppd
date_range	DataFrameSeries)requestrsscaler   r   s        i/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/forecasting/tests/test_theta.pydatar%      s    			A	BBMM!$D!E
		%%""4"4S"999:A}}QFF1IMM,4E}}Q7"	q	[	(||AagJUCCyyE22    )datetimeperiodrangenofreq)r   c                    t         j                  j                  g d      }d}t        j                  |||j	                  d      z  z         }t        j
                  |      }| j                  dk(  rt        j                  dd      }n| j                  dk(  rt        j                  ddd	      }nm| j                  d
k(  rt        j                  ddd      }nFt        j                  dd      }t        j                  |j                  ddd            }||d d    }t        j                  ||d| j                         S )Nr   r   r   r'   2000-1-1r   r(   M)r   freqr)   d   i     i  r   i  )sizey_)r   r   )r   r   r   r   r   r   r   r   r   period_range
RangeIndexuniquerandintr    )r!   r"   r#   r   r   locss         r$   indexed_datar8      s    			A	BBE
		%%""4"4S"999:A
q	A}}
"j#6	(	"
CcB	'	!c=!4j$7yyAt#67d4Cj!99QeBw}}o*>??r&   r(   )N      use_mledeseasonalizeuse_testdiffmodel)autoadditivemultiplicativec                    |t        | t        j                        ry t        | |||||      j	                  |      }dt        |j                               v sJ |j                  d       |j                  d       |j                  j                  |xr |j                  j                  u sJ |j                  j                  |u sJ y )N)r(   r<   r=   
differencemethodr;   b0$   /   )
isinstancer   ndarrayr   fitstrsummaryforecastforecast_componentsr?   r=   r<   rD   )r%   r(   r;   r<   r=   r>   r?   ress           r$   
test_smokerR   0   s     ~*T2::6
# 
c'c  3s{{}%%%%LLB99("Fsyy/F/FGGG994'''r&   c                    | j                   }t        |d       xs t        |dd       d u }|rdnd }t        | |      j	                         }t        |d      rs|j
                  gt        j                  t              5  |j                  d       d d d        t        j                  t              5  |j                  d       d d d        y |j                  d       |j                  d       y # 1 sw Y   `xY w# 1 sw Y   y xY w)Nr.   r:   r(   %      )r   hasattrgetattrr   rL   r.   pytestwarnsUserWarningrP   rO   )r8   idx	date_liker(   rQ   s        r$   test_alt_indexr^   I   s    


CC((NGC,F$,NIR$F
\&
1
5
5
7CsF 0\\+& 	(##B'	(\\+& 	LL	 	 	#R	( 	(	 	s   =C.0C:.C7:Dc                     t        j                  dd      } g }t        d      D ](  }|j                  d|z  t	        |dz  dk(        z          * t        j
                  t        j                  j                  d      | |         }t        j                  t        d	      5  t        |       d d d        y # 1 sw Y   y xY w)
Nr,   r   r   r/   r0   r   r   zYou must specify a period ormatch)r   r   r)   appendintr    r   r   r   rY   raises
ValueErrorr   )r\   r7   ir   s       r$   test_no_freqrh   Y   s    
--
C
0CD3Z /AECQ1--./
		"))++C0D	BA	z)G	H 1  s   "B77C c                    t        | d      j                         }t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |j                  dd	       d d d        t        j                  t        d      5  |j                  d
       d d d        y # 1 sw Y   vxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)Nr:   rT   z steps must be a positive integerra   ztheta must be a float   gGz?)thetar   )r   rL   rY   re   rf   rO   rP   )r%   rQ   s     r$   test_forecast_errorsrm   c   s    
T"
%
)
)
+C	z)K	L R	z)@	A $Qd#$	z)K	L #"# #	 $ $# #s#   B>,C
#C>C
CCc                     t         j                  j                  d      } t        j                  d      | j	                  d      z   }t        |dd      }|j                         }|j                  d      }t        j                  t        j                  t        j                  |      d            }t        j                  t        j                  |      d	kD        sJ y )
Ni r/   r:   F)r(   r<      r   )axisr   )r   r   r   aranger   r   rL   prediction_intervalssqueezer>   asarrayall)r"   r   thrQ   pids         r$   test_pi_widthry   m   s    			w	'B
		#++C00A	Ab	6B
&&(C		!	!"	%B


2772::b>23A66"''!*q.!!!r&   r9   r:   c                 b   t        | |ddd      j                  d      }|j                  }|j                  d      }t	        j
                  | j                  d   | j                  d   |j                  d   z         }|||z     }t        j                  j                  |j                  |       y )NTF)r(   r<   r=   rD   rF       r   )
r   rL   	_seasonalrP   r   rq   shapetestingassert_allcloseseasonal)r%   r(   rQ   r   compr   expecteds          r$    test_forecast_seasonal_alignmentr   z   s    
 
c%c  }}H""2&DIIdjjmTZZ]TZZ]%BCE'HJJt}}h7r&   c                    d}t         j                  j                  |      }dt        j                  t        j                  dt         j
                  d            z  }t        j                  ||dz  dz         d | }t        j                  dd|      }||z   }t        j                  d|z   |j                         z
  |	      }t        |d
      }|j                  dk(  sJ |j                         }t        |d      }|j                  dk(  sJ |j                         }	t         j                  j                  |j                   |	j                          t        ||j#                         z
  d
      }|j                  dk(  sJ |j                         }
t        j$                  |j                   |
j                         rJ y )N   
   r   r:   r   r   r-   )r.   r   r`   r@   )rE   muladd)r   r   r   sinlinspacerw   tiler   r3   r   minr   rE   rL   r~   r   r   meanallclose)reset_randomstatemesr\   xr   tmrQ   res2res3s              r$   	test_autor      sX   A
		!!!$A
RVVBKK255"-..A
AGaK!"1%A
//,S!
<C	AA
R!Vaeeg%S1A	Af	%B99
&&(C	Ae	$B99668DJJszz4;;7	AL	0B99668D{{3::t{{3333r&   )	itertoolsr   numpyr   pandasr   rY   !statsmodels.tsa.forecasting.thetar   listSMOKE_PARAMS	SMOKE_IDSfixturer%   r8   marksmokeparametrizerR   r^   rh   rm   ry   r   r   )typr   s   00r$   <module>r      s       8G<tUmLM@LMHCvcU/#/M	 |33 43 @A@ B@$ =1T5M24-8dE]3$/"HI( J 0 4 9 3 2 ($  #	" Ar7+8 ,84A Ns   F+