results_organizer.py revision f395c26437cbdabc2960447fba89b226f4409e82
1#!/usr/bin/python 2 3# Copyright 2012 Google Inc. All Rights Reserved. 4 5 6class ResultOrganizer(object): 7 """Create a dict from benchmark_runs. 8 9 The structure of the output dict is as follows: 10 {"benchmark_1":[ 11 [{"key1":"v1", "key2":"v2"},{"key1":"v1", "key2","v2"}] 12 #one label 13 [] 14 #the other label 15 ] 16 "benchmark_2": 17 [ 18 ]}. 19 """ 20 21 def __init__(self, benchmark_runs, labels): 22 self.result = {} 23 self.labels = [] 24 for label in labels: 25 self.labels.append(label.name) 26 for benchmark_run in benchmark_runs: 27 benchmark_name = benchmark_run.benchmark_name 28 if benchmark_name not in self.result: 29 self.result[benchmark_name] = [] 30 while len(self.result[benchmark_name]) < len(labels): 31 self.result[benchmark_name].append([]) 32 label_index = self.labels.index(benchmark_run.label_name) 33 cur_table = self.result[benchmark_name][label_index] 34 index = benchmark_run.iteration - 1 35 while index >= len(cur_table): 36 cur_table.append({}) 37 cur_dict = cur_table[index] 38 if not benchmark_run.result: 39 continue 40 for autotest_key in benchmark_run.result.keyvals: 41 result_value = benchmark_run.result.keyvals[autotest_key] 42 cur_dict[autotest_key] = result_value 43