From 0f21b35d1c2130abb9938e8a49bc8ab1e1727eb8 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Sun, 23 Jul 2023 02:19:57 +0200 Subject: [PATCH] Tests/LibWeb: Add tests for CSSPixels class After the CSSPixels implementation evolved from a wrapper of double to a fixed-point saturated math arithmetic implementation, it makes sense to have separate tests for it. --- Tests/LibWeb/CMakeLists.txt | 1 + Tests/LibWeb/TestCSSPixels.cpp | 79 ++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 Tests/LibWeb/TestCSSPixels.cpp diff --git a/Tests/LibWeb/CMakeLists.txt b/Tests/LibWeb/CMakeLists.txt index 7bfd1699fc..9f7f5359e0 100644 --- a/Tests/LibWeb/CMakeLists.txt +++ b/Tests/LibWeb/CMakeLists.txt @@ -1,5 +1,6 @@ set(TEST_SOURCES TestCSSIDSpeed.cpp + TestCSSPixels.cpp TestHTMLTokenizer.cpp ) diff --git a/Tests/LibWeb/TestCSSPixels.cpp b/Tests/LibWeb/TestCSSPixels.cpp new file mode 100644 index 0000000000..84c695557b --- /dev/null +++ b/Tests/LibWeb/TestCSSPixels.cpp @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2023, Aliaksandr Kalenik + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include + +namespace Web { + +TEST_CASE(addition1) +{ + CSSPixels a(10); + CSSPixels b(20); + CSSPixels c = a + b; + EXPECT_EQ(c, CSSPixels(30)); +} + +TEST_CASE(subtraction1) +{ + CSSPixels a(30); + CSSPixels b(10); + CSSPixels c = a - b; + EXPECT_EQ(c, CSSPixels(20)); +} + +TEST_CASE(division1) +{ + CSSPixels a(10); + CSSPixels b(5); + CSSPixels c = a / b; + EXPECT_EQ(c, CSSPixels(2)); +} + +TEST_CASE(multiplication1) +{ + CSSPixels a(3); + CSSPixels b(4); + CSSPixels c = a * b; + EXPECT_EQ(c, CSSPixels(12)); +} + +TEST_CASE(addition2) +{ + CSSPixels a(3); + a += CSSPixels(2); + EXPECT_EQ(a, CSSPixels(5)); +} + +TEST_CASE(to_double) +{ + CSSPixels a(10); + EXPECT_EQ(a.to_double(), 10); +} + +TEST_CASE(to_float) +{ + CSSPixels a(11); + EXPECT_EQ(a.to_float(), 11); +} + +TEST_CASE(to_int) +{ + CSSPixels b(12); + EXPECT_EQ(b.to_int(), 12); +} + +TEST_CASE(comparison1) +{ + EXPECT_EQ(CSSPixels(1) < CSSPixels(2), true); +} + +TEST_CASE(comparison2) +{ + EXPECT_EQ(CSSPixels(123) == CSSPixels(123), true); +} + +}