v2 / vlib / builtin / lambda_expr_array_test.v
49 lines · 39 sloc · 976 bytes · 19f080ffb8f8f01976692f6b79d9f857c685e109
Raw
1const a = [4, 5, 1, 2, 5, 9]
2
3fn test_map() {
4 assert a.map(it) == a
5 assert a.map(it * 10) == [40, 50, 10, 20, 50, 90]
6
7 assert a.map(|x| x) == a
8 assert a.map(|x| x * 10) == [40, 50, 10, 20, 50, 90]
9 assert a.map(|x| 'x: ${x}') == ['x: 4', 'x: 5', 'x: 1', 'x: 2', 'x: 5', 'x: 9']
10 assert a.map(|x| f64(x) * 10.0) == [40.0, 50.0, 10.0, 20.0, 50.0, 90.0]
11}
12
13fn test_filter() {
14 assert a.filter(it > 4) == [5, 5, 9]
15 assert a.filter(it < 4) == [1, 2]
16
17 assert a.filter(|x| x > 4) == [5, 5, 9]
18 assert a.filter(|x| x < 4) == [1, 2]
19}
20
21fn test_any() {
22 assert a.any(it > 4)
23 assert !a.any(it > 40)
24
25 assert a.any(|x| x > 4)
26 assert !a.any(|x| x > 40)
27}
28
29fn test_all() {
30 assert !a.all(it > 4)
31 assert a.all(it < 40)
32
33 assert !a.all(|x| x > 4)
34 assert a.all(|x| x < 40)
35}
36
37fn each(a []int, cb fn (x int)) {
38 for x in a {
39 cb(x)
40 }
41}
42
43fn test_using_lambda_expr_that_does_not_return_as_cb() {
44 each(a, fn (x int) {
45 println(x)
46 })
47 each(a, |x| println(x))
48 each(a, |x| dump(x))
49}
50