From 74082720c42c5d6b06b71cefbad4b794ff1b8c3c Mon Sep 17 00:00:00 2001
From: Steven Le Rouzic <steven.lerouzic@gmail.com>
Date: Sat, 18 Jan 2025 19:59:36 +0100
Subject: Finish the hash_map

---
 asl/tests/hash_map_tests.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 asl/tests/hash_map_tests.cpp

(limited to 'asl/tests')

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);
+}
-- 
cgit