@Test public void testFull() { RunningAverageAndStdDev average = new FullRunningAverageAndStdDev(); assertEquals(0, average.getCount()); assertTrue(Double.isNaN(average.getAverage())); assertTrue(Double.isNaN(average.getStandardDeviation())); average.addDatum(6.0); assertEquals(1, average.getCount()); assertEquals(6.0, average.getAverage(), EPSILON); assertTrue(Double.isNaN(average.getStandardDeviation())); average.addDatum(6.0); assertEquals(2, average.getCount()); assertEquals(6.0, average.getAverage(), EPSILON); assertEquals(0.0, average.getStandardDeviation(), EPSILON); average.removeDatum(6.0); assertEquals(1, average.getCount()); assertEquals(6.0, average.getAverage(), EPSILON); assertTrue(Double.isNaN(average.getStandardDeviation())); average.addDatum(-4.0); assertEquals(2, average.getCount()); assertEquals(1.0, average.getAverage(), EPSILON); assertEquals(5.0 * 1.4142135623730951, average.getStandardDeviation(), EPSILON); average.removeDatum(4.0); assertEquals(1, average.getCount()); assertEquals(-2.0, average.getAverage(), EPSILON); assertTrue(Double.isNaN(average.getStandardDeviation())); }