### Question:
SpecialMath { public static int factorial(int n) { if (n < 0) throw new IllegalArgumentException("n must be >= 0"); int value = 1; for (int i = 2; i <= n; i++) value *= i; return value; }  static double getMachineEpsilon(); static double evaluatePolynomial(double x, double[] coefficients); static double calculateCompleteEllipticIntegralOfTheFirstKind(double m); static double[] calculateJacobianEllipticFunctionsValues(double u, double m); static int factorial(int n); static int combinations(int n, int k); static double complement(double angle); static double[] unwrap(double[] angles); static boolean isOdd(int x); static boolean isEven(int x); static double acosh(final double a); static double asinh(double a);  }### Answer:
@Test public void testFactorialTest() { assertEquals(1, factorial(0)); assertEquals(1, factorial(1)); assertEquals(2, factorial(2)); assertEquals(6, factorial(3)); assertEquals(120, factorial(5)); }