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
920 B

import pytest
from src.config_loader import TurnDetectionSettings
from src.turn_rules import classify_turn_level, yaw_delta_toward_signage
def config() -> TurnDetectionSettings:
return TurnDetectionSettings(True, "positive", "first_valid", .8, 3, 10, 20, 35, 50,
.2, .3, .3, 5, .2, .2, True, .3, True)
def test_signage_delta_directions() -> None:
assert yaw_delta_toward_signage(30, 10, "positive") == (20, 20)
assert yaw_delta_toward_signage(-10, 10, "negative") == (-20, 20)
with pytest.raises(ValueError):
yaw_delta_toward_signage(1, 0, "bad")
@pytest.mark.parametrize(("delta", "level"), [
(9.99, "none"), (10, "subtle"), (19.99, "subtle"), (20, "weak"),
(34.99, "weak"), (35, "medium"), (49.99, "medium"), (50, "strong"),
])
def test_level_boundaries(delta: float, level: str) -> None:
assert classify_turn_level(delta, config()) == level