1 package civitas.result;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.springframework.stereotype.Controller;
7
8 @Controller
9 public class FormatResult {
10 public String apply(final String[] candidates, final List<List<CandidateResult>> winnerList) {
11 List<String> winResult = new ArrayList<>();
12 int stagenum = 0;
13 for (List<CandidateResult> stage : winnerList) {
14 stagenum++;
15 List<String> winners = new ArrayList<>();
16 for (CandidateResult winner : stage) {
17 List<String> beats = new ArrayList<>();
18 for (int i = 0; i < winner.beatenCandidates.size(); i++) {
19 Integer beat = winner.beat.get(i);
20 Integer beaten = winner.beaten.get(i);
21 String b = String.format("%.2f", 1.0 * beat / beaten);
22 beats.add("beats " + candidates[winner.beatenCandidates.get(i)] + " by " + beat + ":" + beaten
23 + " (" + b + ")");
24 }
25 String strength = String.format("%.2f", winner.strength);
26 winners.add(candidates[winner.candidate] + " (" + strength + ") (" + String.join(", ", beats) + ") ");
27 }
28 winResult.add(stagenum + ":\n\t" + String.join("\n\t", winners));
29 }
30 return String.join("\n", winResult);
31 }
32 }