FibonacciNumbers { public int getRecursive(int n) { validateInput(n); if (n == 0 || n == 1) { return 1; } else { return getRecursive(n - 1) + getRecursive(n - 2); } }  int getRecursive(int n); int getIterative(int n); int getRecursiveWithCatching(int n);  }
@Test(expected = IllegalArgumentException.class) public void shouldNotAcceptNegativeValuesRecursive() { fibonacciNumbers.getRecursive(-1); }
@Test public void firstNumberInFibonacciSequenceIsThreeRecursive() { assertEquals(1, fibonacciNumbers.getRecursive(1)); }
@Test public void fourthNumberInFibonacciSequenceIsThreeRecursive() { assertEquals(5, fibonacciNumbers.getRecursive(4)); }
@Test public void eleventhNumberInFibonacciSequenceIsRecursive() { assertEquals(144, fibonacciNumbers.getRecursive(11)); }