
    !g
                        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"                  j%                  ej"                  j'                  e            Zej"                  j-                  edd      Z ej0                  ed      Zej"                  j-                  edd      Z ej0                  ed      Z G d d      Z G d de      Z G d de      Z G d de      Z G d de      Z y)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                       e Zd ZdZd Zd Zy)CheckBDSzF
    Test BDS

    Test values from Kanzler's MATLAB program bds.
    c                 T    t        | j                  d   | j                  t               y )Nr   )r   res	bds_stats	DECIMAL_8selfs    [/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/tests/test_bds.py	test_statzCheckBDS.test_stat-   s    DHHQKC    c                 T    t        | j                  d   | j                  t               y )Nr   )r   r   pvaluesr   r   s    r   test_pvaluezCheckBDS.test_pvalue0   s    DHHQKyAr   N)__name__
__module____qualname____doc__r   r    r   r   r   r   '   s    
DBr   r   c                        e Zd ZdZed        Zy)TestBDSSequencez%
    BDS Test on np.arange(1,26)
    c                    t         t         d   dk(     | _         t        j                  | j                   d   j                  dd        | _        t        j                  | j                   d   j                  dd        | _        t        d   t        d   j                            | _        t        | j                  d      | _	        y )Nr   r   r
   r	   r   
r   nparrayilocr   r   datanotnullr   r   clss    r   setup_classzTestBDSSequence.setup_class8       gajAo.Q!4!4QR!89hhs{{1~221267747??,-chh"r   Nr   r   r   r   classmethodr,   r    r   r   r"   r"   4        # #r   r"   c                        e Zd ZdZed        Zy)TestBDSNormalz/
    BDS Test on np.random.normal(size=25)
    c                    t         t         d   dk(     | _         t        j                  | j                   d   j                  dd        | _        t        j                  | j                   d   j                  dd        | _        t        d   t        d   j                            | _        t        | j                  d      | _	        y )Nr   r
   r   r	   r   r$   r*   s    r   r,   zTestBDSNormal.setup_classF   r-   r   Nr.   r    r   r   r2   r2   B   r0   r   r2   c                        e Zd ZdZed        Zy)TestBDSCombinedzR
    BDS Test on np.r_[np.random.normal(size=25), np.random.uniform(size=25)]
    c                    t         t         d   dk(     | _         t        j                  | j                   d   j                  dd        | _        t        j                  | j                   d   j                  dd        | _        t        d   t        d   j                            | _        t        | j                  d      | _	        y )Nr   r	   r
   r   r   r$   r*   s    r   r,   zTestBDSCombined.setup_classT   r-   r   Nr.   r    r   r   r5   r5   P   r0   r   r5   c                        e Zd ZdZed        Zy)TestBDSGDPC1z
    BDS Test on GDPC1: 1947Q1 - 2013Q1

    References
    ----------
    http://research.stlouisfed.org/fred2/series/GDPC1
    c                    t         t         d   dk(     | _         t        j                  | j                   d   j                  dd        | _        t        j                  | j                   d   j                  dd        | _        t        d   t        d   j                            | _        t        | j                  d      | _	        y )Nr   r   r
   r   r	   r   r$   r*   s    r   r,   zTestBDSGDPC1.setup_classf   r-   r   Nr.   r    r   r   r8   r8   ^   s     # #r   r8   )!r   osnumpyr%   numpy.testingr   pandaspdstatsmodels.tsa.stattoolsr   r   	DECIMAL_6	DECIMAL_5	DECIMAL_4	DECIMAL_3	DECIMAL_2	DECIMAL_1pathdirnameabspath__file__curdirjoin	data_fileread_csvr(   res_filer   r   r"   r2   r5   r8   r    r   r   <module>rO      s    
  -  )								2	3GGLLN;	r{{9T*77<<	+<=
"++ht
,
B 
B#h ##H ##h ##8 #r   