MathUtil { public static double sum(final List<? extends Number> list) { double sum = 0.0; for (final Number number : list) { sum += number.doubleValue(); } return sum; } private  MathUtil(); static double sum(final List<? extends Number> list); static double median(final Collection<Double> list); static double median(final double... list); static DescriptiveStatistics getStatistics(final Collection<Double> list); static DescriptiveStatistics getStatistics(final double... list); static double mean(final List<Double> list); static double variance(final List<Double> list); static double stDev(final List<Double> list); static double mad(final double... data); static double iqr(final double... data); static int countNonZeroBeginning(final double... data); static double[] getLoessParameterEstimates(final double... y); static SimpleRegression createLinearRegression(final double[] x, final double[] y); static OLSMultipleLinearRegression createLinearRegression(final double[][] x, final double[] y); static double[] getRobustLoessParameterEstimates(final double... y); static double[] getTricubeWeights(final int weightsNumber); static double[] getTricubeBisquareWeights(final double... residuals); static double[] abs(final double... data); static int doubleToInt(final double value); static int parseInt(final String value, final int defaultValue); static boolean same(final double first, final double second); static boolean same(final double first, final double second, final double precisionError); static List<Double> correlationCoefficients(final double[][] data); static final double HUNDRED_PERCENT; }
@Test public void testSum() { final List<Double> data1 = new ArrayList<Double>(); for(final Double number : DATA1) { data1.add(number); } assertEquals(SUM1, MathUtil.sum(data1)); final List<Double> data2 = new ArrayList<Double>(); for (final Double number : DATA1) { data2.add(number / 10); } assertEquals(SUM1 / 10, MathUtil.sum(data2)); }