@Test public void factorialOfFiveEqualsTo120TailRecursive() { int result = factorial.getTailRecursive(5); assertEquals(120, result); }
public int getTailRecursive(int n) { validateInput(n); return getTailRecursiveInner(n, 1); }
Factorial { public int getTailRecursive(int n) { validateInput(n); return getTailRecursiveInner(n, 1); } }
Factorial { public int getTailRecursive(int n) { validateInput(n); return getTailRecursiveInner(n, 1); }  }
Factorial { public int getTailRecursive(int n) { validateInput(n); return getTailRecursiveInner(n, 1); }  int getIterative(int n); int getRecursive(int n); int getTailRecursive(int n); }
Factorial { public int getTailRecursive(int n) { validateInput(n); return getTailRecursiveInner(n, 1); }  int getIterative(int n); int getRecursive(int n); int getTailRecursive(int n);  }