mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
tests: add tests for continue/break in last statement of an or{}
This commit is contained in:
parent
4e760c703e
commit
2202ee5d66
36
vlib/v/tests/option_in_loop_test.v
Normal file
36
vlib/v/tests/option_in_loop_test.v
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
fn opt_0_10_20(x int) ?int {
|
||||||
|
if x < 0 || (x >= 10 && x <= 20) {
|
||||||
|
return error('invalid')
|
||||||
|
}
|
||||||
|
return x
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_options_in_for_loop_break() {
|
||||||
|
mut sum := 0
|
||||||
|
mut nbreaks := 0
|
||||||
|
for i := 5; i < 15; i++ {
|
||||||
|
x := opt_0_10_20(i) or {
|
||||||
|
nbreaks++
|
||||||
|
break
|
||||||
|
}
|
||||||
|
sum += x
|
||||||
|
// println('i: ${i:3} | sum: ${sum:3}')
|
||||||
|
}
|
||||||
|
assert nbreaks == 1
|
||||||
|
assert sum == 35
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_options_in_for_loop_continue() {
|
||||||
|
mut sum := 0
|
||||||
|
mut ncontinue := 0
|
||||||
|
for i := -5; i < 30; i++ {
|
||||||
|
x := opt_0_10_20(i) or {
|
||||||
|
ncontinue++
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
sum += x
|
||||||
|
// println('i: ${i:3} | sum: ${sum:3}')
|
||||||
|
}
|
||||||
|
assert ncontinue == 16
|
||||||
|
assert sum == 270
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user