Skip to content

Commit ce9fcdf

Browse files
committed
test: improve coverage for builtin/linked_hash_set.mbt
**Disclaimer:** This PR was generated by an LLM agent as part of an experiment. ## Summary ``` coverage of `builtin/linked_hash_set.mbt`: 78.5% -> 89.7% ```
1 parent 46e7789 commit ce9fcdf

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

builtin/linked_hash_set_test.mbt

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,3 +257,51 @@ test "from_iter empty iter" {
257257
let map : Set[Int] = Set::from_iter(Iter::empty())
258258
inspect!(map, content="{}")
259259
}
260+
261+
test "remove item causes break when psl < i" {
262+
let set = Set::new()
263+
..add(1)
264+
..add(11) // This goes to a different bucket due to hash collision
265+
..remove(21) // Key doesn't exist, will cause psl < i and break
266+
assert_eq!(set.size(), 2)
267+
}
268+
269+
test "to_array_empty" {
270+
inspect!((Set::new() : Set[Int]).to_array(), content="[]")
271+
}
272+
273+
test "to_array_non_empty" {
274+
let set = Set::new()..add(1)..add(2)..add(3)
275+
inspect!(set.to_array(), content="[1, 2, 3]")
276+
}
277+
278+
test "op_equal: different size" {
279+
let set1 = Set::new()..add(1)
280+
let set2 = Set::new()
281+
inspect!(set1 == set2, content="false")
282+
}
283+
284+
test "op_equal: different keys" {
285+
let set1 = Set::new()..add(1)
286+
let set2 = Set::new()..add(2)
287+
inspect!(set1 == set2, content="false")
288+
}
289+
290+
test "op_equal: same sets" {
291+
let set1 = Set::new()..add(1)
292+
let set2 = Set::new()..add(1)
293+
inspect!(set1 == set2, content="true")
294+
}
295+
296+
test "remove_and_check when key not found in empty slot" {
297+
// Try to remove from empty set
298+
inspect!(Set::new().remove_and_check(1), content="false")
299+
}
300+
301+
test "trigger grow" {
302+
let set = Set::new(capacity=2)
303+
for i in 0..<10 {
304+
assert_true!(set.add_and_check(i))
305+
}
306+
inspect!(set, content="{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}")
307+
}

0 commit comments

Comments
 (0)