computeScore method
Score = Complete Majority Value
Implementation
String computeScore(ProposalTally tally) {
var score = '';
final analysis = Analysis();
final amountOfGrades = tally.countAvailableGrades();
final amountOfJudgments = tally.countJudgments();
final amountOfDigitsForGrade = countDigits(amountOfGrades);
final amountOfDigitsForAdhesionScore = countDigits(amountOfJudgments * 2);
final mutatedTally = tally.clone();
for (var i = 0; i < amountOfGrades; i++) {
analysis.run(mutatedTally, favorContestation);
score +=
analysis.medianGrade.toString().padLeft(amountOfDigitsForGrade, '0');
final adhesionScore = amountOfJudgments +
analysis.secondGroupSize * analysis.secondGroupSign;
score +=
adhesionScore.toString().padLeft(amountOfDigitsForAdhesionScore, '0');
mutatedTally.regradeJudgments(
analysis.medianGrade,
analysis.secondMedianGrade,
);
}
return score;
}