|
1 | | -import sys |
| 1 | +import argparse |
2 | 2 | import csv |
3 | 3 | import tabulate as tab |
4 | 4 |
|
5 | | -csv_benchmark = sys.argv[1] |
6 | | -csv_baseline = sys.argv[2] |
| 5 | +parser = argparse.ArgumentParser() |
| 6 | +parser.add_argument('-b', '--baseline', required=True, help='Baseline CSV file') |
| 7 | +parser.add_argument('-c', '--current', required=True, help='Current CSV file') |
| 8 | +args = parser.parse_args() |
7 | 9 |
|
8 | 10 | pretty = lambda x : "{:.1f}".format(x) if x <= 0 else "+{:.1f}".format(x) |
9 | 11 |
|
10 | | -with open(csv_benchmark) as csv_file: |
| 12 | +with open(args.baseline) as csv_file: |
11 | 13 | csv_reader = csv.reader(csv_file) |
12 | 14 | next(csv_reader) |
13 | | - table_benchmark = [row for row in csv_reader] |
14 | | - |
15 | | -with open(csv_baseline) as csv_file: |
| 15 | + table_baseline = [row for row in csv_reader] |
| 16 | + |
| 17 | +with open(args.current) as csv_file: |
16 | 18 | csv_reader = csv.reader(csv_file) |
17 | 19 | next(csv_reader) |
18 | | - table_baseline = [row for row in csv_reader] |
| 20 | + table_benchmark = [row for row in csv_reader] |
19 | 21 |
|
20 | 22 | table = [] |
21 | 23 | for benchmark, baseline in zip(table_benchmark, table_baseline): |
|
26 | 28 | d = float(baseline[1]) - float(benchmark[1]) |
27 | 29 | emoji = ':red_circle:' if 0 < d else ':green_circle:' |
28 | 30 | difference = pretty(d) |
29 | | - percent = pretty(100 * d / float(baseline[1])) |
| 31 | + percent = pretty(0 if float(baseline[1]) == 0.0 else 100 * d / float(baseline[1])) |
30 | 32 | table.append([name, time, stdev, emoji, difference, percent]) |
31 | 33 |
|
32 | 34 | header = ["name", "time", "stdev", "", "difference", "percent"] |
|
0 commit comments