Skip to content

Commit 9e0b066

Browse files
committed
add tests for normal problems
1 parent 4bcb8b4 commit 9e0b066

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

tests/test_problems_normal.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from limejudge.problems import normal as problem_normal
2+
3+
from limejudge.judge import ResourceLimit
4+
5+
6+
def test_from_dict():
7+
problem_data = {
8+
'name': 'foo',
9+
'input-file': 'foo.in',
10+
'output-file': 'foo.out',
11+
'source-path': 'foo/bar/baz',
12+
'testcases': [
13+
{
14+
'input-file': 'foo0.in',
15+
'output-file': 'foo0.out',
16+
'resource-limits': {
17+
'time-limit': 1.5,
18+
'memory-limit': 67108864,
19+
},
20+
'full-score': 10,
21+
},
22+
{
23+
'input-file': 'foo1.in',
24+
'output-file': 'foo1.out',
25+
'resource-limits': {
26+
'time-limit': 2.5,
27+
'memory-limit': 33554432,
28+
},
29+
'full-score': 20,
30+
},
31+
],
32+
}
33+
problem = problem_normal.NormalProblem.from_dict(problem_data)
34+
35+
assert problem.name == 'foo'
36+
assert problem.infile == 'foo.in'
37+
assert problem.outfile == 'foo.out'
38+
assert problem.progpath == 'foo/bar/baz'
39+
assert problem.testcases[0].infile == 'foo0.in'
40+
assert problem.testcases[0].outfile == 'foo0.out'
41+
assert (problem.testcases[0].rlimit ==
42+
ResourceLimit.from_dict(
43+
problem_data['testcases'][0]['resource-limits']))
44+
assert problem.testcases[0].full_score == 10
45+
assert problem.testcases[1].infile == 'foo1.in'
46+
assert problem.testcases[1].outfile == 'foo1.out'
47+
assert (problem.testcases[1].rlimit ==
48+
ResourceLimit.from_dict(
49+
problem_data['testcases'][1]['resource-limits']))
50+
assert problem.testcases[1].full_score == 20
51+
52+
# Optional items
53+
assert problem.compiler_flags == {}
54+
assert problem.comp_method == 'no-extra-ws'
55+
56+
problem_data['compiler-flags'] = {
57+
'c': '-O2 -lm',
58+
'cpp': '-O2',
59+
}
60+
problem_data['comparison-method'] = 'spj:foobar'
61+
problem2 = problem_normal.NormalProblem.from_dict(problem_data)
62+
63+
assert problem2.compiler_flags == problem_data['compiler-flags']
64+
assert problem2.comp_method == 'spj:foobar'

0 commit comments

Comments
 (0)