U
    Ãmœd“
  ã                   @   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   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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   ÚosÚ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,   