6
6
import os
7
7
import copy
8
8
import json
9
- import yaml
10
- import numpy
11
9
12
10
class Merger ():
13
11
def __init__ (self ):
@@ -28,7 +26,6 @@ def merge(self):
28
26
#print "subtests=", subtests
29
27
test_data_merged = {}
30
28
for subtest in subtests :
31
- subtest_data = subtests
32
29
#print "subtest=", subtest
33
30
subtest_data = self .load_data (os .path .join (self .json_output , subtest + ".json" ))
34
31
#print "subtest_data=", subtest_data
@@ -41,7 +38,7 @@ def merge(self):
41
38
for metric_data in metric_data_list :
42
39
#print "metric_data=", metric_data
43
40
#print "metric_data['data']=", metric_data['data']
44
-
41
+
45
42
# check if entry exists
46
43
if testblock_name not in test_data_merged :
47
44
# create new testblock entry
@@ -59,7 +56,7 @@ def merge(self):
59
56
else :
60
57
# entry already exists
61
58
#print "entry for metric '" + metric_name + "' in testblock '" + testblock_name + "' already exists"
62
-
59
+
63
60
# check if merging is possible, if not: append
64
61
is_in , element_number = self .is_in_metric_data_list (copy .deepcopy (metric_data ), copy .deepcopy (test_data_merged [testblock_name ][metric_name ]))
65
62
if is_in :
@@ -79,7 +76,7 @@ def merge(self):
79
76
#print "test_data_merged=", test_data_merged
80
77
81
78
#print "test_data_merged before average=", test_data_merged
82
-
79
+
83
80
# calculate min/max/average
84
81
for testblock_name , testblock_data in test_data_merged .items ():
85
82
#print "testblock_data=", testblock_data
@@ -90,10 +87,10 @@ def merge(self):
90
87
#print "test_data_merged[testblock_name][metric_name][i]['data']['values']=", test_data_merged[testblock_name][metric_name][i]['data']['values']
91
88
test_data_merged [testblock_name ][metric_name ][i ]['data' ]['min' ] = min (test_data_merged [testblock_name ][metric_name ][i ]['data' ]['values' ])
92
89
test_data_merged [testblock_name ][metric_name ][i ]['data' ]['max' ] = max (test_data_merged [testblock_name ][metric_name ][i ]['data' ]['values' ])
93
- test_data_merged [testblock_name ][metric_name ][i ]['data' ]['average' ] = round (sum (test_data_merged [testblock_name ][metric_name ][i ]['data' ]['values' ])/ len (test_data_merged [testblock_name ][metric_name ][i ]['data' ]['values' ]),3 )
94
-
90
+ test_data_merged [testblock_name ][metric_name ][i ]['data' ]['average' ] = round (sum (test_data_merged [testblock_name ][metric_name ][i ]['data' ]['values' ])/ len (test_data_merged [testblock_name ][metric_name ][i ]['data' ]['values' ]), 3 )
91
+
95
92
#print "test_data_merged after average=", test_data_merged
96
-
93
+
97
94
# write to file
98
95
filename = self .json_output + test_name + ".json"
99
96
stream = file (filename , 'w' )
@@ -107,14 +104,14 @@ def merge(self):
107
104
108
105
def is_in_metric_data_list (self , data , data_list ):
109
106
counter = 0
110
- for d in data_list :
111
- is_same = self .is_same_metric_data_without_data (copy .deepcopy (data ), copy .deepcopy (d ))
107
+ for dat in data_list :
108
+ is_same = self .is_same_metric_data (copy .deepcopy (data ), copy .deepcopy (dat ))
112
109
if is_same :
113
110
return True , counter
114
111
counter += 1
115
112
return False , None
116
113
117
- def is_same_metric_data_without_data (self , data1 , data2 ):
114
+ def is_same_metric_data (self , data1 , data2 ):
118
115
data1 .pop ('data' )
119
116
data1 .pop ('groundtruth_result' )
120
117
data2 .pop ('data' )
@@ -130,7 +127,7 @@ def load_data(self, filename):
130
127
return doc
131
128
132
129
class TestMerging (unittest .TestCase ):
133
- def test_MergingResults (self ):
130
+ def test_merging_results (self ):
134
131
merger = Merger ()
135
132
merger .merge ()
136
133
self .assertTrue (merger .result , merger .merging_error_message )
0 commit comments