You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.5 KiB

  1. """
  2. Analytical Skills - opgave recursie
  3. (c) 2019 Hogeschool Utrecht
  4. Tijmen Muller (tijmen.muller@hu.nl)
  5. """
  6. def faculteit(n):
  7. # Base case
  8. if n == 0:
  9. return 1
  10. # Recursie
  11. else:
  12. return faculteit(0)
  13. def exponent(n):
  14. # Base case
  15. # Recursie
  16. return n
  17. def som(lst):
  18. return 1
  19. def palindroom(woord):
  20. return False
  21. """
  22. ========================================================================================================================
  23. Onderstaand staan de tests voor je code -- hieronder mag je niets wijzigen!
  24. Je kunt je code testen door deze file te runnen of met behulp van pytest.
  25. """
  26. import math, random
  27. def test_faculteit():
  28. for x in range(6):
  29. assert faculteit(x) == math.factorial(x), "Fout: faculteit({}) geeft {} in plaats van {}".format(x, faculteit(x), math.factorial(x))
  30. def test_exponent():
  31. for x in range(10):
  32. assert exponent(x) == 2**x, "Fout: exponent({}) geeft {} in plaats van {}".format(x, exponent(x), 2**x)
  33. def test_som():
  34. for i in range(6):
  35. lst_test = random.sample(range(-10, 11), i)
  36. assert som(lst_test) == sum(lst_test), "Fout: som({}) geeft {} in plaats van {}".format(lst_test, som(lst_test), sum(lst_test))
  37. def test_palindroom():
  38. assert palindroom("") is True, "Fout: palindroom({}) geeft {} in plaats van {}".format("", palindroom(""), True)
  39. assert palindroom("radar") is True, "Fout: palindroom({}) geeft {} in plaats van {}".format("radar", palindroom("radar"), True)
  40. assert palindroom("maandnaam") is True, "Fout: palindroom({}) geeft {} in plaats van {}".format("maandnaam", palindroom("maandnaam"), True)
  41. assert palindroom("pollepel") is False, "Fout: palindroom({}) geeft {} in plaats van {}".format("pollepel", palindroom("pollepel"), False)
  42. assert palindroom("Maandnaam") is False, "Fout: palindroom({}) geeft {} in plaats van {}".format("Maandnaam", palindroom("Maandnaam"), False)
  43. if __name__ == '__main__':
  44. try:
  45. print("\x1b[0;32m")
  46. test_faculteit()
  47. print("Je functie faculteit() doorstaat de tests!")
  48. test_exponent()
  49. print("Je functie exponent() doorstaat de tests!")
  50. test_som()
  51. print("Je functie som() doorstaat de tests!")
  52. test_palindroom()
  53. print("Je functie palindroom() doorstaat de tests!")
  54. print("\x1b[0;30m")
  55. x = input("Geef een woord: ")
  56. print("'" + x + "' is " + ("" if palindroom(x) else "g") + "een palindroom!")
  57. except AssertionError as ae:
  58. print("\x1b[0;31m" + str(ae))