feat: Spiel-Bewertungs-Utility mit Tests

This commit is contained in:
Alicia (BSN)
2026-06-21 21:50:38 +00:00
parent eebf21a8fc
commit 2d4ccdc971
2 changed files with 90 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
"""Spiel-Bewertungs-Utility für brettspiel-news.de."""
MAX_BEWERTUNG = 10
MIN_BEWERTUNG = 1
def validate_rating(wert: int) -> bool:
"""Validiert eine Spielbewertung.
Prüft, ob die Bewertung im zulässigen Bereich von 1 bis MAX_BEWERTUNG liegt.
Args:
wert: Die zu prüfende Bewertung als Ganzzahl.
Returns:
True, wenn die Bewertung gültig ist.
Raises:
ValueError: Wenn die Bewertung außerhalb von 1 bis 10 liegt.
"""
if wert < MIN_BEWERTUNG or wert > MAX_BEWERTUNG:
raise ValueError(
f"Bewertung {wert} ungültig. Gültiger Bereich: {MIN_BEWERTUNG}{MAX_BEWERTUNG}"
)
return True
def berechne_durchschnitt(bewertungen: list[int]) -> float | None:
"""Berechnet den Durchschnitt einer Liste von Bewertungen.
Validiert jede Bewertung vor der Berechnung. Gibt None zurück,
wenn die Liste leer ist.
Args:
bewertungen: Liste von Bewertungen als Ganzzahlen.
Returns:
Der Durchschnitt als Float, oder None bei leerer Liste.
"""
if not bewertungen:
return None
for wert in bewertungen:
validate_rating(wert)
return sum(bewertungen) / len(bewertungen)