protected void determineTotalsAndAverages() {
failureCount = 0;
boolean firstNonFailure = true;
totalScore = null;
totalWinningScoreDifference = null;
ScoreDifferencePercentage totalWorstScoreDifferencePercentage = null;
long totalAverageCalculateCountPerSecond = 0L;
for (SingleBenchmark singleBenchmark : singleBenchmarkList) {
if (singleBenchmark.isFailure()) {
failureCount++;
} else {
if (firstNonFailure) {
totalScore = singleBenchmark.getScore();
totalWinningScoreDifference = singleBenchmark.getWinningScoreDifference();
totalWorstScoreDifferencePercentage = singleBenchmark.getWorstScoreDifferencePercentage();
totalAverageCalculateCountPerSecond = singleBenchmark.getAverageCalculateCountPerSecond();
firstNonFailure = false;
} else {
totalScore = totalScore.add(singleBenchmark.getScore());
totalWinningScoreDifference = totalWinningScoreDifference.add(
singleBenchmark.getWinningScoreDifference());
totalWorstScoreDifferencePercentage = totalWorstScoreDifferencePercentage.add(
singleBenchmark.getWorstScoreDifferencePercentage());
totalAverageCalculateCountPerSecond += singleBenchmark.getAverageCalculateCountPerSecond();
}
}
}
if (!firstNonFailure) {
int successCount = getSuccessCount();
averageWorstScoreDifferencePercentage = totalWorstScoreDifferencePercentage.divide((double) successCount);
averageAverageCalculateCountPerSecond = totalAverageCalculateCountPerSecond / (long) successCount;
}
}