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:
parent
4896ba11dc
commit
f9fc0505fb
3 changed files with 36 additions and 6 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue