From 08bb51d68e42a5b2ea5f033eb8b5ccb8a1294856 Mon Sep 17 00:00:00 2001 From: Garritt McCune Date: Mon, 20 Apr 2020 00:19:49 -0500 Subject: [PATCH] First version with all variables calculated in a token list. 'Factor Engine' starts here. --- main.py | 17 +++++++++++------ tokenizer.py | 5 +++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index 4074bd7..c4c51ff 100755 --- a/main.py +++ b/main.py @@ -17,6 +17,7 @@ base_list = [2, 4, 6, 12] 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) @@ -25,6 +26,9 @@ with open("expression.json", "r") as f: #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) @@ -34,10 +38,11 @@ for v in exp.variables: else: factor.calculate_factors(exp.variables[v].starting_point) - #for result in calc_answers(f, m): - - calc_answers(factor, exp.variables[v].starting_point, exp.variables[v].type, exp.wrong_response) - -def calc_answers(factor_object, starting_point, variable_type, wrong_response): - pass + 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))) diff --git a/tokenizer.py b/tokenizer.py index 8ea7744..8183409 100644 --- a/tokenizer.py +++ b/tokenizer.py @@ -82,3 +82,8 @@ def replace_variables(tokens, new_constants): newTokenList.append(token.Token(t.value, t.type)) return newTokenList + +def print_token_list(tokens): + for tk in tokens: + print(tk.value, end = "") + print()