From bd563ada0d8a3bd0b83dae481569c3ce629498c0 Mon Sep 17 00:00:00 2001 From: ricemaking Date: Sat, 16 Nov 2024 12:54:34 -0800 Subject: [PATCH] added more tests to core testing file --- tests/util/CoreTest.cpp | 81 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/tests/util/CoreTest.cpp b/tests/util/CoreTest.cpp index 2839ed99..2517cb58 100644 --- a/tests/util/CoreTest.cpp +++ b/tests/util/CoreTest.cpp @@ -4,6 +4,87 @@ using namespace util; +TEST_CASE("Test almostEqual", "[util][core]") { + SECTION("Numbers are approximately equal") { + REQUIRE(almostEqual(1.000000001, 1.000000002)); + REQUIRE(almostEqual(1.0, 1.0, 1e-5)); + } + + SECTION("Numbers are not approximately equal") { + REQUIRE_FALSE(almostEqual(1.0, 1.1)); + REQUIRE_FALSE(almostEqual(1.0, 1.0 + 1e-5, 1e-6)); + } +} + +TEST_CASE("Test Key Set", "[util][core]") { + SECTION("Extracting keys from a given map") { + std::unordered_map inputtedMap = { + {"key1", 1}, + {"key2", 2}, + {"key3", 3} + }; + + auto keys = keySet(inputtedMap); + + std::unordered_set expectedSet = {"key1", "key2", "key3"}; + + REQUIRE(keys == expectedSet); + } + + SECTION("Empty map results in empty set") { + std::unordered_map emptyMap; + auto keys = keySet(emptyMap); + REQUIRE(keys.empty()); + } +} + +TEST_CASE("Test To String", "[util][core]") { + SECTION("Convert integers to strings") { + REQUIRE(to_string(69) == "69"); + REQUIRE(to_string(-1) == "-1"); + } + + SECTION("Convert floats to strings") { + REQUIRE(to_string(3.14).substr(0,4) == "3.14"); + REQUIRE(to_string(1e-6) == "0.000001"); + } + + SECTION("Convert booleans to strings") { + REQUIRE(to_string(true) == "true"); + REQUIRE(to_string(false) == "false"); + } +} + +TEST_CASE("Test Freeze String", "[util][core]") { + SECTION("Converting std::string to frozen::string") { + std::string stdString = "Test"; + auto frozenString = freezeStr(stdString); + REQUIRE(frozenString == frozen::string("Test")); + } + + SECTION("Converting empty std::string results in empty frozen::string") { + std::string stdString; + auto frozenString = freezeStr(stdString); + REQUIRE(frozenString == frozen::string("")); + } +} + +TEST_CASE("Test Pair To Tuple", "[util][core]") { + SECTION("Converting pair of integers to tuple") { + std::pair pair = {0,1}; + auto tuple = pairToTuple(pair); + REQUIRE(std::get<0>(tuple) == 0); + REQUIRE(std::get<1>(tuple) == 1); + } + + SECTION("Converting mixed pair of string and integer to tuple") { + std::pair pair = {"key0", 0}; + auto tuple = pairToTuple(pair); + REQUIRE(std::get<0>(tuple) == "key0"); + REQUIRE(std::get<1>(tuple) == 0); + } +} + TEST_CASE("Test RAIIHelper", "[util][core]") { SECTION("Test RAIIHelper executes") { bool called = false;