Outputs csv file of calc details.
This commit is contained in:
lahemals
2020-07-26 01:58:58 -05:00
parent fc1bec1478
commit fc7f1e0dbf
9 changed files with 549 additions and 4 deletions
+19 -3
View File
@@ -7,9 +7,11 @@ import jsonpickle
import itertools
import copy
from ast_gen import Parser
import random
import csv
base_list = [1, 2, 4, 6, 12]
tolerance = .05
tolerance = .025
variables = {}
var_types = {}
@@ -178,9 +180,10 @@ for v in exp.variables:
ls.append(factor.get_flat_factors_list())
res = list(itertools.product(*ls))
details_lst = [['Ans', 'K', 'I1', 'N1', 'I2', 'Exp', 'Conf']]
for r in res:
vs = tree.get_variable_value_pairs()
count = 0
for key in vs:
vs[key] = r[count]
@@ -190,9 +193,22 @@ for r in res:
result = calculate_results(tree.ast)
if result <= int(exp.wrong_response * (1 + tolerance)) and result >= int(exp.wrong_response * (1 - tolerance)):
if not result in answers:
answers[result] = tree.get_tokens()
row_list = []
answers[result] = tree.get_tokens()
val_pairs = tree.get_variable_value_pairs()
row_list.append(result)
for key in val_pairs:
row_list.append(val_pairs[key])
row_list.append(stringify_token_list(answers[result]))
row_list.append(random.uniform(0.75, 0.99))
details_lst.append(row_list)
#if result <= tol and result >= int(exp.wrong_response - exp.wrong_response * tolerance):
with open("details.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(details_lst)
#for k in answers:
# print("Result: %s for expression: " %(format(k, ".8f")))
# tokenizer.print_token_list(answers[k])