use super::*;
#[test]
fn evaluate_3_samples_unstable_probe_not_present() {
let ds = diff_set_n(&[403, 403, 403], &[404, 200, 404]);
let SampleDecision::Complete(result, _outcome) = ExistenceAnalyzer.evaluate(&ds) else {
panic!("expected Complete");
};
assert_eq!(result.verdict, OracleVerdict::NotPresent);
assert_eq!(result.severity, None);
}
#[test]
fn evaluate_3_samples_unstable_baseline_not_present() {
let ds = diff_set_n(&[403, 200, 403], &[404, 404, 404]);
let SampleDecision::Complete(result, _outcome) = ExistenceAnalyzer.evaluate(&ds) else {
panic!("expected Complete");
};
assert_eq!(result.verdict, OracleVerdict::NotPresent);
assert_eq!(result.severity, None);
}
#[test]
fn unstable_result_carries_signal() {
let ds = diff_set_n(&[403, 403, 403], &[404, 200, 404]);
let SampleDecision::Complete(result, _outcome) = ExistenceAnalyzer.evaluate(&ds) else {
panic!("expected Complete");
};
assert_eq!(result.verdict, OracleVerdict::NotPresent);
assert!(
result.primary_evidence().contains("unstable"),
"unstable result should carry unstable signal"
);
}
#[test]
fn unstable_path_produces_no_signal_outcome() {
let ds = diff_set_n(&[403, 403, 403], &[404, 200, 404]);
let SampleDecision::Complete(result, outcome) = ExistenceAnalyzer.evaluate(&ds) else {
panic!("expected Complete");
};
assert_eq!(result.verdict, OracleVerdict::NotPresent);
assert!(
matches!(outcome, StrategyOutcome::NoSignal(_)),
"unstable path must produce NoSignal outcome"
);
}