v2 / vlib / v / tests / enums / map_with_enum_keys_test.v
83 lines · 76 sloc · 1.19 KB · 5d98162960b8d7893eb304f6bd683ff5e410a401
Raw
1enum NonSpecificEnum {
2 a = 1
3 b
4}
5
6enum Enum8 as u8 {
7 a = 1
8 b
9}
10enum Enum16 as u16 {
11 a = 1
12 b
13}
14enum Enum32 as u32 {
15 a = 1
16 b
17}
18enum Enum64 as u64 {
19 a = 1
20 b
21}
22
23// TODO: make a generic version, and call it several times
24
25fn test_check_map_with_enum_key() {
26 dump(sizeof(NonSpecificEnum))
27 mut m := map[NonSpecificEnum]string{}
28 m[.a] = 'a'
29 m[.b] = 'b'
30 dump(m)
31 dump(m[.a])
32 dump(m[.b])
33 assert m[.a] == 'a'
34 assert m[.b] == 'b'
35}
36
37fn test_check_map_with_enum_key_8() {
38 dump(sizeof(Enum8))
39 mut m := map[Enum8]string{}
40 m[.a] = 'a'
41 m[.b] = 'b'
42 dump(m)
43 dump(m[.a])
44 dump(m[.b])
45 assert m[.a] == 'a'
46 assert m[.b] == 'b'
47}
48
49fn test_check_map_with_enum_key_16() {
50 dump(sizeof(Enum16))
51 mut m := map[Enum16]string{}
52 m[.a] = 'a'
53 m[.b] = 'b'
54 dump(m)
55 dump(m[.a])
56 dump(m[.b])
57 assert m[.a] == 'a'
58 assert m[.b] == 'b'
59}
60
61fn test_check_map_with_enum_key_32() {
62 dump(sizeof(Enum32))
63 mut m := map[Enum32]string{}
64 m[.a] = 'a'
65 m[.b] = 'b'
66 dump(m)
67 dump(m[.a])
68 dump(m[.b])
69 assert m[.a] == 'a'
70 assert m[.b] == 'b'
71}
72
73fn test_check_map_with_enum_key_64() {
74 dump(sizeof(Enum64))
75 mut m := map[Enum64]string{}
76 m[.a] = 'a'
77 m[.b] = 'b'
78 dump(m)
79 dump(m[.a])
80 dump(m[.b])
81 assert m[.a] == 'a'
82 assert m[.b] == 'b'
83}
84