| 1 | fn 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 | |
| 7 | fn 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 | |