21_functions.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. ## Function Tests.
  2. def f1():
  3. return 'f1'
  4. assert f1() == 'f1'
  5. def f2(a, b, c, d):
  6. return c
  7. assert f2('a', 'b', 'c', 'd') == 'c'
  8. def f3(a,b):
  9. return a - b
  10. assert f3(1,2) == -1
  11. def f4(a,b):
  12. return a + f3(a, b)
  13. assert f4(1,2) == 0
  14. def fact(n):
  15. if n == 1:
  16. return 1
  17. return n * fact(n - 1)
  18. assert fact(5)==120
  19. def f(a=1, b=-1):
  20. return a + b
  21. assert f() == 0
  22. assert f(1, 2) == 3
  23. assert f(-5) == -6
  24. assert f(b=5) == 6
  25. assert f(a=5) == 4
  26. assert f(b=5, a=5) == 10
  27. def f(*args):
  28. return 10 * sum(args)
  29. assert f(1, 2, 3) == 60
  30. def f(x, *args, y=3):
  31. i = 0
  32. for j in args:
  33. i += j
  34. return i * y
  35. assert f(10, 1, 2, 3) == 18
  36. def f(a, b, *c, d=2, e=5):
  37. return a + b + d + e + sum(c)
  38. def g(*args, **kwargs):
  39. return f(*args, **kwargs)
  40. assert f(1, 2, 3, 4) == 17
  41. assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) == 62
  42. assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1, e=2) == 58
  43. assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1, d=2) == 58
  44. assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1) == 61
  45. assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1) == 58
  46. assert f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) == 217
  47. 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
  48. assert g(1, 2, 3, 4) == 17
  49. assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) == 62
  50. assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1, e=2) == 58
  51. assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1, d=2) == 58
  52. assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, d=1) == 61
  53. assert g(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, e=1) == 58
  54. a = 1
  55. b = 2
  56. def f():
  57. global a, b
  58. a = 3
  59. b = 4
  60. f()
  61. assert a == 3
  62. assert b == 4
  63. def g(a, b, *args, c=1, d=2, **kwargs):
  64. S = a + b + c + d + sum(args)
  65. return S, kwargs
  66. S, kwargs = g(1, 2, 3, 4, 5, c=4, e=5, f=6)
  67. # a = 1
  68. # b = 2
  69. # c = 4
  70. # d = 2
  71. # sum(args) = 3 + 4 + 5 = 12
  72. # S = 1 + 2 + 4 + 2 + 12 = 21
  73. assert S == 21
  74. assert kwargs == {'e': 5, 'f': 6}