/** * */ package net.objectlab.kit.util; import static org.assertj.core.api.Assertions.assertThat; import java.math.BigDecimal; import org.junit.Before; import org.junit.Test; /** * @author Benoit * */ public class AverageTest { private Average average; @Before public void setUp() { average = new Average(); } @Test public void testAverageNoPoint() { assertThat(average.getDataPoints()).isEqualTo(0); assertThat(average.getAverage()).isNull(); assertThat(average.getMaximum().isPresent()).isFalse(); assertThat(average.getMinimum().isPresent()).isFalse(); } @Test public void testAverageOnePointZero() { average.add(BigDecimal.ZERO); assertThat(average.getDataPoints()).isEqualTo(1); assertThat(average.getAverage()).isEqualByComparingTo("0"); assertThat(average.getTotal()).isEqualByComparingTo("0"); assertThat(average.getMaximum().get()).isEqualByComparingTo("0"); assertThat(average.getMinimum().get()).isEqualByComparingTo("0"); } @Test public void testAverageOnePointTen() { average.add(BigDecimal.TEN); assertThat(average.getDataPoints()).isEqualTo(1); assertThat(average.getAverage()).isEqualByComparingTo("10"); assertThat(average.getTotal()).isEqualByComparingTo("10"); assertThat(average.getMaximum().get()).isEqualByComparingTo("10"); assertThat(average.getMinimum().get()).isEqualByComparingTo("10"); } @Test public void testAverageTwoPointsTen() { average.add(BigDecimal.ZERO); average.add(BigDecimal.TEN); assertThat(average.getDataPoints()).isEqualTo(2); assertThat(average.getAverage()).isEqualByComparingTo("5"); assertThat(average.getTotal()).isEqualByComparingTo("10"); assertThat(average.getMaximum().get()).isEqualByComparingTo("10"); assertThat(average.getMinimum().get()).isEqualByComparingTo("0"); } @Test public void testAverageTwoPointsWithNegative() { average.add(BigDecimalUtil.bd("-1")); average.add(BigDecimal.TEN); assertThat(average.getDataPoints()).isEqualTo(2); assertThat(average.getAverage()).isEqualByComparingTo("4.5"); assertThat(average.getTotal()).isEqualByComparingTo("9"); assertThat(average.getMaximum().get()).isEqualByComparingTo("10"); assertThat(average.getMinimum().get()).isEqualByComparingTo("-1"); } @Test public void testAverageFourPointMixed() { average.add(BigDecimalUtil.bd("-1")); average.add(BigDecimalUtil.bd("4")); average.add(BigDecimal.TEN); average.add(BigDecimal.TEN); assertThat(average.getDataPoints()).isEqualTo(4); assertThat(average.getAverage()).isEqualByComparingTo("5.75"); assertThat(average.getTotal()).isEqualByComparingTo("23"); assertThat(average.getMaximum().get()).isEqualByComparingTo("10"); assertThat(average.getMinimum().get()).isEqualByComparingTo("-1"); } }