1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/v/tests/for-in-iterator_test.v
2021-01-05 01:06:44 +01:00

37 lines
501 B
V

struct Doubler {
mut:
val int
until int
}
fn (mut it Doubler) next() ?int {
v := it.val
if v > it.until {
return none
}
it.val *= 2
return v
}
fn doubler(start int, until int) Doubler {
return Doubler{start, until}
}
fn test_for_in_iterator() {
mut d := doubler(5, 30)
mut vals := []int{}
for val in d {
vals << val
}
assert vals == [5, 10, 20]
}
fn test_for_in_empty_iterator() {
mut d := doubler(5, 2)
mut vals := []int{}
for val in d {
vals << val
}
assert vals == []
}