@Test public void testMean() { StatTracker s = new StatTracker(); s.addStat(0.0); s.addStat(1.0); s.addStat(2.0); Assert.assertEquals(1.0, s.mean(), EPSILON); s.addStat(3.0); Assert.assertEquals(1.5, s.mean(), EPSILON); }
@Test public void testSampleVariance() { StatTracker s = new StatTracker(); s.addStat(0.0); s.addStat(1.0); s.addStat(2.0); // sum(-1.0^2 + 0.0^2 + 1.0^2)/2 Assert.assertEquals(1.0, s.sampleVariance(), EPSILON); // sum(-1.5^2 + -0.5^2 + 0.5^2 + 1.5^2)/3 s.addStat(3.0); Assert.assertEquals(5.0 / 3.0, s.sampleVariance(), EPSILON); }
@Test public void testPopulationVariance() { StatTracker s = new StatTracker(); s.addStat(0.0); s.addStat(1.0); s.addStat(2.0); // sum(-1.0^2 + 0.0^2 + 1.0^2)/3 Assert.assertEquals(2.0 / 3.0, s.populationVariance(), EPSILON); s.addStat(3.0); // sum(-1.5^2 + -0.5^2 + 0.5^2 + 1.5^2)/4 Assert.assertEquals(5.0 / 4.0, s.populationVariance(), EPSILON); }
@Test public void testNormalization() { StatTracker s = new StatTracker(); Assert.assertTrue(Double.isNaN(s.normalizeValue(4.0))); Assert.assertTrue(Double.isNaN(s.normalizeValue(5.0))); s.addStat(4.0); Assert.assertTrue(Double.isNaN(s.normalizeValue(4.0))); Assert.assertTrue(Double.isNaN(s.normalizeValue(5.0))); s.addStat(4.0); Assert.assertTrue(Double.isInfinite(s.normalizeValue(3.0)) && s.normalizeValue(3.0) < 0.0); Assert.assertTrue(Double.isNaN(s.normalizeValue(4.0))); Assert.assertTrue(Double.isInfinite(s.normalizeValue(5.0)) && s.normalizeValue(5.0) > 0.0); s.addStat(2.0); Assert.assertEquals(1.0, s.normalizeValue(4.0), EPSILON); Assert.assertEquals(1.5, s.normalizeValue(5.0), EPSILON); s.addStat(6.0); Assert.assertEquals(0.5, s.normalizeValue(4.0), EPSILON); Assert.assertEquals(0.75, s.normalizeValue(5.0), EPSILON); }