v2 / vlib / v / slow_tests / map_issue_22139_clear_test.v
59 lines · 52 sloc · 1017 bytes · ace4e935762946519d6b70761f35382a0e628c52
Raw
1fn test_map_clear_done_several_times() {
2 mut ints := map[int]int{}
3
4 ints[5] = 5
5 dump(ints.len)
6 assert ints.len == 1
7
8 ints.clear()
9 dump(ints.len)
10 assert ints.len == 0
11
12 ints[5] = 3
13 dump(ints.len)
14 assert ints.len == 1
15
16 ints.clear()
17 dump(ints.len)
18 assert ints.len == 0
19
20 ints[5] = 123
21 dump(ints.len)
22 assert ints.len == 1
23}
24
25fn test_map_clear_in_loop_metas_should_be_cleared_too() {
26 mut ints := map[int]int{}
27 for i in 0 .. 100 {
28 ints[i] = i * 123
29 ints.clear()
30 assert ints.len == 0
31 // dump(ints)
32 ints[i] = i
33 // dump(ints)
34 assert ints.len == 1
35 ints[1000 + i] = 1000 * i
36 assert ints.len == 2
37 }
38}
39
40fn test_map_clear_in_loop_delete_keys() {
41 mut ints := map[int]int{}
42 for i in 0 .. 100 {
43 ints[i] = i * 123
44 ints[i + 2] = i
45 ints.delete(i)
46 ints.delete(i + 1)
47 ints.delete(i + 2)
48 ints.delete(i + 3)
49 ints.delete(i + 4)
50 ints.clear()
51 assert ints.len == 0
52 // dump(ints)
53 ints[i] = 5
54 // dump(ints)
55 assert ints.len == 1
56 ints[1000 + i] = 1000 * i
57 assert ints.len == 2
58 }
59}
60