### Question:
SpecialMath { public static int combinations(int n, int k) { if (!((0 <= k) && (k <= n))) throw new IllegalArgumentException("The input arguments should fulfill 0<=k<=n"); int numerator = 1; for (int i = n; i > k; i--) numerator *= i; return numerator / factorial(n - k); }  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 testCombinationsTest() { assertEquals(10, combinations(5, 3)); assertEquals(6, combinations(4, 2)); assertEquals(220, combinations(12, 3)); }