회기 집계와 기록 복귀 및 감독 근거 링크 수정
Some checks failed
API contract / OpenAPI type drift (push) Failing after 4m46s
Some checks failed
API contract / OpenAPI type drift (push) Failing after 4m46s
This commit is contained in:
parent
aa951c6c4a
commit
1306c524c1
20 changed files with 4631 additions and 60 deletions
|
|
@ -225,6 +225,66 @@ class SupervisionResearchProducerDerivationTest(TestCase):
|
|||
serialized = str([item.signal.model_dump(mode="json") for item in derived])
|
||||
self.assertNotIn("transcript", serialized.lower())
|
||||
|
||||
def test_produced_pointer_uses_canonical_session_review_route(self) -> None:
|
||||
"""세션이 있는 생산 신호는 교수자 세션 리뷰 경로를 가리킨다."""
|
||||
derived = derive_attention_signals(
|
||||
trajectory_rows=[
|
||||
{
|
||||
"learner_id": LEARNER_A,
|
||||
"revision_id": UUID("20000000-0000-0000-0000-000000000003"),
|
||||
"anchor_session_id": SESSION_A,
|
||||
"revision_no": 1,
|
||||
"assessment": {
|
||||
"sessions": [
|
||||
{
|
||||
"session_no": 1,
|
||||
"status": "off_track",
|
||||
"axes": [{"uncertainty": 0.2}],
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
],
|
||||
rupture_rows=[],
|
||||
calibration_rows=[],
|
||||
transfer_rows=[],
|
||||
practice_rows=[],
|
||||
)
|
||||
|
||||
self.assertEqual(len(derived), 1)
|
||||
self.assertEqual(
|
||||
derived[0].signal.evidence[0].route_hint,
|
||||
f"/teach/session/{SESSION_A}/review",
|
||||
)
|
||||
|
||||
def test_produced_pointer_without_session_falls_back_to_teach(self) -> None:
|
||||
"""세션 없는 생산 신호는 교수자 첫 화면으로 안전하게 돌아간다."""
|
||||
derived = derive_attention_signals(
|
||||
trajectory_rows=[],
|
||||
rupture_rows=[],
|
||||
calibration_rows=[],
|
||||
transfer_rows=[
|
||||
{
|
||||
"learner_id": LEARNER_A,
|
||||
"competency_id": "competency.empathy",
|
||||
"transfer_assessment_id": UUID(
|
||||
"50000000-0000-0000-0000-000000000003"
|
||||
),
|
||||
"session_id": None,
|
||||
"assessment_payload": {
|
||||
"eligible": True,
|
||||
"transfer_verified": False,
|
||||
"error_interval": {"lower": 0.1, "upper": 0.3},
|
||||
},
|
||||
"observed_sequence": 1,
|
||||
}
|
||||
],
|
||||
practice_rows=[],
|
||||
)
|
||||
|
||||
self.assertEqual(len(derived), 1)
|
||||
self.assertEqual(derived[0].signal.evidence[0].route_hint, "/teach")
|
||||
|
||||
def test_requires_repeated_overconfidence_and_retry_for_persistent_signals(
|
||||
self,
|
||||
) -> None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue