summaryrefslogtreecommitdiff
path: root/asl/tests
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2025-01-18 19:59:36 +0100
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2025-01-18 19:59:36 +0100
commit74082720c42c5d6b06b71cefbad4b794ff1b8c3c (patch)
treedc7dc49959b0bcc5e2980a950adcf89273d1c2c3 /asl/tests
parent41454a09c6d73fcecffc1f7d6e3754c60cc49e31 (diff)
Finish the hash_map
Diffstat (limited to 'asl/tests')
-rw-r--r--asl/tests/hash_map_tests.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/asl/tests/hash_map_tests.cpp b/asl/tests/hash_map_tests.cpp
new file mode 100644
index 0000000..53c419c
--- /dev/null
+++ b/asl/tests/hash_map_tests.cpp
@@ -0,0 +1,48 @@
+#include "asl/testing/testing.hpp"
+#include "asl/hash_map.hpp"
+
+ASL_TEST(default)
+{
+ asl::hash_map<int, int> map;
+
+ ASL_TEST_EXPECT(!map.contains(45));
+ ASL_TEST_EXPECT(!map.contains(46));
+
+ map.insert(45, 5);
+ map.insert(46, 6);
+
+ ASL_TEST_EXPECT(map.size() == 2);
+
+ ASL_TEST_EXPECT(map.contains(45));
+ ASL_TEST_EXPECT(map.contains(46));
+ ASL_TEST_EXPECT(!map.contains(47));
+
+ ASL_TEST_EXPECT(*map.get(45) == 5);
+ ASL_TEST_EXPECT(*map.get(46) == 6);
+ ASL_TEST_EXPECT(map.get(47) == nullptr);
+
+ ASL_TEST_EXPECT(map.remove(45));
+ ASL_TEST_EXPECT(!map.remove(45));
+
+ ASL_TEST_EXPECT(map.size() == 1);
+
+ ASL_TEST_EXPECT(!map.contains(45));
+ ASL_TEST_EXPECT(map.contains(46));
+ ASL_TEST_EXPECT(!map.contains(47));
+
+ ASL_TEST_EXPECT(map.get(45) == nullptr);
+ ASL_TEST_EXPECT(*map.get(46) == 6);
+ ASL_TEST_EXPECT(map.get(47) == nullptr);
+
+ map.insert(46, 460);
+
+ ASL_TEST_EXPECT(map.size() == 1);
+
+ ASL_TEST_EXPECT(!map.contains(45));
+ ASL_TEST_EXPECT(map.contains(46));
+ ASL_TEST_EXPECT(!map.contains(47));
+
+ ASL_TEST_EXPECT(map.get(45) == nullptr);
+ ASL_TEST_EXPECT(*map.get(46) == 460);
+ ASL_TEST_EXPECT(map.get(47) == nullptr);
+}