$overrides dimension => ceiling, for tests and reviewed rollouts */ public function __construct(private array $overrides = []) { } public function maxChunks(int $dimension): int { if ($dimension < 1 || $dimension > self::MAX_DIMENSION) { return 0; } if (isset($this->overrides[$dimension])) { return max(0, $this->overrides[$dimension]); } if ($dimension <= self::REFERENCE_DIMENSION) { return self::REFERENCE_CHUNKS; } return max(self::FLOOR, intdiv(self::REFERENCE_CHUNKS * self::REFERENCE_DIMENSION, $dimension)); } /** @return array{ok:bool, chunks:int, limit:int} */ public function check(int $dimension, int $chunks): array { $limit = $this->maxChunks($dimension); return ['ok' => $limit > 0 && $chunks <= $limit, 'chunks' => $chunks, 'limit' => $limit]; } }