#!/usr/bin/python # Copyright 2011 Google Inc. All Rights Reserved. class ResultSorter(object): def __init__(self, benchmark_runs): self.table = {} for benchmark_run in benchmark_runs: benchmark_name = benchmark_run.benchmark_name label_name = benchmark_run.label_name if not benchmark_run.result: continue for autotest_key in benchmark_run.result.keyvals: result_tuple = (benchmark_name, autotest_key, label_name) if result_tuple not in self.table: self.table[result_tuple] = [] cell = self.table[result_tuple] index = benchmark_run.iteration - 1 while index >= len(cell): cell.append(None) result_value = benchmark_run.result.keyvals[autotest_key] try: result_value = float(result_value) except ValueError: pass cell[index] = result_value self.autotest_keys = {} for benchmark_run in benchmark_runs: benchmark_name = benchmark_run.benchmark_name if benchmark_name not in self.autotest_keys: self.autotest_keys[benchmark_name] = {} if not benchmark_run.result: continue for autotest_key in benchmark_run.result.keyvals: self.autotest_keys[benchmark_name][autotest_key] = True def GetAutotestKeys(self, benchmark_name): return self.autotest_keys[benchmark_name].keys() def GetResults(self, benchmark_name, autotest_key, label_name): try: return self.table[(benchmark_name, autotest_key, label_name)] except KeyError: return []