25 lines
744 B
Python
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()
|