
    M/PhaZ                        d dl mZmZmZmZmZ d dl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mZmZmZmZmZmZ  ej        d          d             Z ej        dg d	
          d             Z ej        dg d
          d             Zej        j        d             Zej        j        d             Zej        j        d             Z ej        j        d             Z!ej        j        d             Z"ej#        Z$d e$%                                D             Z&ej        '                    de&          d             Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d  Z3ej        4                    ed!"          d#             Z5d$ Z6d% Z7d& Z8d' Z9d( Z:d) Z;ej        '                    d*d+d,g          ej        '                    d-d d.g          ej        '                    d/d+d,g          ej        '                    d0d d.g          ej        '                    d1dd2g          ej        '                    d3d+d,g          d4                                                                         Z<d5 Z=d6 Z>d7 Z?d8 Z@d9 ZAd: ZBd; ZCej        '                    d< ejD        d d=           ejE         ejF        d=                     ejG        d>d?d=@           ejH        d>dAd=@          g          dB             ZI G dC dDe          ZJdE ZKdS )F    )	MONTH_ENDPD_LT_1_0_0QUARTER_ENDYEAR_ENDis_int_index)pytest_warns)HashableN)CalendarFourierCalendarSeasonalityCalendarTimeTrendDeterministicProcessDeterministicTermFourierSeasonality	TimeTrendmodule)scopec                 0    t          j        ddd          S )N
2000-01-01iA  Bperiodsfreq)pd
date_range)requests    h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/tests/test_deterministic.py
time_indexr      s    =s====    )rangeperioddatetimefibint64)r   paramsc                    | j         }|dv r8t          j        ddt                    }|dk    r|                    d          }n|dk    rt          j        dd	          }n|d
k    r't          j        t          j        d	                    }nc|dk    rOddg}t          d          D ]&}|
                    |d         |d         z              't          j        |          }nt                      |S )N)r!   r"   r      r   r!   Mr    r   {   r$   r#      q   )paramr   r   r   	to_period
RangeIndexIndexnparanger    appendNotImplementedError)r   r.   idxr#   _s        r   indexr8   !   s     ME&&&mL#IFFFH--$$C	'		mAs##	'		hry~~&&	%!fs 	* 	*AJJs2wR())))hsmm!###Jr   )NFlistc                 z    t          j        ddd          }| j        d S | j        dk    rt          |          S |S )Nr   i  r   r   r9   )r   r   r.   r9   )r   r6   s     r   forecast_indexr;   8   sC    
-c
<
<
<C}t	&	 	 CyyJr   c                    t          dd          }|                    |            |dnt          |          }d }t          |           r*t	          j        t	          j        |           dk              s0t          |           t          j	        u rt          |           dk    r	|t          }t          |          5  |                    || |           d d d            n# 1 swxY w Y   t          |           t          |           t!          |j        t$                    sJ t!          |j        t(                    sJ t          j        d          |k    sJ t          j        d          |k    sJ t          j        d          |k    sJ t          j        d	          |k    sJ t-          d
          |k    sJ t          dd          }|                    |            t          |           d S )NT   S   r*               cttcttn   Fr   )r   	in_samplelenr   r2   anydifftyper   r1   maxUserWarningr   out_of_samplestrhash
isinstanceorderint	_constantboolfrom_stringr   )r8   r;   ttstepswarntt0s         r   test_time_trend_smokerY   B   s   	4		BLL (BBc..A.AEDU	F275>>Q&''	 KK28##E

U""& 	d		 7 7
~6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7GGGHHHbh$$$$$blD))))) ''2---- &&",,,, %%++++ %%++++r??b    
E1

CMM%HHHHHs   :CC"%C"c                 l   t          d          }|                    |            |dnt          |          }d }t          |           r*t	          j        t	          j        |           dk              s0t          |           t          j	        u rt          |           dk    r	|t          }t          |          5  |                    || |           d d d            n# 1 swxY w Y   t          |j        t                     sJ t#          |           t%          |           t          | t          j        t          j        f          rj| j        ret          j        |           }|                    |            |                    || |           t          j        t/          |                      d S d S d S )NrD   r>   r*   r?   )r   rE   rF   r   r2   rG   rH   rI   r   r1   rJ   rK   r   rL   rO   r!   rQ   rM   rN   DatetimeIndexPeriodIndexr   
from_indexr9   )r8   r;   srV   rW   s        r   test_seasonality_smoker_   b   s   BAKK (BBc..A.AEDU	F275>>Q&''	 KK28##E

U""& 	d		 6 6	un5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6ah$$$$$FFFGGG%"*BN;<< , ,"5))	E	un555tE{{+++++	, , , ,s   9CC!$C!c                 
   t          dd          }|                    |            |dnt          |          }d }t          |           r*t	          j        t	          j        |           dk              s0t          |           t          j	        u rt          |           dk    r	|t          }t          |          5  |                    || |           d d d            n# 1 swxY w Y   t          |j        t                     sJ t          |j        t$                    sJ t'          |           t)          |           t+          j        t.          d          5  t          dd           d d d            d S # 1 swxY w Y   d S )	NrD   r=   r>   r*   r?   z2 \* order must be <= periodmatch   )r   rE   rF   r   r2   rG   rH   rI   r   r1   rJ   rK   r   rL   rO   r!   floatrP   rQ   rM   rN   pytestraises
