X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=bin%2Fmo-score;h=c6eb1376c2fe9b29bd008a0c2f6d973410488f1c;hb=04c2d74bd1a8f8c4203220ab70cc11ed215fd8d4;hp=4fce9e44be5f9aa32e21c6a344c5d05b88b692bd;hpb=34732a4d93fb509148f0edb5820024205a40264b;p=moe.git diff --git a/bin/mo-score b/bin/mo-score index 4fce9e4..c6eb137 100755 --- a/bin/mo-score +++ b/bin/mo-score @@ -6,7 +6,8 @@ $html = 0; $tex = 0; $extras = 0; $alt = 0; -$usage = "Usage: mo-score [--detail] [--alt] [--extras] [--html] [--tex] ..."; +$merged = 0; +$usage = "Usage: mo-score [--detail] [--alt] [--extras] [--html] [--tex] [--merged] ..."; while (($arg = $ARGV[0]) =~ /^--([a-z]+)$/) { shift @ARGV; $var = "\$$1"; @@ -62,12 +63,12 @@ foreach $u (keys %users) { $ttest = $1; $tpts = $2; $trem = $3; - $ttest =~ s/[^0-9]//g; + $trem =~ s/\[.*//; + ($ttest_merged = $ttest) =~ s/[^0-9]//g; + $ttest = $ttest_merged if $merged; $known_tests{$t}{$ttest} = 1; - $results{$u}{$t}{$ttest} = $tpts; - $remarks{$u}{$t}{$ttest} = $trem; $cmt = $tpts; - if ($tpts == 0) { + if ($tpts == 0 && $trem ne "OK") { if ($trem =~ /^Compile /) { $cmt = "CE"; } elsif ($trem =~ /^Time limit exceeded/) { $cmt = "TO"; } elsif ($trem =~ /^Exited with error /) { $cmt = "RE"; } @@ -75,7 +76,6 @@ foreach $u (keys %users) { elsif ($trem =~ /^([A-Za-z])\S*\s+([A-Za-z])/) { ($cmt = "$1$2") =~ tr/a-z/A-Z/; } - elsif ($trem =~ /^Wrong answer/) { $cmt = "WA"; } if (!defined $messages{$trem}) { $messages{$trem} = $cmt; if (!defined $error_codes{$cmt}) { @@ -85,11 +85,20 @@ foreach $u (keys %users) { } } } - $comment{$u}{$t}{$ttest} = $cmt; - $total{$u}{$t} += $tpts; + if (!defined($results{$u}{$t}{$ttest}) || $results{$u}{$t}{$ttest} > $tpts) { + $results{$u}{$t}{$ttest} = $tpts; + $comment{$u}{$t}{$ttest} = $cmt; + } + if (!defined($results_merged{$u}{$t}{$ttest_merged}) || $results_merged{$u}{$t}{$ttest_merged} > $tpts) { + $results_merged{$u}{$t}{$ttest_merged} = $tpts; + } } close X; } + foreach my $t (keys %known_tasks) { + $total{$u}{$t} = 0; + foreach my $pts (values %{$results_merged{$u}{$t}}) { $total{$u}{$t} += $pts; } + } closedir D; } print STDERR "OK\n"; @@ -234,6 +243,7 @@ sub printHtmlHeader { if ($detail) { $hdr1 = "RankUserName"; + $extras and $p++ and push @$perm, 3 and $hdr1.="Extra" and $colspec.=""; for my $task (@tasks) { my $nSub = scalar(keys %{$known_tests{$task}}); @@ -254,6 +264,7 @@ sub printHtmlHeader { } else { ## no detail $hdr1 = "RankUserName"; + $extras and $p++ and push @$perm, 3 and $hdr1.="Extra" and $colspec.=""; for my $task (@tasks) { push @$perm, $p++;