Loading scripts/basop_check_for_regressions.py +21 −7 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ import pandas as pd import argparse import sys import pathlib # set positive threshold for "lower is better" metrics, negative for "higher is better" Loading @@ -15,13 +16,19 @@ COLS_2_THRESHOLDS = { def main(args): df_curr = pd.read_csv(args.csv_current, sep=";").sort_values(by="testcase") df_prev = pd.read_csv(args.csv_previous, sep=";").sort_values(by="testcase") df_curr = pd.read_csv(args.csv_current, sep=";") df_prev = pd.read_csv(args.csv_previous, sep=";") df_merged = pd.merge(df_curr, df_prev, on="testcase", suffixes=["-curr", "-prev"]) # remove leading path from testcase names for better readability df_merged["testcase"] = [pathlib.Path(tc).name for tc in df_merged["testcase"]] pd.options.display.max_colwidth = 200 regressions_found = False for col, thresh in COLS_2_THRESHOLDS.items(): diff = df_curr[col] - df_prev[col] col_curr = f"{col}-curr" col_prev = f"{col}-prev" diff = df_merged[col_curr] - df_merged[col_prev] # invert sign of difference for "higher is better" metrics if thresh < 0: Loading @@ -31,14 +38,21 @@ def main(args): mask_worse = diff > thresh mask_better = diff < -thresh display_cols = ["testcase", col_curr, col_prev] if sum(mask_worse) > 0: regressions_found = True print(f"Testcases that got worse wrt to {col}:") print(df_curr[mask_worse]["testcase"]) print( f"---------------Testcases that got worse wrt to {col}---------------" ) print(df_merged[mask_worse][display_cols].reset_index(drop=True)) print() if sum(mask_better) > 0: print(f"Testcases that got better wrt to {col}:") print(df_curr[mask_better]["testcase"]) print( f"---------------Testcases that got better wrt to {col}---------------" ) print(df_merged[mask_better][display_cols].reset_index(drop=True)) print() return int(regressions_found) Loading Loading
scripts/basop_check_for_regressions.py +21 −7 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ import pandas as pd import argparse import sys import pathlib # set positive threshold for "lower is better" metrics, negative for "higher is better" Loading @@ -15,13 +16,19 @@ COLS_2_THRESHOLDS = { def main(args): df_curr = pd.read_csv(args.csv_current, sep=";").sort_values(by="testcase") df_prev = pd.read_csv(args.csv_previous, sep=";").sort_values(by="testcase") df_curr = pd.read_csv(args.csv_current, sep=";") df_prev = pd.read_csv(args.csv_previous, sep=";") df_merged = pd.merge(df_curr, df_prev, on="testcase", suffixes=["-curr", "-prev"]) # remove leading path from testcase names for better readability df_merged["testcase"] = [pathlib.Path(tc).name for tc in df_merged["testcase"]] pd.options.display.max_colwidth = 200 regressions_found = False for col, thresh in COLS_2_THRESHOLDS.items(): diff = df_curr[col] - df_prev[col] col_curr = f"{col}-curr" col_prev = f"{col}-prev" diff = df_merged[col_curr] - df_merged[col_prev] # invert sign of difference for "higher is better" metrics if thresh < 0: Loading @@ -31,14 +38,21 @@ def main(args): mask_worse = diff > thresh mask_better = diff < -thresh display_cols = ["testcase", col_curr, col_prev] if sum(mask_worse) > 0: regressions_found = True print(f"Testcases that got worse wrt to {col}:") print(df_curr[mask_worse]["testcase"]) print( f"---------------Testcases that got worse wrt to {col}---------------" ) print(df_merged[mask_worse][display_cols].reset_index(drop=True)) print() if sum(mask_better) > 0: print(f"Testcases that got better wrt to {col}:") print(df_curr[mask_better]["testcase"]) print( f"---------------Testcases that got better wrt to {col}---------------" ) print(df_merged[mask_better][display_cols].reset_index(drop=True)) print() return int(regressions_found) Loading