*/
private void swapFeedbackInformation(Job job) {
Contest contest = mediator.getContestManager().getContest(job.getContestId());
if (contest == null)
return;
Task task = contest.getTaskByName(job.getTask());
if (task == null)
return;
Set<Integer> testsCovered = new TreeSet<Integer>();
for (TestGroup group : task.getTestGroups()) {
if (group.isFeedbackEnabled()) {
testsCovered.addAll(group.getTestCases());
}
}
List<String> byTestResults = getResult(contest.getId(), job.getUserid(), task);
int accepted = 0;
int wrong = 0;
int timeLimit = 0;
int exception = 0;
int system = 0;
int compile = 0;
for (int i = 0; i < task.getNumberOfTests(); ++i) {
if (!testsCovered.contains(i + 1)) {
continue;
}
String execResult = byTestResults.get(i);
try {
new BigDecimal(execResult);
accepted++;
} catch (NumberFormatException e) {
if ("x".equals(execResult)) {
wrong++;
} else if ("e".equals(execResult)) {
exception++;
} else if ("t".equals(execResult)) {
timeLimit++;
} else if ("c".equals(execResult)) {
compile++;
} else {
System.out.print("Unknown output result:" + execResult);
system++;
}
}
}
StringBuffer output = new StringBuffer();
output.append(getCompilerOutput(contest.getId(), job.getUserid(), task.getName()));
if (testsCovered.size() == task.getNumberOfTests()) {
output.append("Feedback for all test cases:\n");
} else {
output.append("Feedback for part of all test cases:\n");
}
asPercentage("Correct", output, accepted, testsCovered);