package com.levelup.java.array; import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.OptionalDouble; import org.apache.commons.math3.stat.descriptive.moment.Mean; import org.junit.Test; import com.google.common.math.DoubleMath; /** * This java example will demonstrate calculating the * average of elements in array. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/calculate-average-of-array/'>Calculate average of array</a> */ public class AverageFromArray { double[] NUMBERS = {1, 24, 45, 62, 85, 8, 91, 3, 5, 56, 9}; @Test public void calculate_average_of_array_java () { double total = 0; for (double element : NUMBERS) { total += element; } double average = total / NUMBERS.length; assertEquals(35.36363636363637, average, 0); } @Test public void calculate_average_of_array_java8 () { OptionalDouble average = Arrays.stream(NUMBERS).average(); assertEquals(35.36363636363637, average.getAsDouble(), 0); } @Test public void calculate_average_of_array_guava () { double average = DoubleMath.mean(NUMBERS); assertEquals(35.36363636363637, average, 0); } @Test public void calculate_average_of_array_apache () { Mean mean = new Mean(); double average = mean.evaluate(NUMBERS); assertEquals(35.36363636363637, average, 0); } }