
    !gaZ                        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j0                  d      d        Z ej0                  dg d	
      d        Z ej0                  dg d
      d        Zej8                  j:                  d        Zej8                  j:                  d        Zej8                  j:                  d        Z ej8                  j:                  d        Z!ej8                  j:                  d        Z"ejF                  Z$e$jK                         D  cg c]  \  } }|jM                         D ]  }| |f   c}}} Z'ej8                  jQ                  de'      d        Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4ej8                  jk                  ed !      d"        Z6d# Z7d$ Z8d% Z9d& Z:d' Z;d( Z<ej8                  jQ                  d)d*d+g      ej8                  jQ                  d,d d-g      ej8                  jQ                  d.d*d+g      ej8                  jQ                  d/d d-g      ej8                  jQ                  d0dd1g      ej8                  jQ                  d2d*d+g      d3                                           Z=d4 Z>d5 Z?d6 Z@d7 ZAd8 ZBd9 ZCd: ZDej8                  jQ                  d; ej                  d d<       ej                   ej                  d<             ej                  d=d>d<?       ej                  d=d@d<?      g      dA        ZJ G dB dCe      ZKdD ZLyc c}}} w )E    )	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                 2    t        j                  ddd      S )N
2000-01-01iA  Bperiodsfreq)pd
date_range)requests    e/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/tests/test_deterministic.py
time_indexr      s    ==s==    )rangeperioddatetimefibint64)r   paramsc                    | j                   }|dv r4t        j                  ddt              }|dk(  r|j	                  d      }|S |dk(  rt        j
                  dd	      }|S |d
k(  r*t        j                  t        j                  d	            }|S |dk(  rEddg}t        d      D ]  }|j                  |d   |d   z           t        j                  |      }|S t               )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     MME&&mmL#IFH--$C J 
'	mmAs# J 
'	hhryy~& J 
%!fs 	*AJJs2wR()	*hhsm J "##r   )NFlistc                     t        j                  ddd      }| j                  y | j                  dk(  rt        |      S |S )Nr   i  r   r   r9   )r   r   r.   r9   )r   r6   s     r   forecast_indexr;   8   s<    
--c
<C}}	&	 CyJr   c                 p   t        dd      }|j                  |        |dn
t        |      }d }t        |       r+t	        j
                  t	        j                  |       dk7        s+t        |       t        j                  u rt        |       dkD  r|t        }t        |      5  |j                  || |       d d d        t        |       t        |       t!        |j"                  t$              sJ t!        |j&                  t(              sJ t        j*                  d      |k(  sJ t        j*                  d      |k7  sJ t        j*                  d      |k7  sJ t        j*                  d	      |k7  sJ t-        d
      |k7  sJ t        dd      }|j                  |        t        |       y # 1 sw Y   xY w)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   st   	4	BLL (Bc..AEDUFF2775>Q&'K288#E
U"& 	d	 7
~67GHbhh$$$bllD)))  '2---  &",,,  %+++  %+++r?b   
E1
CMM%H7 7s   !F,,F5c                    t        d      }|j                  |        |dn
t        |      }d }t        |       r+t	        j
                  t	        j                  |       dk7        s+t        |       t        j                  u rt        |       dkD  r|t        }t        |      5  |j                  || |       d d d        t        |j                  t               sJ t#        |       t%        |       t        | t        j&                  t        j(                  f      re| j*                  rXt        j,                  |       }|j                  |        |j                  || |       t        j,                  t/        |              y y y # 1 sw Y   xY w)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 (Bc..AEDUFF2775>Q&'K288#E
U"& 	d	 6	un56ahh$$$FG%"**BNN;<""5)	E	un5tE{+	 BL<6 6s    E>>Fc                    t        dd      }|j                  |        |dn
t        |      }d }t        |       r+t	        j
                  t	        j                  |       dk7        s+t        |       t        j                  u rt        |       dkD  r|t        }t        |      5  |j                  || |       d d d        t        |j                  t               sJ t        |j"                  t$              sJ t'        |       t)        |       t+        j,                  t.        d      5  t        dd       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	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 (Bc..AEDUFF2775>Q&'K288#E
