Updated the Expression object to include 'wrong_response' and wrote the code needed to start the finding mutations.

This commit is contained in:
2020-04-18 01:13:11 -05:00
parent 58bd836ee2
commit ca47912d05
6 changed files with 54 additions and 37 deletions
+9 -16
View File
@@ -1,7 +1,7 @@
import tokenizer
import token
import ctoken
import expression
import json
import jsonpickle
variables = {}
def print_vars(vars):
@@ -55,26 +55,16 @@ def modify_variable(var, vars):
print('Invalid property "%s".' %(response))
print('Commands are "type", "start" and "end".')
def transform(object):
if isinstance(object, expression.Expression) or isinstance(object, expression.Variable):
return object.__dict__
else:
raise TypeError("Only Books and Index will be JSON serialized!")
exp = input("Enter the expression the student will use: ")
correct_answer = input("Enter the correct anwser for the expression: ")
wrong_response = input("Enter the wrong response for the expression: ")
try:
correct_answer = float(correct_answer)
wrong_response = float(wrong_response)
except ValueError:
print("The anwser must be numeric! Will not be included in output file.")
tokens = tokenizer.get_tokens_from_expression_string(exp)
for t in tokens:
if t.type == token.TokenType.variable:
if t.type == ctoken.TokenType.variable:
variables[t.value] = expression.Variable(t.value, expression.Variable.get_variable_type(t.value))
selected_variable = None
@@ -98,4 +88,7 @@ while True:
continue
with open("expression.json", "w", encoding="utf-8") as f:
json.dump(expression.Expression(exp, variables, correct_answer), f, default=transform, indent = 4)
obj = jsonpickle.encode(expression.Expression(exp, variables, wrong_response))
f.write(obj)
f.close()
#json.dump(expression.Expression(exp, variables, correct_answer), f, default=transform, indent = 4)