U
    ÃmœdŠZ  ã                   @   sô  d dl mZmZ d dlmZ d dlmZ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dgd	�d
d„ ƒZejddddddgd	�dd„ ƒZejdddddgd	�dd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZ ej!Z"d d!„ e" #¡ D ƒZ$ej %d"e$¡d#d$„ ƒZ&d%d&„ Z'd'd(„ Z(d)d*„ Z)d+d,„ Z*d-d.„ Z+d/d0„ Z,d1d2„ Z-d3d4„ Z.d5d6„ Z/d7d8„ Z0d9d:„ Z1ejj2ed;d<�d=d>„ ƒZ3d?d@„ Z4dAdB„ Z5dCdD„ Z6dEdF„ Z7dGdH„ Z8dIdJ„ Z9ej %dKddg¡ej %dLd dMg¡ej %dNddg¡ej %dOd dMg¡ej %dddPg¡ej %dQddg¡dRdS„ ƒƒƒƒƒƒZ:dTdU„ Z;dVdW„ Z<dXdY„ Z=dZd[„ Z>d\d]„ Z?d^d_„ Z@d`da„ ZAej %de Bd db¡e Ce	 Ddb¡¡ejEdcdddbde�ejFdcdddbde�g¡dfdg„ ƒZGG dhdi„ dieƒZHdjdk„ ZIdS )lé    )ÚPD_LT_1_0_0Úis_int_index)Úpytest_warns)ÚHashableÚTupleN)ÚCalendarFourierÚCalendarSeasonalityÚCalendarTimeTrendÚDeterministicProcessÚDeterministicTermÚFourierÚSeasonalityÚ	TimeTrendÚmoduleTF)ÚscopeÚparamsc                 C   s$   t jdddd�}| jr | d¡S |S )Nú
2000-01-01iA  ÚB©ÚperiodsÚfreq)ÚpdÚ
date_rangeÚparamÚ	to_period©ÚrequestÚidx© r   úa/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/tsa/tests/test_deterministic.pyÚ
time_index   s    
r    ÚrangeÚperiodÚdatetimeÚfibÚint64c                 C   s¬   | j }|dkr2tjdddd�}|dkr¨| d¡}nv|dkrHt dd	¡}n`|d
krbt t d	¡¡}nF|dkr¢ddg}tdƒD ]}| 	|d |d  ¡ qzt |¡}nt
ƒ ‚|S )N)r"   r#   r   é‰   ÚMr   r"   r!   r   é{   r%   r$   é   éq   éþÿÿÿéÿÿÿÿ)r   r   r   r   Ú
RangeIndexÚIndexÚnpÚaranger!   ÚappendÚNotImplementedError)r   r   r   r$   Ú_r   r   r   Úindex   s     r4   Úlistc                 C   sH   t jdddd�}| jd krd S | jdkr2| d¡S | jdkrDt|ƒS |S )Nr   i�  r   r   r"   r5   )r   r   r   r   r5   r   r   r   r   Úforecast_index5   s    



r6   c              	   C   s<  t ddƒ}| | ¡ |d kr dnt|ƒ}d }t| ƒrHt t | ¡dk¡sjt| ƒtj	krnt
| ƒdkrn|d krnt}t|ƒ� | || |¡ W 5 Q R X t|ƒ t|ƒ t|jtƒs°t‚t|jtƒsÀt‚t  d¡|ksÒt‚t  d¡|ksät‚t  d¡|ksöt‚t  d	¡|k�s
t‚td
ƒ|k�st‚t ddƒ}| | ¡ t|ƒ d S )NTé   éS   r)   ì            ÚcttÚctÚtÚné   Fr   )r   Ú	in_sampleÚlenr   r/   ÚanyÚdiffÚtyper   r.   ÚmaxÚUserWarningr   Úout_of_sampleÚstrÚhashÚ
isinstanceÚorderÚintÚAssertionErrorZ	_constantÚboolÚfrom_stringr   )r4   r6   ÚttÚstepsÚwarnZtt0r   r   r   Útest_time_trend_smokeA   s:    

ÿþü
ûú	


rR   c              	   C   sú   t dƒ}| | ¡ |d krdnt|ƒ}d }t| ƒrFt t | ¡dk¡sht| ƒtj	krlt
| ƒdkrl|d krlt}t|ƒ� | || |¡ W 5 Q R X t|jtƒsžt‚t|ƒ t|ƒ t| tjtjfƒrö| jröt  | ¡}| | ¡ | || |¡ t  t| ƒ¡ d S )Nr>   r8   r)   r9   )r   r?   r@   r   r/   rA   rB   rC   r   r.   rD   rE   r   rF   rI   r"   rK   rL   rG   rH   ÚDatetimeIndexÚPeriodIndexr   Ú
from_indexr5   )r4   r6   ÚsrP   rQ   r   r   r   Útest_seasonality_smokea   s2    
ÿþü
ûú	


rW   c              	   C   sè   t ddƒ}| | ¡ |d kr dnt|ƒ}d }t| ƒrHt t | ¡dk¡sjt| ƒtj	krnt
| ƒdkrn|d krnt}t|ƒ� | || |¡ W 5 Q R X t|jtƒs t‚t|jtƒs°t‚t|ƒ t|ƒ tjtdd�� t ddƒ W 5 Q R X d S )	Nr>   r7   r8   r)   r9   z2 \* order must be <= period©Úmatché   )r   r?   r@   r   r/   rA   rB   rC   r   r.   rD   rE   r   rF   rI   r"   ÚfloatrL   rJ   rK   rG   rH   ÚpytestÚraisesÚ
ValueError)r4   r6   ÚfrP   rQ   r   r   r   Útest_fourier_smoke}   s.    

ÿþü
ûú	
r`   c                 C   sŠ   t ddd�}| | ¡ |d kr"dnt|ƒ}| || |¡ t|ƒ t|ƒ t|jtƒsXt	‚t|j
tƒsht	‚t|jtƒsxt	‚|jd ks†t	‚d S )NÚAr7   ©rJ   r8   )r	   r?   r@   rF   rG   rH   rI   rJ   rK   rL   ÚconstantrM   r   Úbase_period)r    r6   r;   rP   r   r   r   Útest_calendar_time_trend_smoke—   s    
re   c                 C   sr   t ddƒ}| | ¡ |d kr dnt|ƒ}| || |¡ t|jtƒsFt‚t|jt	ƒsVt‚t	|ƒ t
|ƒ t|ƒ d S )Nra   r7   r8   )r   r?   r@   rF   rI   rJ   rK   rL   r   rG   ÚreprrH   )r    r6   ÚcfrP   r   r   r   Útest_calendar_fourier_smoke¥   s    

