feat(rectification): add adaptive question selector
This commit is contained in:
@@ -4,11 +4,11 @@ from scripts.active_rectification_questions import build_questionnaire, score_an
|
||||
|
||||
|
||||
def test_active_rectification_questions_generate_choice_based_workflow() -> None:
|
||||
report = build_questionnaire("1955-02-24 19:15", uncertainty_minutes=30)
|
||||
report = build_questionnaire("2001-02-03 10:20", uncertainty_minutes=30)
|
||||
|
||||
assert report["scope"] == "active_birth_time_rectification_questionnaire"
|
||||
assert report["candidate_scan"]["start"] == "1955-02-24 18:45"
|
||||
assert report["candidate_scan"]["end"] == "1955-02-24 19:45"
|
||||
assert report["candidate_scan"]["start"] == "2001-02-03 09:50"
|
||||
assert report["candidate_scan"]["end"] == "2001-02-03 10:50"
|
||||
assert report["candidate_scan"]["candidate_count"] == 61
|
||||
assert len(report["candidate_scan"]["samples"]) == 61
|
||||
assert report["candidate_scan"]["sensitivity_summary"]["method"] == "minute_feature_scan_v2"
|
||||
@@ -25,10 +25,13 @@ def test_active_rectification_questions_generate_choice_based_workflow() -> None
|
||||
)
|
||||
assert report["candidate_scan"]["samples"][0]["cluster"] == "early_candidate_cluster"
|
||||
assert report["candidate_scan"]["samples"][-1]["cluster"] == "late_candidate_cluster"
|
||||
assert report["selection"]["selected_questions"]
|
||||
assert all("factual_reliability" in question for question in report["questions"])
|
||||
assert all("positive_cluster" in question and "negative_cluster" in question for question in report["questions"])
|
||||
|
||||
|
||||
def test_active_rectification_scores_answers_and_selects_next_round() -> None:
|
||||
report = build_questionnaire("1955-02-24 19:15", uncertainty_minutes=30)
|
||||
report = build_questionnaire("2001-02-03 10:20", uncertainty_minutes=30)
|
||||
scored = score_answers(
|
||||
report,
|
||||
{
|
||||
@@ -44,16 +47,17 @@ def test_active_rectification_scores_answers_and_selects_next_round() -> None:
|
||||
assert scored["answered_count"] == 5
|
||||
assert scored["next_round"] == 2
|
||||
assert scored["next_round_questions"]
|
||||
assert scored["next_round_selection"]["selected_questions"]
|
||||
assert scored["candidate_cluster_rankings"][0]["score"] > scored["candidate_cluster_rankings"][-1]["score"]
|
||||
assert "does not convert candidates into birth-time truth" in scored["boundary"]
|
||||
|
||||
|
||||
def test_active_rectification_recasts_candidate_vargas_when_location_is_available() -> None:
|
||||
report = build_questionnaire(
|
||||
"1993-04-17 14:49",
|
||||
uncertainty_minutes=30,
|
||||
lat=36.683333,
|
||||
lon=114.35,
|
||||
"2001-02-03 10:20",
|
||||
uncertainty_minutes=1,
|
||||
lat=25.04,
|
||||
lon=121.56,
|
||||
tz=8,
|
||||
)
|
||||
summary = report["candidate_scan"]["sensitivity_summary"]
|
||||
|
||||
Reference in New Issue
Block a user