diff options
author | Timotej Lazar <timotej.lazar@araneo.org> | 2015-09-22 12:03:57 +0200 |
---|---|---|
committer | Timotej Lazar <timotej.lazar@araneo.org> | 2015-09-22 12:03:57 +0200 |
commit | 5a6237fc92fc57f87fe3f11144e4ade5baa96350 (patch) | |
tree | b251950bc601780ff30d7097711fcdfa014420b0 /python/problems | |
parent | 0d45ae47238808ac4659a81c7dc94aba88c810f5 (diff) |
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.
Diffstat (limited to 'python/problems')
10 files changed, 38 insertions, 10 deletions
diff --git a/python/problems/introduction/average/common.py b/python/problems/introduction/average/common.py index 37d5315..0a2b689 100644 --- a/python/problems/introduction/average/common.py +++ b/python/problems/introduction/average/common.py @@ -55,7 +55,10 @@ def test(python, code): if string_almost_equal(output, c[0]) and \ string_almost_equal(output, c[1]): n_correct += 1 - return n_correct, len(test_in) + + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/introduction/ballistics/common.py b/python/problems/introduction/ballistics/common.py index 1a75493..f7f271e 100644 --- a/python/problems/introduction/ballistics/common.py +++ b/python/problems/introduction/ballistics/common.py @@ -92,7 +92,10 @@ def test(python, code): for output, correct in zip(outputs, test_out): if string_almost_equal(output, float(correct)): n_correct += 1 - return n_correct, len(test_in) + + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/introduction/fahrenheit_to_celsius/common.py b/python/problems/introduction/fahrenheit_to_celsius/common.py index 1ba0e15..2e6c9b7 100644 --- a/python/problems/introduction/fahrenheit_to_celsius/common.py +++ b/python/problems/introduction/fahrenheit_to_celsius/common.py @@ -49,7 +49,10 @@ def test(python, code): for output, correct in zip(outputs, test_out): if correct in output: n_correct += 1 - return n_correct, len(test_in) + + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/introduction/fast_fingers/common.py b/python/problems/introduction/fast_fingers/common.py index 3c1b138..8ab51ab 100644 --- a/python/problems/introduction/fast_fingers/common.py +++ b/python/problems/introduction/fast_fingers/common.py @@ -27,7 +27,9 @@ hint_type = { } def test(python, code): - return 0, 0 + passed = True + hints = [{'id': 'test_results', 'args': {'passed': 0, 'total': 0}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/introduction/fast_fingers_2/common.py b/python/problems/introduction/fast_fingers_2/common.py index 9c8772f..d562f7b 100644 --- a/python/problems/introduction/fast_fingers_2/common.py +++ b/python/problems/introduction/fast_fingers_2/common.py @@ -33,7 +33,9 @@ hint_type = { } def test(python, code): - return 0,0 + passed = True + hints = [{'id': 'test_results', 'args': {'passed': 0, 'total': 0}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/introduction/pythagorean_theorem/common.py b/python/problems/introduction/pythagorean_theorem/common.py index 7a232c1..405a39c 100644 --- a/python/problems/introduction/pythagorean_theorem/common.py +++ b/python/problems/introduction/pythagorean_theorem/common.py @@ -55,7 +55,10 @@ def test(python, code): for output, correct in zip(outputs, test_out): if string_almost_equal(output, float(correct)): n_correct += 1 - return n_correct, len(test_in) + + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/lists_and_for/contains_42/common.py b/python/problems/lists_and_for/contains_42/common.py index 3a5a905..3ebe546 100644 --- a/python/problems/lists_and_for/contains_42/common.py +++ b/python/problems/lists_and_for/contains_42/common.py @@ -63,7 +63,10 @@ def test(python, code): if str(test_out[xs_i]) in output and \ str(not test_out[xs_i]) not in output: n_correct += 1 - return n_correct, len(test_out) + + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/lists_and_for/contains_string/common.py b/python/problems/lists_and_for/contains_string/common.py index b69a4ea..5e0a46b 100644 --- a/python/problems/lists_and_for/contains_string/common.py +++ b/python/problems/lists_and_for/contains_string/common.py @@ -61,7 +61,10 @@ def test(python, code): if str(test_out[xs_i]) in output and \ str(not test_out[xs_i]) not in output: n_correct += 1 - return n_correct, len(test_out) + + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/while_and_if/buy_five/common.py b/python/problems/while_and_if/buy_five/common.py index c7081c2..84be034 100644 --- a/python/problems/while_and_if/buy_five/common.py +++ b/python/problems/while_and_if/buy_five/common.py @@ -53,7 +53,10 @@ def test(python, code): for output, correct in zip(outputs, test_out): if string_almost_equal(output, correct): n_correct += 1 - return n_correct, len(test_in) + + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions diff --git a/python/problems/while_and_if/competition/common.py b/python/problems/while_and_if/competition/common.py index 79f7447..4be8b12 100644 --- a/python/problems/while_and_if/competition/common.py +++ b/python/problems/while_and_if/competition/common.py @@ -48,7 +48,10 @@ def test(python, code): for output, correct in zip(outputs, test_out): if string_almost_equal(output, correct): n_correct += 1 - return n_correct, len(test_in) + + passed = n_correct == len(test_in) + hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}] + return passed, hints def hint(python, code): # run one test first to see if there are any exceptions |