]> mj.ucw.cz Git - moe.git/blobdiff - bin/mo-score
Include extras in HTML output (if enabled).
[moe.git] / bin / mo-score
index 3642f93c06639150b9bc9018ac4fc07972a8d52d..c6eb1376c2fe9b29bd008a0c2f6d973410488f1c 100755 (executable)
@@ -6,8 +6,8 @@ $html = 0;
 $tex = 0;
 $extras = 0;
 $alt = 0;
-$split = 0;
-$usage = "Usage: mo-score [--detail] [--alt] [--extras] [--html] [--tex] [--split] <task1> <task2> ...";
+$merged = 0;
+$usage = "Usage: mo-score [--detail] [--alt] [--extras] [--html] [--tex] [--merged] <task1> <task2> ...";
 while (($arg = $ARGV[0]) =~ /^--([a-z]+)$/) {
        shift @ARGV;
        $var = "\$$1";
@@ -64,7 +64,8 @@ foreach $u (keys %users) {
                        $tpts = $2;
                        $trem = $3;
                        $trem =~ s/\[.*//;
-                       $ttest =~ s/[^0-9]//g unless $split;
+                       ($ttest_merged = $ttest) =~ s/[^0-9]//g;
+                       $ttest = $ttest_merged if $merged;
                        $known_tests{$t}{$ttest} = 1;
                        $cmt = $tpts;
                        if ($tpts == 0 && $trem ne "OK") {
@@ -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}) {
@@ -89,12 +89,15 @@ foreach $u (keys %users) {
                                $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{$u}{$t}}) { $total{$u}{$t} += $pts; }
+               foreach my $pts (values %{$results_merged{$u}{$t}}) { $total{$u}{$t} += $pts; }
        }
        closedir D;
 }
@@ -240,6 +243,7 @@ sub printHtmlHeader {
 
    if ($detail) {
      $hdr1 = "<th rowspan=2>Rank<th rowspan=2>User<th rowspan=2>Name";
+     $extras and $p++ and push @$perm, 3 and $hdr1.="<th rowspan=2>Extra" and $colspec.="<colgroup span=1>";
      for my $task (@tasks) {
 
        my $nSub = scalar(keys %{$known_tests{$task}});
@@ -260,6 +264,7 @@ sub printHtmlHeader {
    } else {  ## no detail
    
      $hdr1 = "<th>Rank<th>User<th>Name";
+     $extras and $p++ and push @$perm, 3 and $hdr1.="<th>Extra" and $colspec.="<colgroup span=1>";
 
      for my $task (@tasks) {
         push @$perm, $p++;