aboutsummaryrefslogtreecommitdiff
path: root/lib/std/array_hash_map.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-09-23 17:08:40 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-09-24 15:49:56 -0700
commitcc69315f032239d15496326f79ceec488f188ea9 (patch)
treeee6e53ce9812b805265f7ba9be6da3b775e6333f /lib/std/array_hash_map.zig
parentdf5f0517b33b5f7bc2a508cf6a0ee62246f02d21 (diff)
downloadzig-cc69315f032239d15496326f79ceec488f188ea9.tar.gz
zig-cc69315f032239d15496326f79ceec488f188ea9.zip
std.MultiArrayList: add test coverage for 0-bit structs
closes #10618 solved by #17172
Diffstat (limited to 'lib/std/array_hash_map.zig')
-rw-r--r--lib/std/array_hash_map.zig29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/std/array_hash_map.zig b/lib/std/array_hash_map.zig
index e170815151..1bb85a255d 100644
--- a/lib/std/array_hash_map.zig
+++ b/lib/std/array_hash_map.zig
@@ -2336,6 +2336,35 @@ test "sort" {
}
}
+test "0 sized key" {
+ var map = AutoArrayHashMap(u0, i32).init(std.testing.allocator);
+ defer map.deinit();
+
+ try testing.expectEqual(map.get(0), null);
+
+ try map.put(0, 5);
+ try testing.expectEqual(map.get(0), 5);
+
+ try map.put(0, 10);
+ try testing.expectEqual(map.get(0), 10);
+
+ try testing.expectEqual(map.swapRemove(0), true);
+ try testing.expectEqual(map.get(0), null);
+}
+
+test "0 sized key and 0 sized value" {
+ var map = AutoArrayHashMap(u0, u0).init(std.testing.allocator);
+ defer map.deinit();
+
+ try testing.expectEqual(map.get(0), null);
+
+ try map.put(0, 0);
+ try testing.expectEqual(map.get(0), 0);
+
+ try testing.expectEqual(map.swapRemove(0), true);
+ try testing.expectEqual(map.get(0), null);
+}
+
pub fn getHashPtrAddrFn(comptime K: type, comptime Context: type) (fn (Context, K) u32) {
return struct {
fn hash(ctx: Context, key: K) u32 {