rh   c                 C   s&   g | ]\}}|  ¡ D ]}||f‘qqS r   )Úkeys)Ú.0ÚkÚvZk2r   r   r   Ú
<listcomp>³   s     
  rm   Úfreq_periodc                 C   s�   |\}}t ||ƒ}| | ¡ |d kr(dnt|ƒ}| || |¡ t|jtƒsNt‚t|jtƒs^t‚t|ƒ t	|ƒ t
|ƒ t ||ƒ}||ksŒt‚d S )Nr8   )r   r?   r@   rF   rI   r"   rG   rL   r   rf   rH   )r    r6   rn   r   r"   ÚcsrP   Zcs2r   r   r   Útest_calendar_seasonality¶   s    


rp   c               	   C   s@   t  dd¡} tddd�}tjtdd�� | | ¡ W 5 Q R X d S )Nr   é
   ra   r7   rb   ú CalendarTimeTrend terms can onlyrX   )r   r-   r	   r\   r]   Ú	TypeErrorr?   )r4   r;   r   r   r   Útest_forbidden_indexÆ   s    rt   c                 C   sZ   t ddddd�}t dddd�}||ks*t‚t|ƒ t|ƒ |jd k	sHt‚|jd ksVt‚d S )Nr'   Té   z1960-1-1©rJ   rd   rb   )r	   rL   rG   rd   )r    r;   Úct2r   r   r   Útest_calendar_time_trend_baseÍ   s    rx   c              	   C   sb   t jtdd�� tddƒ W 5 Q R X tddƒ}t jtdd�� | tjdd	d
