
    !g@>              	       L   d dl mZmZmZ d dlZd dlmZmZm	Z	m
Z
 d dlZd dlZd dlmZ g dZg ej"                  ej"                  dddd	d
dddddddddddddddddddddd d!ej"                  ej"                  Zg ej"                  ej"                  d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=ej"                  ej"                  Zg d>Zg ej"                  ej"                  d?ddd	d
ddddddddddddddddd@dAdBdCdDdEdFej"                  ej"                  Zg ej"                  ej"                  dGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbej"                  ej"                  Z G dc dd      Zde Zej2                  j4                  df        Zdg Zej2                  j:                  ej2                  j=                  dhdidjg      ej2                  j=                  dkdldmg      ej2                  j=                  dndodpg      ej2                  j=                  dqdodpg      dr                                    Zy)s    )	MONTH_ENDQUARTER_ENDYEAR_ENDN)assert_allcloseassert_almost_equalassert_equalassert_raises)seasonal_decompose) {G:O@{GU@QV      Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   p=
c@     i@     k@p=
ףn@     s@     8|@)\@     Z@)\<@      @R|@Rw@Rs@     p@\(l@     Xj@\(g@     h@p=
i@     g@\(d@      R@     "(\@     `B      B@     Y@p=
s`@gK7AS@gK7AQ@g{GZBgB`"WgCl{gsh|Og(\ZZ@g/Y@gx&1@gMb?gGz.@g+$gsh|@g";gQG@gʡELg/$<@gsh|_Bg{GBgOnb@g9vRgK7AU@gQk$g!rhAhgnH@g5^I&@g{G:DgOna@) M?ec]?H}?vq-?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.   gp=
se@     Z@      T@gHzS@     S@      ]@     a@g\(c@gtA}˜?g37?g3?g|͍?gk?gvR~?gGZ*oG8?gAf?gQ5U?g}"O?gapI?gni5$?gG8-xW?gd@z?g]?g[[?g0/?gy?gg\8?g}ƅ!?gAJi?gcAJ?g@߾?gמY?g͍	K?g\*?gBfj?g4?c                   L    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zy
)TestDecomposec           	          g d}t        j                  |t        j                  dt        |      t                    | _        y )N i                  iI  i  i)  i  i  i  i        iQ        f      i     b   +   isii}   ii  i   1/1/1951startperiodsfreq)pd	DataFrame
date_rangelenr   data)clsrR   s     `/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/tests/test_seasonal.pysetup_classzTestDecompose.setup_class3   s7    I <<bmm*<?I9D'F G    c                    t        | j                  j                  d      }t        |j                  t
        d       t        |j                  t        d       t        |j                  t        d       t        t        j                  | j                  j                        dd      }t        |j                  t        d       t        |j                  t        d       t        |j                  t        d       t        | j                  j                  d d d      }g d}g t        j                  t        j                  dd	d
dddddddddddddddddddddd d!d"t        j                  t        j                  }g t        j                  t        j                  d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=t        j                  t        j                  }t        |j                  |d       t        |j                  |d       t        |j                  |d       y )>N   period   rD   m)QQ@zGAQ@
ףp=TQEKr^   r_   r`   ra   r^   r_   r`   ra   r^   r_   r`   ra   r^   r_   r`   ra   r^   r_   r`   ra   r^   r_   r`   ra   r^   r_   r`   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   gOn"R@gOn"P@gJ+6EgISgC,(g!rhPg~jX@gfffff.^@gV-g+gSe#@gffffff@gB`"{CgB`"@gx9D@g33333cDg}?5^I6@gB`";EgJ+Eg33333e@g!rhMTOn"T@g'1/gfg/4E@gx&@gJ+G)r
   rR   valuesr   seasonalSEASONALtrendTRENDresidRANDOMnpabsMULT_SEASONAL
MULT_TRENDMULT_RANDOMnan)selfres_addres_multrd   rf   randoms         rT   test_ndarrayzTestDecompose.test_ndarray=   sW   $TYY%5%5a@G,,h:GMM5!4GMM615%bffTYY-=-=&>ANH--}a@HNNJ:HNNK; %TYY%5%5cr%:1E*
) ) ) ) ) ) ) )))!'))/)17)9?)AG)))!'))/)17)9?)AG) )  ) "') ).) 06) 8>) @E) 	) 	) "$	)
D"&& D"&& D& D& D' D7 DD"D$*D,3D5;D=CDDD 'D)0D28D:ADCID D #D %,D .5D 7=D ?FD 	D #	D %*	D ,3	D 57FF	D =?FF	D
 	G,,h:GMM5!4GMM615rV   c                    t        | j                  d      }| j                  j                         }t        j                  dt        |      t              |_        t        |d      }t        |j                  j                  j                         t        d       t        |j                  j                  j                         t        d       t        |j                  j                  j                         t         d       t        |j                  j                  j                         t        d       t        |j                  j                  j                         t        d       t        |j                  j                  j                         t         d       t#        |j                  j                  j                  j                         | j                  j                  j                         t        t%        j&                  | j                        dd      }t        t%        j&                  |      dd      }t        |j                  j                  j                         t(        d       t        |j                  j                  j                         t*        d       t        |j                  j                  j                         t,        d       t        |j                  j                  j                         t(        d       t        |j                  j                  j                         t*        d       t        |j                  j                  j                         t,        d       t#        |j                  j                  j                  j                         | j                  j                  j                         y )NrX   rY   rI   rJ   r[   rD   r\   )r
   rR   copyrN   rP   rQ   r   indexr   rd   rc   squeezere   rf   rg   rh   ri   r   rj   rk   rl   rm   rn   )rp   rq   freq_override_datares_add_overriderr   res_mult_overrides         rT   test_pandaszTestDecompose.test_pandas^   s   $TYYq9!YY^^-#%==c*<&=H$N -.@KG,,33;;=xKGMM0088:E1EGMM0088:FAF,55<<DDF$a	),2299AAC!1	&,2299AAC"A	'W%%++22::<YY__++	- &bffTYY&7QG.rvv6H/I3679H--44<<>	HNN1199;ZKHNN1199;[!L-66==EEG)1	.-33::BBD&	+-33::BBD'	,X&&,,33;;=YY__++	-rV   c                 b   d}t        j                  t        |      D cg c]  }|dz  	 c}t        j                  j                  |      z         }t        |j                  d      }t        |d      }d}d}t        |j                  j                  j                         |j                  ||       t        |j                  j                  j                         |j                  ||       t        |j                  j                  j                         |j                  ||       y c c}w )Nd   rD   rY   g:0yE>g|=)atolrtol)rN   Seriesrangerj   rs   randnr
   rc   r   rd   rx   rf   rh   )	rp   reset_randomstatenobsxdtares_npresr   r   s	            rT   test_pandas_nofreqz TestDecompose.test_pandas_nofreq   s    iid41Q4ryyt7LLM#CJJq9 Q/++335v!	.		((002FLL!	.		((002FLL!	. 5s   D,c                    t        j                  g d      }t        | j                  j                  |d      }t        |j                  t        d       t        |j                  t        d       t        |j                  t        d       y )N)      ?      ?r   r   r   rX   )filtrZ   r[   rD   )rj   arrayr
   rR   rc   r   rd   re   rf   rg   rh   ri   )rp   r   rq   s      rT   	test_filtzTestDecompose.test_filt   s[    xx@A$TYY%5%5DKG,,h:GMM5!4GMM615rV   c                 n	   t        | j                  j                  dd      }t        j                  g d      }t        j                  g t        j
                  t        j
                  t        j
                  t        j
                  ddddd	d
