package mil.nga.giat.geowave.core.store.adapter.statistics.histogram;
import static org.junit.Assert.assertEquals;
import java.util.Random;
import mil.nga.giat.geowave.core.store.adapter.statistics.histogram.MinimalBinDistanceHistogram;
import org.junit.Test;
public class NumericHistogramTest
{
Random r = new Random(
347);
MinimalBinDistanceHistogram stats = new MinimalBinDistanceHistogram();
FixedBinNumericHistogram stats2 = new FixedBinNumericHistogram();
@Test
public void testIngest() {
for (long i = 0; i < 10000; i++) {
double v = 2500 + (r.nextDouble() * 99998.0);
stats.add(v);
stats2.add(v);
}
assertEquals(
0,
stats.cdf(2500),
0.001);
assertEquals(
1.0,
stats.cdf(102500),
0.001);
assertEquals(
0.5,
stats.cdf(52500),
0.02);
assertEquals(
0,
stats2.cdf(2500),
0.001);
assertEquals(
1.0,
stats2.cdf(102500),
0.001);
assertEquals(
0.5,
stats2.cdf(52500),
0.02);
assertEquals(
27,
stats.quantile(0.25) / 1000.0,
0.1);
assertEquals(
52,
stats.quantile(0.5) / 1000.0,
0.3);
assertEquals(
78,
stats.quantile(0.75) / 1000.0,
0.3);
assertEquals(
55,
stats2.quantile(0.5) / 1000.0,
1.0);
assertEquals(
81,
stats2.quantile(0.75) / 1000.0,
0.1);
}
}