import unittest try: from .lib_fibonacci import fibonacci_generator from .lib_fibonacci import fibonacci_generator_smaller from .lib_fibonacci import fibonacci_nth except ModuleNotFoundError: from lib_fibonacci import fibonacci_generator from lib_fibonacci import fibonacci_generator_smaller from lib_fibonacci import fibonacci_nth class TestFibonacciMethods(unittest.TestCase): def test_fibonacci_generator(self): g = fibonacci_generator() fs = [next(g) for _ in range(10)] self.assertEqual(fs, [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]) self.assertNotEqual(fs, [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]) def test_fibonacci_generator_smaller(self): g = fibonacci_generator_smaller(20) self.assertEqual(list(g), [1, 1, 2, 3, 5, 8, 13]) def test_fibonacci_nth(self): self.assertEqual(fibonacci_nth(0), 0) self.assertEqual(fibonacci_nth(1), 1) self.assertEqual(fibonacci_nth(2), 1) self.assertEqual(fibonacci_nth(3), 2) self.assertEqual(fibonacci_nth(4), 3) self.assertEqual(fibonacci_nth(5), 5) self.assertEqual(fibonacci_nth(6), 8) if __name__ == '__main__': unittest.main()