49 lines
1.3 KiB
Python
Executable File
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)))
|