package se.l4.vibe.percentile;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Test;
public class BucketPercentileCounterTest
{
@Test
public void testBucketPlacement()
{
BucketPercentileCounter counter = new BucketPercentileCounter(0, 50, 100, 200, 500, 1000);
assertThat(counter.getBucket(-1), is(-1));
assertThat(counter.getBucket(0), is(0));
assertThat(counter.getBucket(50), is(1));
assertThat(counter.getBucket(99), is(1));
assertThat(counter.getBucket(100), is(2));
assertThat(counter.getBucket(150), is(2));
assertThat(counter.getBucket(199), is(2));
assertThat(counter.getBucket(200), is(3));
assertThat(counter.getBucket(250), is(3));
assertThat(counter.getBucket(28351758), is(5));
}
@Test
public void testWithSomeSamples()
{
BucketPercentileCounter counter = new BucketPercentileCounter(0, 100, 200);
counter.add(101);
counter.add(102);
counter.add(200);
counter.add(1);
counter.add(4);
counter.add(400);
PercentileSnapshot snapshot = counter.get();
assertThat(snapshot.estimatePercentile(70), is(200l));
assertThat(snapshot.estimatePercentile(95), is(-1l));
}
}