Skip to main content

unresolved/
unresolved.rs

1use fixture3_ddmin::{DdminInput, DdminOptions, OracleOutcome, UnresolvedReason, ddmin};
2
3fn main() {
4    let input = DdminInput::new(vec!["core", "flaky", "noise"], DdminOptions::default());
5    let mut oracle = |remaining: &[&str]| {
6        if remaining.contains(&"flaky") && remaining.len() == 1 {
7            OracleOutcome::Unresolved(UnresolvedReason::NonDeterministic)
8        } else if remaining.contains(&"core") {
9            OracleOutcome::Interesting
10        } else {
11            OracleOutcome::NotInteresting
12        }
13    };
14
15    let output = ddmin(input, &mut oracle);
16    assert_eq!(output.remaining(), &["core"], "DDMin should keep the stable interesting value");
17    assert_eq!(
18        output.stats().unresolved_trials(),
19        1,
20        "DDMin should count unresolved oracle outcomes"
21    );
22}