Mar-28-2020, 10:16 AM
Actually I meant the second loop - but for some reason half of the function went missing - no idea why...
def evaluate_tests(test_results): evaluation = {}; n = 0; for tests in test_results: test_eval = {}; test_eval['error'] = []; test_eval['incomplete_nodes'] = []; test_eval['finished_fbc'] = 0; test_eval['finished_mfcn'] = 0; sum_fbc_error = 0; sum_mfcn_error = 0; sum_fbc_in = 0; sum_mfcn_in = 0; for test_result in tests: fbc = test_result['find_best_coverage']; mfcn = test_result['max_fully_covered_nodes']; print("fbc['incomplete_nodes']"); print(fbc['incomplete_nodes']); print("mfcn['incomplete_nodes']"); print(mfcn['incomplete_nodes']); print("mfcn fbc incomplete notes difference"); print(abs(len(fbc['incomplete_nodes']) - len(mfcn['incomplete_nodes']))); test_eval['error'].append(abs(fbc['errors'] - mfcn['errors'])); test_eval['incomplete_nodes'].append(abs(len(fbc['incomplete_nodes']) - len(mfcn['incomplete_nodes']))); test_eval['finished_fbc'] += 1; test_eval['finished_mfcn'] += 1; sum_fbc_error += fbc['errors']; sum_mfcn_error += mfcn['errors']; sum_fbc_in += len(fbc['incomplete_nodes']); sum_mfcn_in += len(mfcn['incomplete_nodes']); print("test_eval['error']"); print(test_eval['error']); print("test_eval['incomplete_nodes']"); print(test_eval['incomplete_nodes']); print("test_eval"); print(test_eval); test_eval['avg_fbc_error'] = sum_fbc_error / len(test_results); test_eval['avg_mfcn_error'] = sum_mfcn_error / len(test_results); test_eval['avg_fbc_incomplete_nodes'] = sum_fbc_in / len(test_results); test_eval['avg_mfcn_incomplete_nodes'] = sum_mfcn_in / len(test_results); print("test_eval['error']"); print(test_eval['error']); print("test_eval['incomplete_nodes']"); print(test_eval['incomplete_nodes']); test_eval['avg_error'] = sum(test_eval['error']) / len(test_eval['error']); test_eval['avg_incomplete_nodes'] = sum(test_eval['incomplete_nodes']) / len(test_eval['incomplete_nodes']); test_eval['finished'] = test_eval['finished_fbc'] + test_eval['finished_mfcn']; evaluation[n] = test_eval; n += 1; return evaluation;already
print("test_eval"); print(test_eval);showed me that "test_eval" is after the loop set to the initial values while it is inside the loop extended with values e.g. this is a print output - the end of the output of the inner loop and when the loop ends the output afterwards:
test_eval['error'] [155, 34, 171, 37, 161, 52] test_eval['incomplete_nodes'] [1, 0, 0, 0, 0, 0] test_eval {'error': [], 'incomplete_nodes': [], 'finished_fbc': 0, 'finished_mfcn': 0} test_eval['error'] [] test_eval['incomplete_nodes'] []