Python2017/labs02/task06.py
2017-12-14 16:45:47 +01:00

41 lines
1.3 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Napisz funkcję big_no zwracającej tzw. "Big 'NO!'"
(zob. http://tvtropes.org/pmwiki/pmwiki.php/Main/BigNo)
dla zadanej liczby tj. napis typu "NOOOOOOOOOOOOO!", gdzie liczba 'O' ma być
równa podanemu argumentem, przy czym jeśli argument jest mniejszy niż 5,
ma być zwracany napis "It's not a Big 'No!'".
"""
def big_no(n):
def test_special_cases(self):
"""Testy przypadków szczególnych."""
self.assertEqual(big_no(0), "It's not a Big 'No!'")
self.assertEqual(big_no(1), "It's not a Big 'No!'")
self.assertEqual(big_no(2), "It's not a Big 'No!'")
self.assertEqual(big_no(4), "It's not a Big 'No!'")
self.assertEqual(big_no(5), "NOOOOO!")
def test_regular_cases(self):
"""Testy dla zwykłych przypadków"""
self.assertEqual(big_no(6), "NOOOOOO!")
self.assertEqual(big_no(33), "N" + ("O" * 33) + "!")
def tests(f):
inputs = [[5], [6], [2]]
outputs = ["NOOOOO!", "NOOOOOO!", "It's not a Big 'No!'"]
for input, output in zip(inputs, outputs):
if f(*input) != output:
return "ERROR: {}!={}".format(f(*input), output)
break
return "TESTS PASSED"
if __name__ == "__main__":
print(tests(big_no))