id); self::assertSame([], $days[1]['slots']); // A slot outside the week is not bucketed anywhere. $ids = array_merge(...array_map( static fn (array $day): array => array_map(static fn (AvailabilitySlot $s): ?int => $s->id, $day['slots']), $days )); self::assertNotContains(4, $ids); } public function testDaysCrossesMonthBoundary(): void { $days = WeekCalendar::days('2026-06-29', []); self::assertSame('2026-06-29', $days[0]['date']); self::assertSame('2026-07-05', $days[6]['date']); } }