private void checkStats(Stats stats, String descr, double count, double sum, double sumSq, double mean, double stdDev, double min, double max, double tolerance) { if (descr == null) descr = ""; else descr = " (" + descr + ")"; assertEquals("Incorrect count" + descr + "!", count, stats.count, Math.abs(count*tolerance)); assertEquals("Incorrect sum" + descr + "!", sum, stats.sum, Math.abs(sum*tolerance)); assertEquals("Incorrect sumSq" + descr + "!", sumSq, stats.sumSq, Math.abs(sumSq*tolerance)); assertEquals("Incorrect mean" + descr + "!", mean, stats.mean, Math.abs(mean*tolerance)); assertEquals("Incorrect stdDev" + descr + "!", stdDev, stats.stdDev, Math.abs(stdDev*tolerance)); assertEquals("Incorrect min" + descr + "!", min, stats.min, Math.abs(min*tolerance)); assertEquals("Incorrect max" + descr + "!", max, stats.max, Math.abs(max*tolerance)); }
private void checkStats(Stats stats, String descr, double count, double sum, double sumSq, double mean, double stdDev, double min, double max, double tolerance) { if (descr == null) descr = ""; else descr = " (" + descr + ")"; assertEquals("Incorrect count" + descr + "!", count, stats.count, Math.abs(count*tolerance)); assertEquals("Incorrect sum" + descr + "!", sum, stats.sum, Math.abs(sum*tolerance)); assertEquals("Incorrect sumSq" + descr + "!", sumSq, stats.sumSq, Math.abs(sumSq*tolerance)); assertEquals("Incorrect mean" + descr + "!", mean, stats.mean, Math.abs(mean*tolerance)); assertEquals("Incorrect stdDev" + descr + "!", stdDev, stats.stdDev, Math.abs(stdDev*tolerance)); assertEquals("Incorrect min" + descr + "!", min, stats.min, Math.abs(min*tolerance)); assertEquals("Incorrect max" + descr + "!", max, stats.max, Math.abs(max*tolerance)); }
double stdDevDouble = Double.longBitsToDouble(stdDev); assertEquals("Inaccurate mean calculation!", meanDouble, stats.mean, Math.abs(meanDouble*tolerance)); assertEquals("Inaccurate stdDev calculation!", stdDevDouble, stats.stdDev, Math.abs(stdDevDouble*tolerance)); assertEquals("Inaccurate mean calculation when using subtract!", meanDouble, subtracted1.mean, Math.abs(meanDouble*tolerance)); assertEquals("Inaccurate stdDev calculation when using subtract!", stdDevDouble, subtracted1.stdDev, Math.abs(stdDevDouble*tolerance)); assertEquals("Inaccurate mean calculation when using subtract!", meanDouble, subtracted2.mean, Math.abs(meanDouble*tolerance)); assertEquals("Inaccurate stdDev calculation when using subtract!", stdDevDouble, subtracted2.stdDev, Math.abs(stdDevDouble*tolerance));
double stdDevDouble = Double.longBitsToDouble(stdDev); assertEquals("Inaccurate mean calculation!", meanDouble, stats.mean, Math.abs(meanDouble*tolerance)); assertEquals("Inaccurate stdDev calculation!", stdDevDouble, stats.stdDev, Math.abs(stdDevDouble*tolerance)); assertEquals("Inaccurate mean calculation when using subtract!", meanDouble, subtracted1.mean, Math.abs(meanDouble*tolerance)); assertEquals("Inaccurate stdDev calculation when using subtract!", stdDevDouble, subtracted1.stdDev, Math.abs(stdDevDouble*tolerance)); assertEquals("Inaccurate mean calculation when using subtract!", meanDouble, subtracted2.mean, Math.abs(meanDouble*tolerance)); assertEquals("Inaccurate stdDev calculation when using subtract!", stdDevDouble, subtracted2.stdDev, Math.abs(stdDevDouble*tolerance));
double max_simple = getWeightedMax(smallWeightedValues); double min_simple = getWeightedMin(smallWeightedValues); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max); max_simple = Math.max(max_simple, getWeightedMax(weightedValues1)); min_simple = Math.min(min_simple, getWeightedMin(weightedValues1)); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max); max_simple = Math.max(max_simple, getWeightedMax(weightedValues2)); min_simple = Math.min(min_simple, getWeightedMin(weightedValues2)); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max); assertEquals("Assumption violated in testcase!", max_simple, max_real); assertEquals("Assumption violated in testcase!", min_simple, min_real); assertTrue("Incorrect min!", min_real >= stats.min && stats.min >= min_simple); assertTrue("Incorrect max!", max_real <= stats.max && stats.max <= max_simple); max_simple = Math.max(max_simple, getWeightedMax(bigWeightedValues)); min_simple = Math.min(min_simple, getWeightedMin(bigWeightedValues)); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max);
double max_simple = getWeightedMax(smallWeightedValues); double min_simple = getWeightedMin(smallWeightedValues); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max); max_simple = Math.max(max_simple, getWeightedMax(weightedValues1)); min_simple = Math.min(min_simple, getWeightedMin(weightedValues1)); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max); max_simple = Math.max(max_simple, getWeightedMax(weightedValues2)); min_simple = Math.min(min_simple, getWeightedMin(weightedValues2)); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max); assertEquals("Assumption violated in testcase!", max_simple, max_real); assertEquals("Assumption violated in testcase!", min_simple, min_real); assertTrue("Incorrect min!", min_real >= stats.min && stats.min >= min_simple); assertTrue("Incorrect max!", max_real <= stats.max && stats.max <= max_simple); max_simple = Math.max(max_simple, getWeightedMax(bigWeightedValues)); min_simple = Math.min(min_simple, getWeightedMin(bigWeightedValues)); assertEquals("Incorrect min!", min_simple, stats.min); assertEquals("Incorrect max!", max_simple, stats.max);