d�¡ W 5 Q R X d S )NzThe combination of freq=rX   ÚHra   r   ÚWzfreq is B but index containsú2000-1-1rq   ÚDr   )r\   r]   r^   r   r?   r   r   )r    ro   r   r   r   Útest_invalid_freq_period×   s
    
r}   c               
   C   sî   t dddd�} t dd¡}tjtdd�� |  |tj¡ W 5 Q R X tjtdd�� |  |tjf¡ W 5 Q R X tjtdd�� |  |tjtjf¡ W 5 Q R X t 	dd	d	d
ddddg¡}tjtdd��" tjtjtjf}|  ||¡ W 5 Q R X d S )Nra   Tru   rb   r   é   rr   rX   r)   r7   é   é   é   )
r	   r   r-   r\   r]   rs   Z_check_index_typerS   rT   r.   )r;   r   Útypesr   r   r   Útest_check_index_typeß   s    rƒ   c                	   C   s,   t jtdd�� tdddd� W 5 Q R X d S )Nz freq is not understood by pandasrX   ÚunknownTru   rb   )r\   r]   r^   r	   r   r   r   r   Útest_unknown_freqî   s    r…   c              	   C   s<   t dd�}tjtdd�� | d| t d¡¡ W 5 Q R X d S )Né   rb   z!The number of values in forecast_rX   rq   é   )r   r\   r]   r^   rF   r   r-   )r4   rO   r   r   r   Útest_invalid_formcast_indexó   s    
rˆ   c               
   C   s|   t  ddddddddg¡} t t¡� t | ¡ W 5 Q R X t jdd	d
�ddddddg } t t¡� t | ¡ W 5 Q R X d S )Nr   r)   r7   ru   r   r€   r>   r{   rq   )r   )	r   r.   r\   r]   rs   r   rU   r   r^   )r4   r   r   r   Útest_seasonal_from_index_errù   s    r‰   c              	   C   s*  t dd�}| | ¡}|j| jd dfks,t‚t |dk¡s>t‚tj |j	| ¡ d }t
| ƒrnt t | ¡dk¡sˆt| ƒtjkrŒt| ƒdkrŒt}t|ƒ� | d| ¡}W 5 Q R X t |dk¡s¾t‚t dd�}| | ¡}|j| jd dfksêt‚t ddd	�}| | ¡}|j| jd dfk�st‚t|jƒd
dgk�s2t‚t ddd	�}| | ¡}tj||gdd�}tj ||¡ t ddd	�}| | d d… ¡}	t|ƒ� | d| d d… ¡}
W 5 Q R X |jd| d d… | dd … d�}tj|	|
gdd�}t| tjtjfƒ�rtj ||¡ tj|	|gdd�}tjj||dd� d S )NT©rc   r   r)   r9   é   Fr7   ©rc   rJ   ÚtrendÚtrend_squared)ZaxisiÎÿÿÿé2   )rP   r4   r6   )Zcheck_index_type)r   r?   ÚshaperL   r/   Úallr   ÚtestingÚassert_index_equalr4   r   rA   rB   rC   r.   rD   rE   r   rF   r5   ÚcolumnsÚconcatÚassert_frame_equalrI   rS   r-   )r4   rO   ÚconstrQ   Zconst_fcastÚemptyÚt2ÚfinalÚexpectedÚshortÚ	remainderÚdirectÚcombinedr   r   r   Útest_time_trend  sP    

ÿ
ÿ





 
 
ÿr    c              	   C   s  t dd�}| | ¡}|jst‚|j| jd dfks6t‚tj |j| ¡ t	 
| d¡dk¡s^t‚t|jƒdd„ tddƒD ƒks€t‚t	 | jd df¡}tdƒD ]}d||d d…|f< qœt	j |t	 |¡¡ d }t| ƒrêt	 t	 | ¡dk¡�st| ƒtjk�rt| ƒd	k�rt}t|ƒ� |jd| d
�}W 5 Q R X |jdt| ƒd f dk�sNt‚t	 
| d¡dk¡�sht‚t ddd�}| | ¡}|jd dk�s’t‚|jd  ¡ dk�sªt‚|jdk�sºt‚tjt dd�� t ddd� W 5 Q R X tjt dd�� t dd� W 5 Q R X d S )Nr>   ©r"   r   r)   ç      ð?c                 S   s   g | ]}d |› d�‘qS )zs(ú,12)r   )rj   Úir   r   r   rm   4  s     z$test_seasonality.<locals>.<listcomp>r�   r9   ©rP   r4   rZ   ru   )r"   Úinitial_period)r   r7   zinitial_period must be inrX   éýÿÿÿzperiod must be >= 2)!r   r?   Zis_dummyrL   r�   r   r’   r“   r4   r/   r‘   Úsumr5   r”   r!   ÚzerosZassert_equalZasarrayr   rA   rB   rC   r.   rD   rE   r   rF   Úilocr@   r¦   r\   r]   r^   )r4   rV   Zexogr›   r¤   rQ   Úfcastr   r   r   Útest_seasonality-  s>    


"ÿ
ÿ
 
r¬   c                 C   sF   t  | ¡}|jdkst‚|jd| d�}t | d¡}tj 	|j
|¡ d S )Nr   r>   r¥   )r   rU   r"   rL   rF   r   Ú_extend_indexr   r’   r“   r4   )r    rO   r«   Znew_idxr   r   r   Útest_seasonality_time_indexO  s
    
r®   c           
      C   s  t ddd�}| | ¡}|jdks$t‚|j| jd d|j fksBt‚t | jd ¡d }t|ƒD ]T\}}|d d }|d r€tjntj	}|dtj
 | | ƒ}tjj|| |dd� q^g }	td|j ƒD ]2}|d rÖd	nd
}|	 |› d|d d › d�¡ qÆt|jƒ|	k�st‚d S )Nr>   ru   )r"   rJ   r   r7   r)   g:Œ0âŽyE>)ZatolÚcosÚsinú(r£   )r   r?   rJ   rL   r�   r/   r0   Ú	enumerater¯   r°   Úpir’   Úassert_allcloser!   r1   r5   r”   )
r4   r_   ÚtermsÚlocr¤   ÚcolÚjÚfnr›   Úcolsr   r   r   Útest_fourierX  s    
 r»   zbug in old pandas)Úreasonc               	   C   s2   t  d¡} tjtdd�� t | ¡ W 5 Q R X d S )N)éd   r7   zindex must be a pandasrX   )r/   r˜   r\   r]   rs   r   Z_index_like)r   r   r   r   Útest_index_likej  s    
r¾   c                    sb  t  t j d¡¡}t  |¡}d| |d  }d|  t j¡}t d¡‰ ‡ fdd„|D ƒ}t 	|¡}t
dd	ƒ}|jd	kszt‚| |¡}g }td	|j ƒD ]2}|d	 r¦d
nd}| |› d|d	 d › d�¡ q–t|jƒ|ksÜt‚|d }d	t j |t  |¡  }	g }
tdƒD ]:}|d	 d }|d	 �r(t jnt j}|
 |||	 ƒ¡ �qt  |
¡}
t j |
|j¡ d S )Néè  rq   r,   é€Q r{   c                    s   g | ]}ˆ t j|d d� ‘qS )rV   )Úunit©r   Z	Timedelta©rj   Úval©Úbaser   r   rm   w  s     z)test_calendar_fourier.<locals>.<listcomp>r|   r7   r¯   r°   r±   r)   z,freq=D)r†   )r/   ÚabsÚrandomÚstandard_normalÚcumsumÚastyper%   r   Ú	Timestampr.   r   rJ   rL   r?   r!   r1   r5   r”   r³   Úfloorr¯   r°   Úcolumn_stackr’   r´   Úvalues)Úreset_randomstateÚincÚoffsetr4   rg   rµ   rº   r¤   r¹   r¶   r›   Úscaler   rÅ   r   Útest_calendar_fourierq  s0    




 
rÔ   c                    s²  t  t j d¡¡}t  |¡}d| |d  }d|  t j¡}t d¡‰ ‡ fdd„|D ƒ}t 	|¡}t
dd	d
ˆ d�}|jd
ks€t‚| |¡}ddddg}t|jƒ|ks¨t‚d|d  }g }tdƒD ]}| || ¡ qÀt  |¡}t j ||j¡ t
dd	dˆ d�}t
jddˆ d�}	tj | |¡|	 |¡¡ t
dd	dˆ d�}
t
jddˆ d�}tj |
 |¡| |¡¡ t
dd	dˆ d�}|jdk�s‚t‚| |¡}dddddg}t|jƒ|k�s®t‚d S )Nr¿   rq   r,   rÀ   r{   c                    s   g | ]}ˆ t  |d ¡ ‘qS )rV   rÂ   rÃ   rÅ   r   r   rm   ”  s     z,test_calendar_time_trend.<locals>.<listcomp>r|   Tru   rv   r—   r�   rŽ   Ztrend_cubedr)   r†   r7   r:   )r�   rd   r;   ztrend**4)r/   rÇ   rÈ   rÉ   rÊ   rË   r%   r   rÌ   r.   r	   rJ   rL   r?   r5   r”   r!   r1   rÎ   r’   r´   rÏ   rN   r–   )rÐ   rÑ   rÒ   r4   r:   rµ   rº   r›   r¤   Zctt2r;   rw   Zcttttr   rÅ   r   Útest_calendar_time_trendŽ  s:    





rÕ   c                  C   sR  d} t jdddd�}td| d�}| |¡}t | d¡dk¡sBt‚t|j	d	 ƒD ]}|j
||d
 f dksPt‚qPt jdddd�}td| d�}| |¡}t | d¡dk¡s®t‚t|j	d	 ƒD ]}|j
||d f dks¼t‚q¼t jdddd�}td| d�}| |¡}t | d¡dk¡�st‚t|j	d	 ƒD ]"}|j
||d f dk�s*t‚�q*d S )Nrz   ú
2000-01-03ry   éX  ©r   r   r¡   r)   r¢   r   é¨   r   r   r|   rZ   ©r   r   r   r?   r/   r‘   r¨   rL   r!   r�   rª   ©r"   r4   ro   rµ   r¤   r   r   r   Útest_calendar_seasonal_period_w³  s&    


rÜ   c                  C   st   d} t jdddd�}td| d�}| |¡}t | d¡dk¡sBt‚t|j	d	 ƒD ]}|j
||d
 f dksPt‚qPd S )Nr|   rÖ   ry   r×   rØ   r¡   r)   r¢   r   é   rÚ   rÛ   r   r   r   Útest_calendar_seasonal_period_dË  s    
rÞ   c                  C   st   d} t jdddd�}td| d�}| |¡}t | d¡dk¡sBt‚t|j	d	 ƒD ]}|j
||d
 f dksPt‚qPd S )NÚQr   r'   r×   rØ   r¡   r)   r¢   r   ru   rÚ   rÛ   r   r   r   Útest_calendar_seasonal_period_qÕ  s    
rà   c                  C   sÔ   d} t jdddd�}td| d�}| |¡}t | d¡dk¡sBt‚t|j	d	 ƒD ]}|j
||d
 f dksPt‚qPtd| d�}| |¡}t | d¡dk¡sžt‚t|j	d	 ƒD ]"}|j
||d
 d f dks¬t‚q¬d S )Nra   r   r'   r×   rØ   r¡   r)   r¢   r   r>   rß   ru   rÚ   rÛ   r   r   r   Útest_calendar_seasonal_period_aß  s    

