Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/TimeSpan.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
final readonly class TimeSpan
{
private const int MULT_NANOSECONDS = 1;
private const int MULT_MICROSECONDS = self::MULT_NANOSECONDS * 1000;
private const int MULT_MILLISECONDS = self::MULT_MICROSECONDS * 1000;
private const int MULT_SECONDS = self::MULT_MILLISECONDS * 1000;
private const int MULT_MINUTES = self::MULT_SECONDS * 60;
private const int MULT_HOURS = self::MULT_MINUTES * 60;
private const int MULT_DAYS = self::MULT_HOURS * 24;
private const int MULT_MICROSECONDS = 1_000;
private const int MULT_MILLISECONDS = 1_000_000;
private const int MULT_SECONDS = 1_000_000_000;
private const int MULT_MINUTES = 60_000_000_000;
private const int MULT_HOURS = 3_600_000_000_000;
private const int MULT_DAYS = 86_400_000_000_000;

public static function diff(\DateTimeImmutable $a, \DateTimeImmutable $b): self
{
Expand Down Expand Up @@ -50,8 +50,8 @@

$nanoseconds = \sprintf('%.0f', round($nanoseconds));

if ($nanoseconds > 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) > 0

Check warning on line 53 in src/TimeSpan.php

View workflow job for this annotation

GitHub Actions / check / infection

Escaped Mutant for Mutator "GreaterThan": @@ @@ return new self($nanoseconds); } $nanoseconds = \sprintf('%.0f', round($nanoseconds)); - if ($nanoseconds > 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) > 0 || $nanoseconds < 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) > 0) { + if ($nanoseconds > 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) >= 0 || $nanoseconds < 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) > 0) { throw new \OutOfBoundsException('The specified time span cannot be expressed as integer nanoseconds due to overflow.'); } return new self((int) $nanoseconds);

Check warning on line 53 in src/TimeSpan.php

View workflow job for this annotation

GitHub Actions / check / infection

Escaped Mutant for Mutator "GreaterThan": @@ @@ return new self($nanoseconds); } $nanoseconds = \sprintf('%.0f', round($nanoseconds)); - if ($nanoseconds > 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) > 0 || $nanoseconds < 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) > 0) { + if ($nanoseconds >= 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) > 0 || $nanoseconds < 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) > 0) { throw new \OutOfBoundsException('The specified time span cannot be expressed as integer nanoseconds due to overflow.'); } return new self((int) $nanoseconds);
|| $nanoseconds < 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) > 0

Check warning on line 54 in src/TimeSpan.php

View workflow job for this annotation

GitHub Actions / check / infection

Escaped Mutant for Mutator "GreaterThan": @@ @@ return new self($nanoseconds); } $nanoseconds = \sprintf('%.0f', round($nanoseconds)); - if ($nanoseconds > 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) > 0 || $nanoseconds < 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) > 0) { + if ($nanoseconds > 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) > 0 || $nanoseconds < 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) >= 0) { throw new \OutOfBoundsException('The specified time span cannot be expressed as integer nanoseconds due to overflow.'); } return new self((int) $nanoseconds);

Check warning on line 54 in src/TimeSpan.php

View workflow job for this annotation

GitHub Actions / check / infection

Escaped Mutant for Mutator "LessThan": @@ @@ return new self($nanoseconds); } $nanoseconds = \sprintf('%.0f', round($nanoseconds)); - if ($nanoseconds > 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) > 0 || $nanoseconds < 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) > 0) { + if ($nanoseconds > 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MAX) > 0 || $nanoseconds <= 0 && self::compareUnsignedNumericStrings($nanoseconds, (string) PHP_INT_MIN) > 0) { throw new \OutOfBoundsException('The specified time span cannot be expressed as integer nanoseconds due to overflow.'); } return new self((int) $nanoseconds);
) {
throw new \OutOfBoundsException('The specified time span cannot be expressed as integer nanoseconds due to overflow.');
}
Expand Down