diff --git a/CMakeLists.txt b/CMakeLists.txt index 51b54310be7a42b595d8c12c3eaffc81c5dafa75..1a718f8a342ec153e6a03280e649742b68d892c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,14 +33,15 @@ add_executable(main src/main.c target_link_libraries(main PUBLIC ${EXTRA_LIBS}) target_link_libraries(common PUBLIC ${EXTRA_LIBS}) -# Fetch Catch2 +# Fetch GoogleTest Include(FetchContent) FetchContent_Declare( - Catch2 - GIT_REPOSITORY https://github.com/catchorg/Catch2.git - GIT_TAG v3.3.2 + googletest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG v1.15.2 ) -FetchContent_MakeAvailable(Catch2) +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +FetchContent_MakeAvailable(googletest) # Build Tests enable_testing() @@ -61,17 +62,15 @@ add_executable(test_ggT_rec src/ggt_rec.test.cpp ) -target_link_libraries(test_prime PRIVATE Catch2::Catch2WithMain) +target_link_libraries(test_prime PRIVATE GTest::gtest_main) target_link_libraries(test_prime PUBLIC ${EXTRA_LIBS}) -target_link_libraries(test_ggT_kgV PRIVATE Catch2::Catch2WithMain) +target_link_libraries(test_ggT_kgV PRIVATE GTest::gtest_main) target_link_libraries(test_ggT_kgV PUBLIC ${EXTRA_LIBS}) -target_link_libraries(test_ggT_rec PRIVATE Catch2::Catch2WithMain) +target_link_libraries(test_ggT_rec PRIVATE GTest::gtest_main) target_link_libraries(test_ggT_rec PUBLIC ${EXTRA_LIBS}) target_include_directories(test_prime PRIVATE src/) target_include_directories(test_ggT_kgV PRIVATE src/) -add_test(test_prime ./test_prime) -add_test(test_ggT_kgV ./test_ggT_kgV) -add_test(test_ggT_rec ./test_ggT_rec) -set_property(TEST test_prime PROPERTY ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1") -set_property(TEST test_ggT_kgV PROPERTY ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1") -set_property(TEST test_ggT_rec PROPERTY ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1") \ No newline at end of file +include(GoogleTest) +gtest_discover_tests(test_prime) +gtest_discover_tests(test_ggT_kgV) +gtest_discover_tests(test_ggT_rec) \ No newline at end of file diff --git a/src/ggT.test.cpp b/src/ggT.test.cpp index 5abe8f3b78e574b849ad82be290ca9ad21bd1be2..d4e7757e602b992a29c57d4dee42021a26f224b3 100644 --- a/src/ggT.test.cpp +++ b/src/ggT.test.cpp @@ -1,24 +1,23 @@ -#include <catch2/benchmark/catch_benchmark.hpp> -#include <catch2/catch_test_macros.hpp> +#include <gtest/gtest.h> extern "C" { #include "ggT.h" } -TEST_CASE("ggT_Zero") { - REQUIRE(ggT(0, 0) == 0); - REQUIRE(ggT(1, 0) == 1); - REQUIRE(ggT(0, 1) == 1); +TEST(ggT, zero) { + EXPECT_EQ(ggT(0, 0), 0); + EXPECT_EQ(ggT(1, 0), 1); + EXPECT_EQ(ggT(0, 1), 1); } -TEST_CASE("ggT_negativ") { - REQUIRE(ggT(-4, -2) == ggT(4, 2)); - REQUIRE(ggT(4, -2) == ggT(4, 2)); - REQUIRE(ggT(-4, 2) == ggT(4, 2)); +TEST(ggT, negative) { + EXPECT_EQ(ggT(-4, -2), ggT(4, 2)); + EXPECT_EQ(ggT(4, -2), ggT(4, 2)); + EXPECT_EQ(ggT(-4, 2), ggT(4, 2)); } -TEST_CASE("ggT_same") { REQUIRE(ggT(8, 8) == 8); } +TEST(ggT, equal) { EXPECT_EQ(ggT(8, 8), 8); } -TEST_CASE("ggT") { - REQUIRE(ggT(3528, 3780) == 252); - REQUIRE(ggT(70, 42) == 14); - REQUIRE(ggT(768, 912) == 48); -} \ No newline at end of file +TEST(ggT, positive) { + EXPECT_EQ(ggT(3528, 3780), 252); + EXPECT_EQ(ggT(70, 42), 14); + EXPECT_EQ(ggT(768, 912), 48); +} diff --git a/src/ggt_rec.test.cpp b/src/ggt_rec.test.cpp index 2933abc894203ff6f4c4e83edacf87b819237945..73938d6de71f0064f76879aaa5b82fa1fd1a5181 100644 --- a/src/ggt_rec.test.cpp +++ b/src/ggt_rec.test.cpp @@ -1,24 +1,23 @@ -#include <catch2/benchmark/catch_benchmark.hpp> -#include <catch2/catch_test_macros.hpp> +#include <gtest/gtest.h> extern "C" { #include "ggT.h" } -TEST_CASE("ggT_rec_Zero") { - REQUIRE(ggT_rec(0, 0) == 0); - REQUIRE(ggT_rec(1, 0) == 1); - REQUIRE(ggT_rec(0, 1) == 1); +TEST(ggT_rec, zero) { + EXPECT_EQ(ggT_rec(0, 0), 0); + EXPECT_EQ(ggT_rec(1, 0), 1); + EXPECT_EQ(ggT_rec(0, 1), 1); } -TEST_CASE("ggT_rec_negativ") { - REQUIRE(ggT_rec(-4, -2) == ggT_rec(4, 2)); - REQUIRE(ggT_rec(4, -2) == ggT_rec(4, 2)); - REQUIRE(ggT_rec(-4, 2) == ggT_rec(4, 2)); +TEST(ggT_rec, negative) { + EXPECT_EQ(ggT_rec(-4, -2), ggT_rec(4, 2)); + EXPECT_EQ(ggT_rec(4, -2), ggT_rec(4, 2)); + EXPECT_EQ(ggT_rec(-4, 2), ggT_rec(4, 2)); } -TEST_CASE("ggT_rec_same") { REQUIRE(ggT_rec(8, 8) == 8); } +TEST(ggT_rec, same) { EXPECT_EQ(ggT_rec(8, 8), 8); } -TEST_CASE("ggT_rec") { - REQUIRE(ggT_rec(3528, 3780) == 252); - REQUIRE(ggT_rec(70, 42) == 14); - REQUIRE(ggT_rec(768, 912) == 48); +TEST(ggT_rec, positive) { + EXPECT_EQ(ggT_rec(3528, 3780), 252); + EXPECT_EQ(ggT_rec(70, 42), 14); + EXPECT_EQ(ggT_rec(768, 912), 48); } diff --git a/src/kgV.test.cpp b/src/kgV.test.cpp index 014796059b11c361eae6d49d32673b03ff1ab0d6..f5b304eb0c286b16a9131b482f87de5fbd3b6c4d 100644 --- a/src/kgV.test.cpp +++ b/src/kgV.test.cpp @@ -1,9 +1,24 @@ -#include <catch2/benchmark/catch_benchmark.hpp> -#include <catch2/catch_test_macros.hpp> +#include <gtest/gtest.h> extern "C" { #include "kgV.h" } -TEST_CASE("kgV") { - REQUIRE(kgV(12, 18) == 36); - REQUIRE(kgV(18, 24) == 72); -} \ No newline at end of file +TEST(kgv, positiv) { + EXPECT_EQ(kgV(12, 18), 36); + EXPECT_EQ(kgV(18, 24), 72); + EXPECT_EQ(kgV(1, 24), 24); + EXPECT_EQ(kgV(18, 1), 18); + EXPECT_EQ(kgV(18, 18), 18); +} + +TEST(kgv, negative) { + EXPECT_EQ(kgV(-18, 24), 72); + EXPECT_EQ(kgV(18, -24), 72); + EXPECT_EQ(kgV(-18, -24), 72); +} + +TEST(kgv, zero) { + EXPECT_EQ(kgV(0, 24), 0); + EXPECT_EQ(kgV(18, 0), 0); + EXPECT_EQ(kgV(0, -24), 0); + EXPECT_EQ(kgV(0, 0), 0); +} diff --git a/src/prime.test.cpp b/src/prime.test.cpp index 7f0d1e6742ce4335139bcaaa47772364d9cfeac8..439f75ba850f196728b4cb4178e3cc829e213e55 100644 --- a/src/prime.test.cpp +++ b/src/prime.test.cpp @@ -1,33 +1,29 @@ -#include <catch2/benchmark/catch_benchmark.hpp> -#include <catch2/catch_test_macros.hpp> +#include <gtest/gtest.h> + extern "C" { #include "prime.h" } -TEST_CASE("primes_negativ") { REQUIRE_FALSE(isPrime(-2)); } +TEST(Primes, Negativ) { EXPECT_FALSE(isPrime(-2)); } -TEST_CASE("primes_zero") { REQUIRE_FALSE(isPrime(0)); } +TEST(Primes, Zero) { EXPECT_FALSE(isPrime(0)); } -TEST_CASE("primes_one") { REQUIRE_FALSE(isPrime(1)); } +TEST(Primes, One) { EXPECT_FALSE(isPrime(1)); } -TEST_CASE("primes") { - REQUIRE(isPrime(2)); - REQUIRE(isPrime(3)); - REQUIRE_FALSE(isPrime(4)); - REQUIRE(isPrime(5)); - REQUIRE_FALSE(isPrime(6)); - REQUIRE(isPrime(7)); - REQUIRE_FALSE(isPrime(8)); - REQUIRE_FALSE(isPrime(9)); +TEST(Prime, Small) { + EXPECT_TRUE(isPrime(2)); + EXPECT_TRUE(isPrime(3)); + EXPECT_FALSE(isPrime(4)); + EXPECT_TRUE(isPrime(5)); + EXPECT_FALSE(isPrime(6)); + EXPECT_TRUE(isPrime(7)); + EXPECT_FALSE(isPrime(8)); + EXPECT_FALSE(isPrime(9)); } -TEST_CASE("primes_high_numbers") { - REQUIRE(isPrime(241)); - REQUIRE(isPrime(9857)); - REQUIRE(isPrime(99971)); - REQUIRE_FALSE(isPrime(9841)); +TEST(Primes, Large) { + EXPECT_TRUE(isPrime(241)); + EXPECT_TRUE(isPrime(9857)); + EXPECT_TRUE(isPrime(99971)); + EXPECT_FALSE(isPrime(9841)); } - -TEST_CASE("Benchmark Prime") { - BENCHMARK("isPrime(99971)") { return isPrime(99971); }; -} \ No newline at end of file