View Javadoc
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  }