|
@@ -0,0 +1,73 @@
|
|
|
+#include "../Tests.hpp"
|
|
|
+#include "core/data/HashMap.hpp"
|
|
|
+#include "core/utils/HashedString.hpp"
|
|
|
+
|
|
|
+template class Core::HashedString<32>;
|
|
|
+
|
|
|
+using HString = Core::HashedString<32>;
|
|
|
+
|
|
|
+static void testComparison() {
|
|
|
+ HString a("test");
|
|
|
+ HString b("testA");
|
|
|
+ HString c("");
|
|
|
+ HString d("Btest");
|
|
|
+
|
|
|
+ CORE_TEST_TRUE(a == a);
|
|
|
+ CORE_TEST_TRUE(b == b);
|
|
|
+ CORE_TEST_TRUE(c == c);
|
|
|
+ CORE_TEST_TRUE(d == d);
|
|
|
+ CORE_TEST_TRUE(a != b);
|
|
|
+ CORE_TEST_TRUE(a != c);
|
|
|
+ CORE_TEST_TRUE(a != d);
|
|
|
+ CORE_TEST_TRUE(b != a);
|
|
|
+ CORE_TEST_TRUE(b != c);
|
|
|
+ CORE_TEST_TRUE(b != d);
|
|
|
+ CORE_TEST_TRUE(c != a);
|
|
|
+ CORE_TEST_TRUE(c != b);
|
|
|
+ CORE_TEST_TRUE(c != d);
|
|
|
+ CORE_TEST_TRUE(d != a);
|
|
|
+ CORE_TEST_TRUE(d != b);
|
|
|
+ CORE_TEST_TRUE(d != c);
|
|
|
+}
|
|
|
+
|
|
|
+static void testLength() {
|
|
|
+ HString s("test");
|
|
|
+ CORE_TEST_EQUAL(4, s.getLength());
|
|
|
+}
|
|
|
+
|
|
|
+static void testHashCode() {
|
|
|
+ HString a;
|
|
|
+ HString b("wusi");
|
|
|
+ CORE_TEST_EQUAL(a.hashCode(), 0u);
|
|
|
+ CORE_TEST_TRUE(b.hashCode() != 0u);
|
|
|
+}
|
|
|
+
|
|
|
+static void testAsHashMapKey() {
|
|
|
+ Core::HashMap<HString, int> map;
|
|
|
+ CORE_TEST_ERROR(map.add("wusi", 3));
|
|
|
+ CORE_TEST_ERROR(map.add("hiThere", 7));
|
|
|
+ CORE_TEST_ERROR(map.add("baum123", 5));
|
|
|
+
|
|
|
+ int* a = map.search("wusi");
|
|
|
+ int* b = map.search("hiThere");
|
|
|
+ int* c = map.search("baum123");
|
|
|
+ int* d = map.search("423hifd");
|
|
|
+
|
|
|
+ CORE_TEST_NOT_NULL(a);
|
|
|
+ CORE_TEST_NOT_NULL(b);
|
|
|
+ CORE_TEST_NOT_NULL(c);
|
|
|
+ CORE_TEST_NULL(d);
|
|
|
+
|
|
|
+ if(a != nullptr && b != nullptr && c != nullptr) {
|
|
|
+ CORE_TEST_EQUAL(3, *a);
|
|
|
+ CORE_TEST_EQUAL(7, *b);
|
|
|
+ CORE_TEST_EQUAL(5, *c);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void Core::testHashedString() {
|
|
|
+ testComparison();
|
|
|
+ testLength();
|
|
|
+ testHashCode();
|
|
|
+ testAsHashMapKey();
|
|
|
+}
|