X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=bin%2Fmo-report;h=57828b65c209ecd761b19f07fdc8f1230424e82e;hb=50cc126ebe949259a54f153a123848d771601b77;hp=6272ccdd52398fda61b6ce2f68139bb9ee8e0156;hpb=98e0e00dd5346665992d4fd474c12f226d22dda4;p=eval.git diff --git a/bin/mo-report b/bin/mo-report index 6272ccd..57828b6 100755 --- a/bin/mo-report +++ b/bin/mo-report @@ -8,20 +8,41 @@ foreach my $user (`cd testing && ls`) { chomp $user; print "$user:"; open REP, ">testing/$user/REPORT" or die; - print REP "Evaluation report for CEOI 2007 Day 1\n\n"; + print REP "Evaluation report for CEOI 2007 Day 2\n\n"; my $total = 0; foreach my $task (@ARGV) { print REP "### Task $task ###\n\n"; if (open PTS, "testing/$user/$task/points") { - my $tt = 0; + my %merged_pts = (); + my %split_comm = (); while () { chomp; my ($test, $pts, $comm) = /(\S+)\s+(\S+)\s+(.*)/; - $comm =~ s/\.$//; - printf REP "Test %2s: %2d points (%s)\n", $test, $pts, $comm; - $tt += $pts; + my $merged = $test; + $merged =~ s/[^0-9]//; + if (!defined($merged_pts{$merged}) || $merged_pts{$merged} > $pts) { + $merged_pts{$merged} = $pts; + } + $split_comm{$merged}{$test} = $comm; } close PTS; + my $tt = 0; + foreach my $merged (sort { $a <=> $b } keys %merged_pts) { + printf REP "Test %2s: %2d points", $merged, $merged_pts{$merged}; + $tt += $merged_pts{$merged}; + my @k = sort keys %{$split_comm{$merged}}; + if (@k == 1) { + print REP " -- ", $split_comm{$merged}{$k[0]}, "\n"; + } else { + print REP " -- "; + my $cc = 0; + foreach my $t (@k) { + $cc++ and print REP ", "; + print REP "$t: $split_comm{$merged}{$t}"; + } + print REP "\n"; + } + } print REP "\nTOTAL: $tt points\n\n"; $total += $tt; print " $tt"; @@ -30,7 +51,7 @@ foreach my $user (`cd testing && ls`) { print " -"; } } - print REP "### TOTAL FOR DAY 1 ###\n\n"; + print REP "### TOTAL FOR DAY 2 ###\n\n"; print REP "$total points\n"; print REP "\n\n(generated on ", strftime("%Y-%m-%d %H:%M:%S", localtime), ")\n"; close REP;