v2 / vlib / v / tests / options / option_fixed_array_test.v
59 lines · 49 sloc · 893 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1fn f_test(args ?[2]int) ? {
2 println(args)
3 assert args?.len == 2
4}
5
6fn f_arr(args ?[3]f64) ?[]f64 {
7 mut ret := ?[]f64(none)
8 ret = [-6.0]
9 ret?.pop()
10 ret? << args?[0]
11 ret? << args?[1]
12 ret? << args?[2]
13 return ret
14}
15
16fn f_arr2(args ?[3]f64) ?[]f64 {
17 arr := args?
18 mut ret := []f64{}
19 ret << arr[0]
20 ret << arr[1]
21 ret << arr[2]
22 return ret
23}
24
25fn test_simple() {
26 mut arr := ?[3]int(none)
27 println(arr) // Option(none)
28}
29
30fn test_simple_assign() {
31 mut arr := ?[3]int(none)
32 assert arr == none
33
34 arr = [1, 2, 3]!
35 assert arr != none
36
37 println(arr) // Option([1, 2, 3])
38}
39
40fn test_array_fixed_param() {
41 f_test([1, 2]!)
42}
43
44fn test_assign() {
45 mut a := ?[2]string(none)
46 assert a == none
47 a = ['a', 'b']!
48 assert a != none
49 a = none
50 assert a == none
51}
52
53fn test_fn_call() {
54 assert f_arr([0.0, 1.2, 2.3]!)?.len == 3
55}
56
57fn test_fn_unwrap_call() {
58 assert f_arr2([0.0, 1.2, 2.3]!)?.len == 3
59}
60