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 From 091f27eba8afac015386342ca3b924f0789396eb Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Tue, 22 Sep 2015 12:19:20 +0200 Subject: Oops, overzealous copy/paste --- 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 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'prolog') diff --git a/prolog/problems/family_relations/brother_2/common.py b/prolog/problems/family_relations/brother_2/common.py index 4241524..0df2d73 100644 --- a/prolog/problems/family_relations/brother_2/common.py +++ b/prolog/problems/family_relations/brother_2/common.py @@ -58,8 +58,8 @@ def test(program, solved_problems): if engine_id: prolog.engine.destroy(engine_id) - passed = n_correct == len(test_in) - hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + passed = n_correct == len(test_cases) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_cases)}}] return passed, hints def hint(program, solved_problems): diff --git a/prolog/problems/family_relations/father_2/common.py b/prolog/problems/family_relations/father_2/common.py index 6e752c3..22c9b48 100644 --- a/prolog/problems/family_relations/father_2/common.py +++ b/prolog/problems/family_relations/father_2/common.py @@ -53,8 +53,8 @@ def test(program, solved_problems): if engine_id: prolog.engine.destroy(engine_id) - passed = n_correct == len(test_in) - hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + passed = n_correct == len(test_cases) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_cases)}}] return passed, hints def hint(program, solved_problems): diff --git a/prolog/problems/family_relations/mother_2/common.py b/prolog/problems/family_relations/mother_2/common.py index e90671b..be0d19b 100644 --- a/prolog/problems/family_relations/mother_2/common.py +++ b/prolog/problems/family_relations/mother_2/common.py @@ -64,8 +64,8 @@ def test(program, solved_problems): if engine_id: prolog.engine.destroy(engine_id) - passed = n_correct == len(test_in) - hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + passed = n_correct == len(test_cases) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_cases)}}] return passed, hints def hint(program, solved_problems): diff --git a/prolog/problems/family_relations/sister_2/common.py b/prolog/problems/family_relations/sister_2/common.py index 780e2bd..b3cbff0 100644 --- a/prolog/problems/family_relations/sister_2/common.py +++ b/prolog/problems/family_relations/sister_2/common.py @@ -61,8 +61,8 @@ def test(program, solved_problems): if engine_id: prolog.engine.destroy(engine_id) - passed = n_correct == len(test_in) - hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + passed = n_correct == len(test_cases) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_cases)}}] return passed, hints def hint(program, solved_problems): -- cgit v1.2.1