dddddddddddddddddddddd       }t        j                  g t        j
                  t        j
                  t        j
                  t        j
                  d!d"d#d$d%d&d'd(d)d*d+d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;      }t        |j                  |d<       t        |j                  |d<       t        |j                  |d=       t        t        j                  | j                  j                        d>dd      }t        j                  g d?      }t        j                  g t        j
                  t        j
                  t        j
                  t        j
                  d@dddAd	d
dBddCddDdEdFddGddHddIddJdKdLdMdNdOdPdQ      }t        j                  g t        j
                  t        j
                  t        j
                  t        j
                  dRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldm      }t        |j                  |d       t        |j                  |d<       t        |j                  |d       t        | j                  j                  d dn dd      }t        j                  g do      }g t        j
                  t        j
                  t        j
                  t        j
                  ddddd	d
ddddddddddddddddddddd}g t        j
                  t        j
                  t        j
                  t        j
                  dpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddd}t        |j                  |d<       t        |j                  |d<       t        |j                  |d=       y )NrX   F)rZ   	two_sided) q=
ף0S@RV@皙\333333Jr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   gMbX9&@gLg rh]@gbX9a@got@g/$p@g rhT@g;OvSg#~jcgEfgKcgl1LgDl\g%C,@gw/-Lgl@g^Ia@g;OnVgw/MDg#~jig"~rgA`RG@g rh!R@gI+?U@g^IWm@gw/@g rh1Z@r[   rD   r\   ) V-?Gr?F_?V-?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   g     te@g     n@g     @g     =@g     |@g     w@g     s@g     l@g     g@g     i@g     d@r/   r0   g     S@r1   r2   r3   g     c@gz6?gMb?g      ?gn?go?giq?gS:?gNbX9?g$(~k?g/L
F?g46<?gpΈ?g"~j?gn?gw/?g!rh?g镲q?gjMS?gV}b?gTN?gQ?gZd;?gtV?gŏ1w-!?g(0?gΈ @g\m?gW2ı?r]   )=
ףpMT@QW@|[(\oPr   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   gx@g=
ףpNg~jl\@gƳb@gS㥛t@gQpp@g~jS@g r PgX9Țcg(\/ggʡcgNbX9lagB`"kNgQ]gS%#@g7A`EgB`"Bgq=
ף`@g%CWgoA;gX9ȢigHz7sgxE@gd;OwU@rb   gq=
ףl@gJ+C)r
   rR   rc   rj   r   ro   r   rd   rf   rh   rk   )rp   rq   rd   rf   rh   rr   rs   s          rT   .test_one_sided_moving_average_in_stl_decomposez<TestDecompose.test_one_sided_moving_average_in_stl_decompose   s   $TYY%5%5a/46 88 : ;  7"&& 7"&& 7"&& 7"&& 7& 7$ 7 7 7"(7*/71779?7AG7IM7 7"(7*072678>7@F7HN7 7 !'7 )-7 /57 7:7 <A7 CI7 !	7 #(	7 *.	7 06	7 8  5"&& 5"&& 5"&& 5"&& 5& 5' 5!5#*5,355<5>D5FM5"5$,5.658@5BI5 #5 %+5 -45 6=5 ?F5 HO5 "	5 $,	5 .6	5 8>	5 @F	5 HN	5
 "5
 $+5
 -45 6 	G,,h:GMM5!4GMM5!4%bffTYY-=-=&>A057 88 - .  )"&& )"&& )"&& )"&& )' )4 ) )"))+1)38):A)CI)!)#'))0)29);B)DH) ") $*) ,3) 59) ;B) DH) "	) $*	) ,0	) 28	) :?	) AF	)
 )
 !() *  :"&& :"&& :"&& :"&& :& :% : ::!':)/:17:9>:@F:HN: :"(:*/:16:8>:@F:HN: !: #): +1: 38: :?: AF: HN: !	: #)	: +1	: 39	: ; 	H--x;HNNE15HNNE15 %TYY%5%5cr%:1/4688 & '& & & & & & &v &&&!&&(.&06&8>&@D&&&!'&)-&/5&7=&?E& & &  $& &,& .1& 38& :@& 	& 	& !%	&N"&& N"&& N"&& N"&& N% N NN"N$+N-3N5;N=DNN#N%-N/7N9@NBIN N !N #*N ,2N 4;N =DN 	N $	N &,	N .4	N 6<	N >D	N FM	N 	G,,h:GMM5!4GMM615rV   c                 R   t        j                  t        j                  d      d      j                  }t	        |d      j
                  }t        j                  t        j                  dt              d      j                  }t         j                  x|d<   |d<   t        ||       y )N   r[      r[   rY   )dtyper   r]   )	rj   tilearangeTr
   rf   floatro   r   )rp   r   rf   expecteds       rT   test_2dzTestDecompose.test_2d   ss    GGBIIaL&)++"1Q/5577299Qe4f=??%'VV+hrlUH%rV   c                 v   t        j                  d      }d}t        ||      j                  }t	        |d   t         j
                         t        ||d      j                  }t        ||       t        ||d      j                  }t        ||       t        |d d d f   |d      j                  }t        ||       t        j                  t        j                  d      d      j                  }t        ||d	      j                  }t        ||       t        ||d      j                  }t        ||       y )
