
    Vfd"o                        d Z ddlmZmZ ddlZddlmZmZm	Z	m
Z
 ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ dd	lmZmZmZmZ ddlmc mZ dd
lmZm Z  ej!        j"        Z#e#dd         dz  Z$e#dz  Z%d Z&d Z'd Z(d Z)d Z*ej+        j,        d             Z-d Z.d Z/d Z0d Z1d Z2d Z3 G d d          Z4d Z5 G d d          Z6 G d d          Z7 G d  d!          Z8d" Z9dS )#z/tests for some time series analysis functions

    )assert_frame_equalassert_series_equalN)assert_array_almost_equalassert_array_equalassert_equalassert_raises)
regression)	macrodata)	stattools)savedrvs)mlacfmlccfmlpacfmlywar)vecvechi     @@c                  .   t          j        t          ddd          } t          t          j                                        | d           t          j        t          ddd          } t          t          j                                        | d           d S )NF   )adjustedfftnlags   )	r   acfx100r   r   acf100ravelx1000acf1000)acf_xs    Dlib/python3.11/site-packages/statsmodels/tsa/tests/test_tsa_tools.pytest_acfr"   "   s    M$EDDDEel0022E1===M%%U"EEEEua        c                     t          j        t          dd          t          d d         d          d d         } t          t          j                                        d d         d d d         | d           t          j        t          dd          t          d d         d          d d         } t          t          j                                        d d         d d d         | d           d S )N   F)r      r   )	r   ccfr   r   r   ccf100r   r   ccf1000)ccf_xs    r!   test_ccfr-   +   s    M$qrr(D"I>>>ssCEel00223B37"=uaHHHM%)U3B3Z%@@@"EEem1133CRC82>qIIIIIr#   c                  *   t          j        t          dd          } t          t          j                                        | d           t          j        t          dd          } t          t          j                                        | d           d S )Nr   mlemethod      )	r   pacf_ywr   r   r   pacf100r   r   pacf1000)pacfyws    r!   test_pacf_ywr8   2   sv    tR666Ffn2244fa@@@ub777Ffo3355vqAAAAAr#   c                  "   t          j        t          d          } t          t          j                                        | d           t          j        t          d          } t          t          j                                        | d           d S )Nr   r   )	r   pacf_olsr   r   r   r5   r   r   r6   )pacfolss    r!   test_pacf_olsr<   :   sl     r**Gfn2244gqAAA ++Gfo3355wBBBBBr#   c                     t          t          j        dd          t          j        t
          dd          d          d           t          t          j        dd          t          j        t          dd          d          d           d S )Nr2   
   r/   r0   r   r   r   )r   r   	arcoef100r	   yule_walkerr   
arcoef1000r    r#   r!   test_ywcoefrC   B   s    		b	7	7	7	::	  
 !""		r%	8	8	8	;;	    r#   c                  \    t          j        g d          } t          j        | d           d S )N)r2   r(   r3   r3   r   r2   r   r   r      )nparrayr	   r@   )xs    r!   test_yule_walker_interrK   O   s3     	55566A1a     r#   c           
      P   t          dd          D ]}t          j        t          j                            ||dz   z  dz                      }t          j        |          }t          j        t          |          t          j	        |t          |                              sJ d S )Nr3   r>   r2   )rangetoolsunvechrH   randomrandnduplication_matrixarray_equalr   dotr   )reset_randomstatekmDks       r!   test_duplication_matrixrY   W   s    1b\\ ; ;La!e)9::;;%a((~c!ffbfRa&9&9::::::; ;r#   c           
         t          dd          D ]z}t          j                            ||          }t	          j        |          }t          j        t          |          t          j        |t          |                              sJ {d S )Nr3   r>   )
