package com.spotify.heroic.common;
import static org.junit.Assert.assertEquals;
import java.util.Optional;
import org.junit.Test;
public class HistogramTest {
@Test
public void basic() {
final Histogram.Builder builder = Histogram.builder();
builder.add(100L);
builder.add(200L);
builder.add(300L);
builder.add(400L);
final Histogram h = builder.build();
assertEquals(Optional.of(100L), h.getMin());
assertEquals(Optional.of(400L), h.getMax());
assertEquals(Optional.of(300L), h.getP75());
assertEquals(Optional.of(400L), h.getP99());
assertEquals(Optional.of(250.0), h.getMean());
assertEquals(Optional.of(1000L), h.getSum());
}
@Test
public void empty() {
final Histogram.Builder builder = Histogram.builder();
final Histogram h = builder.build();
assertEquals(Optional.empty(), h.getMin());
assertEquals(Optional.empty(), h.getMax());
assertEquals(Optional.empty(), h.getP75());
assertEquals(Optional.empty(), h.getP99());
assertEquals(Optional.empty(), h.getMean());
assertEquals(Optional.empty(), h.getSum());
}
@Test
public void one() {
final Histogram.Builder builder = Histogram.builder();
builder.add(100L);
final Histogram h = builder.build();
assertEquals(Optional.of(100L), h.getMin());
assertEquals(Optional.of(100L), h.getMax());
assertEquals(Optional.of(100L), h.getP75());
assertEquals(Optional.of(100L), h.getP99());
assertEquals(Optional.of(100.0), h.getMean());
assertEquals(Optional.of(100L), h.getSum());
}
}