### Question:
Accumulators { public static Reducer<Float, Float> floatMultiplicationAccumulator() { return new Reducer<Float, Float>() { @Override public Float accumulate(Float accumulator, Float element) { return accumulator * element; } }; } private  Accumulators(); static Reducer<Integer, Integer> integerAdditionAccumulator(); static Reducer<Long, Long> longAdditionAccumulator(); static Reducer<Double, Double> doubleAdditionAccumulator(); static Reducer<Float, Float> floatAdditionAccumulator(); static Reducer<BigDecimal, BigDecimal> bigDecimalAdditionAccumulator(); static Reducer<BigInteger, BigInteger> bigIntegerAdditionAccumulator(); static Reducer<Integer, Integer> integerMultiplicationAccumulator(); static Reducer<Long, Long> longMultiplicationAccumulator(); static Reducer<BigInteger, BigInteger> bigIntegerMultiplicationAccumulator(); static Reducer<Double, Double> doubleMultiplicationAccumulator(); static Reducer<Float, Float> floatMultiplicationAccumulator(); static Reducer<BigDecimal, BigDecimal> bigDecimalMultiplicationAccumulator();  }### Answer:
@Test public void shouldReturnAnAccumulatorThatMultipliesTheSuppliedAccumulatorValueByTheSuppliedFloatInput() throws Exception { Reducer<Float, Float> floatMultiplicationAccumulator = Accumulators.floatMultiplicationAccumulator(); Float result = floatMultiplicationAccumulator.accumulate(2.5F, 3.2F); assertThat(result.doubleValue(), is(closeTo(8.0F, 0.01))); }