v2 / vlib / v / tests / interfaces / interface_array_methods_test.v
36 lines · 29 sloc · 484 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1interface IA {
2 a int
3}
4
5struct AA {
6 a int
7}
8
9struct AB {
10 a int
11}
12
13fn test_interface_array_index() {
14 mut ia_ary := []IA{}
15 aa, ab := AA{12}, AB{13}
16 ia_ary << aa
17 ia_ary << ab
18
19 abi := IA(AB{13})
20 aci := IA(AB{14})
21 assert ia_ary.index(abi) == 1
22 assert ia_ary.index(aci) == -1
23}
24
25fn test_interface_array_contains() {
26 mut ia_ary := []IA{}
27 aa, ab := AA{12}, AB{13}
28 ia_ary << aa
29 ia_ary << ab
30
31 abi := IA(AB{13})
32 aci := IA(AB{14})
33
34 assert abi in ia_ary
35 assert aci !in ia_ary
36}
37