Files
calc_engine/json_generator/expression.py
T

49 lines
1.6 KiB
Python

class Expression:
# This object represents all the needed initial data about an expression that is to be parsed.
expression = "" # The formula to parse as a string.
# correct_response = 0
wrong_response = 0 # The incorrect response that was entered by the student.
variables = [] # A list of Variable.
def __init__(self, expression_string, variables, wrong_response):
self.expression = expression_string
self.variables = variables
self.wrong_response = wrong_response
class Variable:
# This object represents a variable that is found in the formula. It encodes the name, the type of variable
# and the starting point from which to look for mutations in the variable's value.
name = ""
type = ""
starting_point = 0
# ending_point = 0
VARIABLE_TYPES = {
"i" : "Interest",
"I" : "Interest",
"n" : "Time",
"N" : "Time",
"k" : "Installment",
"K" : "Installment"
}
def __init__(self, name, type, starting_point = 0, ending_point = 0):
self.name = name
self.type = type
self.starting_point = starting_point
self.ending_point = ending_point
@staticmethod
def get_variable_type(variable_name):
# Utilitie function to get the variable's type from it's name.
# For example, a variable with 'i' in its name is an Interest type.
# Returns the variable's type as a string or 'Unknown' otherwise.
if not variable_name[0] in Variable.VARIABLE_TYPES:
return "Unknown"
return Variable.VARIABLE_TYPES[variable_name[0]]
def __str__(self):
return "Name: %s Type: %s Start: %f" %(self.name, Variable.get_variable_type(self.name), self.starting_point)