U"& 	d	 6	un56ahh&&&aggs###FG	z)H	I A 6 6 s   !D<&E<EEc                 |   t        t        d      }|j                  |        |dn
t        |      }|j	                  || |       t        |       t        |       t        |j                  t              sJ t        |j                  t              sJ t        |j                  t
              sJ |j                  J y )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 (Bc..AEUJ7GHbhh$$$bkk4(((bggs###>>!!!r   c                 <   t        t        d      }|j                  |        |dn
t        |      }|j	                  || |       t        |j                  t              sJ t        |j                  t              sJ t        |       t        |       t        |       y )Nr=   r>   )r
   r   rE   rF   rL   rO   rP   rQ   r   rM   reprrN   )r   r;   cfrV   s       r   test_calendar_fourier_smokerr      sz    	1	%BLL (Bc..AEUJ7bhh$$$bggs###GHHr   freq_periodc                 d   |\  }}t        ||      }|j                  |        |dn
t        |      }|j                  || |       t	        |j
                  t              sJ t	        |j                  t              sJ t        |       t        |       t        |       t        ||      }||k(  sJ y )Nr>   )
r   rE   rF   rL   rO   r!   rM   r   rp   rN   )r   r;   rs   r   r!   csrV   cs2s           r   test_calendar_seasonalityrw      s    LD&	VT	*BLL (Bc..AEUJ7bii%%%bggs###GHH
fd
+C99r   c                      t        j                  dd      } t        t        d      }t	        j
                  t        d      5  |j                  |        d d d        y # 1 sw Y   y xY w)Nr   
   r=   rk    CalendarTimeTrend terms can onlyra   )r   r0   r   r   re   rf   	TypeErrorrE   )r8   rA   s     r   test_forbidden_indexr|      sN    MM!R E	81	-B	y(J	K 
U  s   AA'c                     t        t        ddd      }t        t        dd      }||k7  sJ t        |       t        |       |j                  J |j                  J y )NT   z1960-1-1rP   rm   rk   )r   r   rM   rm   )r   rA   ct2s      r   test_calendar_time_trend_baser      sZ    	9d!	LB
It1
5C99GH>>%%%??"""r   c                 J   t        j                  t        d      5  t        dt               d d d        t        dd      }t        j                  t        d      5  |j                  t        j                  ddd	
             d d d        y # 1 sw Y   axY w# 1 sw Y   y xY w)NzThe combination of freq=ra   hr   Wzfreq is B but index contains2000-1-1ry   Dr   )re   rf   rg   r   r   rE   r   r   )r   ru   s     r   test_invalid_freq_periodr      s    	z)C	D +C*+	S#	&B	z)G	H F
R]]:rDEF F+ +F Fs   B(BBB"c                  h   t        t        dd      } t        j                  dd      }t	        j
                  t        d      5  | j                  |t        j                         d d d        t	        j
                  t        d      5  | j                  |t        j                  f       d d d        t	        j
                  t        d      5  | j                  |t        j                  t        j                  f       d d d        t        j                  g d      }t	        j
                  t        d      5  t        j                  t        j                  t        j                  f}| j                  ||       d d d        y # 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)	NTr~   rk   r      rz   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	3B
--2
C	y(J	K 4
S""2"234	y(J	K 7
S2#3#3"567	y(J	K F
S2#3#3R^^"DEF
((,
-C	y(J	K )!!2>>2==A
S%() )4 47 7F F) )s1   !F"F1F8AF(FFF%(F1c                      t        j                  t        d      5  t        ddd       d d d        y # 1 sw Y   y xY w)Nz freq is not understood by pandasra   unknownTr~   rk   )re   rf   rg   r    r   r   test_unknown_freqr      s2    	z)K	L 4)T34 4 4s   4=c                     t        d      }t        j                  t        d      5  |j	                  d| t        j                  d             d d d        y # 1 sw Y   y xY w)N   rk   z!The number of values in forecast_ra   ry      )r   re   rf   rg   rL   r   r0   )r8   rU   s     r   test_invalid_formcast_indexr      sK    		B	z)L	M 7
UBMM"$567 7 7s   'AA!c                  v   t        j                  g d      } t        j                  t              5  t        j                  |        d d d        t        j                  dd      g d   } t        j                  t              5  t        j                  |        d d d        y # 1 sw Y   ]xY w# 1 sw Y   y xY w)N)r   r*   r*   r=   r~   r   r   rD   r   ry   )r   )r   r*   r=   r~   r   r   )	r   r1   re   rf   r{   r   r]   r   rg   )r8   s    r   test_seasonal_from_index_errr      s    HH./E	y	! &u%&MM*b12DEE	z	" &u%& && && &s   B#B/#B,/B8c                 f   t        d      }|j                  |       }|j                  | j                  d   dfk(  sJ t        j                  |dk(        sJ t
        j                  j                  |j                  |        d }t        |       r+t        j                  t        j                  |       dk7        s)t        |       t
        j                  u rt        |       dkD  rt        }t!        |      5  |j#                  d|       }d d d        t        j                  dk(        sJ t        d      }|j                  |       }|j                  | j                  d   dfk(  sJ t        dd	      }|j                  |       }|j                  | j                  d   dfk(  sJ t%        |j&                        d
dgk(  sJ t        dd	      }|j                  |       }t        j(                  ||gd      }t
        j                  j+                  ||       t        dd	      }|j                  | d d       }	t!        |      5  |j#                  d| d d       }
d d d        |j#                  d| d d | dd        }t        j(                  |	
gd      }t-        | t
        j.                  t
        j0                  f      r t
        j                  j+                  ||       t        j(                  |	|gd      }t
        j                  j+                  ||d       y # 1 sw Y   xY w# 1 sw Y   xY w)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----66%1*JJ!!%++u5DUrwwu~': ;UrxxCJ$6	d	 2&&r51266+"###	E	"BLLE;;5;;q>1----	E	+B	e	B88A****

9999	D	*BLLEyy%1-HJJ!!%2	D	*BLLt%E	d	 6$$Rt5	6dsE#$K  F yy%+!4H%"**BMM:;


%%h6yy%q1HJJ!!(EE!J;2 2(6 6s   4LL'L$'L0c                     t        d      }|j                  |       }|j                  sJ |j                  | j                  d   dfk(  sJ t        j
                  j                  |j                  |        t        j                  |j                  d      dk(        sJ t        |j                        t        dd      D cg c]  }d| d
 c}k(  sJ t        j                  | j                  d   df      }t        d      D ]  }d||d d|f<    t        j
                  j                  |t        j                   |             d }t#        |       r+t        j$                  t        j&                  |       dk7        s)t)        |       t        j*                  u rt-        |       d	kD  rt.        }t1        |      5  |j3                  d| 
      }d d d        j4                  dt7        |       dz  f   dk(  sJ t        j                  |j                  d      dk(        sJ t        dd      }|j                  |       }|j4                  d   dk(  sJ |j4                  d   j                         dk(  sJ |j8                  dk(  sJ t;        j<                  t>        d      5  t        dd       d d d        t;        j<                  t>        d      5  t        d       d d d        y c c}w # 1 sw Y   !xY w# 1 sw Y   LxY w# 1 sw Y   y xY w)NrD   r!   r   r*         ?r   zs(,12)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^   exogir   rW   fcasts          r   test_seasonalityr   .  s   2A;;uD:::::%++a."----JJ!!$**e466$((1+$%%%a!E1Bqc,!EEEExxQ,-H2Y ! B!JJHbjj&67DUrwwu~': ;UrxxCJ$6	d	 7b67::aUb()S00066%))A,!#$$$1Q/A;;uD99T?c!!!99Q<$$$q   	z)D	E 22b12	z)>	? 1 / "F7 72 2 s*   K&8K+K8L+K58LLc                     t        j                  |       }|j                  dk(  sJ |j                  d|       }t	        j
                  | d      }t        j                  j                  |j                  |       y )Nr   rD   r   )
r   r]   r!   rL   r   _extend_indexr   r   r   r8   )r   rU   r   new_idxs       r   test_seasonality_time_indexr   P  sa    			
	+B99>>2Z8E--j"=GJJ!!%++w7r   c                    t        dd      }|j                  |       }|j                  dk(  sJ |j                  | j                  d   d|j                  z  fk(  sJ t	        j
                  | j                  d         dz  }t        |      D ]v  \  }}|dz  dz   }|dz  rt        j                  nt        j                  } |dt        j                  z  |z  |z        }t        j                  j                  ||   |d       x g }	t        d|j                  z        D ](  }|dz  rd	nd
}|	j                  | d|dz  dz    d       * t        |j                        |	k(  sJ y )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  sL   r#AKKE77a<<;;5;;q>1qww;7777
))EKKN
#b
(CE" D3FQJARVVBFFa"%%i!mc)*


""5:xd"C	D
 D1qww; 01uU5rd!Q!VqL>./0 $&&&r   zbug in old pandas)reasonc                      t        j                  d      } t        j                  t        d      5  t        j                  |        d d d        y # 1 sw Y   y xY w)N)d   r=   zindex must be a pandasra   )r2   r   re   rf   r{   r   _index_like)r6   s    r   test_index_liker   k  sB    
((8
C	y(@	A +%%c*+ + +s   AAc                 D   t        j                  t         j                  j                  d            }t        j                  |      }d|z  |d   z  }d|z  j                  t         j                        }t        j                  d      }|D cg c]  }|t        j                  |d      z    }}t        j                  |      }t        dd	      }|j                  d	k(  sJ |j                  |      }g }t        d	|j                  z        D ](  }	|	d	z  rd
nd}
|j                  |
 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 ]I  }	|	d	z  dz   }|	d	z  rt         j(                  nt         j*                  }
|j                   |
||z               K t        j,                  |      }t         j.                  j1                  ||j2                         y c c}w )N  ry   r-   Q r   r^   )unitr   r=   r   r   r   r*   z,freq=D)r   )r2   absrandomstandard_normalcumsumastyper$   r   	Timestamp	Timedeltar1   r
   rP   rE   r    r4   r9   r   r   floorr   r   column_stackr   r   values)reset_randomstateincoffsetbasevalr8   rq   r   r   r   r   r   r   scales                 r   test_calendar_fourierr   r  s   
&&**40
1C
))C.C
s(SW
C#o%%bhh/F<<
#D;ABCTBLL3//BEBHHUOE	a	 B88q==LLED1rxx<  41uU5rd!Q!VqL>234 $&&&
I
C
bee)sRXXc]*
+CH1X )Q
ARVVBFF53;() x(HJJx6) Cs   !Hc                 @   t        j                  t         j                  j                  d            }t        j                  |      }d|z  |d   z  }d|z  j                  t         j                        }t        j                  d      }|D cg c]  }|t        j                  |d      z    }}t        j                  |      }t        ddd	|
      }|j                  d	k(  sJ |j                  |      }g d}t        |j                        |k(  sJ d|dz  z   }g }	t!        d      D ]  }
|	j#                  ||
z          t        j$                  |	      }	t         j&                  j)                  |	|j*                         t        ddd|
      }t        j,                  dd|      }t        j&                  j/                  |j                  |      |j                  |             t        ddd|
      }t        j,                  dd|      }t        j&                  j/                  |j                  |      |j                  |             t        ddd|
      }|j                  dk(  sJ |j                  |      }g d}t        |j                        |k(  sJ y c c}w )Nr   ry   r-   r   r   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   r   r1   r   rP   rE   r9   r   r    r4   r   r   r   r   rT   r   )r   r   r   r   r   r8   r@   r   r   r   r   ctt2rA   r   ctttts                  r   test_calendar_time_trendr     s    
&&**40
1C
))C.C
s(SW
C#o%%bhh/F<<
#D6<=sTBLLc**=E=HHUOE
CQD
AC99>>MM% E=D$&&&
f	"
"CH1X  Q x(HJJx6
CQD
AC((EtLDJJ!!#--"6u8MN	3A4	@B

'
'4T
JCJJ!!",,u"5s}}U7KLc4qdCE;;!OOE"EID$&&&9 >s    Jc                     d} t        j                  ddd      }t        d|       }|j                  |      }t	        j
                  |j                  d      dk(        sJ t        |j                  d	         D ]  }|j                  ||d
z  f   dk(  rJ  t        j                  ddd      }t        d|       }|j                  |      }t	        j
                  |j                  d      dk(        sJ t        |j                  d	         D ]  }|j                  ||dz  f   dk(  rJ  t        j                  ddd      }t        d|       }|j                  |      }t	        j
                  |j                  d      dk(        sJ t        |j                  d	         D ]  }|j                  ||dz  f   dk(  rJ  y )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   ru   r   r   s        r   test_calendar_seasonal_period_wr     s   FMM,S#>E	S	0BLLE66%))A,#%&&&5;;q>" -zz!QW*%,,,- MM,S#>E	S	0BLLE66%))A,#%&&&5;;q>" +zz!QU(#s***+ MM,S#>E	S	0BLLE66%))A,#%&&&5;;q>" +zz!QU(#s***+r   c                  2   d} t        j                  ddd      }t        d|       }|j                  |      }t	        j
                  |j                  d      dk(        sJ t        |j                  d	         D ]  }|j                  ||d
z  f   dk(  rJ  y )Nr   r   r   r   r   r   r*   r   r      r   r   s        r   test_calendar_seasonal_period_dr    s    FMM,S#>E	S	0BLLE66%))A,#%&&&5;;q>" ,zz!QV)$+++,r   c                  B   d} t        j                  dt        d      }t        t        |       }|j	                  |      }t        j                  |j                  d      dk(        sJ t        |j                  d         D ]  }|j                  ||d	z  f   dk(  rJ  y )
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MM,YDE	Yv	6BLLE66%))A,#%&&&5;;q>" +zz!QU(#s***+r   c                  J   d} t        j                  dt        d      }t        t        |       }|j	                  |      }t        j                  |j                  d      dk(        sJ t        |j                  d         D ]  }|j                  ||d	z  f   dk(  rJ  t        t        |       }|j	                  |      }t        j                  |j                  d      dk(        sJ t        |j                  d         D ]  }|j                  ||d	z  d
z  f   dk(  rJ  y )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MM,YDE	Yv	6BLLE66%))A,#%&&&5;;q>" ,zz!QV)$+++, 
[	8BLLE66%))A,#%&&&5;;q>" 3zz!a"f]*+s2223r   rl   TFrP   r*   seasonalfourierr!   ry   dropc           	          |r|ry t        | ||||||      }|j                         }t        j                  j	                  |j
                  |        |j                  d      }t        |t        j                        sJ y )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    st     G	
B LLNEJJ!!%++z:R EeR\\***r   c                     t        j                  t        d      5  t        | ddd       d d d        t        j                  t        d      5  t        | ddg	       d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)
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  
  st    	z)?	@ MZ$!LM	y(>	? NZ$!MN NM MN Ns   A(A4(A14A=c                      t        j                  g d      } t        | dddd      }t        j                  t
        d      5  |j                  dd       d d d        y # 1 sw Y   y xY w)	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    sY    
((,
-C	d!d1
B 
y(H	I 
B  s   AA(c                     t        j                  dt        d      } t        | ddd      }|j	                  dd       |j	                  dd	       |j	                  d
d       |j	                  dd       |j	                  dd       |j	                  dd       t        j                  t              5  |j	                  dd       d d d        t        j                  ddd      } t        | ddd      }|j	                  dd       |j	                  dd	       |j	                  d
d       t        j                  t        d      5  |j	                  dd       d d d        |j	                  dd       |j	                  dd       |j	                  dd       t        j                  dd      } t        | dddd      }|j	                  dd       |j	                  dd       |j	                  dd       |j	                  dd       t        j                  t              5  |j	                  dd       d d d        y # 1 sw Y   vxY w# 1 sw Y   xY w# 1 sw Y   y xY w)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    s   
--
C
@C	cDD	IBHHZ$HHZ$HHZ$HHQHHS#HHS#	z	" )
Z() //*3
<C	cDD	IBHHZ$HHZ$HHZ$	z)E	F 
S HHQHHS#HHS#
--3
C	d!d2
B HHQHHS#HHS#HHS#	z	" 
a /) )  s$   1H8II8IIIc                     t        j                  d      j                  t         j                        } t	        | dddd      }t        j                  dd      } t	        | dddd      }t
        j                  j                  |j                         |j                                t
        j                  j                  |j                  dd      |j                  dd             y )	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 JJ!!",,.#--/BJJ!!"((3"4ciiS6IJr   c                      t        j                  ddd      } t        | d      }t        j                  t
        d      5  |j                  dd	       d d d        y # 1 sw Y   y xY w)
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  sR    
--3
"C	cD	1B	z)I	J 
S  s    AA%c                    t        dd      g}t        | |      }t        | dd      }t        j                  j	                  |j                         |j                                t        j                  t        d      5  t        | ||z          d d d        t        j                  t        d      5  t        | dd|       d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)	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_termsr&  R  s    4q)*I	j9	EB
zD
BCJJ!!",,.#--/B	A
 
 	Y)>	

 
A
 
 	Q	

 

 

 
s   C5CCC#c                    t        dd      }t        | d|gd      }|j                         j                  d   dk(  sJ t        | |gd      }t        j
                  j                  |j                         |j                                y )NTr*   r   )rl   r  r  r=   r  r  )r   r   rE   r   r   r   r   )r   rU   r  r   s       r   test_drop_two_consantsr)  e  st    	D	*B	TRDt
B <<>"a'''
zRDt
LCJJ!!",,.#--/Br   r8   r  r   MSr   r(   c                    t        t        j                  dd      dd      }t        | dd      }t        j                  j                  |j                         |j                                t        j                  j                  |j                  d      |j                  d             t        j                  j                  |j                  dd      |j                  dd             t        j                  j                  |j                  dd	      |j                  dd	             t        j                  j                  |j                  dd
      |j                  dd
             y )Nr   r  Tr=   r   %      r   r     )	r   r   r0   r2   r   assert_array_equalrE   rL   r    )r8   r   r  s      r   test_determintic_term_equivr0  o  s      a 5AND	ed!	<BJJ!!$.."2BLLNCJJ!!$"4"4R"8":J:J2:NOJJ!!$**S#"6c8JKJJ!!$**R"5rxxC7HIJJ!!$**R"5rxxC7H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y)	DummyTermreturn.c                      y)N)Dummyr   selfs    r   _eq_attrzDummyTerm._eq_attr  s    r   c                      y)Nr5  r   r6  s    r   __str__zDummyTerm.__str__  s    r   )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                  |      }nm|dk(  r t        j
                  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   )r7  r8   nobsr   r   values         r   rE   zDummyTerm.in_sample  s    {{1~%++a."-.q"a 	2AAva		$a		11$7acc
aadd,11E!Q$K%1q5/	2  ||E4<<uEEr   NrV   r;   c                     | j                  |||      }t        j                  j                  |df      }t	        j
                  || j                  |      S )NrD   rI  )r   r2   r   r   r   r  r   )r7  rV   r8   r;   fcast_indexr   s         r   rL   zDummyTerm.out_of_sample  sG     ((~F		))5"+6||E4<<{KKr   )N)__name__
__module____qualname__propertytupler	   r8  rM   r:  r   r   r1   r  rE   rQ   rL   r   r   r   r2  r2    s    %#.   GFrxx FBLL F2 $(		L	L xx	L 		L
 
	Lr   r2  c                     t        j                  dd      } t               }t        |       |t	               k7  sJ t        | |gd      }|j                         }|j                  dk(  sJ |j                  d      }|j                  dk(  sJ t        |j                        t        |j                        k(  sJ d}|D ]%  }t        |D cg c]	  }||v sd	 c}      d	k(  r%J  y c c}w )
Nr   r  Tr(  )r  r   r,  )r,  r   )r   r   dummynormalr*   )r   r0   r2  rM   r   r   rE   r   rL   r9   r   r   )r8   rT  r  in_sampoosvalid	valid_colr   s           r   	test_droprZ    s    MM!S!EKEJIK	eugD	IBllnG==H$$$


2
C99W__ 55551E @	9#	S(8A9:a???@9s   
	C'
C'
)M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keys	cs_paramsparametrizerw   r|   r   r   r   r   r   r   r   r   r   r   skipifr   r   r   r   r  r  r	  r  r  r  r  r!  r#  r&  r)  r0   r1   r3   r   r  r0  r2  rZ  )kvk2s   000r   <module>rm     s    3 $   	 	 	 h>  > 
J( h'<= >  > , ,6  2 
" 
" 	 	 
	'	'!'CCA!&&(CBaWCWC	 	2 3#F)4
7&(KVD8'$ K(;<+ =+7:"'J+0,+3  dE]31a&)dE]3QF+D":.$/+ 0 / , 4 * 4+(N!H
K
&C a3 jtS9
c:	JJ5L! 5Lp@M Ds   8#M