@Test public void testMeasureZeroToOne() { double[] values = { 0.1, 0.2, 0.7, 0.8, 0.1, 0.4, 0.6, 0.9, 0.1, 1.0, 0.0, 0.5, 0.4 }; DoubleDistributionSummary s = newInstance(); for (double v : values) { s.record(v); } clock.setWallTime(65000L); double t = 0.0; double t2 = 0.0; double n = 0.0; double max = 0.0; for (Measurement m : s.measure()) { switch (get(m.id(), "statistic")) { case "count": n = m.value(); break; case "totalAmount": t = m.value(); break; case "totalOfSquares": t2 = m.value(); break; case "max": max = m.value(); break; default: Assertions.fail("unexpected id: " + m.id()); break; } } Assertions.assertEquals(1.0, max, 1e-12); Assertions.assertEquals(stddev(values), Math.sqrt((n * t2 - t * t) / (n * n)), 1e-12); }