Python Forum
Data written in loop not available afterwards
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Data written in loop not available afterwards
#3
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']
[]
Reply


Messages In This Thread
RE: Data written in loop not available afterwards - by Weird - Mar-28-2020, 10:16 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  I have written a program that outputs data based on GPS signal kalle 1 1,224 Jul-22-2022, 12:10 AM
Last Post: mcmxl22
  2 or more data to be written in a row plumberpy 2 1,551 Nov-25-2021, 07:44 AM
Last Post: Gribouillis
  Formatting file data written to file. melblanc 2 2,312 Jan-15-2020, 03:27 PM
Last Post: melblanc
  csv data not written into avro file rajeshdatla2000 2 3,073 Aug-12-2017, 01:38 PM
Last Post: Bass

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020