X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mop%2Fscore%2Fmo-score-mop.sh;h=44944a589873c790ffa62b2e0979800a1c418100;hb=bf755d50d117057d2be1197341e1d91bc5f1a808;hp=fc6c6a297783f767c2278a1f7c744bb008b0d51b;hpb=a263d633483e41b64c7fdc4bc09f0c8bbf18a308;p=moe.git diff --git a/mop/score/mo-score-mop.sh b/mop/score/mo-score-mop.sh index fc6c6a2..44944a5 100755 --- a/mop/score/mo-score-mop.sh +++ b/mop/score/mo-score-mop.sh @@ -1,5 +1,7 @@ #!/usr/bin/perl +use List::Util qw(min); + $tex = 0; $usage = "Usage: mo-score-mop [--tex] theoretical_tasks_nr praxis_tasks_nr task1 task2 ..."; while (($arg = $ARGV[0]) =~ /^--([a-z]+)$/) { @@ -26,7 +28,7 @@ close CT; print STDERR 0+keys %users, "\n"; print STDERR "Scanning teoretical results... "; -if (open (EX, "mop/score/teorie.txt")) { +if (open (EX, "teorie.txt")) { while () { chomp; (/^$/ || /^#/) && next; @@ -59,19 +61,23 @@ foreach $u (keys %users) { -f $tt || next; print STDERR "$u/$t "; open (X, $tt) || die "Unable to open $tt"; - - my %tests = (); + my %groups = (); while () { chomp; - /^(\S+) (-?\d+)/ || die "Parse error: $_"; - my ($t, $p) = ($1, $2); - $t =~ s/[^0-9]//g; - $tests{$t} = $p if not exists $tests{$t} or $tests{$t} > $p; - } - foreach my $p (values %tests) { - $tasks{$u}{$t_num} += $p; + my ($test, $pts) = /^(\S+) (-?\d+)/ or die "Parse error: $_"; + my $group = $test; + $group =~ s{\D}{}g; + if (defined $groups{$group}) { + $groups{$group} = min($groups{$group}, $pts); + } else { + $groups{$group} = $pts; + } } close X; + + for my $g (keys %groups) { + $tasks{$u}{$t_num} += $groups{$g}; + } } closedir D; } @@ -131,13 +137,13 @@ while ($i < @table) { print STDERR "OK\n"; if ($tex) { - open HDR,"mop/score/listina.hdr" or die "Cannot open file mop/score/listina.hdr with TeX template!"; + open HDR,"listina.hdr" or die "Cannot open file listina.hdr with TeX template!"; while () {print; } close HDR; foreach $r (@table) { print join('&',@$r), "\\cr\n";} - open FTR,"mop/score/listina.ftr" or die "Cannot open file mop/score/listina.ftr with TeX template!"; + open FTR,"listina.ftr" or die "Cannot open file listina.ftr with TeX template!"; while () {print; } close FTR; } else {