#ifdef TESTS_BUILD #include "../extern/catch.hpp" #include "../src/Collections/Dictionary.hpp" using namespace ArbUt; TEST_CASE("Create Dictionary, insert values", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); dic.Insert(2, 100); dic.Insert(9, 2000); } TEST_CASE("Create Dictionary with initializer list", "[Utilities]") { auto dic = Dictionary({{5, 100}, {10, 200}, {50, 2}}); CHECK(dic.Get(5) == 100); CHECK(dic.Get(10) == 200); CHECK(dic.Get(50) == 2); } TEST_CASE("Create Dictionary, insert values, get values", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); dic.Insert(2, 100); dic.Insert(9, 2000); CHECK(dic.Get(2) == 100); CHECK(dic.Get(9) == 2000); CHECK(dic.Get(10) == 5); } TEST_CASE("Create Dictionary, insert values twice should throw", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); CHECK_THROWS(dic.Insert(10, 100)); CHECK(dic.Get(10) == 5); } TEST_CASE("Create Dictionary, insert value, then update value", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); dic[10] = 200; CHECK(dic.Get(10) == 200); } TEST_CASE("Create Dictionary, insert value, try get value", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); int result = 0; CHECK(dic.TryGet(10, result)); CHECK(result == 5); } TEST_CASE("Create Dictionary, insert value, try get non existing value", "[Utilities]") { auto dic = Dictionary(5); int result = 0; CHECK_FALSE(dic.TryGet(10, result)); CHECK(result == 0); } TEST_CASE("Create Dictionary, insert value, Has", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); CHECK(dic.Has(10)); } TEST_CASE("Create Dictionary, set value", "[Utilities]") { auto dic = Dictionary(5); dic.Set(5, 100); CHECK(dic.Has(5)); } TEST_CASE("Create Dictionary, insert values, get count", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); dic.Insert(2, 100); dic.Insert(9, 2000); CHECK(dic.Count() == 3); } TEST_CASE("Create Dictionary, insert values, iterate over keys", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); dic.Insert(2, 100); dic.Insert(9, 2000); size_t i = 0; for (auto val : dic) { CHECK(dic.Has(val.first)); i++; } CHECK(i == 3); } TEST_CASE("Create Dictionary with different types, insert values, iterate over keys", "[Utilities]") { auto dic = Dictionary(5); dic.Insert(10, 5); dic.Insert(2, 100); dic.Insert(9, 105); size_t i = 0; for (auto val : dic) { CHECK(dic.Has(val.first)); i++; } CHECK(i == 3); } #endif