feat(rectification): drive questions from candidate contrast

This commit is contained in:
Jesse_Chen
2026-07-31 13:17:00 +08:00
parent fdf791953e
commit a7a11a1a7a
21 changed files with 703 additions and 42 deletions
@@ -48,6 +48,56 @@ class RectificationDiagnosticsClustersTest(unittest.TestCase):
"end": "05:16",
})
def test_candidate_split_reports_actual_candidate_deltas_not_global_activation(self):
stable_event = "00000000-0000-4000-8000-000000000001"
separating_event = "00000000-0000-4000-8000-000000000002"
rows = [
{
"time": "05:13", "score": 100, "missing_layers": [],
"evidence": [
{"event_id": stable_event, "domain": "relationship", "candidate_time": "05:13", "rule_ids": ["D9:a"], "points": 50},
{"event_id": separating_event, "domain": "education", "candidate_time": "05:13", "rule_ids": ["D24:a"], "points": 50},
],
},
{
"time": "05:14", "score": 90, "missing_layers": [],
"evidence": [
{"event_id": stable_event, "domain": "relationship", "candidate_time": "05:14", "rule_ids": ["D9:b"], "points": 50},
{"event_id": separating_event, "domain": "education", "candidate_time": "05:14", "rule_ids": ["D24:b"], "points": 40},
],
},
]
built = {
"date_sensitivity": [],
"static_contexts": [
{"feature": {
"time": "05:13",
"varga_ascendants": {"D9": 1, "D24": 2},
"arudha_signs": {},
"fingerprints": {"ashtakavarga": "same", "shadbala": "same"},
}},
{"feature": {
"time": "05:14",
"varga_ascendants": {"D9": 1, "D24": 3},
"arudha_signs": {},
"fingerprints": {"ashtakavarga": "same", "shadbala": "same"},
}},
],
"matrix": {
stable_event: {
"05:13": {"points": 50, "technique_layers": ["D9", "D24"]},
"05:14": {"points": 50, "technique_layers": ["D9", "D24"]},
},
separating_event: {
"05:13": {"points": 50, "technique_layers": ["D9", "D24"]},
"05:14": {"points": 40, "technique_layers": ["D9", "D24"]},
},
},
}
result = run_diagnostics({"events": [{"id": stable_event, "domain": "relationship"}, {"id": separating_event, "domain": "education"}]}, rows, built)
self.assertEqual(result["candidate_splits"][0]["technique_layers"], ["D24"])
self.assertEqual(result["candidate_splits"][0]["event_ids"], [separating_event])
if __name__ == "__main__":
unittest.main()