22import json
33from os import environ
44from pathlib import Path
5- from typing import List , Any , Dict
5+ from typing import List , Any , Dict , cast
66
77
88class Args (argparse .Namespace ):
@@ -18,15 +18,19 @@ def main():
1818 bench : List [Dict [str , Any ]] = json .loads (bench_json )["results" ]
1919
2020 assert len (bench ) == 3
21- assert bench [0 ]["command" ] == "previous-build"
22- assert bench [1 ]["command" ] == "current-build"
23- assert bench [2 ]["command" ] == "pure-python"
21+ old_mean , new_mean = (None , None )
22+ for result in bench :
23+ mean = cast (float , result ["mean" ])
24+ if result ["command" ] == "previous-build" :
25+ old_mean = mean
26+ elif result ["command" ] == "current-build" :
27+ new_mean = mean
2428
25- old_mean : float = bench [ 0 ][ "mean" ]
26- new_mean : float = bench [ 1 ][ "mean" ]
29+ assert old_mean is not None , "benchmark report has no result for previous-build"
30+ assert new_mean is not None , "benchmark report has no result for current-build"
2731
28- diff = round (new_mean - old_mean , 2 )
29- scalar = round (new_mean / old_mean , 2 ) * 100
32+ diff = round (( new_mean - old_mean ) - old_mean , 2 )
33+ scalar = int (new_mean / old_mean * 100 )
3034
3135 output = []
3236 if diff > 2 :
0 commit comments