Fixed strange rounding error between PHP 8.3 and 8.4.

This commit is contained in:
flash 2024-12-02 01:37:08 +00:00
parent f31b3a41d4
commit 365a455c94
3 changed files with 12 additions and 12 deletions

View file

@ -1 +1 @@
0.2410.630130 0.2410.630136

View file

@ -1,7 +1,7 @@
<?php <?php
// ColourHsl.php // ColourHsl.php
// Created: 2023-01-02 // Created: 2023-01-02
// Updated: 2024-10-02 // Updated: 2024-12-02
namespace Index\Colour; namespace Index\Colour;
@ -55,9 +55,9 @@ class ColourHsl extends Colour {
$b = $x; $b = $x;
} }
$this->red = (int)round(($r + $m) * 255); $this->red = (int)round(($r + $m) * 255, 0, PHP_ROUND_HALF_DOWN);
$this->green = (int)round(($g + $m) * 255); $this->green = (int)round(($g + $m) * 255, 0, PHP_ROUND_HALF_DOWN);
$this->blue = (int)round(($b + $m) * 255); $this->blue = (int)round(($b + $m) * 255, 0, PHP_ROUND_HALF_DOWN);
} }
public function getRed(): int { public function getRed(): int {

View file

@ -1,7 +1,7 @@
<?php <?php
// ColourTest.php // ColourTest.php
// Created: 2023-01-02 // Created: 2023-01-02
// Updated: 2024-10-19 // Updated: 2024-12-02
declare(strict_types=1); declare(strict_types=1);
@ -234,13 +234,13 @@ final class ColourTest extends TestCase {
$this->assertEquals(0, $colour->getHue()); $this->assertEquals(0, $colour->getHue());
$this->assertEquals(.8, $colour->getSaturation()); $this->assertEquals(.8, $colour->getSaturation());
$this->assertEquals(.5, $colour->getLightness()); $this->assertEquals(.5, $colour->getLightness());
$this->assertEquals(0xE6, $colour->getRed()); $this->assertEquals(0xE5, $colour->getRed());
$this->assertEquals(0x1A, $colour->getGreen()); $this->assertEquals(0x19, $colour->getGreen());
$this->assertEquals(0x1A, $colour->getBlue()); $this->assertEquals(0x19, $colour->getBlue());
$this->assertEquals(.25, $colour->getAlpha()); $this->assertEquals(.25, $colour->getAlpha());
$this->assertEquals(0xE61A1A, Colour::toRawRgb($colour)); $this->assertEquals(0xE51919, Colour::toRawRgb($colour));
$this->assertEquals(0x40E61A1A, Colour::toRawArgb($colour)); $this->assertEquals(0x40E51919, Colour::toRawArgb($colour));
$this->assertEquals(0xE61A1A40, Colour::toRawRgba($colour)); $this->assertEquals(0xE5191940, Colour::toRawRgba($colour));
$this->assertInstanceOf(ColourHsl::class, $colour); $this->assertInstanceOf(ColourHsl::class, $colour);
$this->assertFalse($colour->shouldInherit()); $this->assertFalse($colour->shouldInherit());
$this->assertFalse($colour->isLight()); $this->assertFalse($colour->isLight());