import pandas as pd from src.data.downloader import load_data from scripts.strategies.DIP01_dip_buy import Dip01DipBuy def test_dip01_generates_long_signals_with_exits(): df = load_data("BTC", "1h").iloc[-5000:].reset_index(drop=True) ts = pd.to_datetime(df["timestamp"], unit="ms", utc=True) sigs = Dip01DipBuy().generate_signals(df, ts, asset="BTC", tf="1h") assert len(sigs) > 0 s = sigs[0] assert s.direction == 1 assert {"tp", "sl", "max_bars"} <= set(s.metadata)