Added catch2 and cmakelists to test project, also translated math/mod tests to catch2

This commit is contained in:
Leonetienne 2022-02-11 10:56:47 +01:00
parent 171b23d9c3
commit ebdf8b85dd
4 changed files with 18032 additions and 62 deletions

15
Test/CMakeLists.txt Normal file
View File

@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.16)
project(Tests)
set(CMAKE_CXX_STANDARD 17)
include_directories(..)
link_directories(../Eule/cmake-build-debug)
add_executable(Tests
Catch2.h
main.cpp
Math__Mod.cpp
)
target_link_libraries(Tests Eule)

17965
Test/Catch2.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,7 @@
#include "CppUnitTest.h"
#include "../Eule/Math.h"
#include "Catch2.h"
#include <Eule/Math.h>
#include <stdexcept>
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace Eule;
/** Equivalence classes:
@ -20,64 +19,53 @@ using namespace Eule;
* -- a = 0 && b = 0
*/
namespace _Math
// a > 0 && b > 0
TEST_CASE(__FILE__"/a_gt_0_and_b_gt_0", "[Math][Mod]")
{
TEST_CLASS(_Mod)
{
public:
// a > 0 && b > 0
TEST_METHOD(a_gt_0_and_b_gt_0)
{
Assert::AreEqual(7, Math::Mod(199, 32));
return;
}
// a < 0 && b > 0
TEST_METHOD(a_lt_0_and_b_gt_0)
{
Assert::AreEqual(25, Math::Mod(-199, 32));
return;
}
// a > 0 && b < 0
TEST_METHOD(a_gt_0_and_b_lt_0)
{
Assert::AreEqual(-25, Math::Mod(199, -32));
return;
}
// a > 0 && b = 0
TEST_METHOD(a_gt_0_and_b_eq_0)
{
// Exppect divide-by-zero
Assert::ExpectException<std::logic_error&>([]() {
Assert::AreEqual(0, Math::Mod(199, 0));
});
return;
}
// a = 0 && b > 0
TEST_METHOD(a_eq_0_and_b_gt_0)
{
Assert::AreEqual(0, Math::Mod(0, 32));
return;
}
// a < 0 && b = 0
TEST_METHOD(a_lt_0_and_b_eq_0)
{
// Exppect divide-by-zero
Assert::ExpectException<std::logic_error&>([]() {
Assert::AreEqual(0, Math::Mod(-199, 0));
});
return;
}
// a = 0 && b < 0
TEST_METHOD(a_eq_0_and_b_lt_0)
{
Assert::AreEqual(0, Math::Mod(0, -32));
return;
}
};
REQUIRE(Math::Mod(199, 32) == 7);
return;
}
// a < 0 && b > 0
TEST_CASE(__FILE__"/a_lt_0_and_b_gt_0", "[Math][Mod]")
{
REQUIRE(Math::Mod(-199, 32) == 25);
return;
}
// a > 0 && b < 0
TEST_CASE(__FILE__"/a_gt_0_and_b_lt_0", "[Math][Mod]")
{
REQUIRE(Math::Mod(199, -32) == -25);
return;
}
// a > 0 && b = 0
TEST_CASE(__FILE__"/a_gt_0_and_b_eq_0", "[Math][Mod]")
{
// Exppect divide-by-zero
REQUIRE_THROWS_AS(Math::Mod(-199, 0), std::logic_error);
return;
}
// a = 0 && b > 0
TEST_CASE(__FILE__"/a_eq_0_and_b_gt_0", "[Math][Mod]")
{
REQUIRE(Math::Mod(0, 32) == 0);
return;
}
// a < 0 && b = 0
TEST_CASE(__FILE__"/a_lt_0_and_b_eq_0", "[Math][Mod]")
{
// Expect divide-by-zero
REQUIRE_THROWS_AS(Math::Mod(-199, 0), std::logic_error);
return;
}
// a = 0 && b < 0
TEST_CASE(__FILE__"/a_eq_0_and_b_lt_0", "[Math][Mod]")
{
REQUIRE(Math::Mod(0, -32) == 0);
return;
}

2
Test/main.cpp Normal file
View File

@ -0,0 +1,2 @@
#define CATCH_CONFIG_MAIN
#include "Catch2.h"