Verbraucher 1-Stufig um Mindestzeiten erweitern
Tests / test (push) Successful in 42s

This commit is contained in:
dh
2026-09-17 10:23:39 +00:00
parent 49fe18c2eb
commit 5c5ef73fb8
14 changed files with 487 additions and 184 deletions
+22
View File
@@ -34,6 +34,28 @@ final class EinStufigRegler
return [0, $nennleistung];
}
public static function freigabezeitpunkt(
bool $eingeschaltet,
int $bestaetigtSeit,
int $mindesteinschaltdauer,
int $mindestausschaltdauer
): int {
if ($bestaetigtSeit < 0 || $mindesteinschaltdauer < 0 || $mindestausschaltdauer < 0) {
throw new InvalidArgumentException('Zeitwerte duerfen nicht negativ sein.');
}
return $bestaetigtSeit + ($eingeschaltet ? $mindesteinschaltdauer : $mindestausschaltdauer);
}
public static function restMindestzeit(int $freigabezeitpunkt, int $jetzt): int
{
if ($freigabezeitpunkt < 0 || $jetzt < 0) {
throw new InvalidArgumentException('Zeitwerte duerfen nicht negativ sein.');
}
return max(0, $freigabezeitpunkt - $jetzt);
}
public static function mussMindestlaufzeitErzwingen(
int $tageslaufzeit,
int $mindestlaufzeit,