Source code for datapipe_testbench.requirements

"""
Sub-module to define anything related to requirement checks.
"""

from scipy import stats

from . import storable


[docs] def req_median(metric, reference, rtol): """Check a requirement on the median of a distribution. Parameters ---------- metric : hist.Hist Metric to check rtol : Relative tolerance in percentage (1 = 1%). """ stat_hist = stats.rv_histogram(metric.to_numpy()) median = stat_hist.median() min_val = (1 - rtol / 100) * reference max_val = (1 + rtol / 100) * reference # Two percent interval around central value if median > min_val: status = storable.MetricStatus.FAILED_HIGH elif median < max_val: status = storable.MetricStatus.FAILED_LOW else: status = storable.MetricStatus.PASSED return status, median