import "@std/testing" TokenKind :: enum { keyword_if keyword_else keyword_for keyword_return } keywords StaticStringMap(TokenKind) = init([ {"return", .keyword_return}, {"if", .keyword_if}, {"for", .keyword_for}, {"else", .keyword_else}, ]) handles_length_bucket_lookups test { try testing.expect(keywords.keys.len == 4) try testing.expect(keywords.values.len == keywords.keys.len) try testing.expect(keywords.len_indexes.len == 7) try testing.expect_equal(some!(TokenKind.keyword_if), get(&keywords, "if")) try testing.expect_equal(some!(TokenKind.keyword_else), get(&keywords, "else")) try testing.expect_equal(some!(TokenKind.keyword_for), get(&keywords, "for")) try testing.expect_equal(some!(TokenKind.keyword_return), get(&keywords, "return")) try testing.expect_equal(null, get(&keywords, "no")) try testing.expect_equal(null, get(&keywords, "four")) try testing.expect_equal(null, get(&keywords, "longer-than-any-key")) } handles_empty_maps test { empty StaticStringMap(TokenKind) = init([]) try testing.expect(empty.keys.len == 0) try testing.expect(empty.values.len == 0) try testing.expect(empty.len_indexes.len == 0) try testing.expect_equal(null, get(&empty, "if")) }