ValueError)r8   r;   frV   rW   s        r   test_fourier_smokeri   ~   s   AAKK (BBc..A.AEDU	F275>>Q&''	 KK28##E

U""& 	d		 6 6	un5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6ah&&&&&ags#####FFFGGG	z)H	I	I	I  A                 s$   :CC"%C"E88E<?E<c                    t          t          d          }|                    |            |dnt          |          }|                    || |           t          |           t          |           t          |j        t                    sJ t          |j
        t                    sJ t          |j        t
                    sJ |j        J d S )Nr=   rP   r>   )r   r   rE   rF   rL   rM   rN   rO   rP   rQ   constantrS   r   base_period)r   r;   rA   rV   s       r   test_calendar_time_trend_smokern      s    	81	-	-	-BLL (BBc..A.AEUJ777GGGHHHbh$$$$$bk4(((((bgs#####>!!!!!r   c                 x   t          t          d          }|                    |            |dnt          |          }|                    || |           t          |j        t                    sJ t          |j        t                    sJ t          |           t          |           t          |           d S )Nr=   r>   )r
   r   rE   rF   rL   rO   rP   rQ   r   rM   reprrN   )r   r;   cfrV   s       r   test_calendar_fourier_smokerr      s    	1	%	%BLL (BBc..A.AEUJ777bh$$$$$bgs#####GGGHHHHHHHHr   c                 J    g | ] \  }}|                                 D ]}||f!S  )keys).0kvk2s       r   
<listcomp>rz      s5    CCCA!&&((CCBaWCCCCr   freq_periodc                    |\  }}t          ||          }|                    |            |dnt          |          }|                    || |           t	          |j        t                    sJ t	          |j        t                    sJ t          |           t          |           t          |           t          ||          }||k    sJ d S )Nr>   )
r   rE   rF   rL   rO   r!   rM   r   rp   rN   )r   r;   r{   r   r!   csrV   cs2s           r   test_calendar_seasonalityr      s    LD&	VT	*	*BLL (BBc..A.AEUJ777bi%%%%%bgs#####GGGHHHHHH
fd
+
+C999999r   c                      t          j        dd          } t          t          d          }t	          j        t          d          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nr   
   r=   rk    CalendarTimeTrend terms can onlyra   )r   r0   r   r   re   rf   	TypeErrorrE   )r8   rA   s     r   test_forbidden_indexr      s    M!R  E	81	-	-	-B	y(J	K	K	K  
U                 s   A**A.1A.c                     t          t          ddd          }t          t          dd          }||k    sJ t          |           t          |           |j        J |j        J d S )NT   z1960-1-1rP   rm   rk   )r   r   rM   rm   )r   rA   ct2s      r   test_calendar_time_trend_baser      sq    	9d!	L	L	LB
It1
5
5
5C9999GGGHHH>%%%?"""""r   c                 r   t          j        t          d          5  t          dt                     d d d            n# 1 swxY w Y   t          dd          }t          j        t          d          5  |                    t          j        ddd	
                     d d d            d S # 1 swxY w Y   d S )NzThe combination of freq=ra   hr   Wzfreq is B but index contains2000-1-1r   Dr   )re   rf   rg   r   r   rE   r   r   )r   r}   s     r   test_invalid_freq_periodr      s=   	z)C	D	D	D + +C***+ + + + + + + + + + + + + + +	S#	&	&B	z)G	H	H	H F F
R]:rDDDEEEF F F F F F F F F F F F F F F F F Fs!   >AA4+B,,B03B0c                  p   t          t          dd          } t          j        dd          }t	          j        t          d          5  |                     |t          j                   d d d            n# 1 swxY w Y   t	          j        t          d          5  |                     |t          j        f           d d d            n# 1 swxY w Y   t	          j        t          d          5  |                     |t          j        t          j	        f           d d d            n# 1 swxY w Y   t          j
        g d          }t	          j        t          d          5  t          j        t          j	        t          j        f}|                     ||           d d d            d S # 1 swxY w Y   d S )	NTr   rk   r      r   ra   r   r*   r*   r=   r            )r   r   r   r0   re   rf   r   _check_index_typer[   r\   r1   )rA   r6   typess      r   test_check_index_typer      s   	8T	3	3	3B
-2

C	y(J	K	K	K 4 4
S""23334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	y(J	K	K	K 7 7
S2#3"56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7	y(J	K	K	K F F
S2#3R^"DEEEF F F F F F F F F F F F F F F
(,,,
-
-C	y(J	K	K	K ) )!2>2=A
S%((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )sH   !A55A9<A9"C		CC/-D((D,/D,$:F++F/2F/c                      t          j        t          d          5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nz freq is not understood by pandasra   unknownTr   rk   )re   rf   rg   r   rt   r   r   test_unknown_freqr      s    	z)K	L	L	L 4 4)T33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   <A A c                     t          d          }t          j        t          d          5  |                    d| t          j        d                     d d d            d S # 1 swxY w Y   d S )N   rk   z!The number of values in forecast_ra   r      )r   re   rf   rg   rL   r   r0   )r8   rU   s     r   test_invalid_formcast_indexr      s    				B	z)L	M	M	M 7 7
UBM"$5$56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   *A##A'*A'c                     t          j        g d          } t          j        t                    5  t          j        |            d d d            n# 1 swxY w Y   t          j        dd          g d         } t          j        t                    5  t          j        |            d d d            d S # 1 swxY w Y   d S )N)r   r*   r*   r=   r   r   r   rD   r   r   )r   )r   r*   r=   r   r   r   )	r   r1   re   rf   r   r   r]   r   rg   )r8   s    r   test_seasonal_from_index_errr      s3   H...//E	y	!	! & &u%%%& & & & & & & & & & & & & & &M*b1112D2D2DEE	z	"	" & &u%%%& & & & & & & & & & & & & & & & & &s#   AAAB55B9<B9c                    t          d          }|                    |           }|j        | j        d         dfk    sJ t          j        |dk              sJ t
          j                            |j        |            d }t          |           r*t          j
        t          j        |           dk              s.t          |           t
          j        u rt          |           dk    rt          }t!          |          5  |                    d|           }d d d            n# 1 swxY w Y   t          j        |dk              sJ t          d          }|                    |           }|j        | j        d         dfk    sJ t          dd	          }|                    |           }|j        | j        d         dfk    sJ t%          |j                  d
dgk    sJ t          dd	          }|                    |           }t          j        ||gd          }t
          j                            ||           t          dd	          }|                    | d d                   }	t!          |          5  |                    d| d d                   }
d d d            n# 1 swxY w Y   |                    d| d d         | dd                    }t          j        |	|
gd          }t-          | t
          j        t
          j        f          r t
          j                            ||           t          j        |	|gd          }t
          j                            ||d           d S )NTrl   r   r*   r?      Fr=   rl   rP   trendtrend_squared)axisi2   )rV   r8   r;   )check_index_type)r   rE   shaper2   allr   testingassert_index_equalr8   r   rG   rH   rI   r1   rJ   rK   r   rL   r9   columnsconcatassert_frame_equalrO   r[   r0   )r8   rU   constrW   const_fcastemptyt2finalexpectedshort	remainderdirectcombineds                r   test_time_trendr     s   	D	!	!	!BLLE;5;q>1-----6%1*J!!%+u555DU rwu~~': ; ; UrxCJJ$6$6	d		 2 2&&r5112 2 2 2 2 2 2 2 2 2 2 2 2 2 26+"#####	E	"	"	"BLLE;5;q>1-----	E	+	+	+B	e		B8A*****
99999	D	*	*	*BLLEy%1---HJ!!%222	D	*	*	*BLLtt%%E	d		 6 6$$Rtt55	6 6 6 6 6 6 6 6 6 6 6 6 6 6 6dsdE#$$K   F y%+!444H%"*BM:;; 7

%%h666y%q111HJ!!(EE!JJJJJs$   >D!!D%(D%<J''J+.J+c                 b   t          d          }|                    |           }|j        sJ |j        | j        d         dfk    sJ t          j                            |j        |            t          j	        |
                    d          dk              sJ t          |j                  d t          dd          D             k    sJ t          j        | j        d         df          }t          d          D ]}d||d d|f<   t          j                            |t          j        |                     d }t#          |           r*t          j        t          j        |           dk              s.t)          |           t          j        u rt-          |           dk    rt.          }t1          |          5  |                    d| 	          }d d d            n# 1 swxY w Y   |j        dt7          |           dz  f         dk    sJ t          j	        |
                    d          dk              sJ t          d
d          }|                    |           }|j        d         dk    sJ |j        d         
                                dk    sJ |j        dk    sJ t;          j        t>          d          5  t          dd           d d d            n# 1 swxY w Y   t;          j        t>          d          5  t          d           d d d            d S # 1 swxY w Y   d S )NrD   r!   r   r*         ?c                     g | ]}d | d	S )zs(,12)rt   )rv   is     r   rz   z$test_seasonality.<locals>.<listcomp>5  s     !E!E!E1,q,,,!E!E!Er   r   r?   rV   r8   rc   r   )r!   initial_period)r   r=   zinitial_period must be inra   zperiod must be >= 2) r   rE   is_dummyr   r   r   r   r8   r2   r   sumr9   r   r    zerosassert_equalasarrayr   rG   rH   rI   r1   rJ   rK   r   rL   ilocrF   r   re   rf   rg   )r8   r^   exogr   r   rW   fcasts          r   test_seasonalityr   .  s   2A;;uD::%+a."-----J!!$*e4446$((1++$%%%%%!E!Ea!E!E!EEEEExQ,--H2YY ! ! BJHbj&6&6777DU rwu~~': ; ; UrxCJJ$6$6	d		 7 7b667 7 7 7 7 7 7 7 7 7 7 7 7 7 7:aUb()S00006%))A,,!#$$$$$1Q///A;;uD9T?c!!!!9Q<$$$$q    	z)D	E	E	E 2 22b11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z)>	?	?	?  1                 s6   ;GG#&G#K  K$'K$L$$L(+L(c                     t          j        |           }|j        dk    sJ |                    d|           }t	          j        | d          }t          j                            |j	        |           d S )Nr   rD   r   )
r   r]   r!   rL   r   _extend_indexr   r   r   r8   )r   rU   r   new_idxs       r   test_seasonality_time_indexr   P  sk    		
	+	+B9>>>>2Z88E-j"==GJ!!%+w77777r   c                    t          dd          }|                    |           }|j        dk    sJ |j        | j        d         d|j        z  fk    sJ t	          j        | j        d                   dz  }t          |          D ]p\  }}|dz  dz   }|dz  rt          j        nt          j        } |dt          j	        z  |z  |z            }t          j
                            ||         |d           qg }	t          d|j        z            D ],}|dz  rd	nd
}|	                    | d|dz  dz    d           -t          |j                  |	k    sJ d S )NrD   r   )r!   rP   r   r=   r*   g:0yE>)atolcossin(r   )r   rE   rP   r   r2   r3   	enumerater   r   pir   assert_allcloser    r4   r9   r   )
r8   rh   termslocr   coljfnr   colss
             r   test_fourierr   Y  sw   r###AKKE7a<<<<;5;q>1qw;77777
)EKN
#
#b
(CE"" D D3FQJA*RVVBF2a"%i!mc)**

""5:xd"CCCCD1qw; 0 01u(UU5r..Q!VqL...////$&&&&&&r   zbug in old pandas)reasonc                      t          j        d          } t          j        t          d          5  t          j        |            d d d            d S # 1 swxY w Y   d S )N)d   r=   zindex must be a pandasra   )r2   r   re   rf   r   r   _index_like)r6   s    r   test_index_liker   k  s    
(8

C	y(@	A	A	A + +%c***+ + + + + + + + + + + + + + + + + +s   AAAc                     t          j        t           j                            d                    }t          j        |          }d|z  |d         z  }d|z                      t           j                  }t          j        d          fd|D             }t          j	        |          }t          dd          }|j        dk    sJ |                    |          }g }t          d|j        z            D ],}|dz  rd	nd
}|                    | d|dz  dz    d           -t          |j                  |k    sJ |dz  }dt           j        z  |t          j        |          z
  z  }	g }
t          d          D ]H}|dz  dz   }|dz  rt           j        nt           j        }|
                     |||	z                       It          j        |
          }
t           j                            |
|j                   d S )N  r   r-   Q r   c                 B    g | ]}t          j        |d           z   S )r^   )unitr   	Timedeltarv   valbases     r   rz   z)test_calendar_fourier.<locals>.<listcomp>x  s-    BBBCTBL3////BBBr   r   r=   r   r   r   r*   z,freq=D)r   )r2   absrandomstandard_normalcumsumastyper$   r   	Timestampr1   r
   rP   rE   r    r4   r9   r   r   floorr   r   column_stackr   r   values)reset_randomstateincoffsetr8   rq   r   r   r   r   r   r   scaler   s               @r   test_calendar_fourierr   r  s   
&**400
1
1C
)C..C
s(SW
C#o%%bh//F<
##DBBBB6BBBEHUOOE	a	 	 B8q====LLED1rx<   4 41u(UU5r22Q!VqL2223333$&&&&
I
C
be)sRXc]]*
+CH1XX ) )Q
A*RVVBF53;((((x((HJx66666r   c                 D   t          j        t           j                            d                    }t          j        |          }d|z  |d         z  }d|z                      t           j                  }t          j        d          fd|D             }t          j	        |          }t          ddd	
          }|j        d	k    sJ |                    |          }g d}t          |j                  |k    sJ d|dz  z   }g }t          d          D ]}|                    ||z             t          j        |          }t           j                            ||j                   t          ddd
          }t          j        dd          }	t          j                            |                    |          |	                    |                     t          ddd
          }
t          j        dd          }t          j                            |
                    |          |                    |                     t          ddd
          }|j        dk    sJ |                    |          }g d}t          |j                  |k    sJ d S )Nr   r   r-   r   r   c                 @    g | ]}t          j        |d           z   S )r^   r   r   s     r   rz   z,test_calendar_time_trend.<locals>.<listcomp>  s*    ===sTBLc***===r   r   Tr   r   )r   r   r   trend_cubedr*   r   r=   r@   )r   rm   rA   )r   r   r   r  ztrend**4)r2   r   r   r   r   r   r$   r   r   r1   r   rP   rE   r9   r   r    r4   r   r   r   r   rT   r   )r   r   r   r8   r@   r   r   r   r   ctt2rA   r   cttttr   s                @r   test_calendar_time_trendr    sv   
&**400
1
1C
)C..C
s(SW
C#o%%bh//F<
##D====f===EHUOOE
CQD
A
A
AC9>>>>MM%  E===D$&&&&
f	"
"CH1XX    Qx((HJx666
CQD
A
A
AC(EtLLLDJ!!#--"6"6u8M8MNNN	3A4	@	@	@B

'4T
J
J
JCJ!!",,u"5"5s}}U7K7KLLLc4qdCCCE;!OOE""EIIID$&&&&&&r   c                     d} t          j        ddd          }t          d|           }|                    |          }t	          j        |                    d          dk              sJ t          |j        d	                   D ]}|j	        ||d
z  f         dk    sJ t          j        ddd          }t          d|           }|                    |          }t	          j        |                    d          dk              sJ t          |j        d	                   D ]}|j	        ||dz  f         dk    sJ t          j        ddd          }t          d|           }|                    |          }t	          j        |                    d          dk              sJ t          |j        d	                   D ]}|j	        ||dz  f         dk    sJ d S )Nr   
2000-01-03r   X  r   r   r   r*   r   r      r   r   r   rc   
r   r   r   rE   r2   r   r   r    r   r   r!   r8   r}   r   r   s        r   test_calendar_seasonal_period_wr    s   FM,S#>>>E	S	0	0	0BLLE6%))A,,#%&&&&&5;q>"" - -z!QW*%,,,,,M,S#>>>E	S	0	0	0BLLE6%))A,,#%&&&&&5;q>"" + +z!QU(#s*****M,S#>>>E	S	0	0	0BLLE6%))A,,#%&&&&&5;q>"" + +z!QU(#s*****+ +r   c                  H   d} t          j        ddd          }t          d|           }|                    |          }t	          j        |                    d          dk              sJ t          |j        d	                   D ]}|j	        ||d
z  f         dk    sJ d S )Nr   r  r   r  r  r   r*   r   r      r
  r  s        r   test_calendar_seasonal_period_dr    s    FM,S#>>>E	S	0	0	0BLLE6%))A,,#%&&&&&5;q>"" , ,z!QV)$+++++, ,r   c                  \   d} t          j        dt          d          }t          t          |           }|                    |          }t          j        |                    d          dk              sJ t          |j	        d                   D ]}|j
        ||d	z  f         dk    sJ d S )
NQr   r  r  r   r*   r   r   r   )r   r   r   r   rE   r2   r   r   r    r   r   r  s        r   test_calendar_seasonal_period_qr    s    FM,YDDDE	Yv	6	6	6BLLE6%))A,,#%&&&&&5;q>"" + +z!QU(#s*****+ +r   c                  |   d} t          j        dt          d          }t          t          |           }|                    |          }t          j        |                    d          dk              sJ t          |j	        d                   D ]}|j
        ||d	z  f         dk    sJ t          t          |           }|                    |          }t          j        |                    d          dk              sJ t          |j	        d                   D ]}|j
        ||d	z  d
z  f         dk    sJ d S )NYr   r  r  r   r*   r   r   rD   r   )r   r   r   r   rE   r2   r   r   r    r   r   r   r  s        r   test_calendar_seasonal_period_ar    s<   FM,YDDDE	Yv	6	6	6BLLE6%))A,,#%&&&&&5;q>"" , ,z!QV)$+++++	[	8	8	8BLLE6%))A,,#%&&&&&5;q>"" 3 3z!a"f]*+s222223 3r   rl   TFrP   r*   seasonalfourierr!   r   dropc           	         |r|rd S t          | ||||||          }|                                }t          j                            |j        |            |                    d          }t          |t          j                  sJ d S )N)rl   rP   r  r  r!   r  r   )	r   rE   r   r   r   r8   rL   rO   	DataFrame)	r   rl   rP   r  r  r!   r  dpr   s	            r   test_deterministic_processr    s      G 	
 
 
B LLNNEJ!!%+z:::R  EeR\*******r   c                     t          j        t          d          5  t          | ddd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          | ddg	           d d d            d S # 1 swxY w Y   d S )
Nzseasonal and fourierra   Tr=   r   )r  r  r!   zAll additional termsr*   )r  additional_terms)re   rf   rg   r   r   )r   s    r   !test_deterministic_process_errorsr  
  s:   	z)?	@	@	@ M MZ$!LLLLM M M M M M M M M M M M M M M	y(>	?	?	? N NZ$!MMMMN N N N N N N N N N N N N N N N N Ns!   <A A "BB
Bc                      t          j        g d          } t          | dddd          }t          j        t
          d          5  |                    dd           d d d            d S # 1 swxY w Y   d S )	Nr   Tr=   rl   rP   r  r!   zThe index in the deterministicra   r   rD   )r   r1   r   re   rf   r   r    r6   r  s     r   test_range_errorr#    s    
(,,,
-
-C	d!d1
 
 
B 
y(H	I	I	I  
B                 s   A**A.1A.c                  z   t          j        dt          d          } t          | ddd          }|                    dd           |                    dd	           |                    d
d           |                    dd           |                    dd           |                    dd           t          j        t                    5  |                    dd           d d d            n# 1 swxY w Y   t          j        ddd          } t          | ddd          }|                    dd           |                    dd	           |                    d
d           t          j        t          d          5  |                    dd           d d d            n# 1 swxY w Y   |                    dd           |                    dd           |                    dd           t          j	        dd          } t          | dddd          }|                    dd           |                    dd           |                    dd           |                    dd           t          j        t                    5  |                    dd           d d d            d S # 1 swxY w Y   d S )Nr   x   r  Tr*   )rl   rP   r  z2001-1-1z2008-1-1z2015-1-1z2013-1-1r   r         z1990-1-1z2010-1-1r(   zstart must be non-negativera   i   rD   r!  i)
r   r   r   r   r    re   rf   rg   period_ranger0   r"  s     r   test_range_index_basicr*    sP   
-
C
@
@
@C	cDD	I	I	IBHHZ$$$HHZ$$$HHZ$$$HHQHHS#HHS#	z	"	" ) )
Z((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) /*3
<
<
<C	cDD	I	I	IBHHZ$$$HHZ$$$HHZ$$$	z)E	F	F	F  
S               HHQHHS#HHS#
-3

C	d!d2
 
 
B HHQHHS#HHS#HHS#	z	"	"  
a                 s6   C00C47C4F%%F),F)J00J47J4c                     t          j        d                              t           j                  } t	          | dddd          }t          j        dd          } t	          | dddd          }t
          j                            |	                                |	                                           t
          j                            |
                    dd          |
                    dd                     d S )	Nr%  Tr*   rD   r!  r   r   r&  )r2   r3   r   r$   r   r   r0   r   r   rE   r    )r6   r  dp2s      r   test_range_castingr-  >  s    
)C..


)
)C	d!d2
 
 
B -3

C
d!d2  C J!!",,..#--//BBBJ!!"((3"4"4ciiS6I6IJJJJJr   c                      t          j        ddd          } t          | d          }t          j        t
          d          5  |                    dd	           d d d            d S # 1 swxY w Y   d S )
Nr   i  rc   Tr   zThe step of the index is not 1ra   r   i  )r   r0   r   re   rf   rg   r    r"  s     r   test_non_unit_ranger/  K  s    
-3
"
"C	cD	1	1	1B	z)I	J	J	J  
S                 s   A''A+.A+c                    t          dd          g}t          | |          }t          | dd          }t          j                            |                                |                                           t          j        t          d          5  t          | ||z              d d d            n# 1 swxY w Y   t          j        t          d          5  t          | dd|           d d d            d S # 1 swxY w Y   d S )	NTr*   rk   )r  r   z%One or more terms in additional_termsra   )rl   rP   r  )	r   r   r   r   r   rE   re   rf   rg   )r   	add_termsr  r,  s       r   test_additional_termsr2  R  s   4q)))*I	j9	E	E	EB
zD
B
B
BCJ!!",,..#--//BBB	A
 
 
 
 
 	Y)>	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A
 
 
 
 
 	Q	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s$   B66B:=B:C==DDc                 H   t          dd          }t          | d|gd          }|                                j        d         dk    sJ t          | |gd          }t          j                            |                                |                                           d S )NTr*   r   )rl   r  r  r=   r  r  )r   r   rE   r   r   r   r   )r   rU   r  r,  s       r   test_drop_two_consantsr5  e  s    	D	*	*	*B	TRDt
 
 
B <<>>"a''''
zRDt
L
L
LCJ!!",,..#--//BBBBBr   r8   r(  r   MSr  r(   c                 8   t          t          j        dd          dd          }t          | dd          }t          j                            |                                |                                           t          j                            |                    d          |                    d                     t          j                            |                    dd          |                    dd                     t          j                            |                    dd	          |                    dd	                     t          j                            |                    dd
          |                    dd
                     d S )Nr   r(  Tr=   r   %      r   r&     )	r   r   r0   r2   r   assert_array_equalrE   rL   r    )r8   r   r  s      r   test_determintic_term_equivr<  o  s8     a 5 5ANNND	ed!	<	<	<BJ!!$.."2"2BLLNNCCCJ!!$"4"4R"8"8":J:J2:N:NOOOJ!!$**S#"6"6c8J8JKKKJ!!$**R"5"5rxxC7H7HIIIJ!!$**R"5"5rxxC7H7HIIIIIr   c            	           e Zd Zedeedf         fd            ZdefdZg dZ	de
j        de
j        fdZ	 dd	ede
j        d
e
j        de
j        fdZdS )	DummyTermreturn.c                     dS )N)Dummyrt   selfs    r   _eq_attrzDummyTerm._eq_attr  s    zr   c                     dS )NrA  rt   rB  s    r   __str__zDummyTerm.__str__  s    wr   )const1const2trend1trend2normal1normal2dummy1_1dummy1_2always_drop1always_drop2dummy2_1dummy2_2r8   c                    |j         d         }t          j        |j         d         df          }t          ddd          D ]}|dk    rd}n|dk    rt          j        |          }nn|dk    r t          j                            |          }nH|dk    rt          j        |          }d|d d d<   n%|dk    rd}nt          j        |          }d|dd d<   |x|d d |f<   |d d |dz   f<   t          j	        || j
        |          S )	Nr   rD   r=   r*   r      r   r   r8   )r   r2   r   r    r3   r   r   r   r   r  r   )rC  r8   nobsr   r   values         r   rE   zDummyTerm.in_sample  s   {1~%+a."-..q"a 	2 	2AAvva	$a	11$77accc

aadd,11E!!!Q$K%1q5//|E4<uEEEEr   NrV   r;   c                     |                      |||          }t          j                            |df          }t	          j        || j        |          S )NrD   rU  )r   r2   r   r   r   r  r   )rC  rV   r8   r;   fcast_indexr   s         r   rL   zDummyTerm.out_of_sample  sM     ((~FF	))5"+66|E4<{KKKKr   )N)__name__
__module____qualname__propertytupler	   rD  rM   rF  r   r   r1   r  rE   rQ   rL   rt   r   r   r>  r>    s        %#.    X      GFrx FBL F F F F2 $(		L 	L	L x	L 		L
 
	L 	L 	L 	L 	L 	Lr   r>  c                     t          j        dd          } t                      }t          |           |t	                      k    sJ t          | |gd          }|                                }|j        dk    sJ |                    d          }|j        dk    sJ t          |j
                  t          |j
                  k    sJ d}|D ]#t          fd	|D                       d
k    sJ $d S )Nr   r(  Tr4  )r(  r   r8  )r8  r   )r   r   dummynormalc                     g | ]}|v d 	S )r*   rt   )rv   r   	valid_cols     r   rz   ztest_drop.<locals>.<listcomp>  s#    999#	S(8(8A(8(8(8r   r*   )r   r0   r>  rM   r   r   rE   r   rL   r9   r   r   )r8   r`  r  in_sampoosvalidrc  s         @r   	test_droprg    s   M!S!!EKKEJJJIKK	eugD	I	I	IBllnnG=H$$$$


2

C9W_ 5 555551E @ @	9999999::a?????@ @r   )Lstatsmodels.compat.pandasr   r   r   r   r   statsmodels.compat.pytestr   collections.abcr	   numpyr2   pandasr   re   statsmodels.tsa.deterministicr
   r   r   r   r   r   r   r   fixturer   r8   r;   marksmokerY   r_   ri   rn   rr   
_supportedr%   items	cs_paramsparametrizer   r   r   r   r   r   r   r   r   r   r   r   skipifr   r   r  r  r  r  r  r  r  r#  r*  r-  r/  r2  r5  r0   r1   r3   r   r)  r<  r>  rg  rt   r   r   <module>rv     s                3 2 2 2 2 2 $ $ $ $ $ $         	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 h> >  > 
JJJ    ( h'<'<'<===  >=   > , , ,6   2 
" 
" 
" 	 	 	 
	'CCCCC	 	22  32  # # #F F F) ) )4 4 4
7 7 7& & &(K (K (KV  D8 8 8' ' '$ K(;<<+ + =<+7 7 7:"' "' "'J+ + +0, , ,+ + +3 3 3  dE]331a&))dE]33QF++D":..$//+ + 0/ /. ,+ 43 *) 43+(N N N  ! ! !H
K 
K 
K  
 
 
&C C C a3  jtS999
c:::	 J J J5L 5L 5L 5L 5L! 5L 5L 5Lp@ @ @ @ @r   