import importlib.util import sys from pathlib import Path import pandas as pd import pytest def load_module(): path = Path(__file__).resolve().parents[1] / "scripts" / "search_recent_squeeze_breakout_refine.py" spec = importlib.util.spec_from_file_location("search_recent_squeeze_breakout_refine", path) assert spec is not None module = importlib.util.module_from_spec(spec) assert spec.loader is not None sys.modules[spec.name] = module spec.loader.exec_module(module) return module def test_short_exit_return_subtracts_roundtrip_cost(): module = load_module() assert module.exit_return("short", 100.0, 99.0) == pytest.approx(100.0 / 99.0 - 1.0 - module.ROUNDTRIP_COST) def test_ratio_filter_directional(): module = load_module() frame = pd.DataFrame({"ratio": [1.0] * 100 + [0.98]}) assert module.ratio_allows(frame, 100, "short", "directional") is True assert module.ratio_allows(frame, 100, "long", "directional") is False