From 5a6237fc92fc57f87fe3f11144e4ade5baa96350 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Tue, 22 Sep 2015 12:03:57 +0200 Subject: Update test functions for existing problems The test function is now expected to return a boolean indicating whether the program is correct and a list of hint objects. --- prolog/common.py | 1 + prolog/problems/family_relations/brother_2/common.py | 4 +++- prolog/problems/family_relations/father_2/common.py | 4 +++- prolog/problems/family_relations/mother_2/common.py | 4 +++- prolog/problems/family_relations/sister_2/common.py | 4 +++- prolog/sl.py | 4 ++++ 6 files changed, 17 insertions(+), 4 deletions(-) (limited to 'prolog') diff --git a/prolog/common.py b/prolog/common.py index 41377bb..8dca4dd 100644 --- a/prolog/common.py +++ b/prolog/common.py @@ -6,6 +6,7 @@ from server.hints import Hint, HintSequence hint_type = { 'no_hint': HintSequence('no_hint', 4), + 'system_error': Hint('system_error'), 'test_results': Hint('test_results'), 'syntax_error': Hint('syntax_error'), } diff --git a/prolog/problems/family_relations/brother_2/common.py b/prolog/problems/family_relations/brother_2/common.py index 13f7ab5..4241524 100644 --- a/prolog/problems/family_relations/brother_2/common.py +++ b/prolog/problems/family_relations/brother_2/common.py @@ -58,7 +58,9 @@ def test(program, solved_problems): if engine_id: prolog.engine.destroy(engine_id) - return n_correct, len(test_cases) + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(program, solved_problems): # tokens = prolog.util.tokenize(program) diff --git a/prolog/problems/family_relations/father_2/common.py b/prolog/problems/family_relations/father_2/common.py index 1342441..6e752c3 100644 --- a/prolog/problems/family_relations/father_2/common.py +++ b/prolog/problems/family_relations/father_2/common.py @@ -53,7 +53,9 @@ def test(program, solved_problems): if engine_id: prolog.engine.destroy(engine_id) - return n_correct, len(test_cases) + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(program, solved_problems): tokens = prolog.util.tokenize(program) diff --git a/prolog/problems/family_relations/mother_2/common.py b/prolog/problems/family_relations/mother_2/common.py index 4d198d4..e90671b 100644 --- a/prolog/problems/family_relations/mother_2/common.py +++ b/prolog/problems/family_relations/mother_2/common.py @@ -64,7 +64,9 @@ def test(program, solved_problems): if engine_id: prolog.engine.destroy(engine_id) - return n_correct, len(test_cases) + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(program, solved_problems): tokens = prolog.util.tokenize(program) diff --git a/prolog/problems/family_relations/sister_2/common.py b/prolog/problems/family_relations/sister_2/common.py index 1ae652a..780e2bd 100644 --- a/prolog/problems/family_relations/sister_2/common.py +++ b/prolog/problems/family_relations/sister_2/common.py @@ -61,7 +61,9 @@ def test(program, solved_problems): if engine_id: prolog.engine.destroy(engine_id) - return n_correct, len(test_cases) + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(program, solved_problems): # how do I know which general hints were already shown? diff --git a/prolog/sl.py b/prolog/sl.py index 731eff3..b341f66 100644 --- a/prolog/sl.py +++ b/prolog/sl.py @@ -9,6 +9,10 @@ hint = {

… razen ledvic, te so vredne več na črnem trgu.

''', '''\

Definicija norosti: poskušati isto in pričakovati drugačen rezultat.

+'''], + + 'system_error': ['''\ +

Sistemska napaka: [%=message%].

'''], 'test_results': '''\ -- cgit v1.2.1