makeService(); $this->assertSame(['2025-08-01', '2026-07-31'], $service->deriveSchoolYearBounds('2025-2026')); $this->assertSame('2025-2026', $service->schoolYearForDate('2025-09-01')); } public function test_window_weeks_for_violation_code(): void { $service = $this->makeService(); $this->assertSame(3, $service->windowWeeksForViolationCode('ABS_2')); $this->assertSame(4, $service->windowWeeksForViolationCode('MIX')); $this->assertSame(5, $service->windowWeeksForViolationCode('ABS_4')); } private function makeService(): ViolationRuleEngineService { $tracking = new AttendanceTracking; $parentLookup = Mockery::mock(AttendanceParentLookupService::class); return new ViolationRuleEngineService($tracking, $parentLookup); } }