diff --git a/output/ch8_test.png b/output/ch8_test.png new file mode 100644 index 0000000..401e404 Binary files /dev/null and b/output/ch8_test.png differ diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 38580e3..22a4ad5 100644 --- a/tests/CMakeLists.txt +++ b/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}) diff --git a/tests/shape_test.cpp b/tests/shape_test.cpp new file mode 100644 index 0000000..2f7a40a --- /dev/null +++ b/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 +#include +#include +#include + +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); +} \ No newline at end of file