"""Tests for the single-command GTL research matrix.""" from __future__ import annotations from scripts import run_gtl_tuning_matrix as matrix def test_matrix_is_single_variable_and_has_unique_names(): assert len(matrix.GTL_TUNING_ARMS) == 20 assert matrix.GTL_TUNING_ARMS[0]["name"] == "control" names = [arm["name"] for arm in matrix.GTL_TUNING_ARMS] assert len(names) == len(set(names)) for arm in matrix.GTL_TUNING_ARMS[1:]: config = matrix._arm_config(arm) changed = [ key for key, value in matrix.BASE_CONFIG.items() if config[key] != value ] assert len(changed) == 1, arm["name"] def _compact_result(*, sharpe: float, drawdown: float, trades: int, robust_r: float) -> dict: return { "full_book": { "sharpe": sharpe, "max_drawdown_pct": drawdown, "trades": trades, }, "holdout": { "train": {"sharpe": sharpe}, "test": {"sharpe": sharpe}, }, "qualified_net_avg_r_ex_top5": robust_r, } def test_screen_requires_every_pre_registered_guardrail(): control = _compact_result(sharpe=2.0, drawdown=20.0, trades=100, robust_r=0.1) passing = _compact_result(sharpe=2.1, drawdown=19.0, trades=90, robust_r=0.05) failing = _compact_result(sharpe=2.1, drawdown=19.0, trades=79, robust_r=0.05) passed = matrix._screen_arm(passing, control) failed = matrix._screen_arm(failing, control) assert passed["advances"] is True assert passed["passed"] == passed["total"] == 6 assert failed["advances"] is False assert failed["checks"]["retains_80pct_trades"] is False