Quellcode durchsuchen

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.
Aliaksandr Kalenik vor 1 Jahr
Ursprung
Commit
0f21b35d1c
2 geänderte Dateien mit 80 neuen und 0 gelöschten Zeilen
  1. 1 0
      Tests/LibWeb/CMakeLists.txt
  2. 79 0
      Tests/LibWeb/TestCSSPixels.cpp

+ 1 - 0
Tests/LibWeb/CMakeLists.txt

@@ -1,5 +1,6 @@
 set(TEST_SOURCES
     TestCSSIDSpeed.cpp
+    TestCSSPixels.cpp
     TestHTMLTokenizer.cpp
 )
 

+ 79 - 0
Tests/LibWeb/TestCSSPixels.cpp

@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2023, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#include <LibTest/TestCase.h>
+#include <LibWeb/PixelUnits.h>
+
+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);
+}
+
+}