]> iEval git - gruntmaster-data.git/blobdiff - lib/Gruntmaster/Data.pm
Write tests
[gruntmaster-data.git] / lib / Gruntmaster / Data.pm
index dd0a92bb9a7e19c2d46bebb490be79f5610147a6..ab0fe36de464f11906686b1134a8bd872db5b8e7 100644 (file)
@@ -1,5 +1,5 @@
 package Gruntmaster::Data;
-use v5.14;
+use 5.014;
 use warnings;
 
 use parent qw/Exporter/;
@@ -51,7 +51,7 @@ sub purge;
 
 sub query {
        my ($stat, @extra) = @_;
-       $db->query($statements{$stat} // $stat, @extra)
+       $db->query($statements{$stat}, @extra)
 }
 
 my (%name_cache, %name_cache_time);
@@ -70,10 +70,10 @@ sub object_name {
 }
 
 
-sub add_names ($) {
+sub add_names ($) { ## no critic (ProhibitSubroutinePrototypes)
        my ($el) = @_;
        if (ref $el eq 'ARRAY') {
-               &add_names ($_) for @$el
+               &add_names ($_) for @$el ## no critic (ProhibitAmpersandSigils)
        } else {
                for my $object (qw/contest owner problem/) {
                        my $table = $object eq 'owner' ? 'users' : "${object}s";
@@ -117,7 +117,7 @@ sub problem_list {
 
 sub problem_entry {
        my ($id, $contest) = @_;
-       $contest &&= contest_entry ($contest);
+       $contest = contest_entry ($contest) if $contest;
        my $ret = add_names query(problem_entry_sth => $id)->hash;
        my $limits = query(limits_sth => $id)->hashes;
        $ret->{limits} = $limits if @$limits;
@@ -188,7 +188,7 @@ sub job_list {
 sub job_entry {
        my ($id) = @_;
        my $ret = add_names query(job_entry_sth => $id)->hash;
-       $ret->{results} &&= decode_json $ret->{results};
+       $ret->{results} = decode_json $ret->{results} if $ret->{results};
        $ret
 }
 
@@ -207,8 +207,7 @@ sub create_job {
 sub calc_score {
        my ($mxscore, $time, $tries, $totaltime) = @_;
        my $score = $mxscore;
-       $time = 0 if $time < 0;
-       $time = 300 if $time > $totaltime;
+       $time = 300 if $time > $totaltime; # uncoverable branch true does not happen anymore (only possible if opens are broken)
        $score = ($totaltime - $time) / $totaltime * $score;
        $score -= $tries / 10 * $mxscore;
        $score = $mxscore * 3 / 10 if $score < $mxscore * 3 / 10;
@@ -222,7 +221,6 @@ sub standings {
        my @problems = query(contest_problems_sth => $ct->{id})->flat;
        my $pblist = problem_list;
        my %values = query('problem_values_sth')->map;
-#      $values{$_} = $values{$_}->{value} for keys %values;
 
        my (%scores, %tries, %opens);
        my $opens = query(opens_sth => $ct->{id});
@@ -235,7 +233,7 @@ sub standings {
        while (my $job = $jobs->hash) {
                my $open = $opens{$job->{problem}, $job->{owner}} // $ct->{start};
                my $time = $job->{date} - $open;
-               next if $time < 0;
+               next if $time < 0; # uncoverable branch true job sent before contest is deprecated
                my $value = $values{$job->{problem}};
                my $factor = $job->{result} ? 0 : 1;
                $factor = $1 / 100 if $job->{result_text} =~ /^(\d+ )/s;
This page took 0.025563 seconds and 4 git commands to generate.