summaryrefslogtreecommitdiff
path: root/python/problems/recursion/path_to
diff options
context:
space:
mode:
Diffstat (limited to 'python/problems/recursion/path_to')
-rw-r--r--python/problems/recursion/path_to/common.py42
1 files changed, 5 insertions, 37 deletions
diff --git a/python/problems/recursion/path_to/common.py b/python/problems/recursion/path_to/common.py
index cf63b6c..6b92c24 100644
--- a/python/problems/recursion/path_to/common.py
+++ b/python/problems/recursion/path_to/common.py
@@ -7,6 +7,7 @@ from server.hints import Hint
id = 20805
number = 5
visible = True
+facts = 'family_tree'
solution = '''\
def pathto(fr, to):
@@ -22,40 +23,7 @@ hint_type = {
'final_hint': Hint('final_hint')
}
-precode = """
-children = {
- "Adam": ["Matjaž", "Cilka", "Daniel", "Erik"],
- "Aleksander": [],
- "Alenka": [],
- "Barbara": [],
- "Cilka": [],
- "Daniel": ["Elizabeta", "Hans"],
- "Erik": [],
- "Elizabeta": ["Ludvik", "Jurij", "Barbara", "Herman", "Mihael"],
- "Franc": [],
- "Herman": ["Margareta"],
- "Hans": [],
- "Jožef": ["Alenka", "Aleksander", "Petra"],
- "Jurij": ["Franc", "Jožef"],
- "Ludvik": [],
- "Margareta": [],
- "Matjaž": ["Viljem"],
- "Mihael": [],
- "Petra": [],
- "Tadeja": [],
- "Viljem": ["Tadeja"],
-}
-
-age = {
- "Adam": 111, "Matjaž": 90, "Cilka": 88, "Daniel": 85, "Erik": 83,
- "Viljem": 58, "Tadeja": 20, "Elizabeta": 67, "Hans": 64, "Ludvik": 50,
- "Jurij": 49, "Barbara": 45, "Herman": 39, "Mihael": 32, "Franc": 30,
- "Jožef": 29, "Margareta": 10, "Alenka": 5, "Aleksander": 7, "Petra": 9
-}"""
-
-def test(python, code):
- code = precode + "\n" + code
-
+def test(python, code, aux_code=''):
func_name = 'pathto'
tokens = get_tokens(code)
if not has_token_sequence(tokens, ['def', func_name]):
@@ -76,7 +44,7 @@ def test(python, code):
for l in in_out]
test_out = [l[1] for l in in_out]
- answers = python(code=code, inputs=test_in, timeout=1.0)
+ answers = python(code=aux_code+code, inputs=test_in, timeout=1.0)
n_correct = 0
tin, tout = None, None
for i, (ans, to) in enumerate(zip(answers, test_out)):
@@ -97,11 +65,11 @@ 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
- answer = python(code=code, inputs=[(None, None)], timeout=1.0)
+ answer = python(code=aux_code+code, inputs=[(None, None)], timeout=1.0)
exc = get_exception_desc(answer[0][3])
if exc: return exc