package org.streaminer.stream.quantile; import cern.jet.random.Normal; import cern.jet.random.engine.MersenneTwister64; import cern.jet.random.engine.RandomEngine; import org.junit.Test; /** * * @author maycon */ public class Frugal2UTest { @Test public void testOffer() throws QuantilesException { System.out.println("offer"); double[] quantiles = new double[]{0.05, 0.25, 0.5, 0.75, 0.95}; Frugal2U instance = new Frugal2U(quantiles, 0); ExactQuantilesAll<Integer> exact = new ExactQuantilesAll<Integer>(); RandomEngine r = new MersenneTwister64(0); Normal dist = new Normal(100, 50, r); int numSamples = 1000; for(int i = 0; i < numSamples; ++i) { int num = (int) Math.max(0, dist.nextDouble()); instance.offer(num); exact.offer(num); } System.out.println("Q\tEst\tExact"); for (double q : quantiles) { System.out.println(q + "\t" + instance.getQuantile(q) + "\t" + exact.getQuantile(q)); } } }