rM   rH   rP   rQ   rN   elimination_matrixrS   r   rT   r   )rU   rV   rW   Lks       r!   test_elimination_matrixr]   ^   s{    1b\\ ; ;IOOAq!!%a((~d1ggrvb#a&&'9'9::::::; ;r#   c           	         t           j                            dd          }t          j        dd          }t          j        t          |j                  t          j        |t          |                              sJ d S )Nr%   rG   )	rH   rP   rQ   rN   commutation_matrixrS   r   TrT   )rU   rW   Ks      r!   test_commutation_matrixrb   e   sa    
	1A A&&A>#ac((BF1c!ff$5$56666666r#   c                      t          j        ddgddgg          } t          j        t          |           g d          sJ d S )Nr2   r3   rG   r%   )r2   rG   r3   r%   )rH   rI   rS   r   arrs    r!   test_vecrf   k   sF    
(QFQF#
$
$C>#c((LLL1111111r#   c                      t          j        g dg dg dg          } t          j        t          |           g d          sJ d S )N)r2   r3   rG   )r%         )   r   	   )r2   r%   rj   rh   r   rk   )rH   rI   rS   r   rd   s    r!   	test_vechrl   p   sO    
(IIIyyy)))4
5
5C>$s))%7%7%78888888r#   c                      t          j        g d          } t          j        t          j        |                                                     rJ d S )N)	g     @g      Yg      $      ?        rn         $@g      Y@r   )rH   rI   isnanrN   _ar_transparamsanyrd   s    r!   test_ar_transparamsrt   u   sQ    
(DDD C x-c2233779999999r#   c                       e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )
TestLagmatc                 
   t          j                    }|j        g d         | _        t	          | j        j                  }|                    d          | _        |                    d          | _        t          j
                            d           t          j
                            d          | _        d t          | j        j        | j        j                  D             }|| j        _        | j        j        | _        d S )Nyearquarterrealgdpcpir{   r|   90  d   c                     g | ]A\  }}t          t          |                    d z   t          t          |                    z   BS z-Qstrint.0yrqus      r!   
<listcomp>z*TestLagmat.setup_class.<locals>.<listcomp>   N     
 
 
B BLL4#c"gg,,.
 
 
r#   )r
   load_pandasdatamacro_dflistcolumnsindexrealgdp_loccpi_locrH   rP   seedrQ   random_datazipry   rz   r|   series)clsr   colsr   s       r!   setup_classzTestLagmat.setup_class}   s    $&&y!F!F!FGCL())**Y//jj''
	u)//#..
 
cl/1EFF
 
 
 #\%


