1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:58:13 +00:00

LibWeb: Add propper rounding to PixelUnits::operator*

Also moves related constants into the class to make them accessible for
tests.
This commit is contained in:
Hendiadyoin1 2023-07-26 15:02:03 +02:00 committed by Alexander Kalenik
parent 4896ba11dc
commit f9fc0505fb
3 changed files with 36 additions and 6 deletions

View file

@ -39,6 +39,17 @@ TEST_CASE(multiplication1)
CSSPixels b(4);
CSSPixels c = a * b;
EXPECT_EQ(c, CSSPixels(12));
// Temporary overflow
a = CSSPixels::from_raw(0xFFFF'FFFF >> (CSSPixels::fractional_bits + 1));
b = 1;
EXPECT_EQ((a * b), a);
// Rounding
a = CSSPixels::from_raw(0b01'000001);
b = CSSPixels::from_raw(0b01'100000);
EXPECT_EQ(a * b, CSSPixels(a.to_double() * b.to_double()));
EXPECT_EQ(a * -b, CSSPixels(a.to_double() * -b.to_double()));
}
TEST_CASE(addition2)