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