pub fn evaluate_rules(
values: &[f64],
center: f64,
sigma: f64,
rules: &[ChartRule],
) -> Result<Vec<RuleViolation>, FdarError>Expand description
Evaluate a set of chart rules against a sequence of values.
Each RuleViolation in the returned vector contains the triggering
rule and the indices of the observations involved. Multiple violations
from different rules may overlap. For multi-rule evaluation, consider
using western_electric_rules or nelson_rules convenience
functions.
§Arguments
values- Monitoring statistic values (in time order)center- Center line (e.g. process mean)sigma- Standard deviation estimaterules- Rules to evaluate
§Example
use fdars_core::spm::rules::{evaluate_rules, ChartRule};
let values = vec![0.0, 0.1, 0.0, -0.1, 0.0, 0.0, 0.1, 10.0]; // outlier at index 7
let violations = evaluate_rules(&values, 0.0, 1.0, &[ChartRule::WE1]).unwrap();
assert!(!violations.is_empty());
assert_eq!(violations[0].indices, vec![7]);§Errors
Returns FdarError::InvalidParameter if sigma is not positive.