feat: decide the staffing split per ski level

This commit is contained in:
fromme committed 2026-11-05 17:04:24 +01:00
1 parent 7aefe88610
commit f9d2ff084d
8 files changed
+158 -66

No files matched your search

+8 -5
View File
@@ -35,9 +35,10 @@ class StaffingRuleTest extends TestCase
public static function combinations(): iterable
{
yield 'guides only' => [self::rule(2), []];
yield 'split with a level per guide' => [self::rule(2, beginner: true, advanced: true, split: true), []];
yield 'split with more levels than guides' => [self::rule(1, beginner: true, advanced: true, split: true), ['split']];
yield 'split without a level' => [self::rule(2, split: true), ['split']];
yield 'both levels taken over, a guide each' => [self::rule(2, beginner: true, advanced: true, splitBeginner: true, splitAdvanced: true), []];
yield 'one guide takes over one of two levels' => [self::rule(1, beginner: true, advanced: true, splitAdvanced: true), []];
yield 'more levels taken over than guides' => [self::rule(1, beginner: true, advanced: true, splitBeginner: true, splitAdvanced: true), ['guides']];
yield 'taking over a level that is off' => [self::rule(2, advanced: true, splitBeginner: true), ['splitBeginner']];
yield 'guiding without a guide' => [self::rule(0, beginner: true, guiding: true), ['guiding']];
yield 'courses without guides' => [self::rule(0, beginner: true), []];
}
@@ -46,7 +47,8 @@ class StaffingRuleTest extends TestCase
int $guides,
bool $beginner = false,
bool $advanced = false,
bool $split = false,
bool $splitBeginner = false,
bool $splitAdvanced = false,
bool $guiding = false,
): StaffingRule {
return (new StaffingRule())
@@ -54,7 +56,8 @@ class StaffingRuleTest extends TestCase
->setGuides($guides)
->setSkiBeginner($beginner)
->setSkiAdvanced($advanced)
->setSplit($split)
->setSplitBeginner($splitBeginner)
->setSplitAdvanced($splitAdvanced)
->setGuiding($guiding)
;
}