38 lines
516 B
Python
38 lines
516 B
Python
# Tests of Starlark while statement.
|
|
|
|
# This is a "chunked" file: each "---" effectively starts a new file.
|
|
|
|
# option:while
|
|
|
|
load("assert.star", "assert")
|
|
|
|
def sum(n):
|
|
r = 0
|
|
while n > 0:
|
|
r += n
|
|
n -= 1
|
|
return r
|
|
|
|
def while_break(n):
|
|
r = 0
|
|
while n > 0:
|
|
if n == 5:
|
|
break
|
|
r += n
|
|
n -= 1
|
|
return r
|
|
|
|
def while_continue(n):
|
|
r = 0
|
|
while n > 0:
|
|
if n % 2 == 0:
|
|
n -= 1
|
|
continue
|
|
r += n
|
|
n -= 1
|
|
return r
|
|
|
|
assert.eq(sum(5), 5+4+3+2+1)
|
|
assert.eq(while_break(10), 40)
|
|
assert.eq(while_continue(10), 25)
|