# test_math_recursion.py
# Walker M. White (wmw2)
# September 9, 2012
"""Unit test for recursive mathematical functions."""
import cunittest
from math_recursion import *

def test_factorial():
    unittest.assert_equals(1,  factorial(0));
    unittest.assert_equals(1,  factorial(1));
    unittest.assert_equals(2,  factorial(2));
    unittest.assert_equals(6,  factorial(3));
    unittest.assert_equals(3628800,  factorial(10));


def test_fibonacci():
    unittest.assert_equals(1,  fibonacci(0));
    unittest.assert_equals(1,  fibonacci(1));
    unittest.assert_equals(2,  fibonacci(2));
    unittest.assert_equals(3,  fibonacci(3));
    unittest.assert_equals(5,  fibonacci(4));
    unittest.assert_equals(144,  fibonacci(11));
    unittest.assert_equals(10946,  fibonacci(20));


# Application Code
if __name__ == '__main__':
    test_factorial()
    test_fibonacci()
    print 'Module math_recursion is working properly'