rá   rc   rJ   r)   ÚseasonalÚfourierrq   Údropc           	   	   C   sX   |r|rd S t | ||||||d�}| ¡ }tj |j| ¡ | d¡}t|tjƒsTt	‚d S )N)rc   rJ   râ   rã   r"   rä   r‹   )
r
   r?   r   r’   r“   r4   rF   rI   Ú	DataFramerL   )	r    rc   rJ   râ   rã   r"   rä   Údprµ   r   r   r   Útest_deterministic_processï  s    	ù	
rç   c              	   C   sX   t jtdd�� t| dddd� W 5 Q R X t jtdd�� t| ddgd	� W 5 Q R X d S )
Nzseasonal and fourierrX   Tr7   r   )râ   rã   r"   zAll additional termsr)   )râ   Úadditional_terms)r\   r]   r^   r
   rs   )r    r   r   r   Ú!test_deterministic_process_errors	  s    ré   c               
   C   sV   t  ddddddddg¡} t| ddddd	�}tjtd
d�� | dd¡ W 5 Q R X d S )Nr   r)   r7   ru   r   r€   r�   T©rc   rJ   râ   r"   zThe index in the deterministicrX   r>   )r   r.   r
   r\   r]   rs   r!   ©r   ræ   r   r   r   Útest_range_error  s        ÿrì   c               	   C   sŒ  t jdddd�} t| dddd�}| dd	¡ | dd
¡ | dd	¡ | dd¡ | dd¡ | dd¡ t t¡� | dd¡ W 5 Q R X t jdddd�} t| dddd�}| dd	¡ | dd
¡ | dd	¡ tjtdd�� | dd¡ W 5 Q R X | dd¡ | dd¡ | dd¡ t  dd¡} t| ddddd�}| dd¡ | dd¡ | dd¡ | dd¡ t t¡� | dd¡ W 5 Q R X d S )Nr{   r'   éx   rØ   Tr)   )rc   rJ   râ   z2001-1-1z2008-1-1z2015-1-1z2013-1-1r   r½   é–   é‚   z1990-1-1z2010-1-1zstart must be non-negativerX   iùÿÿÿéÈ   r>   rê   iöÿÿÿ)	r   r   r
   r!   r\   r]   r^   Úperiod_ranger-   rë   r   r   r   Útest_range_index_basic  sD        ÿrò   c                  C   sz   t  d¡ t j¡} t| ddddd�}t dd¡} t| ddddd�}tj | 	¡ | 	¡ ¡ tj | 
dd¡| 
dd¡¡ d S )	Nrí   Tr)   r>   rê   r   r½   rî   )r/   r0   rË   r%   r
   r   r-   r’   r–   r?   r!   )r   ræ   Údp2r   r   r   Útest_range_casting=  s$        ÿ    ÿrô   c               	   C   sD   t  ddd¡} t| dd�}tjtdd�� | dd	¡ W 5 Q R X d S )
Nr   i¼  rZ   TrŠ   zThe step of the index is not 1rX   r‡   i„  )r   r-   r
   r\   r]   r^   r!   rë   r   r   r   Útest_non_unit_rangeJ  s    rõ   c              	   C   s–   t ddd�g}t| |d�}t| ddd�}tj | ¡ | ¡ ¡ tjtdd�� t| || d� W 5 Q R X tjtdd�� t| dd|d� W 5 Q R X d S )	NTr)   rb   )rè   rŒ   z%One or more terms in additional_termsrX   )rc   rJ   rè   )	r   r
   r   r’   r–   r?   r\   r]   r^   )r    Z	add_termsræ   ró   r   r   r   Útest_additional_termsQ  s,     ÿ ÿ ÿ   ÿrö   c                 C   s^   t ddd�}t| d|gdd�}| ¡ jd dks4t‚t| |gdd�}tj | ¡ | ¡ ¡ d S )NTr)   rŒ   )rc   rè   rä   r7   ©rè   rä   )r   r
   r?   r�   rL   r   r’   r–   )r    rO   ræ   ró   r   r   r   Útest_drop_two_consantsd  s       ÿrø   rð   r{   r'   rØ   c                 C   s²   t t dd¡ddd�}t | d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ð   Tr7   rŒ   é%   éí   r�   rî   éú   )	r
   r   r-   r/   r’   Zassert_array_equalr?   rF   r!   )r4   rÆ   ræ   r   r   r   Útest_determintic_term_equivn  s    
