Files
calc_engine/main.py
T

49 lines
1.3 KiB
Python
Executable File

import ptoken as token
import tokenizer
import expression
import calc_engine
import factors
import jsonpickle
import itertools
base_list = [2, 4, 6, 12]
#fileLocation = input('File Path to JSON: ')
#json = json.loads(open(fileLocation).read())
#userInput = input('Enter your formula: ')
#tokens = tokenizer.get_tokens_from_expression_string("5000(2(2(1.08^10)-1)/0.08)")
with open("expression.json", "r") as f:
#j = json.load(f)
exp = jsonpickle.decode(f.read())
exp.variables
#results = calc_engine.calculate_results(tokens.copy())
#print(results)
#for t in tokens:
# print("%s (%s) " %(t.value, token.TokenType.get_token_type_name(t.type)), end = "")
#print()
tokens = tokenizer.get_tokens_from_expression_string(exp.expression)
tokenizer.print_token_list(tokens)
factors_list = []
ls = []
for v in exp.variables:
factor = factors.Factor(v, base_list)
if exp.variables[v].type == "Interest":
factor.calculate_factors(exp.variables[v].starting_point, True, True)
else:
factor.calculate_factors(exp.variables[v].starting_point)
factors_list.append(factor)
ls.append(factor.get_flat_factors_list())
res = list(itertools.product(*ls))
for r in res:
t = tokenizer.replace_variables(tokens, list(r))
#tokenizer.print_token_list(t)
print("Results %f" %(calc_engine.calculate_results(t)))