-
Notifications
You must be signed in to change notification settings - Fork 0
/
tests.py
69 lines (62 loc) · 2.41 KB
/
tests.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
from doctest import testmod
def get_description(bmi_result: float) -> dict[str]:
"""Method that's return description of BMI result and color.
:param bmi_result: `float` numer of calculated result.
:return: `dict` description and color message
>>> get_description(15.0)
{'color': 'red', 'description': 'wygłodzenie'}
>>> get_description(16.8)
{'color': 'red', 'description': 'wychudzenie (spowodowane często przez ciężką chorobę)'}
>>> get_description(17.9)
{'color': 'orange', 'description': 'niedowaga'}
>>> get_description(23)
{'color': 'green', 'description': 'waga prawidłowa'}
>>> get_description(25.0)
{'color': 'orange', 'description': 'nadwaga'}
>>> get_description(34.9)
{'color': 'red', 'description': 'I stopień otyłości'}
>>> get_description(37)
{'color': 'red', 'description': 'II stopień otyłości'}
>>> get_description(58.7)
{'color': 'red', 'description': 'III stopień otyłości (otyłość skrajna)'}
>>> get_description(-10)
Traceback (most recent call last):
...
ValueError: Podano nieprawidłową wagę lub wzrost
>>> get_description(1000)
Traceback (most recent call last):
...
ValueError: Podano nieprawidłową wagę lub wzrost
"""
result = {
"color": None,
"description": None,
}
if 3 <= bmi_result < 16.0:
result["color"] = "red"
result["description"] = "wygłodzenie"
elif 16 <= bmi_result <= 17:
result["color"] = "red"
result["description"] = "wychudzenie (spowodowane często przez ciężką chorobę)"
elif 17 <= bmi_result <= 18.5:
result["color"] = "orange"
result["description"] = "niedowaga"
elif 18.5 <= bmi_result < 25:
result["color"] = "green"
result["description"] = "waga prawidłowa"
elif 25 <= bmi_result < 30:
result["color"] = "orange"
result["description"] = "nadwaga"
elif 30 <= bmi_result < 35:
result["color"] = "red"
result["description"] = "I stopień otyłości"
elif 35 <= bmi_result < 40:
result["color"] = "red"
result["description"] = "II stopień otyłości"
elif 40 <= bmi_result <= 720:
result["color"] = "red"
result["description"] = "III stopień otyłości (otyłość skrajna)"
else:
raise ValueError("Podano nieprawidłową wagę lub wzrost")
return result
testmod()