pocketpy/tests/21_functions.py
blueloveTH c89a74db1e ...
2023-04-18 00:03:29 +08:00

69 lines
1.3 KiB
Python

## Function Tests.
def f1():
return 'f1'
assert f1() == 'f1'
def f2(a, b, c, d):
return c
assert f2('a', 'b', 'c', 'd') == 'c'
def f3(a,b):
return a - b
assert f3(1,2) == -1
def f4(a,b):
return a + f3(a, b)
assert f4(1,2) == 0
def fact(n):
if n == 1:
return 1
return n * fact(n - 1)
assert fact(5)==120
def f(a=1, b=-1):
return a + b
assert f() == 0
assert f(1, 2) == 3
assert f(-5) == -6
assert f(b=5) == 6
assert f(a=5) == 4
assert f(b=5, a=5) == 10
def f(*args):
return 10 * sum(args)
assert f(1, 2, 3) == 60
def f(x, *args, y=3):
i = 0
for j in args:
i += j
return i * y
assert f(10, 1, 2, 3) == 18
def f(a, b, *c, d=2, e=5):
return a + b + d + e + sum(c)
assert f(1, 2, 3, 4) == 17
assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) == 62
assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1, e=2) == 58
assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1, d=2) == 58
assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1) == 61
assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1) == 58
assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) == 217
assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, d=1, e=2) == 213
a = 1
b = 2
def f():
global a, b
a = 3
b = 4
f()
assert a == 3
assert b == 4