summaryrefslogtreecommitdiff
path: root/python/problems/hw-fkkt/hw2/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/problems/hw-fkkt/hw2/common.py')
-rw-r--r--python/problems/hw-fkkt/hw2/common.py29
1 files changed, 20 insertions, 9 deletions
diff --git a/python/problems/hw-fkkt/hw2/common.py b/python/problems/hw-fkkt/hw2/common.py
index 70f306e..0ba9fdd 100644
--- a/python/problems/hw-fkkt/hw2/common.py
+++ b/python/problems/hw-fkkt/hw2/common.py
@@ -17,12 +17,12 @@ hint_type = {
def test(python, code, aux_code=''):
# List of inputs: (expression to eval, stdin).
test_in = [
- (None, '50'),
+ (None, '50.1'),
(None, '100'),
- (None, '32\n37.4'),
- (None, '32\n36.9\nne vem'),
+ (None, '32\n37.2'),
+ (None, '32\n36.9\nverjetno'),
(None, '32\n36\nne'),
- (None, '32\n36\nda\nne vem'),
+ (None, '32\n36\nda\nmogoče'),
(None, '32\n36\nda\nda'),
(None, '32\n36\nda\nne\nne vem'),
(None, '32\n36\nda\nne\nne'),
@@ -43,19 +43,30 @@ def test(python, code, aux_code=''):
# List of outputs: (expression result, stdout, stderr, exception).
answers = python(code=aux_code+code, inputs=test_in, timeout=1.0)
- outputs = [ans[1] for ans in answers]
+ #outputs = [ans[1] for ans in answers]
n_correct = 0
tin = None
- for i, (output, correct) in enumerate(zip(outputs, test_out)):
- if correct.lower() in output.rstrip().split('\n')[-1].lower():
- n_correct += 1
- else:
+ error_hint = None
+ for i, (answer, correct) in enumerate(zip(answers, test_out)):
+ output = answer[1]
+ error = answer[3]
+ exc = get_exception_desc(error)
+ if exc:
tin = test_in[i][1]
tout = correct
+ error_hint = exc
+ elif correct.lower() in output.rstrip().split('\n')[-1].lower():
+ n_correct += 1
+ else:
+ if not error_hint:
+ tin = test_in[i][1]
+ tout = correct
passed = n_correct == len(test_in)
hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_in)}}]
+ if error_hint:
+ hints += error_hint
if tin:
hints.append({'id': 'problematic_test_case', 'args': {'testin': str(tin), 'testout': str(tout)}})
if passed: