From b4b983bd98d7403ec3821c890b73390a3e4365ad Mon Sep 17 00:00:00 2001 From: Sam Mercer Date: Sun, 25 Feb 2024 13:17:59 +0000 Subject: [PATCH] Test interval class methods #12 --- tests/CMakeLists.txt | 2 +- tests/interval_test.cpp | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tests/interval_test.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 93166e2..2c18182 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,7 +6,7 @@ FetchContent_Declare( FetchContent_MakeAvailable(googletest) -add_executable(raydiance_test vec3_test.cpp colour_test.cpp ray_test.cpp globals_test.cpp object_test.cpp) +add_executable(raydiance_test vec3_test.cpp colour_test.cpp ray_test.cpp globals_test.cpp object_test.cpp interval_test.cpp) target_link_libraries(raydiance_test raydiance_lib GTest::gtest_main) diff --git a/tests/interval_test.cpp b/tests/interval_test.cpp new file mode 100644 index 0000000..270e94b --- /dev/null +++ b/tests/interval_test.cpp @@ -0,0 +1,37 @@ +#include "raydiance/globals.h" +#include "raydiance/interval.h" +#include + +TEST(IntervalTest, Contains) { + interval i(0, 1); + EXPECT_TRUE(i.contains(0)); + EXPECT_TRUE(i.contains(1)); + EXPECT_TRUE(i.contains(0.5)); + EXPECT_FALSE(i.contains(-0.1)); + EXPECT_FALSE(i.contains(2)); +} + +TEST(IntervalTest, Surrounds) { + interval i(0, 1); + EXPECT_TRUE(i.surrounds(0.1)); + EXPECT_TRUE(i.surrounds(0.95)); + EXPECT_FALSE(i.surrounds(0)); + EXPECT_FALSE(i.surrounds(1)); +} + +TEST(IntervalTest, Empty) { + interval i = interval::empty; + EXPECT_FALSE(i.contains(0)); + EXPECT_FALSE(i.contains(-50)); + EXPECT_FALSE(i.surrounds(100)); +} + +TEST(IntervalTest, Universe) { + interval i = interval::universe; + EXPECT_TRUE(i.contains(-20)); + EXPECT_TRUE(i.contains(5)); + EXPECT_TRUE(i.contains(infinity)); + EXPECT_FALSE(i.surrounds(infinity)); + EXPECT_TRUE(i.contains(-infinity)); + EXPECT_FALSE(i.surrounds(-infinity)); +}