@Test(expected = IllegalArgumentException.class) public void shouldNotCalculateFactorialOfNegativeIntegersRecursive() { factorial.getRecursive(-1); }
public int getRecursive(int n) { validateInput(n); if (n == 0) { return 1; } else { return n * getRecursive(n - 1); } }
Factorial { public int getRecursive(int n) { validateInput(n); if (n == 0) { return 1; } else { return n * getRecursive(n - 1); } } }
Factorial { public int getRecursive(int n) { validateInput(n); if (n == 0) { return 1; } else { return n * getRecursive(n - 1); } }  }
Factorial { public int getRecursive(int n) { validateInput(n); if (n == 0) { return 1; } else { return n * getRecursive(n - 1); } }  int getIterative(int n); int getRecursive(int n); int getTailRecursive(int n); }
Factorial { public int getRecursive(int n) { validateInput(n); if (n == 0) { return 1; } else { return n * getRecursive(n - 1); } }  int getIterative(int n); int getRecursive(int n); int getTailRecursive(int n);  }