# coding: utf-8
import sys
import warnings
from cobra.data.kline import get_klines
sys.path.insert(0, '.')
sys.path.insert(0, '..')
import czsc
from czsc.solid import SolidAnalyze, is_in_tolerance
warnings.warn(f"czsc version is {czsc.__version__}")


def test_in_tolerance():
    assert not is_in_tolerance(10, 10.31, tolerance=0.03)
    assert not is_in_tolerance(10, 9.61, tolerance=0.03)
    assert not is_in_tolerance(10, 9, tolerance=0.03)
    assert is_in_tolerance(10, 10.3, tolerance=0.03)
    assert is_in_tolerance(10, 10.15, tolerance=0.03)
    assert is_in_tolerance(10, 9.8, tolerance=0.03)


def test_solid_analyze():
    ts_code = "000001.SH"
    klines = get_klines(ts_code, end_date='2020-04-03 14:00:00', asset='I', freqs='1min,5min,30min,D')
    sa = SolidAnalyze(klines)

    for name in sa.bs_func.keys():
        for freq in ['1分钟', '5分钟', '30分钟']:
            detail = sa.check_bs(freq, name, pf=False, tolerance=0.03)
            print(detail, "\n\n")




# coding: utf-8
import sys
import warnings
from cobra.data.kline import get_klines
sys.path.insert(0, '.')
sys.path.insert(0, '..')
import czsc
from czsc.solid import SolidAnalyze, is_in_tolerance
warnings.warn(f"czsc version is {czsc.__version__}")


def test_in_tolerance():
    assert not is_in_tolerance(10, 10.31, tolerance=0.03)
    assert not is_in_tolerance(10, 9.61, tolerance=0.03)
    assert not is_in_tolerance(10, 9, tolerance=0.03)
    assert is_in_tolerance(10, 10.3, tolerance=0.03)
    assert is_in_tolerance(10, 10.15, tolerance=0.03)
    assert is_in_tolerance(10, 9.8, tolerance=0.03)


def test_solid_analyze():
    ts_code = "000001.SH"
    klines = get_klines(ts_code, end_date='2020-04-03 14:00:00', asset='I', freqs='1min,5min,30min,D')
    sa = SolidAnalyze(klines)

    for name in sa.bs_func.keys():
        for freq in ['1分钟', '5分钟', '30分钟']:
            detail = sa.check_bs(freq, name, pf=False, tolerance=0.03)
            print(detail, "\n\n")




# coding: utf-8