package org.yamcs.web.rest.archive; import static org.junit.Assert.assertEquals; import java.util.List; import org.junit.Test; import org.yamcs.web.rest.archive.RestDownsampler.Sample; public class RestDownsamplerTest { @Test public void testSampling() { RestDownsampler sampler = new RestDownsampler(10, 3); List<Sample> samples = sampler.collect(); assertEquals(0, samples.size()); sampler.process(1, 5); samples = sampler.collect(); assertEquals(1, samples.size()); assertEquals(5, samples.get(0).avg, 1e-10); assertEquals(1, samples.get(0).n); // Add to same bucket sampler.process(2, 10); assertEquals(1, samples.size()); assertEquals((5+10)/2., samples.get(0).avg, 1e-10); assertEquals(2, samples.get(0).n); // Add to same bucket sampler.process(3, 7); samples = sampler.collect(); assertEquals(1, samples.size()); assertEquals((5+10+7)/3., samples.get(0).avg, 1e-10); assertEquals(3, samples.get(0).n); // Due to flooring, leads to a new bucket sampler.process(4, 2); samples = sampler.collect(); assertEquals(2, samples.size()); Sample sample0 = samples.get(0); assertEquals((5+10+7)/3., sample0.avg, 1e-10); assertEquals(5, sample0.min, 1e-10); assertEquals(10, sample0.max, 1e-10); Sample sample1 = samples.get(1); assertEquals(2, sample1.avg, 1e-10); assertEquals(2, sample1.min, 1e-10); assertEquals(2, sample1.max, 1e-10); } }