from table_formatter import TableFormatter as TableFormatter
class AutotestGatherer(TableFormatter):
def __init__(self):
self.runs = []
TableFormatter.__init__(self)
def GetFormattedMainTable(self, percents_only, fit_string):
ret = ''
table = self.GetTableValues()
ret += self.GetTableLabels(table)
ret += self.GetFormattedTable(table,
percents_only=percents_only,
fit_string=fit_string)
return ret
def GetFormattedSummaryTable(self, percents_only, fit_string):
ret = ''
table = self.GetTableValues()
summary_table = self.GetSummaryTableValues(table)
ret += self.GetTableLabels(summary_table)
ret += self.GetFormattedTable(summary_table,
percents_only=percents_only,
fit_string=fit_string)
return ret
def GetBenchmarksString(self):
ret = 'Benchmarks (in order):'
ret = '\n'.join(self.GetAllBenchmarks())
return ret
def GetAllBenchmarks(self):
all_benchmarks = []
for run in self.runs:
for key in run.results.keys():
if key not in all_benchmarks:
all_benchmarks.append(key)
all_benchmarks.sort()
return all_benchmarks
def GetTableValues(self):
table = []
row = []
row.append('Benchmark')
for i in range(len(self.runs)):
run = self.runs[i]
label = run.GetLabel()
label = self.GetLabelWithIteration(label, run.iteration)
row.append(label)
table.append(row)
all_benchmarks = self.GetAllBenchmarks()
for benchmark in all_benchmarks:
row = []
row.append(benchmark)
for run in self.runs:
results = run.results
if benchmark in results:
row.append(results[benchmark])
else:
row.append('')
table.append(row)
return table