feat: complete verifiable birth-time rectification flow

This commit is contained in:
Jesse_Chen
2026-07-21 22:16:18 +08:00
parent eb8ed8bee4
commit bfc6870614
117 changed files with 6215 additions and 1038 deletions
@@ -5,7 +5,7 @@ import re
import unicodedata
from pathlib import Path
from scripts.dynamic_rectification_opportunities import _dimension_opportunity
from scripts.dynamic_rectification_opportunities import _dimension_opportunity, opportunities
TASK2_PACKET_FIXTURE = (
Path(__file__).parents[1]
@@ -132,3 +132,35 @@ def test_same_month_windows_receive_distinct_day_precision_labels() -> None:
]
assert len(normalized) == len(set(normalized))
assert all(len(re.findall(r"\d+", label)) >= 4 for label in labels)
def test_fact_priority_changes_question_order_without_changing_public_information_gain() -> None:
candidates = ["04:00", "04:01"]
windows = []
for dimension, priority in (("career", 0.0), ("relationship", 1.0)):
for index, (start, end) in enumerate((
("2018-01-01", "2020-12-31"),
("2021-01-01", "2023-12-31"),
)):
windows.append({
"window_group": "periods-2",
"dimension_code": dimension,
"window_start": start,
"window_end": end,
"activations": {
"04:00": 1.0 if index == 0 else 0.0,
"04:01": 0.0 if index == 0 else 1.0,
},
"missing_layers": [],
"fact_selection_priority": priority,
"fact_priority_version": "birth-time-question-fact-priority-v1",
"event_fact_selection_priority": 1.0 if dimension == "career" else 0.0,
"event_fact_priority_version": "birth-time-question-event-fact-priority-v1",
})
result = opportunities({"candidate_times": candidates, "windows": windows})
assert [item["dimension_code"] for item in result] == ["career", "relationship"]
assert [item["estimated_information_gain"] for item in result] == [1.0, 1.0]
assert all("_fact_selection_priority" not in item for item in result)
assert all("_event_fact_selection_priority" not in item for item in result)