| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- ## 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
- # test args unpack
- def f(a, b, *args):
- assert a == 1
- assert b == 2
- assert args == (3, 4)
- f(1, 2, 3, 4)
- # test kwargs unpack
- def f(a=1, b=2, **kwargs):
- assert a == 10
- assert b == 2
- assert kwargs == {'c': 3, 'd': 4}
- f(10, c=3, d=4)
- f(a=10, c=3, d=4)
- 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)
- def g(*args, **kwargs):
- return f(*args, **kwargs)
- 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
- assert g(1, 2, 3, 4) == 17
- assert g(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 g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1, e=2) == 58
- assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1, d=2) == 58
- assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1) == 61
- assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1) == 58
- a = 1
- b = 2
- def f():
- global a, b
- a = 3
- b = 4
- f()
- assert a == 3
- assert b == 4
- def g(a, b, *args, c=1, d=2, **kwargs):
- S = a + b + c + d + sum(args)
- return S, kwargs
- S, kwargs = g(1, 2, 3, 4, 5, c=4, e=5, f=6)
- # a = 1
- # b = 2
- # c = 4
- # d = 2
- # sum(args) = 3 + 4 + 5 = 12
- # S = 1 + 2 + 4 + 2 + 12 = 21
- assert S == 21
- assert kwargs == {'e': 5, 'f': 6}
- # test tuple defaults
- def f(a=(1,)):
- return a
- assert f() == (1,)
- def f(a=(1,2)):
- return a
- assert f() == (1,2)
- def f(a=(1,2,3)):
- return a
- assert f() == (1,2,3)
- def f(a=(1,2,3,)):
- return a
- assert f() == (1,2,3)
- def f(a=(1,(2,3))):
- return a
- assert f() == (1,(2,3))
- def f(a=((1,2),3), b=(4,)):
- return a, b
- assert f() == (((1,2),3), (4,))
- def f(a, b):
- return a + b
- # test multiple lines
- def f(
- a,
- b: int
- ):
- return a + b
- assert f(1, 2) == 3
- def f(a,
- b: int):
- return a + b
- assert f(1, 2) == 3
- # try:
- # f(a=1)
- # exit(1)
- # except TypeError:
- # pass
- # try:
- # f(1)
- # exit(1)
- # except TypeError:
- # pass
- # try:
- # f(1, 2, 3)
- # exit(1)
- # except TypeError:
- # pass
- # # empty function
- # def f(a, b, c):
- # pass
- # assert f(1, 2, 3) == None
- # class A:
- # def f(self, a, b, c):
- # pass
-
- # assert A().f(1, 2, 3) == None
|