r#   c                 D   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d df         ||dd df         f          }t          j	        || j
        d          }t          ||           d S Nr3   rG   Bothtrimr(   r   valuesastypefloatr   lagmatrH   column_stackrN   add_lagr   r   selfr   nddatar   resultslag_datas         r!   test_add_lag_insertzTestLagmat.test_add_lag_insert   s    }#U##!&A,???/6!""bqb&>66!""b&>"JKK=t'7;;Xw'''''r#   c                 2   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d d f         |f          }t          j	        || j
        dd          }t          ||           d S Nr3   rG   r   r   Finsertr   r   s         r!   test_add_lag_noinsertz TestLagmat.test_add_lag_noinsert   s    }#U##!&A,???/6!""aaa%=&"9::=t'75IIIXw'''''r#   c                    | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d d f         |f          }t          j	        || j
        dd          }t          ||           t          j	        || j
        dd          }t          ||           d S Nr(   rG   r   r   Fr   T)r   r   r   r   r   r   rH   r   rN   r   r   r   r   r   r   r   r   r   	lag_data2s          r!   test_add_lag_noinsert_atendz&TestLagmat.test_add_lag_noinsert_atend   s    }#U##!&B-@@@/6!""aaa%=&"9::=t|QuEEEXw'''M$aEEE	Y(((((r#   c                 :   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d df         ||dd df         f          }t          j	        |dd          }t          ||           d S r   r   r   r   r   r   r   rH   r   rN   r   r   r   s         r!   test_add_lag_ndarrayzTestLagmat.test_add_lag_ndarray   s    }#U##!&A,???/6!""bqb&>66!""b&>"JKK=A..Xw'''''r#   c                 (   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d d f         |f          }t          j	        |ddd          }t          ||           d S r   r   r   s         r!   test_add_lag_noinsert_ndarrayz(TestLagmat.test_add_lag_noinsert_ndarray   s    }#U##!&A,???/6!""aaa%=&"9::=Ae<<<Xw'''''r#   c                 x   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d d f         |f          }t          j	        |ddd          }t          ||           t          j	        |ddd          }t          ||           d S r   r   r   s          r!   "test_add_lag_noinsertatend_ndarrayz-TestLagmat.test_add_lag_noinsertatend_ndarray   s    }#U##!&B-@@@/6!""aaa%=&"9::=Ae<<<Xw'''M&"a===	Y(((((r#   c                 J   | j         }|j        d         }t          j        |ddd          \  }}t	          j        |dz   df          }t          d          D ]}|||||z   |f<   |d d d df         }|d d dd f         }t          ||           t          ||           d S )Nr   rG   nonesepr   originalr%   r2   )r   shaper   r   rH   zerosrM   r   )	r   r   nr   leadsexpectediexpected_leadsexpected_lagss	            r!   test_sep_returnzTestLagmat.test_sep_return   s    JqM!(qvNNN8QUAJ''q 	* 	*A%)HQQY\""!!!!RaR% ABB]F+++^U+++++r#   c                    | j         }t          j        |dd          }t          j        |dd          |f          }t          j        |dd          }t          ||           |d d d f         }t          j        |dd          }t          j        |dd          |f          }t          j        |dd          }t          ||           d S )NrG   r   r   Tlagsr   )r   r   r   rH   r   rN   r   r   )r   r   r   r   r   s        r!   test_add_lag1dzTestLagmat.test_add_lag1d   s    !$777/48V"455=Ad;;;Wh''' AAAtG}!$777/48V"455=Ad;;;Wh'''''r#   c                     | j         }t          j        |dd          }t          j        |ddd          }t          ||           t          j        |ddd          }t          ||           d S )NrG   r   r   T)r   dropr   F)r   r   r   rN   r   r   )r   r   r   r   s       r!   test_add_lag1d_dropzTestLagmat.test_add_lag1d_drop   sy    !$777=ADFFFVX&&& =ADGGGVX&&&&&r#   c                 x   t          j        ddt          fg          }| j        }||d<   t	          j        |ddd          }t          j        |ddd	
          }t          ||           t          j        |ddd
          }t          ||           t          j        |dd	
          }t          ||           d S )Nr~   variabledtyperG   r   inr   r   Tr   F	rH   r   r   r   r   r   rN   r   r   r   r   r   r   r   s        r!   test_add_lag1d_structz TestLagmat.test_add_lag1d_struct   s    xZ$7#8999!!Z!&!&4HHH=qq>>>VX&&&=qq???VX&&&=Ad;;;VX&&&&&r#   c                     t          j        ddt          fg          }| j        }||d<   t	          j        |dd          }t          j        |dd          }t          ||           d S )	Nr~   r   r   rG   r   r   T)r   r   r   r   s        r!   test_add_lag_1d_drop_structz&TestLagmat.test_add_lag_1d_drop_struct   ss    xZ$7#8999!!Z!&!&999=AD999VX&&&&&r#   c                 H   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd d df         ||dd df         f          }t          j	        || j
        dd          }t          ||           d S )Nr3   rG   r   r   r(   T)r   r   r   s         r!   test_add_lag_drop_insertz#TestLagmat.test_add_lag_drop_insert   s    }#U##!&A,???/6!""bqb&>66!""b&>"JKK=t'7FFFXw'''''r#   c                 X   | j         j        }|                    t                    }t	          j        |d d df         dd          }t          j        |dd t          j        g d          f         |f          }t          j
        || j        ddd          }t          ||           d S )	Nr3   rG   r   r   )r   r2   rG   FT)r   r   )r   r   r   r   r   r   rH   r   rI   rN   r   r   r   r   s         r!   test_add_lag_drop_noinsertz%TestLagmat.test_add_lag_drop_noinsert  s    }#U##!&A,???/6!""bhyyy.A.A*A#BF"KLL=$"Ae$
 
 
 	Xw'''''r#   c                    | j         }t          j        |ddd          }t          j        |j        ddd          }t	          ||           t          j        |ddd          }t          j        |j        ddd          }t	          ||           t          j        |ddd          \  }}t          j        |j        ddd          \  }}t	          ||           t	          ||           d S )	NrG   bothr   r   r   exforwardr   )r   r   r   r   r   )r   r   r   both_npr   lags_npleadlead_nps           r!   test_dataframe_without_pandasz(TestLagmat.test_dataframe_without_pandas  s    }aftDDD"4;NNNT7###aftDDD"4;NNNT7###%dAINNN
d$+KU
 
 
 	T7###T7#####r#   c                 \   | j         }t          |j                  }|j        d         }t	          j        |dz   df          }|j        |d |d df<   t          dd          D ]Afd|D             }|                    |           |j        ||z   dz  ddz   z  f<   B|j	        }|d |         }t          j        |||          }|j        dd          }t          j        | j         ddd	d
          }t          ||           t          j        | j         dddd
          }	t          |	|j        d d dd f                    t          j        | j         dddd
          \  }	}
t          |	|j        d d dd f                    t          |
|j        d d d df                    d S )Nr   rG      r%   r2   c                 :    g | ]}|d z   t                    z   S .L.r   r   collags     r!   r   z2TestLagmat.test_dataframe_both.<locals>.<listcomp>*  (    ???3ec#hh.???r#   r   r   r   r   Tr   r   
use_pandasr   r   )r   r   r   r   rH   r   r   rM   extendr   pd	DataFrameilocr   r   r   r   r   r   r   r   new_colsr   r   r   r   r   r   s              @r!   test_dataframe_bothzTestLagmat.test_dataframe_both#  s   }t|$$JqM1q5"+&&rr2A2vA;; 	I 	IC????$???HNN8$$$=A[F3S=!c'AqM"99::
<uEEE=$M16DT
 
 
 	4***M16DT
 
 
 	4qqq!""u!5666%M16Ed
 
 

d 	4qqq!""u!56664qqq"1"u!566666r#   c                     t          t          t          j        | j        dd           t          t          t          j        | j        j        d           d S )Ni,  Tr   r   
ValueErrorr   r   r   r   r   s    r!   test_too_few_observationsz$TestLagmat.test_too_few_observations@  sM    	($-	
 	
 	
 	
 	j)"2DM4H#NNNNNr#   c                     t          t          t          j        | j        ddd           t          t          t          j        | j        j        dd           d S )NrG   unknownTr   r   r   r   r   s    r!   test_unknown_trimzTestLagmat.test_unknown_trimF  sj    M	
 	
 	
 	
 	M 	
 	
 	
 	
 	
 	
r#   c                 >   | j         }t          |j                  }|j        d         }t	          j        |dz   df          }|j        |d |d df<   t          dd          D ]Afd|D             }|                    |           |j        ||z   dz  ddz   z  f<   B|j	        }|d |         }t          j        |||          }t          j        | j         ddd	d
          }t          ||           t          j        | j         dddd
          }	t          |	|j        d d dd f                    t          j        | j         dddd
          \  }	}
t          |	|j        d d dd f                    t          |
|j        d d d df                    d S )Nr   rG   r   r%   r2   c                 :    g | ]}|d z   t                    z   S r   r   r   s     r!   r   z5TestLagmat.test_dataframe_forward.<locals>.<listcomp>^  r   r#   r   r   r   Tr   r   r   )r   r   r   r   rH   r   r   rM   r   r   r   r   r   r   r   r   r   s              @r!   test_dataframe_forwardz!TestLagmat.test_dataframe_forwardW  s   }t|$$JqM1q5"+&&rr2A2vA;; 	I 	IC????$???HNN8$$$=A[F3S=!c'AqM"99::
<uEEEM19t
 
 
 	4***M19t
 
 
 	4qqq!""u!5666%M19u
 
 

d 	4qqq!""u!56664qqq"1"u!566666r#   c                 N   t          t          t          j        | j        ddd           t          t          t          j        | j        ddd           t          t          t          j        | j        ddd           t          t          t          j        | j        ddd           d S )NrG   r   Tr  backward)r   r   r   r   r   r   r   s    r!   test_pandas_errorszTestLagmat.test_pandas_errorsr  s    M	
 	
 	
 	
 	M	
 	
 	
 	
 	K	
 	
 	
 	
 	K	
 	
 	
 	
 	
 	
r#   c           	         t          j        | j        j        g d          }| j        |d<   t	          dd          D ]<}| j                            |          |dt          t          |                    z   <   =|                    d          }t          j
        | j        dd	d
d          }t          ||           t          j
        | j        dd	dd          }t          ||j        d d dd f                    t          j
        | j        dd	dd          \  }}t          ||j        d d d df                    t          ||j        d d dd f                    d S )Nr|   zcpi.L.1zcpi.L.2zcpi.L.3r   r   r|   r2   r%   cpi.L.ro   rG   r   r   Tr   r   r   )r   r   r   r   rM   shiftr   r   fillnar   r   r   r   r   r   r   r   r   r   s         r!   test_series_forwardzTestLagmat.test_series_forward  s   <+#<<<
 
 
 +A;; 	H 	HC151B1B31G1GHXCHH-..??3''KTd
 
 
 	4***KTd
 
 
 	4qqq!""u!5666%KUt
 
 

d 	4qqq"1"u!56664qqq!""u!566666r#   c           	         t          j        | j        j        g d          }| j        |d<   t	          dd          D ]<}| j                            |          |dt          t          |                    z   <   =|j        dd          }t          j
        | j        ddd	d
          }t          ||           t          j
        | j        dddd
          }t          ||j        d d dd f                    t          j
        | j        dddd
          \  }}t          ||j        d d d df                    t          ||j        d d dd f                    d S )Nr  r  r|   r2   r%   r  rG   r   r   Tr   r   r   )r   r   r   r   rM   r  r   r   r   r   r   r   r  s         r!   test_series_bothzTestLagmat.test_series_both  s   <+#<<<
 
 
 +A;; 	H 	HC151B1B31G1GHXCHH-..=$K$4
 
 
 	4***K$4
 
 
 	4qqq!""u!5666%K%D
 
 

d 	4qqq"1"u!56664qqq!""u!566666r#   c                 *   t          j        t          j        d                              d                    }t          j        d          |_        t          j        |dd          }|j	        dk    sJ t          |j                  g dk    sJ d S )N   r(   r3   r3   Tmaxlagr   )r~   r%   )z0.L.1z1.L.1z0.L.2z1.L.2)r   r   rH   arangereshape
RangeIndexr   r   r   r   r   )r   dfresults      r!   test_range_index_columnsz#TestLagmat.test_range_index_columns  s    \")C..0099::]1%%
!"Q4@@@|x''''FN##'K'K'KKKKKKKr#   c                     t          j        t          j        d                              d                    }ddg|_        t          j        t          d          5  t          j
        |dd	           d d d            d S # 1 swxY w Y   d S )
Nr  r  r   0zColumns names must bematchr3   Tr  )r   r   rH   r  r  r   pytestraisesr   r   r   r   r  s     r!   test_duplicate_column_namesz&TestLagmat.test_duplicate_column_names  s    \")C..0099::X
]:-DEEE 	< 	<Rd;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   BB
BN)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r(  rB   r#   r!   rv   rv   |   s       & & [& ( ( (( ( (	) 	) 	)( ( (( ( (	) 	) 	)
, 
, 
,( ( (' ' '' ' '' ' '( ( (( ( ($ $ $"7 7 7:O O O
 
 
"7 7 76 
  
  
D7 7 707 7 70L L L< < < < <r#   rv   c                      ddl m}  g d}g d}t          ||          D ]R\  }}t          t	          j        |          |           t          t	          j         | |                    |           Sd S )Nr   )	to_offset)
AzAS-MARQQSzQS-APRWzW-MONBDH)
r2   r2   r%   r%   r%   4   r6  rh   rj      )pandas.tseries.frequenciesr.  r   r   rN   freq_to_period)r.  freqsr   r   js        r!   test_freq_to_periodr<    s    444444MMME000HE8$$ < <1U)!,,a000U)))A,,77;;;;< <r#   c                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )TestDetrendc                     t          j        d          | _        t          j        d                              dd          | _        d S )Ng      @rp   rh   r3   )rH   r  data_1dr  data_2dr   s    r!   r   zTestDetrend.setup_class  s4    innioo--a33r#   c                     | j         }t          t          j        |d          t	          j        |                     t          t          j        |d          g d           d S )Nr2   orderr   rE   r(   r   r2   r3   )r@  r   rN   detrendrH   
zeros_liker   r   s     r!   test_detrend_1dzTestDetrend.test_detrend_1d  sr    |!M$a((("-*=*=	
 	
 	
 	"M$a(((*;*;*;	
 	
 	
 	
 	
r#   c           	      R   | j         }t          t          j        |dd          t	          j        |                     t          t          j        |dd          ddgddgddgddgddgg           t          t          j        |dd          dd	gdd	gdd	gdd	gdd	gg           d S )
Nr2   r   rE  axisr&   rE   r3   r%               ?)rA  r   rN   rG  rH   rH  rI  s     r!   test_detrend_2dzTestDetrend.test_detrend_2d  s    |!M$aa000"-2E2E	
 	
 	
 	"M$aa000"XBx!Q!Q!Q8	
 	
 	
 	"M$aa000C[4+c{T3K$M	
 	
 	
 	
 	
r#   c                    t          j        | j        d          }t          j        |d          }t          |j        t          j        |                     t          |t          j        |j        d                     t          j        |d          }t          |j        t          j        g d                     t          |t          j        |j        d                     d S )None)namer2   rD  r   rF  )
r   Seriesr@  rN   rG  r   r   rH   rH  r   )r   r   	detrendeds      r!   test_detrend_serieszTestDetrend.test_detrend_series  s    yE222M$a000	!)"2BM$4G4GHHHIry1A'N'N'NOOOM$a000	!bi(9(9(9::	
 	
 	
 	Iry1A'N'N'NOOOOOr#   c           	         ddg}d dD             }t          j        | j        ||          }t          j        |dd          }t          |j        t          j        |                     t          |t          j        |j        ||                     t          j        |dd          }t          |j        d	d	gd
