U
    Kvf
                     @   s   d Z ddlZddlZddlmZ ddlZddlm	Z	 dZ
dZdZdZd	Zd
ZdZejejeZejeddZejeddZejeddZejeddZG dd dZG dd deZG dd deZG dd deZG dd deZ dS )a%  
Test for BDS test for IID time series

References
----------

Kanzler, Ludwig. 1998.
BDS: MATLAB Module to Calculate Brock, Dechert & Scheinkman Test for
Independence.
Statistical Software Components. Boston College Department of Economics.
http://ideas.repec.org/c/boc/bocode/t871803.html.

    N)assert_almost_equal)bds                     resultszbds_data.csv)headerzbds_results.csvc                   @   s    e Zd ZdZdd Zdd ZdS )CheckBDSzF
    Test BDS

    Test values from Kanzler's MATLAB program bds.
    c                 C   s   t | jd | jt d S )Nr   )r   res	bds_stats	DECIMAL_8self r   B/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/tsa/tests/test_bds.py	test_stat-   s    zCheckBDS.test_statc                 C   s   t | jd | jt d S )Nr
   )r   r   pvaluesr   r   r   r   r   test_pvalue0   s    zCheckBDS.test_pvalueN)__name__
__module____qualname____doc__r   r   r   r   r   r   r   '   s   r   c                   @   s   e Zd ZdZedd ZdS )TestBDSSequencez%
    BDS Test on np.arange(1,26)
    c                 C   sr   t t d dk | _ t| j d jdd  | _t| j d jdd  | _td td   | _t| jd| _	d S )Nr   r
   r	   r   r   
r   nparrayZilocr   r   dataZnotnullr   r   clsr   r   r   setup_class8   s
    zTestBDSSequence.setup_classNr   r   r   r   classmethodr#   r   r   r   r   r   4   s   r   c                   @   s   e Zd ZdZedd ZdS )TestBDSNormalz/
    BDS Test on np.random.normal(size=25)
    c                 C   sr   t t d dk | _ t| j d jdd  | _t| j d jdd  | _td td   | _t| jd| _	d S )Nr   r	   r
   r   r   r   r!   r   r   r   r#   F   s
    zTestBDSNormal.setup_classNr$   r   r   r   r   r&   B   s   r&   c                   @   s   e Zd ZdZedd ZdS )TestBDSCombinedzR
    BDS Test on np.r_[np.random.normal(size=25), np.random.uniform(size=25)]
    c                 C   sr   t t d dk | _ t| j d jdd  | _t| j d jdd  | _td td   | _t| jd| _	d S )Nr   r   r	   r
   r   r   r!   r   r   r   r#   T   s
    zTestBDSCombined.setup_classNr$   r   r   r   r   r'   P   s   r'   c                   @   s   e Zd ZdZedd ZdS )TestBDSGDPC1z
    BDS Test on GDPC1: 1947Q1 - 2013Q1

    References
    ----------
    http://research.stlouisfed.org/fred2/series/GDPC1
    c                 C   sr   t t d dk | _ t| j d jdd  | _t| j d jdd  | _td td   | _t| jd| _	d S )Nr   r   r	   r
   r   r   r   r!   r   r   r   r#   f   s
    zTestBDSGDPC1.setup_classNr$   r   r   r   r   r(   ^   s   r(   )!r   osZnumpyr   Znumpy.testingr   ZpandaspdZstatsmodels.tsa.stattoolsr   r   Z	DECIMAL_6Z	DECIMAL_5Z	DECIMAL_4Z	DECIMAL_3Z	DECIMAL_2Z	DECIMAL_1pathdirnameabspath__file__curdirjoinZ	data_fileZread_csvr    Zres_filer   r   r   r&   r'   r(   r   r   r   r   <module>   s,   