use super::classify;
use http::StatusCode;
use parlov_core::{OracleVerdict, Severity};
use crate::signals::tests::status_code_diff_technique;
fn assert_pattern(
baseline: u16,
probe: u16,
verdict: OracleVerdict,
severity: Option<Severity>,
label: Option<&str>,
has_leaks: bool,
rfc_basis: Option<&str>,
) {
let b = StatusCode::from_u16(baseline).expect("valid status");
let p = StatusCode::from_u16(probe).expect("valid status");
let technique = status_code_diff_technique();
let r = classify(b, p, vec![], &technique);
assert_eq!(r.verdict, verdict, "{baseline}/{probe} verdict");
assert_eq!(r.severity, severity, "{baseline}/{probe} severity");
assert_eq!(r.label.as_deref(), label, "{baseline}/{probe} label");
if has_leaks {
assert!(r.leaks.is_some(), "{baseline}/{probe} expected leaks");
} else {
assert!(r.leaks.is_none(), "{baseline}/{probe} expected no leaks");
}
assert_eq!(
r.rfc_basis.as_deref(),
rfc_basis,
"{baseline}/{probe} rfc_basis"
);
}
#[path = "classifier_tests/lower_moderate.rs"]
mod lower_moderate;
#[path = "classifier_tests/strong.rs"]
mod strong;
#[path = "classifier_tests/upper_moderate.rs"]
mod upper_moderate;
#[path = "classifier_tests/weak.rs"]
mod weak;