aboutsummaryrefslogtreecommitdiff
path: root/test/platform/graphics/direct2d
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-05-15 14:15:31 +0800
committercrupest <crupest@outlook.com>2022-05-15 14:15:31 +0800
commit34a64e6ffefaab007578932ddbab931a25f1d56e (patch)
tree541fdb8279e829a129df62288d09916bf23c9200 /test/platform/graphics/direct2d
parent8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6 (diff)
downloadcru-34a64e6ffefaab007578932ddbab931a25f1d56e.tar.gz
cru-34a64e6ffefaab007578932ddbab931a25f1d56e.tar.bz2
cru-34a64e6ffefaab007578932ddbab931a25f1d56e.zip
...
Diffstat (limited to 'test/platform/graphics/direct2d')
-rw-r--r--test/platform/graphics/direct2d/CMakeLists.txt6
-rw-r--r--test/platform/graphics/direct2d/ConvertTest.cpp31
2 files changed, 37 insertions, 0 deletions
diff --git a/test/platform/graphics/direct2d/CMakeLists.txt b/test/platform/graphics/direct2d/CMakeLists.txt
new file mode 100644
index 00000000..66a07d15
--- /dev/null
+++ b/test/platform/graphics/direct2d/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_executable(CruPlatformGraphicsDirect2dTest
+ ConvertTest.cpp
+)
+target_link_libraries(CruPlatformGraphicsDirect2dTest PRIVATE CruPlatformGraphicsDirect2d CruTestBase)
+
+catch_discover_tests(CruPlatformGraphicsDirect2dTest)
diff --git a/test/platform/graphics/direct2d/ConvertTest.cpp b/test/platform/graphics/direct2d/ConvertTest.cpp
new file mode 100644
index 00000000..c30bb6a5
--- /dev/null
+++ b/test/platform/graphics/direct2d/ConvertTest.cpp
@@ -0,0 +1,31 @@
+#include "cru/platform/Matrix.h"
+#include "cru/platform/graphics/direct2d/ConvertUtil.h"
+
+#include <catch2/catch_test_macros.hpp>
+#include "catch2/catch_approx.hpp"
+
+using Catch::Approx;
+using cru::platform::Matrix;
+using cru::platform::graphics::direct2d::Convert;
+
+TEST_CASE("MatrixConvert Rotation", "[matrix]") {
+ auto matrix = Convert(Matrix::Rotation(90));
+
+ auto m = *D2D1::Matrix3x2F::ReinterpretBaseType(&matrix);
+
+ auto p = m.TransformPoint({1, 1});
+
+ REQUIRE(p.x == Approx(-1));
+ REQUIRE(p.y == Approx(1));
+}
+
+TEST_CASE("MatrixConvert RotationAndTranslation", "[matrix]") {
+ auto matrix = Convert(Matrix::Rotation(90) * Matrix::Translation(1, 1));
+
+ auto m = *D2D1::Matrix3x2F::ReinterpretBaseType(&matrix);
+
+ auto p = m.TransformPoint({1, 1});
+
+ REQUIRE(p.x == Approx(0));
+ REQUIRE(p.y == Approx(2));
+}