Commit e9d7afef authored by Jan Kiene's avatar Jan Kiene
Browse files

improve printout

parent a0424eed
Loading
Loading
Loading
Loading
+21 −7
Original line number Diff line number Diff line
@@ -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"
@@ -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:
@@ -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)