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