Browse Source

Working on adding test for the shape object.

Godzil 4 years ago
parent
commit
2a8fe61388
3 changed files with 47 additions and 1 deletions
  1. BIN
      output/ch8_test.png
  2. 2 1
      tests/CMakeLists.txt
  3. 45 0
      tests/shape_test.cpp

BIN
output/ch8_test.png


+ 2 - 1
tests/CMakeLists.txt

@@ -4,7 +4,8 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
 find_package(Threads REQUIRED)
 
 set(TESTS_SRC tuple_test.cpp colour_test.cpp canvas_test.cpp matrix_test.cpp transformation_test.cpp ray_test.cpp
-        intersect_test.cpp sphere_test.cpp light_test.cpp material_test.cpp world_test.cpp camera_test.cpp)
+        intersect_test.cpp sphere_test.cpp light_test.cpp material_test.cpp world_test.cpp camera_test.cpp
+        shape_test.cpp)
 
 add_executable(testMyRays)
 target_include_directories(testMyRays PUBLIC ${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})

+ 45 - 0
tests/shape_test.cpp

@@ -0,0 +1,45 @@
+/*
+ *  DoRayMe - a quick and dirty Raytracer
+ *  Shape unit tests
+ *
+ *  Created by Manoël Trapier
+ *  Copyright (c) 2020 986-Studio.
+ *
+ */
+#include <shape.h>
+#include <matrix.h>
+#include <transformation.h>
+#include <gtest/gtest.h>
+
+TEST(ShapeTest, The_default_transformation)
+{
+    Shape s = Shape();
+    ASSERT_EQ(s.transformMatrix, Matrix4().identity());
+}
+
+TEST(ShapeTest, Assigning_a_transformation)
+{
+    Shape s = Shape();
+
+    s.setTransform(translation(2, 3, 4));
+
+    ASSERT_EQ(s.transformMatrix, translation(2, 3, 4));
+}
+
+TEST(ShapeTest, The_default_material)
+{
+    Shape s = Shape();
+
+    ASSERT_EQ(s.material, Material());
+}
+
+TEST(ShapeTest, Assigning_a_material)
+{
+    Shape s = Shape();
+    Material m = Material();
+    m.ambient = 1;
+
+    s.material = m;
+
+    ASSERT_EQ(s.material, m);
+}