Updated the Expression object to include 'wrong_response' and wrote the code needed to start the finding mutations.
This commit is contained in:
@@ -1,14 +1,20 @@
|
||||
class Expression:
|
||||
expression = ""
|
||||
correct_answer = 0
|
||||
# correct_response = 0
|
||||
wrong_response = 0
|
||||
variables = []
|
||||
|
||||
def __init__(self, expression_string, variables, correct):
|
||||
def __init__(self, expression_string, variables, wrong_response):
|
||||
self.expression = expression_string
|
||||
self.variables = variables
|
||||
self.correct_answer = correct
|
||||
self.wrong_response = wrong_response
|
||||
|
||||
class Variable:
|
||||
name = ""
|
||||
type = ""
|
||||
starting_point = 0
|
||||
ending_point = 0
|
||||
|
||||
VARIABLE_TYPES = {
|
||||
"i" : "Interest",
|
||||
"I" : "Interest",
|
||||
@@ -24,6 +30,8 @@ class Variable:
|
||||
|
||||
@staticmethod
|
||||
def get_variable_type(variable_name):
|
||||
if not variable_name in Variable.VARIABLE_TYPES:
|
||||
if len(variable_name) == 0:
|
||||
return "Unknown"
|
||||
return Variable.VARIABLE_TYPES[variable_name]
|
||||
if not variable_name[0] in Variable.VARIABLE_TYPES:
|
||||
return "Unknown"
|
||||
return Variable.VARIABLE_TYPES[variable_name[0]]
|
||||
|
||||
+9
-16
@@ -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)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import token
|
||||
import ctoken as token
|
||||
|
||||
def get_tokens_from_expression_string(expression_string):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user