This repository was archived by the owner on Jul 14, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_promotion.py
More file actions
203 lines (175 loc) · 7.64 KB
/
Copy pathtest_promotion.py
File metadata and controls
203 lines (175 loc) · 7.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
import math
import unittest
import promotion
from promotion import PromotionStage, evaluate_promotion
def exact_boundary_evidence():
"""Return evidence at inclusive boundaries and just above strict ones."""
return {
"research": {
"independent_costed_oos_clusters": 200,
"untouched_oos_clusters": 100,
"oos_folds": 3,
"acceptable_oos_folds": 3,
"latest_oos_fold_positive": True,
"bootstrap_expectancy_lower_bound": 1e-12,
"profit_factor_lower_bound": 1.000000000001,
"deflated_sharpe_probability": 0.95,
"probability_of_backtest_overfitting": 0.20,
"max_single_cluster_pnl_share": 0.20,
"top_five_cluster_pnl_share": 0.50,
"two_x_cost_net_expectancy": 1e-12,
},
"shadow": {
"consecutive_days": 90,
"matured_clusters": 50,
"order_authority_disabled": True,
},
"testnet_engineering": {
"passed_lifecycle_drills": 100,
"required_scenarios_passed": True,
"zero_unreconciled_incidents": True,
},
"mainnet_dry_run": {
"consecutive_days": 30,
"reconciliation_differences": 0,
"incomplete_candle_decisions": 0,
"order_authority_disabled": True,
"alert_drills_passed": True,
"credential_rotation_drill_passed": True,
"operator_response_drills_passed": True,
},
}
class PromotionTests(unittest.TestCase):
def test_missing_evidence_fails_closed_in_research(self):
result = evaluate_promotion({})
self.assertEqual(result["stage"], PromotionStage.RESEARCH.value)
self.assertFalse(result["production_enabled"])
self.assertTrue(result["human_approval_required"])
self.assertGreater(len(result["blockers"]), 0)
def test_malformed_evidence_fails_closed(self):
malformed_values = [None, "not evidence", [], {"research": "invalid"}]
for evidence in malformed_values:
with self.subTest(evidence=evidence):
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], PromotionStage.RESEARCH.value)
self.assertFalse(result["production_enabled"])
self.assertGreater(len(result["blockers"]), 0)
def test_non_finite_and_boolean_metrics_fail_closed(self):
for key, value in (
("bootstrap_expectancy_lower_bound", math.nan),
("profit_factor_lower_bound", math.inf),
("independent_costed_oos_clusters", True),
):
with self.subTest(key=key, value=value):
evidence = exact_boundary_evidence()
evidence["research"][key] = value
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], PromotionStage.RESEARCH.value)
def test_contradictory_research_counts_fail_closed(self):
inconsistent_values = (
("untouched_oos_clusters", 201),
("acceptable_oos_folds", 4),
)
for key, value in inconsistent_values:
with self.subTest(key=key):
evidence = exact_boundary_evidence()
evidence["research"][key] = value
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], PromotionStage.RESEARCH.value)
def test_every_oos_fold_must_be_acceptable(self):
evidence = exact_boundary_evidence()
evidence["research"]["oos_folds"] = 4
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], PromotionStage.RESEARCH.value)
self.assertTrue(
any("must equal" in blocker for blocker in result["blockers"])
)
def test_explicit_safety_evidence_fails_closed_when_false(self):
cases = (
("shadow", "order_authority_disabled", PromotionStage.SHADOW),
(
"testnet_engineering",
"required_scenarios_passed",
PromotionStage.TESTNET_ENGINEERING,
),
(
"testnet_engineering",
"zero_unreconciled_incidents",
PromotionStage.TESTNET_ENGINEERING,
),
(
"mainnet_dry_run",
"order_authority_disabled",
PromotionStage.MAINNET_DRY_RUN,
),
(
"mainnet_dry_run",
"alert_drills_passed",
PromotionStage.MAINNET_DRY_RUN,
),
(
"mainnet_dry_run",
"credential_rotation_drill_passed",
PromotionStage.MAINNET_DRY_RUN,
),
(
"mainnet_dry_run",
"operator_response_drills_passed",
PromotionStage.MAINNET_DRY_RUN,
),
)
for section, key, expected_stage in cases:
with self.subTest(section=section, key=key):
evidence = exact_boundary_evidence()
evidence[section][key] = False
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], expected_stage.value)
self.assertTrue(any(key in item for item in result["blockers"]))
def test_research_boundary_advances_only_to_shadow(self):
evidence = exact_boundary_evidence()
evidence.pop("shadow")
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], PromotionStage.SHADOW.value)
self.assertTrue(any("consecutive_days" in item for item in result["blockers"]))
self.assertFalse(result["production_enabled"])
def test_each_completed_phase_advances_one_stage(self):
evidence = exact_boundary_evidence()
evidence.pop("testnet_engineering")
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], PromotionStage.TESTNET_ENGINEERING.value)
evidence = exact_boundary_evidence()
evidence.pop("mainnet_dry_run")
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], PromotionStage.MAINNET_DRY_RUN.value)
def test_exact_boundaries_reach_canary_review_only(self):
result = evaluate_promotion(exact_boundary_evidence())
self.assertEqual(result["stage"], PromotionStage.CANARY_REVIEW.value)
self.assertEqual(
result["highest_eligible_stage"], PromotionStage.CANARY_REVIEW.value
)
self.assertFalse(result["production_enabled"])
self.assertTrue(result["human_approval_required"])
self.assertTrue(any("separate human approval" in item for item in result["blockers"]))
def test_strict_positive_research_bounds_reject_zero_and_one(self):
for key, value in (
("bootstrap_expectancy_lower_bound", 0.0),
("profit_factor_lower_bound", 1.0),
("two_x_cost_net_expectancy", 0.0),
):
with self.subTest(key=key):
evidence = exact_boundary_evidence()
evidence["research"][key] = value
result = evaluate_promotion(evidence)
self.assertEqual(result["stage"], PromotionStage.RESEARCH.value)
def test_no_production_enable_function_is_exposed(self):
exposed_callables = {
name
for name in promotion.__all__
if callable(getattr(promotion, name, None))
}
self.assertNotIn("enable_production", exposed_callables)
self.assertEqual(
promotion.__all__, ["PromotionStage", "evaluate_promotion"]
)
if __name__ == "__main__":
unittest.main()