package org.threadly.util;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import org.junit.Test;
@SuppressWarnings("javadoc")
public class StatisticsUtilsTest {
@Test
public void averageTest() {
assertEquals(0, StatisticsUtils.getAverage(Collections.<Long>emptyList()), 0);
assertEquals(2, StatisticsUtils.getAverage(Arrays.asList(new Integer[]{ 2 })), 0);
assertEquals(2, StatisticsUtils.getAverage(Arrays.asList(new Integer[]{ 2, 2 })), 0);
assertEquals(2, StatisticsUtils.getAverage(Arrays.asList(new Integer[]{ 1, 3 })), 0);
assertEquals(2, StatisticsUtils.getAverage(Arrays.asList(new Integer[]{ 1, 3, 1, 3 })), 0);
assertEquals(5, StatisticsUtils.getAverage(Arrays.asList(new Integer[]{ 0, 10 })), 0);
assertEquals(0, StatisticsUtils.getAverage(Arrays.asList(new Integer[]{ -10, 10 })), 0);
}
@Test
public void percentileTest() {
Map<Double, Integer> pResult =
StatisticsUtils.getPercentiles(Arrays.asList(new Integer[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }),
0, 50, 99, 100);
assertEquals(1, pResult.get(0.).intValue());
assertEquals(6, pResult.get(50.).intValue());
assertEquals(10, pResult.get(99.).intValue());
assertEquals(10, pResult.get(100.).intValue());
}
@Test
public void percentileFail() {
try {
StatisticsUtils.getPercentiles(Collections.<Long>emptyList(), 50, 99);
fail("Exception should have thrown");
} catch (IllegalArgumentException e) {
// expected
}
try {
StatisticsUtils.getPercentiles(Arrays.asList(new Integer[]{ 0, 10 }));
fail("Exception should have thrown");
} catch (IllegalArgumentException e) {
// expected
}
}
}