From 365a455c946a15ba39a0ce5be7e4f1c325656651 Mon Sep 17 00:00:00 2001 From: flashwave Date: Mon, 2 Dec 2024 01:37:08 +0000 Subject: [PATCH] Fixed strange rounding error between PHP 8.3 and 8.4. --- VERSION | 2 +- src/Colour/ColourHsl.php | 8 ++++---- tests/ColourTest.php | 14 +++++++------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/VERSION b/VERSION index 1a757d2..78aecb3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.2410.630130 +0.2410.630136 diff --git a/src/Colour/ColourHsl.php b/src/Colour/ColourHsl.php index 59974a6..f16760f 100644 --- a/src/Colour/ColourHsl.php +++ b/src/Colour/ColourHsl.php @@ -1,7 +1,7 @@ red = (int)round(($r + $m) * 255); - $this->green = (int)round(($g + $m) * 255); - $this->blue = (int)round(($b + $m) * 255); + $this->red = (int)round(($r + $m) * 255, 0, PHP_ROUND_HALF_DOWN); + $this->green = (int)round(($g + $m) * 255, 0, PHP_ROUND_HALF_DOWN); + $this->blue = (int)round(($b + $m) * 255, 0, PHP_ROUND_HALF_DOWN); } public function getRed(): int { diff --git a/tests/ColourTest.php b/tests/ColourTest.php index d261001..6763e17 100644 --- a/tests/ColourTest.php +++ b/tests/ColourTest.php @@ -1,7 +1,7 @@ assertEquals(0, $colour->getHue()); $this->assertEquals(.8, $colour->getSaturation()); $this->assertEquals(.5, $colour->getLightness()); - $this->assertEquals(0xE6, $colour->getRed()); - $this->assertEquals(0x1A, $colour->getGreen()); - $this->assertEquals(0x1A, $colour->getBlue()); + $this->assertEquals(0xE5, $colour->getRed()); + $this->assertEquals(0x19, $colour->getGreen()); + $this->assertEquals(0x19, $colour->getBlue()); $this->assertEquals(.25, $colour->getAlpha()); - $this->assertEquals(0xE61A1A, Colour::toRawRgb($colour)); - $this->assertEquals(0x40E61A1A, Colour::toRawArgb($colour)); - $this->assertEquals(0xE61A1A40, Colour::toRawRgba($colour)); + $this->assertEquals(0xE51919, Colour::toRawRgb($colour)); + $this->assertEquals(0x40E51919, Colour::toRawArgb($colour)); + $this->assertEquals(0xE5191940, Colour::toRawRgba($colour)); $this->assertInstanceOf(ColourHsl::class, $colour); $this->assertFalse($colour->shouldInherit()); $this->assertFalse($colour->isLight());