d
gddgddgddgg           t          |t          j        |j        ||                     t          j        |dd          }t          |j        ddgddgddgddgddgg           t          |t          j        |j        ||                     d S )NrR  twoc                     g | ]}|S rB   rB   )r   cs     r!   r   z6TestDetrend.test_detrend_dataframe.<locals>.<listcomp>  s    $$$q$$$r#   abcder   r2   r   rL  r&   rE   r3   r%   rN  rO  )
r   r   rA  rN   rG  r   r   rH   rH  r   )r   r   r   r   rU  s        r!   test_detrend_dataframez"TestDetrend.test_detrend_dataframe  s   %.$$G$$$|DL'GGGM$aa888	!)"2BM$4G4GHHHL)7%HHH	
 	
 	

 M$aa888	!Bx"bAq6Aq6Aq6J	
 	
 	
 	L)7%HHH	
 	
 	

 M$aa888	!C[4+c{T3K$M	
 	
 	
 	L)7%HHH	
 	
 	
 	
 	
r#   c                 j    t          t          t          j        t	          j        d                     d S )N)rG   rG   rG   )r   NotImplementedErrorrN   rG  rH   onesr   s    r!   test_detrend_dim_too_largez&TestDetrend.test_detrend_dim_too_large%  s'    )5="'):L:LMMMMMr#   N)
r)  r*  r+  r,  r   rJ  rP  rV  r\  r`  rB   r#   r!   r>  r>    s        4 4 [4
 
 

 
 
	P 	P 	P
 
 
>N N N N Nr#   r>  c                   N    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	S )
TestAddTrendc                 z   d| _         t          j        t          | j                             | _        t          j        t          j        t          | j                             d d d f         d          | _        t          j        | j                   | _        t          j        d| j         dz             | _	        d S )Nr  r3   rn   r2   )
r   rH   r  r   arr_1dtilearr_2dr_  rZ  trB  s    r!   r   zTestAddTrend.setup_class*  s    YuSU||,,
WRYuSU||44QQQW=qAA
	#suqy))r#   c                 6   t          j        | j                  }t          j        |          }t          j        |          }| j        |d<   t          ||           t          j        |d          }t          j        |          }|                    dd| j                   t          ||           t          j        | j                  }t          j        |d          }t          j        |          }| j        |d<   | j	        |d<   t          ||           d S )NconstTprependr   cttrendrn  )
r   rT  rd  rN   	add_trendr   rZ  r   r   rg  )r   sappendedr   	prependeds        r!   test_serieszTestAddTrend.test_series2  s    Idk""?1%%<?? F8X...OAt444	<??7DF+++8Y///Idk""?1D111<?? F F8X.....r#   c                 
   t          j        | j                  }t          j        |          }|                                }| j        |d<   t          ||           t          j        |d          }|                                }|                    dd| j                   t          ||           t          j        | j                  }t          j        |d          }|                                }| j	        |d<   t          ||           t          j        | j                  }t          j        |d          }|                                }| j        |d<   | j	        |d<   | j	        d	z  |d
<   t          ||           d S )Nri  Trj  r   rg  rm  rn  cttr3   trend_squared)
r   r   rf  rN   ro  copyrZ  r   r   rg  )r   r  rq  r   rr  s        r!   test_dataframezTestAddTrend.test_dataframeE  sR   \$+&&?2&&7799 F8X...OB555	77997DF+++8Y///\$+&&?2S1117799 F8X...\$+&&?2U3337799 F F$(FaK!8X.....r#   c                    t          t          t          j        | j        dd           t          t          t          j        | j        dd           t          j        | j                  }t          t          t          j        |dd           t          t          t          j        |dd           t          j        | j        d          }t          || j        d d d f                    t          j        | j        dd          }t          j	        | j        | j
        f          j        }t          ||           t          j        | j        dd          }t          j	        | j        | j        f          j        }t          ||           t          j        | j        dd          }t          j	        | j        | j        | j
        f          j        }t          ||           d S )	NrZ  raise)rJ   rn  has_constantrl  rm  skip)rn  r{  add)r   r   rN   ro  rZ  r   r   r   rH   vstackrg  r`   )r   r  skippedskipped_constr   addeds         r!   test_duplicate_constz!TestAddTrend.test_duplicate_const_  s   Of 	
 	
 	
 	
 	Of 	
 	
 	
 	
 \$&!!2Sw	
 	
 	
 	
 	2T	
 	
 	
 	
 /$&444WdfQQQWo...F$V
 
 
 9dfdf-..0]H---cFFF9dfdf-..0UH%%%dGGG9dfdfdf5668UH%%%%%r#   c                     t          j        | j        ddg          }t          j        |d           t          j        |dd           d S )Nri  rn  )r   rl  rm  Trn  rk  )r   r   rf  rN   ro  r'  s     r!   test_dataframe_duplicatez%TestAddTrend.test_dataframe_duplicate  sO    \$+/ABBB$''''$555555r#   c                 *   t          j        | j        | j        | j        | j        dz  f          j        }t          t          j        | j                  |d d d df                    t          t          j        | j        d          |d d ddgf                    t          t          j        | j        d          |d d d df                    t          t          j        | j        d          |           t          j	        | j        d d d f         | j        d d d f         | j        d d d f         dz  | j
        f          }t          t          j        | j
        d	          |d d g d
