StaySense/backend/tests/test_score_engine.py

25 lines
744 B
Python

import datetime as dt
import unittest
from score_engine import ampel, clamp_score, night_window_for
class ScoreEngineTests(unittest.TestCase):
def test_ampel_thresholds(self) -> None:
self.assertEqual(ampel(70), "green")
self.assertEqual(ampel(45), "yellow")
self.assertEqual(ampel(10), "red")
def test_clamp_score(self) -> None:
self.assertEqual(clamp_score(-20), 0)
self.assertEqual(clamp_score(120), 100)
def test_night_window(self) -> None:
ref = dt.datetime(2026, 2, 15, 23, 30, tzinfo=dt.timezone.utc)
start, end = night_window_for(ref)
self.assertEqual(start.hour, 22)
self.assertEqual(end.hour, 6)
if __name__ == "__main__":
unittest.main()