
    M/Ph@>              	          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j        j        df             Zdg Zej        j        ej                            dhdidjg          ej                            dkdldmg          ej                            dndodpg          ej                            dqdodpg          dr                                                             ZdS )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                   T    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )TestDecomposec           	          g d}t          j        |t          j        dt          |          t                              | _        d S )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     c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/tests/test_seasonal.pysetup_classzTestDecompose.setup_class3   sW    I I I <bm*<?II9D'F 'F 'F G G    c                 N   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           d S )>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=   s~   $TY%5a@@@G,h:::GM5!444GM61555%bfTY-=&>&>ANNNH-}a@@@HNJ:::HNK;;; %TY%5crc%:1EE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 57F	D =?F	D
 	G,h:::GM5!444GM6155555rV   c                 ,   t          | j        d          }| j                                        }t          j        dt          |          t                    |_        t          |d          }t          |j	        j
                                        t          d           t          |j        j
                                        t          d           t          |j        j
                                        t           d           t          |j	        j
                                        t          d           t          |j        j
                                        t          d           t          |j        j
                                        t           d           t#          |j	        j        j
                                        | j        j        j
                   t          t%          j        | j                  dd          }t          t%          j        |          dd          }t          |j	        j
                                        t(          d           t          |j        j
                                        t*          d           t          |j        j
                                        t,          d           t          |j	        j
                                        t(          d           t          |j        j
                                        t*          d           t          |j        j
                                        t,          d           t#          |j	        j        j
                                        | j        j        j
                   d S )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   $TYq999!Y^^--#%=c*<&=&=H$N $N $N -.@KKKG,3;;==xKKKGM088::E1EEEGM088::FAFFF,5<DDFF$a	) 	) 	),29AACC!1	& 	& 	&,29AACC"A	' 	' 	'W%+2::<<Y_+	- 	- 	- &bfTY&7&7QGGG.rv6H/I/I3679 9 9H-4<<>>	 	 	HN199;;ZKKKHN199;;[!LLL-6=EEGG)1	. 	. 	.-3:BBDD&	+ 	+ 	+-3:BBDD'	, 	, 	,X&,3;;==Y_+	- 	- 	- 	- 	-rV   c                 .   d}t          j        d t          |          D             t          j                            |          z             }t          |j        d          }t          |d          }d}d}t          |j	        j        
                                |j	        ||           t          |j        j        
                                |j        ||           t          |j        j        
                                |j        ||           d S )Nd   c                     g | ]}|d z  S )rD    ).0xs     rT   
<listcomp>z4TestDecompose.test_pandas_nofreq.<locals>.<listcomp>   s    4441Q444rV   rD   rY   g:0yE>g|=)atolrtol)rN   Seriesrangerj   rs   randnr
   rc   r   rd   rx   rf   rh   )rp   reset_randomstatenobsdtares_npresr   r   s           rT   test_pandas_nofreqz TestDecompose.test_pandas_nofreq   s   i44d444ryt7L7LLMM#CJq999 Q///+3355v!	. 	. 	. 	.	(0022FL!	. 	. 	. 	.	(0022FL!	. 	. 	. 	. 	. 	.rV   c                    t          j        g d          }t          | j        j        |d          }t          |j        t          d           t          |j        t          d           t          |j
        t          d           d S )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   st    x@@@AA$TY%5DKKKG,h:::GM5!444GM6155555rV   c                 t   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=           d S )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   $TY%5a/46 6 6 8 : : : ; ;  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 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 6 	G,h:::GM5!444GM5!444%bfTY-=&>&>A057 7 7 8 - - - . .  )"& )"& )"& )"& )' )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;;;HNE1555HNE1555 %TY%5crc%:1/46 6 68 & & & ' '& & & & & & &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:::GM5!444GM6155555rV   c                 8   t          j        t          j        d          d          j        }t	          |d          j        }t          j        t          j        dt                    d          j        }t           j        x|d<   |d<   t          ||           d S )N   r[      r[   rY   )dtyper   r]   )	rj   tilearangeTr
   rf   floatro   r   )rp   r   rf   expecteds       rT   test_2dzTestDecompose.test_2d   s    GBIaLL&))+"1Q///5729Qe444f==?%'V+hrlUH%%%%%rV   c                    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          ||           d S )
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   sP   IbMM"1T2228U1Xrv&&&"1TQGGGME1%%%"1T5;= = ==B 	E1%%%"1QQQW:d568 8 88= 	E1%%% GBIbMM6**,"1TQGGGME1%%%"1T5;= = ==B 	E1%%%%%rV   c                 V   t          t          t          | j        j                   t          t          t          | j        dd           | j                            t                                                    }t          j	        |j
        d<   t          t          t          |           d S )Nr\   rX   rY   r[   )r	   
ValueErrorr
   rR   rc   astyper   rv   rj   ro   iloc)rp   r   s     rT   test_raiseszTestDecompose.test_raises	  s    j"4di6FGGGj"4di	  	  	  	 IU##((**Fq	j"4a88888rV   N)__name__
__module____qualname__classmethodrU   rt   r|   r   r   r   r   r   r   r   rV   rT   r5   r5   2   s        G G [G6 6 6B!- !- !-F. . . 6 6 6N6 N6 N6`& & && & &49 9 9 9 9rV   r5   c                    t          j        ddt                    }t          j        t          j        d          dz  dz  t          j        z            }|t          j                            |j	                  z  }t          j
        |d|          }t          j        t                    5  t          |           d d d            n# 1 swxY w Y   t          j        ddt                    }t          j        t          j        d          dz  dz  t          j        z            }|t          j                            |j	                  z  }t          j
        |d|          }t          j        t                    5  t          |           d d d            n# 1 swxY w Y   t          j        t                    5  t          |j        d           d d d            d S # 1 swxY w Y   d S )	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     sS   M,DDDE
ry||a!#be+,,A	"	"16	*	**A
	!#U+++A	z	"	"  1               M,CCCE
ry}}r!A%-..A	"	"16	*	**A
	!#U+++A	z	"	"  1              	z	"	" 0 018B////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s6   -C		CC FF #F  G$$G(+G(c            	          t          j        g d          } t          | d           t          j        | t          j        dt          |           t                              }t          |           d S )Nr7   rX   rY   rI   rJ   )rj   r   r
   rN   rO   rP   rQ   r   )r   rR   s     rT   test_seasonal_decompose_smoker   $  s    
 K K K 	L 	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                    d S )Nr7   rX   rY   r   r   )rj   r   c_r
   r   rf   rd   rh   )r   r   s     rT    test_seasonal_decompose_multipler   2  s    
 K K K 	L 	LA 	adA
Qq
)
)
)CCIaaadOSYqqq!t_555CLA&QQQT(:;;;CIaaadOSYqqq!t_55555rV   modeladditivemultiplicativerM   rX   r   r   TFr   c                 $   t          j        g d          }||                                dz   z  }t           j        |dd          |d d         f         }t           j        ||f         }t          ||||          }|                                 d S )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 K K 	L 	LA 1A	qvq"v~	B
aeA
Qty/@B B BCHHJJJJJrV   ) 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 F F F F F F F F                     7 7 7 7 7 72 2 2
	) 	) 	) 	) 	) 	) 	) 	)		)	)	)!'	))/	)17	)9?	)		)	)	)!'	))/	)17	)9?	) 
	) 	) 	) !&	) (.	) 06	) 8=	) 
		) 		) 		) "$		)

<"& 
<"& 
<& 
<& 
<' 
<7 
<F 
<

<
<#
<%*
<,1
<39
<;B
<

<
<"
<$+
<-3
<5<
< 
< 
< $
< &,
< .5
< 7?
< 	
< 	
< "	
< $+	
< -/F	
< 57F	
<1 1 1
.bf .bf .f .f .f .f .f ...$.&,..4.6<.>D...$.&,..4.6<.>D. . . %. ',. .3. 5:. <B. 	. 	. !f	. ')f	.

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