N   rX   rY   r      )rZ   extrapolate_trendrM   r   r   )	rj   r   r
   rf   r   ro   r   r   r   )rp   r   rM   rf   s       rT   test_interpolate_trendz$TestDecompose.test_interpolate_trend   s   IIbM"1T288U1Xrvv&"1TQGMME1%"1T5;==BU 	E1%"1QW:d5688= 	E1% GGBIIbM6*,,"1TQGMME1%"1T5;==BU 	E1%rV   c                 X   t        t        t        | j                  j                         t        t        t        | j                  dd       | j                  j                  t              j                         }t        j                  |j                  d<   t        t        t        |       y )Nr\   rX   rY   r[   )r	   
ValueErrorr
   rR   rc   astyper   rv   rj   ro   iloc)rp   r   s     rT   test_raiseszTestDecompose.test_raises	  sl    j"4dii6F6FGj"4dii	 IIU#((*FFq	j"4a8rV   N)__name__
__module____qualname__classmethodrU   rt   r|   r   r   r   r   r   r    rV   rT   r5   r5   2   sB    G G6B!-F. 6N6`&&49rV   r5   c                    t        j                  ddt              }t        j                  t        j
                  d      dz  dz  t        j                  z        }|t        j                  j                  |j                        z  }t        j                  |d|      }t        j                  t              5  t        |       d d d        t        j                  ddt              }t        j                  t        j
                  d      dz  dz  t        j                  z        }|t        j                  j                  |j                        z  }t        j                  |d|      }t        j                  t              5  t        |       d d d        t        j                  t              5  t        |j                   d       d d d        y # 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   y xY w)	Nz
2000-01-31rX   )rL   rM   r[   y)namerw   r   rY   )rN   rP   r   rj   sinr   pirs   standard_normalsizer   pytestraisesr   r
   r   rc   )r   datesr   s      rT   !test_seasonal_decompose_too_shortr     s^   MM,DE
ryy|a!#bee+,A	"	"166	**A
		!#U+A	z	" 1 MM,CE
ryy}r!A%-.A	"	"166	**A
		!#U+A	z	" 1	z	" 0188B/0 0  0 0s$   9GG 2G,G G),G5c            	          t        j                  g d      } t        | d       t        j                  | t        j
                  dt        |       t                    }t        |       y )Nr7   rX   rY   rI   rJ   )rj   r   r
   rN   rO   rP   rQ   r   )r   rR   s     rT   test_seasonal_decompose_smoker   $  sT    
 K 	LA q#<<2==z14Q.9; <D trV   c                     t        j                  g d      } t         j                  | | f   } t        | d      }t	        |j
                  d d df   |j
                  d d df          t	        |j                  d d df   |j                  d d df          t	        |j                  d d df   |j                  d d df          y )Nr7   rX   rY   r   r   )rj   r   c_r
   r   rf   rd   rh   )r   r   s     rT    test_seasonal_decompose_multipler   2  s    
 K 	LA 	adA
Qq
)CCIIadOSYYq!t_5CLLA&QT(:;CIIadOSYYq!t_5rV   modeladditivemultiplicativerM   rX   r   r   TFr   c                     t        j                  g d      }||j                         dz   z  }t         j                  |dd  |d d f   }t         j                  ||f   }t        ||||      }|j                          y )Nr7   r   r   )rZ   r   r   )rj   r   minr_r   r
   plot)r   rM   r   r   r   x2r   s          rT   test_seasonal_decompose_plotr   =  s{     	 K 	LA 1A	qvq"v~	B
aeA
Qty/@BCHHJrV   ) statsmodels.compat.pandasr   r   r   numpyrj   numpy.testingr   r   r   r	   pandasrN   r   statsmodels.tsa.seasonalr
   re   ro   rg   ri   rl   rm   rn   r5   r   marksmoker   r   
matplotlibparametrizer   r   rV   rT   <module>r      s   F F     72
	) 	) 	) 	) 	) 	) 	) 	)		)	)	)!'	))/	)17	)9?	)		)	)	)!'	))/	)17	)9?	) 
	) 	) 	) !&	) (.	) 06	) 8=	) 
		) 		) 		) "$		)

<"&& 
<"&& 
<& 
<& 
<' 
<7 
<F 
<

<
<#
<%*
<,1
<39
<;B
<

<
<"
<$+
<-3
<5<
< 
< 
< $
< &,
< .5
< 7?
< 	
< 	
< "	
< $+	
< -/FF	
< 57FF	
<1
.bff .bff .f .f .f .f .f ...$.&,..4.6<.>D...$.&,..4.6<.>D. . . %. ',. .3. 5:. <B. 	. 	. !ff	. ')ff	.

rvv rvv w   ' !(*13:<C!(*13:<C    ") +2 4; =D 	  	 ")	 +2	 4;	 =D	
 vv
 vv]9 ]9@0$ 
 
6 :/?"@A!R)tUm4,tUm<	 = 5 * B 
	rV   