summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatevž Poberžnik <tevzpoberznik@gmail.com>2017-11-09 17:19:59 +0100
committerMatevž Poberžnik <tevzpoberznik@gmail.com>2017-11-09 17:19:59 +0100
commit3935911167b037e4fa80c1c55aa4e6cbf15d223f (patch)
treefce9f97d3fb27c7a77cba15ba3623c52bd8d167d
parent73c22b77730970bcfa13eedec409c2477453dc5f (diff)
Fix HW2 for FKKT
-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: