11 Gruntmaster
::Data
::init
'dbi:Pg:dbname=gmtest'; 1;
12 } or plan skip_all
=> 'Cannot connect to test database. Create it by running make_test_db.sh before running this test. '. "Error: $@";
16 note
'Running update_status';
19 my $x = user_list
->{us
};
20 is @
$x, 2, 'user_list has two elements';
21 is_deeply
$x->[0], {id
=> 'nobody', admin
=> 0, name
=> undef, town
=> undef, university
=> undef, country
=> undef, level
=> undef, lastjob
=> undef, contests
=> 1, solved
=> 2, attempted
=> 0}, 'user_list first element is correct';
22 is
$x->[1]{admin
}, 1, 'user_list second user is admin';
24 $x = user_entry
'nobody';
25 cmp_bag
$x->{problems
}, [
26 {problem
=> 'arc', problem_name
=> 'Problem in archive', solved
=> bool
1},
27 {problem
=> 'fca', problem_name
=> 'FC problem A', solved
=> bool
1},
28 ], 'user_entry problems';
30 is_deeply
$x->{contests
}, [
31 {contest
=> 'fc', contest_name
=> 'Finished contest', rank
=> 2, score
=> 40},
32 ], 'user_entry contests';
34 sub pbids
{ [map { $_->{id
} } @
{$x->{beginner
}}] }
37 cmp_bag pbids
, [qw
/arc fca/], 'problem_list';
39 $x = problem_list private
=> 1;
40 cmp_bag pbids
, [qw
/arc fca rca pca prv/], 'problem_list private => 1';
42 $x = problem_list contest
=> 'rc';
43 cmp_bag pbids
, [qw
/rca/], q
/problem_list contest => 'rc'/;
45 $x = problem_list contest
=> 'rc', solution
=> 1;
46 ok
exists $x->{beginner
}[0]{solution
}, q
/problem_list contest => 'rc', solution => 1 has solution/;
48 $x = problem_list owner
=> 'nobody';
49 cmp_bag pbids
, [], q
/problem_list owner => 'nobody'/;
51 $x = problem_entry
'arc';
52 cmp_bag
$x->{limits
}, [{format
=> 'C', timeout
=> 0.1}, {format
=> 'CPP', timeout
=> 0.1}], 'problem_entry limits';
53 is
$x->{solution
}, 'Sample Text', 'problem_entry has solution';
55 $x = problem_entry
'rca', 'rc';
56 ok
!exists $x->{solution
}, 'problem_entry during contest does not have solution';
57 ok
exists $x->{contest_start
}, 'problem_entry during contest has contest_start ';
60 is
$x->{finished
}[0]{id
}, 'fc', 'contest_list fc is finished';
61 is
$x->{running
}[0]{id
}, 'rc', 'contest_list rc is running';
62 is
$x->{pending
}[0]{id
}, 'pc', 'contest_list pc is pending';
64 $x = contest_entry
'fc';
65 cmp_deeply
$x, {id
=> 'fc', name
=> 'Finished contest', start
=> ignore
, stop
=> ignore
, owner
=> 'MGV', owner_name
=> undef, finished
=> bool
(1), started
=> bool
(1), description
=> undef}, 'contest_entry fc';
67 $x = contest_full
'fc';
68 ok
exists $x->{editorial
}, 'contest_full fc has editorial';
70 ok contest_has_problem
('rc', 'rca'), 'contest rc has problem rca';
71 ok contest_has_problem
('rc', 'arc'), 'contest rc does not have problem arc';
73 sub jobids
{ [ map { $_->{id
} } @
{$x->{log}} ] }
76 cmp_bag jobids
, [1..5], 'job_list';
77 is
$x->{current_page
}, 1, 'current page is 1';
78 is
$x->{last_page
}, 1, 'last page is 1';
79 ok
!exists $x->{previous_page
}, 'there is no previous page';
80 ok
!exists $x->{next_page
}, 'there is no next page';
82 $x = job_list private
=> 1;
83 cmp_bag jobids
, [1..7], 'job_list private => 1';
85 $x = job_list contest
=> 'fc';
86 cmp_bag jobids
, [1..3], 'job_list contest => fc';
88 $x = job_list owner
=> 'MGV';
89 cmp_bag jobids
, [1], 'job_ids owner => MGV';
91 $x = job_list problem
=> 'fca';
92 cmp_bag jobids
, [1..4], 'job_ids problem => fca';
94 $x = job_list problem
=> 'fca', result
=> 1;
95 cmp_bag jobids
, [2], 'job_ids problem => fca, result => 1';
98 is
$x->{size
}, 21, 'job_entry size';
99 ok
!exists $x->{source
}, 'job_entry does not have source';
100 is_deeply
$x->{results
}, [], 'job_entry results';
103 ok
!defined $x->{result
}, 'job_entry 7 has NULL result';
106 ok
exists $x->{source
}, 'job_full has source';
110 problems
=> [[fca
=> 'FC problem A']],
112 {rank
=> 1, user
=> 'MGV', user_name
=> undef, score
=> 50, scores
=> [50]},
113 {rank
=> 2, user
=> 'nobody', user_name
=> undef, score
=> 40, scores
=> [40]},
This page took 0.032439 seconds and 4 git commands to generate.