You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
1.1 KiB
24 lines
1.1 KiB
import pytest
|
|
|
|
from src.models import TurnEvent, TurnFrameResult, TurnLevel, TurnTrackState
|
|
|
|
|
|
def test_turn_frame_success_failure_and_levels() -> None:
|
|
result = TurnFrameResult(1, 2, "now", .2, True, True, True, 0, 25, 25, 25,
|
|
"positive", True, False, TurnLevel.WEAK.value, .1)
|
|
assert result.yaw_delta_toward_signage == 25
|
|
failure = TurnFrameResult(1, 3, "later", .3, False, False, False, None, None, None, None,
|
|
"positive", False, False, "not_evaluable", 0, "no_face")
|
|
assert failure.turn_level == "not_evaluable"
|
|
with pytest.raises(ValueError):
|
|
TurnFrameResult(1, 1, "x", 0, True, True, False, None, 0, None, None,
|
|
"bad", False, False, "none", 0)
|
|
|
|
|
|
def test_turn_state_rates_and_event() -> None:
|
|
state = TurnTrackState(1, total_frames=4, pose_frames=2, face_detected_frames=3)
|
|
assert state.face_detection_rate == .75
|
|
assert state.pose_estimation_rate == .5
|
|
assert state.turn_level == "not_evaluable"
|
|
event = TurnEvent("turn_confirmed", 1, 2, "now", .2, 20, 20, "weak", {"注記": "確認"})
|
|
assert event.metadata["注記"] == "確認"
|
|
|