v2 / vlib / v / tests / builtin_maps / map_init_with_update_test.v
52 lines · 49 sloc · 914 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1const base_map = {
2 'a': 4
3 'b': 5
4}
5
6fn test_map_init_with_update() {
7 foo := {
8 ...base_map
9 'b': 88
10 'c': 99
11 }
12 assert base_map.keys() == ['a', 'b']
13 assert base_map['a'] == 4
14 assert base_map['b'] == 5
15 assert foo.keys() == ['a', 'b', 'c']
16 assert foo['a'] == 4
17 assert foo['b'] == 88
18 assert foo['c'] == 99
19
20 bar := {
21 ...foo
22 'b': 6
23 'd': 7
24 }
25 assert base_map.keys() == ['a', 'b']
26 assert base_map['a'] == 4
27 assert base_map['b'] == 5
28 assert foo.keys() == ['a', 'b', 'c']
29 assert foo['a'] == 4
30 assert foo['b'] == 88
31 assert foo['c'] == 99
32 assert bar.keys() == ['a', 'b', 'c', 'd']
33 assert bar['a'] == 4
34 assert bar['b'] == 6
35 assert bar['c'] == 99
36 assert bar['d'] == 7
37}
38
39fn test_map_init_with_only_update() {
40 mut foo := {
41 ...base_map
42 }
43 bar := {
44 ...foo
45 }
46 foo['a'] = 99
47 foo['c'] = 99
48 assert bar.keys() == ['a', 'b']
49 assert bar['a'] == 4
50 assert bar['b'] == 5
51 assert bar == base_map
52}
53