From d29fed213caccc7bf2f66ed7a11b94b4bbcac3d1 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Thu, 6 Oct 2016 14:40:16 +0200 Subject: Python: add support for auxiliary code (like for Prolog) --- python/problems/introduction/average/common.py | 8 ++++---- python/problems/introduction/ballistics/common.py | 8 ++++---- python/problems/introduction/fahrenheit_to_celsius/common.py | 8 ++++---- python/problems/introduction/fast_fingers/common.py | 8 ++++---- python/problems/introduction/fast_fingers_2/common.py | 8 ++++---- python/problems/introduction/leap_year/common.py | 8 ++++---- python/problems/introduction/pythagorean_theorem/common.py | 8 ++++---- 7 files changed, 28 insertions(+), 28 deletions(-) (limited to 'python/problems/introduction') diff --git a/python/problems/introduction/average/common.py b/python/problems/introduction/average/common.py index fa152e9..bdf34d7 100644 --- a/python/problems/introduction/average/common.py +++ b/python/problems/introduction/average/common.py @@ -30,7 +30,7 @@ hint_type = { -def test(python, code): +def test(python, code, aux_code=''): # List of inputs: (expression to eval, stdin). test_in = [ (None, '2\n4\n5\n'), @@ -51,7 +51,7 @@ def test(python, code): ] # List of outputs: (expression result, stdout, stderr, exception). - answers = python(code=code, inputs=test_in, timeout=1.0) + answers = python(code=aux_code+code, inputs=test_in, timeout=1.0) outputs = [ans[1] for ans in answers] n_correct = 0 @@ -73,12 +73,12 @@ def test(python, code): return passed, hints -def hint(python, code): +def hint(python, code, aux_code=''): tokens = get_tokens(code) # run one test first to see if there are any exceptions test_in = [(None, '1\n1\n4\n')] - answer = python(code=code, inputs=test_in, timeout=1.0) + answer = python(code=aux_code+code, inputs=test_in, timeout=1.0) exc = answer[0][3] exc_hint = get_exception_desc(answer[0][3]) if exc: diff --git a/python/problems/introduction/ballistics/common.py b/python/problems/introduction/ballistics/common.py index 326650b..beb1c6c 100644 --- a/python/problems/introduction/ballistics/common.py +++ b/python/problems/introduction/ballistics/common.py @@ -36,7 +36,7 @@ def contains_negative(s): return True return False -def test(python, code): +def test(python, code, aux_code=''): # List of inputs: (expression to eval, stdin). test_in = [ (None, '45\n100\n'), @@ -69,7 +69,7 @@ def test(python, code): ] # List of outputs: (expression result, stdout, stderr, exception). - answers = python(code=code, inputs=test_in, timeout=1.0) + answers = python(code=aux_code+code, inputs=test_in, timeout=1.0) outputs = [ans[1] for ans in answers] n_correct = 0 @@ -90,12 +90,12 @@ def test(python, code): hints.append({'id': 'final_hint'}) return passed, hints -def hint(python, code): +def hint(python, code, aux_code=''): tokens = get_tokens(code) # run one test first to see if there are any exceptions test_in = [(None, '5\n10\n')] - answer = python(code=code, inputs=test_in, timeout=1.0) + answer = python(code=aux_code+code, inputs=test_in, timeout=1.0) exc = answer[0][3] exc_hint = get_exception_desc(answer[0][3]) if exc: diff --git a/python/problems/introduction/fahrenheit_to_celsius/common.py b/python/problems/introduction/fahrenheit_to_celsius/common.py index a62d2ae..3a2095a 100644 --- a/python/problems/introduction/fahrenheit_to_celsius/common.py +++ b/python/problems/introduction/fahrenheit_to_celsius/common.py @@ -23,7 +23,7 @@ hint_type = { 'final_hint': Hint('final_hint'), } -def test(python, code): +def test(python, code, aux_code=''): # List of inputs: (expression to eval, stdin). test_in = [ (None, '32\n'), @@ -41,7 +41,7 @@ def test(python, code): ] # List of outputs: (expression result, stdout, stderr, exception). - answers = python(code=code, inputs=test_in, timeout=1.0) + answers = python(code=aux_code+code, inputs=test_in, timeout=1.0) outputs = [ans[1] for ans in answers] n_correct = 0 @@ -61,12 +61,12 @@ def test(python, code): hints.append({'id': 'final_hint'}) return passed, hints -def hint(python, code): +def hint(python, code, aux_code=''): tokens = get_tokens(code) # run one test first to see if there are any exceptions test_in = [(None, '212\n')] - answer = python(code=code, inputs=test_in, timeout=1.0) + answer = python(code=aux_code+code, inputs=test_in, timeout=1.0) exc = answer[0][3] exc_hint = get_exception_desc(answer[0][3]) if exc: diff --git a/python/problems/introduction/fast_fingers/common.py b/python/problems/introduction/fast_fingers/common.py index fe87555..af08c63 100644 --- a/python/problems/introduction/fast_fingers/common.py +++ b/python/problems/introduction/fast_fingers/common.py @@ -24,7 +24,7 @@ hint_type = { 'printing': Hint('printing'), } -def test(python, code): +def test(python, code, aux_code=''): # List of inputs: (expression to eval, stdin). test_in = [ (None, '1\n'), @@ -42,7 +42,7 @@ def test(python, code): ] # List of outputs: (expression result, stdout, stderr, exception). - answers = python(code=code, inputs=test_in, timeout=1.0) + answers = python(code=aux_code+code, inputs=test_in, timeout=1.0) outputs = [ans[1] for ans in answers] n_correct = 0 @@ -60,12 +60,12 @@ def test(python, code): hints.append({'id': 'problematic_test_case', 'args': {'testin': str(tin), 'testout': str(tout)}}) return passed, hints -def hint(python, code): +def hint(python, code, aux_code=''): tokens = get_tokens(code) # run one test first to see if there are any exceptions test_in = [(None, '212\n')] - answer = python(code=code, inputs=test_in, timeout=1.0) + answer = python(code=aux_code+code, inputs=test_in, timeout=1.0) exc = answer[0][3] exc_hint = get_exception_desc(answer[0][3]) # if have an exception! diff --git a/python/problems/introduction/fast_fingers_2/common.py b/python/problems/introduction/fast_fingers_2/common.py index 01ad941..fe50111 100644 --- a/python/problems/introduction/fast_fingers_2/common.py +++ b/python/problems/introduction/fast_fingers_2/common.py @@ -33,7 +33,7 @@ hint_type = { 'final_hint_noif': Hint('final_hint_noif') } -def test(python, code): +def test(python, code, aux_code=''): # List of inputs: (expression to eval, stdin). test = [(5,'25\n'), (6, '29\n'), @@ -58,7 +58,7 @@ def test(python, code): # hook randint tcode = random_code.format(t[0]) + code - answers = python(code=tcode, inputs=[(None, t[1])], timeout=1.0) + answers = python(code=aux_code+tcode, inputs=[(None, t[1])], timeout=1.0) output = answers[0][1] if str(test_out[ti]) in output and str(not test_out[ti]) not in output: @@ -81,12 +81,12 @@ def test(python, code): return passed, hints -def hint(python, code): +def hint(python, code, aux_code=''): tokens = get_tokens(code) # run one test first to see if there are any exceptions test_in = [(None, '16\n')] - answer = python(code=code, inputs=test_in, timeout=1.0) + answer = python(code=aux_code+code, inputs=test_in, timeout=1.0) exc = answer[0][3] exc_hint = get_exception_desc(answer[0][3]) # if have an exception! diff --git a/python/problems/introduction/leap_year/common.py b/python/problems/introduction/leap_year/common.py index 7dc7318..414f295 100644 --- a/python/problems/introduction/leap_year/common.py +++ b/python/problems/introduction/leap_year/common.py @@ -23,7 +23,7 @@ hint_type = { 'final_hint': Hint('final_hint'), } -def test(python, code): +def test(python, code, aux_code=''): # List of inputs: (expression to eval, stdin). test_in = [ (None, '1900\n'), @@ -41,7 +41,7 @@ def test(python, code): ] # List of outputs: (expression result, stdout, stderr, exception). - answers = python(code=code, inputs=test_in, timeout=1.0) + answers = python(code=aux_code+code, inputs=test_in, timeout=1.0) outputs = [ans[1] for ans in answers] n_correct = 0 @@ -61,12 +61,12 @@ def test(python, code): hints.append({'id': 'final_hint'}) return passed, hints -def hint(python, code): +def hint(python, code, aux_code=''): tokens = get_tokens(code) # run one test first to see if there are any exceptions test_in = [(None, '212\n')] - answer = python(code=code, inputs=test_in, timeout=1.0) + answer = python(code=aux_code+code, inputs=test_in, timeout=1.0) exc = answer[0][3] exc_hint = get_exception_desc(answer[0][3]) if exc: diff --git a/python/problems/introduction/pythagorean_theorem/common.py b/python/problems/introduction/pythagorean_theorem/common.py index d38ae66..79eca5b 100644 --- a/python/problems/introduction/pythagorean_theorem/common.py +++ b/python/problems/introduction/pythagorean_theorem/common.py @@ -24,7 +24,7 @@ hint_type = { 'final_hint': Hint('final_hint') } -def test(python, code): +def test(python, code, aux_code=''): # List of inputs: (expression to eval, stdin). test_in = [ (None, '3\n4\n'), @@ -47,7 +47,7 @@ def test(python, code): ] # List of outputs: (expression result, stdout, stderr, exception). - answers = python(code=code, inputs=test_in, timeout=1.0) + answers = python(code=aux_code+code, inputs=test_in, timeout=1.0) outputs = [ans[1] for ans in answers] n_correct = 0 @@ -67,12 +67,12 @@ def test(python, code): hints.append({'id': 'final_hint'}) return passed, hints -def hint(python, code): +def hint(python, code, aux_code=''): tokens = get_tokens(code) # run one test first to see if there are any exceptions test_in = [(None, '3\n4\n')] - answer = python(code=code, inputs=test_in, timeout=1.0) + answer = python(code=aux_code+code, inputs=test_in, timeout=1.0) exc = answer[0][3] exc_hint = get_exception_desc(answer[0][3]) if exc: -- cgit v1.2.1