import unittest from asserts import assert_equal, assert_raises, fail def fib(n): if n < 0: raise ValueError('This algorithm works only with positive integers') if n == 0: return 0 if n == 1: return 1 return fib(n-1) + fib(n-2) class TestFibinacci(unittest.TestCase): def test_0(self): assert_equal(fib(0), 0) def test_1(self): assert_equal(fib(1), 1) def test_2(self): assert_equal(fib(2), 1) def test_3(self): assert_equal(fib(3), 2) def test_4(self): assert_equal(fib(4), 3) def test_5(self): assert_equal(fib(5), 5) def test_6(self): assert_equal(fib(6), 8) def test_negative(self): assert_raises(ValueError, fib, -1) assert_raises(ValueError, fib, -42) def test_fail(self): fail('This test fails') class TestFibinacci2(unittest.TestCase): def test_0(self): self.assertEqual(fib(0), 0) def test_1(self): self.assertEqual(fib(1), 1) def test_2(self): self.assertEqual(fib(2), 1) def test_3(self): self.assertEqual(fib(3), 2) def test_4(self): self.assertEqual(fib(4), 3) def test_5(self): self.assertEqual(fib(5), 5) def test_6(self): self.assertEqual(fib(6), 8) def test_negative(self): self.assertRaises(ValueError, fib, -1) self.assertRaises(ValueError, fib, -42) def test_fail(self): self.fail('This test fails') if __name__ == '__main__': unittest.main()