MathFunctions { public static Function<Number, Integer> times(final int multiplicand) { return new TimesInt(multiplicand); }  static Function<Number, Integer> plus(int addend); static Function<Number, Long> plus(long addend); static Function<Number, Double> plus(final double addend); static Function<Number, Integer> times(final int multiplicand); static Function<Number, Long> times(long multiplicand); static Function<Number, Double> times(final double multiplicand); static Function<Number, Double> divide(double divisor); static Function<Number, String> readableString(int significantDigits, int maxLen); static Function<Number, String> percent(int significantDigits);  }
@Test public void testTimes() { Assert.assertEquals(MathFunctions.times(3).apply(4), (Integer)12); Assert.assertEquals(MathFunctions.times(3L).apply(4L), (Long)12L); Assert.assertEquals(MathFunctions.times(0.3).apply(0.4).doubleValue(), 0.12, 0.00000001); }