@Test public void testShuffledStatistics() { // the purpose of this test is only to check the get/set methods // we are aware shuffling statistics like this is really not // something sensible to do in production ... DescriptiveStatistics reference = createDescriptiveStatistics(); DescriptiveStatistics shuffled = createDescriptiveStatistics(); UnivariateStatistic tmp = shuffled.getGeometricMeanImpl(); shuffled.setGeometricMeanImpl(shuffled.getMeanImpl()); shuffled.setMeanImpl(shuffled.getKurtosisImpl()); shuffled.setKurtosisImpl(shuffled.getSkewnessImpl()); shuffled.setSkewnessImpl(shuffled.getVarianceImpl()); shuffled.setVarianceImpl(shuffled.getMaxImpl()); shuffled.setMaxImpl(shuffled.getMinImpl()); shuffled.setMinImpl(shuffled.getSumImpl()); shuffled.setSumImpl(shuffled.getSumsqImpl()); shuffled.setSumsqImpl(tmp); for (int i = 100; i > 0; --i) { reference.addValue(i); shuffled.addValue(i); } Assert.assertEquals(reference.getMean(), shuffled.getGeometricMean(), 1.0e-10); Assert.assertEquals(reference.getKurtosis(), shuffled.getMean(), 1.0e-10); Assert.assertEquals(reference.getSkewness(), shuffled.getKurtosis(), 1.0e-10); Assert.assertEquals(reference.getVariance(), shuffled.getSkewness(), 1.0e-10); Assert.assertEquals(reference.getMax(), shuffled.getVariance(), 1.0e-10); Assert.assertEquals(reference.getMin(), shuffled.getMax(), 1.0e-10); Assert.assertEquals(reference.getSum(), shuffled.getMin(), 1.0e-10); Assert.assertEquals(reference.getSumsq(), shuffled.getSum(), 1.0e-10); Assert.assertEquals(reference.getGeometricMean(), shuffled.getSumsq(), 1.0e-10); }