v/vlib/v/tests/for_loops_test.v

78 lines
1012 B
V

const (
nums = [1, 2, 3]
)
fn test_for_char_in() {
mut sum := 0
for ch in nums {
sum += ch
}
assert sum == 6
}
fn test_for_char_in_range() {
mut sum := 0
for ch in 0 .. nums.len {
sum += nums[ch]
}
assert sum == 6
}
fn test_for_blank_in_range() {
mut sum := 0
for _ in 1 .. 3 {
sum++
}
assert sum == 2
}
fn test_for_char_complex() {
mut sum := 0
for ch := 0; ch < nums.len; ch++ {
sum += nums[ch]
}
assert sum == 6
}
fn test_for_char_in_string() {
s := 'abcd'
mut sum := 0
for ch in s {
sum += ch
}
assert sum == 394 // ascii codes of `a` + `b` + `c` + `d`
}
fn test_for_string_in_map() {
m := {
'a': 'b'
'c': 'd'
}
mut acc := ''
for k, v in m {
acc += '$k: $v, '
}
assert acc == 'a: b, c: d, '
mut m2 := {
'a': 3
'b': 4
'c': 5
}
m2.delete('b')
acc = ''
for k, v in m2 {
acc += '$k: $v, '
}
assert acc == 'a: 3, c: 5, '
}
fn test_mut_for() {
mut vals := [1, 2, 3]
for mut val in vals {
(*val)++
}
assert vals == [2, 3, 4]
println(vals)
}