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