common Test: Add Paint.bounds unit test
authorJunsuChoi <jsuya.choi@samsung.com>
Mon, 30 Nov 2020 05:50:05 +0000 (14:50 +0900)
committerHermet Park <chuneon.park@samsung.com>
Mon, 30 Nov 2020 06:38:25 +0000 (15:38 +0900)
Change-Id: I0d99925afc9a942c65098a6f8c39c6ad9cb4d700

test/meson.build
test/test_paint.cpp [new file with mode: 0644]

index 61286fc..949c926 100644 (file)
@@ -17,3 +17,17 @@ canvas_testsuite = executable('canvasTestSuite',
                               )
 
 test('Canvas Testsuite', canvas_testsuite)
+
+paint_test_sources = [
+    'testsuite.cpp',
+    'test_paint.cpp',
+    ]
+
+paint_testsuite = executable('paintTestSuite',
+                              paint_test_sources,
+                              include_directories : headers,
+                              override_options : override_default,
+                              dependencies : [gtest_dep, thorvg_lib_dep],
+                              )
+
+test('Paint Testsuite', paint_testsuite)
diff --git a/test/test_paint.cpp b/test/test_paint.cpp
new file mode 100644 (file)
index 0000000..f6b8b54
--- /dev/null
@@ -0,0 +1,56 @@
+#include <gtest/gtest.h>
+#include <iostream>
+#include <thread>
+#include <thorvg.h>
+
+class PaintTest : public ::testing::Test {
+public:
+    void SetUp() {
+        auto threads = std::thread::hardware_concurrency();
+        //Initialize ThorVG Engine
+        if (tvg::Initializer::init(tvgEngine, threads) == tvg::Result::Success) {
+            swCanvas = tvg::SwCanvas::gen();
+
+            scene = tvg::Scene::gen();
+
+            shape = tvg::Shape::gen();
+        }
+    }
+    void TearDown() {
+
+        //Terminate ThorVG Engine
+        tvg::Initializer::term(tvgEngine);
+    }
+public:
+    std::unique_ptr<tvg::SwCanvas> swCanvas;
+    std::unique_ptr<tvg::Scene> scene;
+    std::unique_ptr<tvg::Shape> shape;
+    tvg::CanvasEngine tvgEngine = tvg::CanvasEngine::Sw;
+};
+
+TEST_F(PaintTest, GenerateShape) {
+    ASSERT_TRUE(swCanvas != nullptr);
+    ASSERT_TRUE(shape != nullptr);
+}
+
+TEST_F(PaintTest, GenerateScene) {
+    ASSERT_TRUE(swCanvas != nullptr);
+    ASSERT_TRUE(scene != nullptr);
+}
+
+TEST_F(PaintTest, SceneBounds) {
+    ASSERT_TRUE(swCanvas != nullptr);
+    ASSERT_TRUE(scene != nullptr);
+
+    ASSERT_EQ(shape->appendRect(10.0, 20.0, 100.0, 200.0, 0, 0), tvg::Result::Success);
+
+    ASSERT_EQ(scene->push(std::move(shape)), tvg::Result::Success);
+
+    float x, y, w, h;
+    ASSERT_EQ(scene->bounds(&x, &y, &w, &h), tvg::Result::Success);
+    ASSERT_EQ(x, 10.0);
+    ASSERT_EQ(y, 20.0);
+    ASSERT_EQ(w, 100.0);
+    ASSERT_EQ(h, 200.0);
+}
+