v2 / vlib / v / slow_tests / map_issue_22143_clear_test.v
37 lines · 36 sloc · 1.05 KB · ace4e935762946519d6b70761f35382a0e628c52
Raw
1fn add(mut m map[int]int, k int, v int) {
2 m[k] = v
3 dump('${m.len} ${m}')
4 // for x, y in m { println(' > m key: ${x} | value: ${y}') }
5}
6
7fn test_map_clear_there_should_not_be_doble_entries_after_clear() {
8 mut ints := map[int]int{}
9 add(mut ints, 20, 120)
10 add(mut ints, 34, 134)
11 add(mut ints, 20, 150) // no double entry!
12 assert ints.len == 2
13 assert ints[34] == 134
14 assert ints[20] == 150
15 for i in 0 .. 3 {
16 println('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ints.clear(), i: ${i}')
17 ints.clear()
18 assert ints.len == 0
19 add(mut ints, 20, 2000 + i)
20 assert ints[20] == 2000 + i
21 add(mut ints, 34, 34)
22 assert ints[34] == 34
23 add(mut ints, 50, 50)
24 assert ints[50] == 50
25 assert ints.len == 3
26 add(mut ints, 20, 100) // try setting the first key again
27 assert ints.len == 3
28 assert ints[20] == 100
29 add(mut ints, 34, 55) // try setting the second key again
30 assert ints.len == 3
31 assert ints[34] == 55
32 add(mut ints, 20, 200 + i) // try setting the third key again
33 assert ints.len == 3
34 assert ints[20] == 200 + i
35 }
36 assert ints.len == 3
37}
38