v2 / vlib / v / tests / loops / for_loops_test.v
75 lines · 67 sloc · 1015 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1const nums = [1, 2, 3]
2
3fn test_for_char_in() {
4 mut sum := 0
5 for ch in nums {
6 sum += ch
7 }
8 assert sum == 6
9}
10
11fn test_for_char_in_range() {
12 mut sum := 0
13 for ch in 0 .. nums.len {
14 sum += nums[ch]
15 }
16 assert sum == 6
17}
18
19fn test_for_blank_in_range() {
20 mut sum := 0
21 for _ in 1 .. 3 {
22 sum++
23 }
24 assert sum == 2
25}
26
27fn test_for_char_complex() {
28 mut sum := 0
29 for ch := 0; ch < nums.len; ch++ {
30 sum += nums[ch]
31 }
32 assert sum == 6
33}
34
35fn test_for_char_in_string() {
36 s := 'abcd'
37 mut sum := 0
38 for ch in s {
39 sum += ch
40 }
41 assert sum == 394 // ascii codes of `a` + `b` + `c` + `d`
42}
43
44fn test_for_string_in_map() {
45 m := {
46 'a': 'b'
47 'c': 'd'
48 }
49 mut acc := ''
50 for k, v in m {
51 acc += '${k}: ${v}, '
52 }
53 assert acc == 'a: b, c: d, '
54
55 mut m2 := {
56 'a': 3
57 'b': 4
58 'c': 5
59 }
60 m2.delete('b')
61 acc = ''
62 for k, v in m2 {
63 acc += '${k}: ${v}, '
64 }
65 assert acc == 'a: 3, c: 5, '
66}
67
68fn test_mut_for() {
69 mut vals := [1, 2, 3]
70 for mut val in vals {
71 (*val)++
72 }
73 assert vals == [2, 3, 4]
74 println(vals)
75}
76