Add question bank mastery paths and gap questions

This commit is contained in:
hz
2026-07-31 23:46:46 -05:00
parent 012d0cf196
commit 8c439c6294
28 changed files with 1409 additions and 121 deletions
+14 -1
View File
@@ -19,6 +19,12 @@ func _run() -> void:
await process_frame
_assert(dashboard.system_list.get_child_count() == 14, "dashboard should render all 14 Step 3 systems")
_assert(dashboard.mastery_rows.size() == 14, "dashboard should render one mastery action row per system")
var first_mastery_row: BoxContainer = dashboard.mastery_rows[0]
_assert(not first_mastery_row.vertical, "desktop mastery rows should remain horizontal")
dashboard.size = Vector2(640, 900)
dashboard._update_responsive()
_assert(first_mastery_row.vertical, "narrow mastery rows should stack to avoid clipping")
_assert(dashboard.rating_toggle.button_pressed, "rating should be the default trend mode")
_assert(dashboard.trend_chart.mode == "rating", "chart should initially render rating history")
dashboard._set_trend_mode("accuracy")
@@ -38,7 +44,14 @@ func _dashboard_data() -> Dictionary:
"system": "System %02d" % index,
"correct": 1 if index == 0 else 0,
"total": 1 if index == 0 else 0,
"accuracy": 100 if index == 0 else 0
"accuracy": 100 if index == 0 else 0,
"masteryScore": 82 if index == 0 else 0,
"masteryState": "strong" if index == 0 else "unseen",
"distinctQuestions": 15 if index == 0 else 0,
"difficulty4PlusSuccessful": 4 if index == 0 else 0,
"pendingReviews": 0,
"refreshDue": false,
"recommendedAction": {"type": "practice", "label": "Challenge this system", "questionCount": 10, "difficultyMin": 4, "difficultyMax": 5}
})
var trend: Array = []
for index in range(30):
+2
View File
@@ -251,10 +251,12 @@ func _test_review_content_normalization() -> void:
"teachingPoint": "Teaching"
}],
"system": "System",
"step3System": "Cardiovascular System",
"discipline": "Medicine"
})
_assert(normalized.get("key_takeaway", "") == "Takeaway", "key takeaway should be normalized")
_assert(normalized.get("usmle_pearl", "") == "Pearl", "USMLE pearl should be normalized")
_assert(normalized.get("step3_system", "") == "Cardiovascular System", "official Step 3 system should be normalized")
var review_followups: Array = normalized.get("review_followups", [])
_assert(review_followups.size() == 1, "review follow-ups should be normalized")
_assert(review_followups[0].get("correct_choice_id", "") == "B", "review follow-up answer keys should be normalized")