From 0fc5aff9887fa7a3125c71d0662475a3f9a763ba Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Mon, 13 Mar 2023 10:13:57 +0100 Subject: CDash: Add comparison tables Signed-off-by: Tibor Frank Change-Id: I8ce9e670721e1fdb1f297b3bfb8f0d8ffb916713 --- csit.infra.dash/app/cdash/utils/constants.py | 13 +++++++++++++ csit.infra.dash/app/cdash/utils/utils.py | 26 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) (limited to 'csit.infra.dash/app/cdash/utils') diff --git a/csit.infra.dash/app/cdash/utils/constants.py b/csit.infra.dash/app/cdash/utils/constants.py index 12d7ee5702..1aedb9b96f 100644 --- a/csit.infra.dash/app/cdash/utils/constants.py +++ b/csit.infra.dash/app/cdash/utils/constants.py @@ -142,6 +142,7 @@ class Constants: NORM_FREQUENCY = 2.0 # [GHz] FREQUENCY = { # [GHz] + "1n-aws": 1.000, "2n-aws": 1.000, "2n-dnv": 2.000, "2n-clx": 2.300, @@ -290,6 +291,18 @@ class Constants: # Default name of downloaded file with selected data. REPORT_DOWNLOAD_FILE_NAME = "iterative_data.csv" + ############################################################################ + # Comparisons. + + # The title. + COMP_TITLE = "Per Release Performance Comparisons" + + # The pathname prefix for the application. + COMP_ROUTES_PATHNAME_PREFIX = "/comparisons/" + + # Default name of downloaded file with selected data. + COMP_DOWNLOAD_FILE_NAME = "comparison_data.csv" + ############################################################################ # Statistics. diff --git a/csit.infra.dash/app/cdash/utils/utils.py b/csit.infra.dash/app/cdash/utils/utils.py index 424456088d..68099987d2 100644 --- a/csit.infra.dash/app/cdash/utils/utils.py +++ b/csit.infra.dash/app/cdash/utils/utils.py @@ -17,6 +17,7 @@ import pandas as pd import dash_bootstrap_components as dbc +from math import sqrt from numpy import isnan from dash import dcc from datetime import datetime @@ -391,3 +392,28 @@ def get_list_group_items( ) return children + +def relative_change_stdev(mean1, mean2, std1, std2): + """Compute relative standard deviation of change of two values. + + The "1" values are the base for comparison. + Results are returned as percentage (and percentual points for stdev). + Linearized theory is used, so results are wrong for relatively large stdev. + + :param mean1: Mean of the first number. + :param mean2: Mean of the second number. + :param std1: Standard deviation estimate of the first number. + :param std2: Standard deviation estimate of the second number. + :type mean1: float + :type mean2: float + :type std1: float + :type std2: float + :returns: Relative change and its stdev. + :rtype: float + """ + mean1, mean2 = float(mean1), float(mean2) + quotient = mean2 / mean1 + first = std1 / mean1 + second = std2 / mean2 + std = quotient * sqrt(first * first + second * second) + return (quotient - 1) * 100, std * 100 -- cgit 1.2.3-korg