f                    t          t          j        | j
        dd          |d d g df                    t          t          j        | j
        dd          |d d g df                    t          t          j        | j
        dd          |           d S )Nr3   rg  rm  r   rl  rG   ru  Trj  )r   rG   r%   r  )r2   rG   r%   )r   r2   rG   r%   )rH   r~  rd  rZ  rg  r`   r   rN   ro  hstackrf  )r   bases     r!   
test_arrayzTestAddTrend.test_array  s   y$+tvtvtv{CDDFU_T[1142A2;???U_T[<<<d111q!f9oNNNU_T[===tAAArrE{KKKU_T[>>>EEEyqqq$wqqq$wqqq$w1$	
 
 	ODK666QQQ			\8J	
 	
 	
 	ODKsDAAAIII	
 	
 	
 	ODKtTBBBLLL!	
 	
 	
 	ODKudCCCT	
 	
 	
 	
 	
r#   c                 T    t          t          t          j        | j        d           d S )Nr  )rJ   rn  )r   r   rN   ro  rd  r   s    r!   test_unknown_trendzTestAddTrend.test_unknown_trend  s0    4;i	
 	
 	
 	
 	
 	
r#   c                 F   t          t          j        | j        d          | j                   t          j        | j        d          | j        usJ t          t          j        | j        d          | j                   t          j        | j        d          | j        usJ d S )Nr   )r   rN   ro  rd  rf  r   s    r!   test_trend_nzTestAddTrend.test_trend_n  s    U_T[#66DDDt{C00CCCCU_T[#66DDDt{C00CCCCCCr#   N)r)  r*  r+  r,  r   rs  rx  r  r  r  r  r  rB   r#   r!   rb  rb  )  s        * * [*/ / /&/ / /4&& && &&P6 6 6

 
 
<
 
 

D D D D Dr#   rb  c                   T    e Zd Zed             Zed	d            Zd Zd Zd Z	d Z
dS )
TestLagmat2DSc                 p   t          j                    }|j        g d         | _        t          j                            d           t          j                            d          | _        d t          | j        j
        | j        j                  D             }|| j        _        | j        j        | _        d S )Nrx   r}   r~   c                     g | ]A\  }}t          t          |                    d z   t          t          |                    z   BS r   r   r   s      r!   r   z-TestLagmat2DS.setup_class.<locals>.<listcomp>  r   r#   )r
   r   r   r   rH   rP   r   rQ   r   r   ry   rz   r   r|   r   )r   r   r   s      r!   r   zTestLagmat2DS.setup_class  s    $&&y!F!F!FG
	u)//#..
 
cl/1EFF
 
 
 #\%


r#   frontc                 N   | j         \  }}t          j        ||z   |dz   |z  f          }t          |          D ]Z}t          |dz             D ]E}||k     r!| d d |f         ||| |z   |dz   |z  |z   f<   )| d d |f         ||d |dz   |z  |z   f<   F[|dk    r|d |          }|S )Nr2   r  )r   rH   r   rM   )r   r   r   rg  rV   r   r   r   s           r!   _prepare_expectedzTestLagmat2DS._prepare_expected  s    z18QXqA~67788 	F 	FC4!8__ F Ft88DH3EHQ$]TAX,<q,@@AA :>aaafHQRR$(c!1A!5566F 7??$'Hr#   c                    | j         }|j        }t          j        |d          }|                     |d          }t          ||           t          j        |d d d df         d          }|                     |d d d df         d          }t          ||           | j        j        }t          j        |d          }|                     |d d d f         d          }t          ||           d S )Nr3   rG   rh   )r   r   r   	lagmat2dsr  r   r   )r   r   npdatar   r   s        r!   test_lagmat2ds_numpyz"TestLagmat2DS.test_lagmat2ds_numpy  s    }$VQ//))&!4468,,,$VAAArrE]A66))&BQB-;;68,,,#$VQ//))&D/1==68,,,,,r#   c                    | j         }t          j        |d          }|                     |j        d          }t          ||           t          j        |j        d d d df         dd          }|                     |j        d d d df         d          }|dd          }t          ||           | j        }t          j        |d          }|                     |j        d d d f         d          }t          ||           d S )Nr3   rG   r   r   rh   )r   r   r  r  r   r   r   r   )r   r   r   r   s       r!   test_lagmat2ds_pandasz#TestLagmat2DS.test_lagmat2ds_pandas  s   }$T1--))$+q9968,,,$TYqqq"1"u%5qvFFF))$+aaa!e*<a@@ABB<68,,,{$T1--))$+aaag*>BB68,,,,,r#   c                    | j         }t          j        |dd          }|                     |j        d          }g }|D ]X}t          d          D ]F}|dk    r|                    |           |                    |dz   t          |          z              GYt          j	        ||j
        |          }t          ||           t          j        |j        d d d df         ddd	          }|                     |j        d d d df         d          }g }|j        d d d df         D ]X}t          d
          D ]F}|dk    r|                    |           |                    |dz   t          |          z              GYt          j	        ||j
        |          }|j        dd          }t          ||           | j        }t          j        |dd          }|                     |j        d d d f         d          }g }|j        }t          d          D ]F}|dk    r|                    |           |                    |dz   t          |          z              Gt          j	        ||j
        |          }t          ||           d S )Nr3   Tr   rG   r   r   r  r   )r   r   r%   rh   ri   )r   r   r  r  r   rM   appendr   r   r   r   r   r   r   rS  )r   r   r   r   r   rZ  r   s          r!   test_lagmat2ds_use_pandasz'TestLagmat2DS.test_lagmat2ds_use_pandas  s   }$T1>>>))$+q99 	7 	7Aa 7 7199KKNNNNKKE	CII 56666	7
 <
DIII68,,,$Iaaa!eaDv
 
 
 ))$+aaa!e*<a@@111bqb5! 	7 	7Aa 7 7199KKNNNNKKE	CII 56666	7
 <
DIII=$68,,,{$T1>>>))$+aaag*>BBI!HH 	3 	3DqyyAAID		12222<
DIII68,,,,,r#   c                 p   t          j        d          }t          j        t                    5  t          j        |d           d d d            n# 1 swxY w Y   t          j        d          }t          j        t                    5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr3   rh   )r~   r3   r3   )rH   rI   r%  r&  r   r   r  r   rI  s     r!   test_3d_errorzTestLagmat2DS.test_3d_error   s   x{{]:&& 	) 	)a(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) x$$]:&& 	) 	)a(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s#   AAAB++B/2B/N)r  )r)  r*  r+  r,  r   staticmethodr  r  r  r  r  rB   r#   r!   r  r    s        
& 
& [
&    \- - - - - - *- *- *-X) ) ) ) )r#   r  c                     t           j                            dd          } t          j        t
          d          5  t          j        | dd          }d d d            n# 1 swxY w Y   |d         \  }}|\  }}}|j        |j	        usJ d S )Nr~   r3   verboser#  F)r  r  r2   )
rH   rP   randr%  warnsFutureWarningr   grangercausalitytestscentered_tssuncentered_tss)r   outr  modelsres2down
res2djointrconstrs          r!   test_grangercausalityr  *  s    9>>#q!!D	m9	5	5	5 M M-d1eLLLM M M M M M M M M M M M M M MVNFF$*!Hj'"**CCCCCCCs   A  A$'A$):__doc__statsmodels.compat.pandasr   r   numpyrH   numpy.testingr   r   r   r   pandasr   r%  statsmodelsr	   statsmodels.datasetsr
   statsmodels.tsar   statsmodels.tsa.tests.resultsr   )statsmodels.tsa.tests.results.datamlw_tlsr   r   r   r   statsmodels.tsa.tsatoolstsatsatoolsrN   r   r   rvsdataxar2xor   r   r"   r-   r8   r<   rC   marksmokerK   rY   r]   rb   rf   rl   rt   rv   r<  r>  rb  r  r  rB   r#   r!   <module>r     s8    N M M M M M M M                     " " " " " " * * * * * * % % % % % % 2 2 2 2 2 2            ) ( ( ( ( ( ( ( ( . . . . . . . .	$%%y6
V  J J JB B BC C C
 
 
 ! ! !; ; ;; ; ;7 7 72 2 2
9 9 9
: : :U< U< U< U< U< U< U< U<p
< < <HN HN HN HN HN HN HN HNVJD JD JD JD JD JD JD JDZq) q) q) q) q) q) q) q)hD D D D Dr#   