calculate([ new OperationInterval( admittedAt: new DateTimeImmutable('2026-04-01 10:00:00'), operationAt: new DateTimeImmutable('2026-04-03 09:00:00'), ), new OperationInterval( admittedAt: new DateTimeImmutable('2026-04-05 10:00:00'), operationAt: new DateTimeImmutable('2026-04-06 09:00:00'), ), ]); expect($result->total)->toBe(3) ->and($result->count)->toBe(2) ->and($result->average)->toBe(1.5); }); it('ignores invalid preoperative intervals', function () { $calculator = new PreoperativeDaysCalculator; $result = $calculator->calculate([ new OperationInterval( admittedAt: new DateTimeImmutable('2026-04-03 10:00:00'), operationAt: new DateTimeImmutable('2026-04-01 09:00:00'), ), ]); expect($result->total)->toBe(0) ->and($result->count)->toBe(0) ->and($result->average)->toBe(0.0); });