rü   c                   @   s€   e Zd Zeeedf dœdd„ƒZedœdd„Zddd	d
ddddddddgZ	e
je
jdœdd„Zdee
je
je
jdœdd„ZdS )Ú	DummyTerm.)Úreturnc                 C   s   dS )N)ÚDummyr   ©Úselfr   r   r   Ú_eq_attr‚  s    zDummyTerm._eq_attrc                 C   s   dS )Nrÿ   r   r   r   r   r   Ú__str__†  s    zDummyTerm.__str__Zconst1Zconst2Ztrend1Ztrend2Znormal1Znormal2Zdummy1_1Zdummy1_2Zalways_drop1Zalways_drop2Zdummy2_1Zdummy2_2)r4   rþ   c                 C   sæ   |j d }t |j d df¡}tdddƒD ]¨}|dkr<d}nr|dkrPt |¡}n^|dkrftj |¡}nH|dkrˆt |¡}d|d d d…< n&|dkr–d}nt |¡}d|dd d…< | |d d …|f< |d d …|d f< q*tj	|| j
|d�S )	Nr   r>   r7   r)   r†   é   r€   ©r”   r4   )r�   r/   r˜   r!   r0   rÈ   rÉ   r©   r   rå   r”   )r  r4   Znobsrµ   r¤   Úvaluer   r   r   r?   ˜  s$    


&zDummyTerm.in_sampleN)rP   r4   r6   rþ   c                 C   s0   |   |||¡}tj |df¡}tj|| j|d�S )Nr>   r  )r­   r/   rÈ   rÉ   r   rå   r”   )r  rP   r4   r6   Zfcast_indexrµ   r   r   r   rF   ­  s    zDummyTerm.out_of_sample)N)Ú__name__Ú
__module__Ú__qualname__Úpropertyr   r   r  rG   r  r”   r   r.   rå   r?   rK   rF   r   r   r   r   rý   �  s0   ô üûrý   c                     s®   t  dd¡} tƒ }t|ƒ |tƒ ks(t‚t| |gdd�}| ¡ }|jdksNt‚| 	d¡}|jdksft‚t
|jƒt
|jƒks~t‚d}|D ]"‰ t‡ fd	d
„|D ƒƒdks†t‚q†d S )Nr   rð   Tr÷   )rð   r†   rù   )rù   r†   )r—   r�   ÚdummyÚnormalc                    s   g | ]}ˆ |krd ‘qS )r)   r   )rj   r·   ©Z	valid_colr   r   rm   Æ  s      ztest_drop.<locals>.<listcomp>r)   )r   r-   rý   rG   r   rL   r
   r?   r�   rF   r5   r”   r¨   )r4   r  ræ   Zin_sampZoosZvalidr   r  r   Ú	test_drop¹  s    
r  )JZstatsmodels.compat.pandasr   r   Zstatsmodels.compat.pytestr   Útypingr   r   Únumpyr/   Zpandasr   r\   Zstatsmodels.tsa.deterministicr   r   r	   r
   r   r   r   r   Zfixturer    r4   r6   ÚmarkZsmokerR   rW   r`   re   rh   Z
_supportedr   ÚitemsZ	cs_paramsZparametrizerp   rt   rx   r}   rƒ   r…   rˆ   r‰   r    r¬   r®   r»   Zskipifr¾   rÔ   rÕ   rÜ   rÞ   rà   rá   rç   ré   rì   rò   rô   rõ   rö   rø   r-   r.   r0   r   rñ   rü   rý   r  r   r   r   r   Ú<module>   s’   (
 ÿ








	+"	
%

	$

üþ	

8