forked from tijmenjoppe/OrientatieAI-student
-
Notifications
You must be signed in to change notification settings - Fork 0
/
recursie_student.py
110 lines (76 loc) · 2.51 KB
/
recursie_student.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Oriëntatie op AI
Opgave: recursie
(c) 2019 Hogeschool Utrecht
Tijmen Muller ([email protected])
Let op! Je mag voor deze opgave geen extra modules importeren met 'import'.
"""
def faculteit(n):
""" Bereken n! op recursieve wijze. """
# Base case
if n == 0:
return 1
# Recursie
else:
return faculteit(0)
def exponent(n):
""" Bereken 2^n op recursieve wijze. """
# Base case
# Recursie
return n
def som(lst):
""" Bereken de som van alle elementen van gegeven lijst lst op recursieve wijze. """
return 1
def palindroom(woord):
""" Bepaal of gegeven woord (str) een palindroom is op recursieve wijze. """
return False
"""
==========================[ HU TESTRAAMWERK ]================================
Onderstaand staan de tests voor je code -- hieronder mag je niets wijzigen!
Je kunt je code testen door deze file te runnen of met behulp van pytest.
"""
import math
import random
def test_faculteit():
for i in range(6):
assert faculteit(i) == math.factorial(i), \
f"Fout: faculteit({i}) geeft {faculteit(i)} in plaats van {math.factorial(i)}"
def test_exponent():
for i in range(10):
assert exponent(i) == 2**i, \
f"Fout: exponent({i}) geeft {exponent(i)} in plaats van {2**i}"
def test_som():
for i in range(6):
lst_test = random.sample(range(-10, 11), i)
assert som(lst_test) == sum(lst_test), \
f"Fout: som({lst_test}) geeft {som(lst_test),} in plaats van {sum(lst_test)}"
def test_palindroom():
testcases = [
("", True),
("radar", True),
("maandnaam", True),
("pollepel", False),
("Maandnaam", False)
]
for testcase, res in testcases:
assert palindroom(testcase) is res, \
f"Fout: palindroom({testcase}) geeft {palindroom(testcase)} in plaats van {res}"
if __name__ == '__main__':
try:
print("\x1b[0;32m")
test_faculteit()
print("Je functie faculteit() doorstaat de tests!")
test_exponent()
print("Je functie exponent() doorstaat de tests!")
test_som()
print("Je functie som() doorstaat de tests!")
test_palindroom()
print("Je functie palindroom() doorstaat de tests!")
print("\x1b[0;30m")
x = input("Geef een woord: ")
print(f"'{x}' is {'' if palindroom(x) else 'g'}een palindroom!")
except AssertionError as ae:
print("\x1b[0;31m")
print(ae)