Advertisement
Guest User

Untitled

a guest
Dec 10th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. import unittest
  2.  
  3.  
  4. def is_even(number):
  5. ''' Returns True if **number** is even or False if it is odd. '''
  6. return number % 2
  7.  
  8.  
  9. class TestIsEven(unittest.TestCase):
  10. def test_even(self):
  11. for n in range(-2, 3, 2):
  12. with self.subTest(n=n):
  13. self.assertTrue(bool(is_even(n)))
  14.  
  15. def test_odd(self):
  16. for n in range(-3, 4, 2):
  17. with self.subTest(n=n):
  18. self.assertFalse(bool(is_even(n)))
  19.  
  20. def test_num_at_string(self):
  21. self.assertRaises(TypeError, is_even, '2')
  22.  
  23. def test_no_args(self):
  24. self.assertRaises(TypeError, is_even)
  25.  
  26.  
  27. if __name__ == '__main__':
  28. unittest.main()
  29.  
  30. # Тесты написаны исходя из описания функции в docstring.
  31. # Основные тесты не проходят потому что функция возвращет не тот результат,
  32. # который ожидается по описанию, поскольку при преобразовании к булевым
  33. # значениям '0' будет равен False, а '1' - True
  34. #
  35. # Чтобы функция вела себя соответственно описанию в docstring,
  36. # необходимо изменить `return number % 2` на `return not number % 2`
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement