diff --git a/math/fibonacci.cpp b/math/fibonacci.cpp index e15cfc0ccff9b75da01f58d47011e7fa2c5f7130..493523b612d64480d6baa487313f8175ac2fa249 100644 --- a/math/fibonacci.cpp +++ b/math/fibonacci.cpp @@ -14,7 +14,7 @@ /** * Recursively compute sequences */ -int fibonacci(unsigned int n) { +unsigned int fibonacci(unsigned int n) { /* If the input is 0 or 1 just return the same This will set the first 2 values of the sequence */ if (n <= 1) @@ -24,8 +24,40 @@ int fibonacci(unsigned int n) { return fibonacci(n - 1) + fibonacci(n - 2); } +/** + * Function for testing the fibonacci() function with a few + * test cases and assert statement. + * @returns `void` +*/ +static void test() { + unsigned int test_case_1 = fibonacci(0); + assert(test_case_1 == 0); + std::cout << "Passed Test 1!" << std::endl; + + unsigned int test_case_2 = fibonacci(1); + assert(test_case_2 == 1); + std::cout << "Passed Test 2!" << std::endl; + + unsigned int test_case_3 = fibonacci(2); + assert(test_case_3 == 1); + std::cout << "Passed Test 3!" << std::endl; + + unsigned int test_case_4 = fibonacci(3); + assert(test_case_4 == 2); + std::cout << "Passed Test 4!" << std::endl; + + unsigned int test_case_5 = fibonacci(4); + assert(test_case_5 == 3); + std::cout << "Passed Test 5!" << std::endl; + + unsigned int test_case_6 = fibonacci(15); + assert(test_case_6 == 610); + std::cout << "Passed Test 6!" << std::endl << std::endl; +} + /// Main function int main() { + test(); int n; std::cin >> n; assert(n >= 0);