Add GTL cohort composition backtest
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
"""Tests for the evidence-selected GTL composition matrix."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from scripts import run_gtl_confirmation_matrix as matrix
|
||||
|
||||
|
||||
def test_confirmation_matrix_is_pre_registered_and_well_formed():
|
||||
assert len(matrix.GTL_CONFIRMATION_ARMS) == 13
|
||||
assert matrix.GTL_CONFIRMATION_ARMS[0]["name"] == "control"
|
||||
names = [arm["name"] for arm in matrix.GTL_CONFIRMATION_ARMS]
|
||||
assert len(names) == len(set(names))
|
||||
|
||||
for arm in matrix.GTL_CONFIRMATION_ARMS:
|
||||
config = matrix._config(arm)
|
||||
assert config["mode"] in {"intersection", "union"}
|
||||
if config["mode"] == "union":
|
||||
assert len(config["confirmations"]) == 1
|
||||
for confirmation in config["confirmations"]:
|
||||
assert confirmation["name"] in {
|
||||
"touch_0_25pct",
|
||||
"strength_1000",
|
||||
"merge_0_25pct",
|
||||
"pivots_none",
|
||||
}
|
||||
|
||||
|
||||
def test_signature_uses_only_control_parity_fields():
|
||||
arm = {
|
||||
"candidates": 100,
|
||||
"qualified": 10,
|
||||
"qualified_net_avg_r": 0.2,
|
||||
"qualified_net_avg_r_ex_top5": 0.05,
|
||||
"full_book": {"sharpe": 2.0},
|
||||
"holdout": {"train": {"sharpe": 1.0}},
|
||||
"unrelated": "ignored",
|
||||
}
|
||||
assert "unrelated" not in matrix._signature(arm)
|
||||
assert matrix._signature(arm)["full_book"] == {"sharpe": 2.0}
|
||||
Reference in New Issue
Block a user