""" Plain vanilla Fibonacci Numbers but with the ability to reset the initial pair mid-course
Kirby Urner (c) MIT License """ import unittest def fibs(a, b): while True: d = yield a # send to a, b if d: a, b = d[0], d[1] continue b, a = a + b, b class Test_Fib(unittest.TestCase): def test_basics(self): thegen = fibs(0, 1) self.assertEqual(next(thegen), 0) self.assertEqual(next(thegen), 1) self.assertEqual(next(thegen), 1) self.assertEqual(next(thegen), 2) self.assertEqual(next(thegen), 3) self.assertEqual(next(thegen), 5) self.assertEqual(next(thegen), 8) self.assertEqual(next(thegen), 13) self.assertEqual(next(thegen), 21) def test_updating(self): thegen = fibs(0, 1) self.assertEqual(next(thegen), 0) self.assertEqual(next(thegen), 1) self.assertEqual(thegen.send((20, 21)), 20) # update pairing self.assertEqual(next(thegen), 21) self.assertEqual(next(thegen), 41) self.assertEqual(next(thegen), 62) self.assertEqual(next(thegen), 103) if __name__ == "__main__": unittest.main() """ /Library/Frameworks/Python.framework/Versions/3.2/bin/python3 /Users/kurner/Documents/anyproject.py .. ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK Process finished with exit code 0 """
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig