Skip to main content

basic/
basic.rs

1use fixture3_ddmin::{DdminInput, DdminOptions, OracleOutcome, ddmin};
2
3fn main() {
4    let input = DdminInput::new(vec![1_u8, 2, 3, 4], DdminOptions::default());
5    let mut oracle = |remaining: &[u8]| {
6        if remaining.contains(&2) && remaining.contains(&4) {
7            OracleOutcome::Interesting
8        } else {
9            OracleOutcome::NotInteresting
10        }
11    };
12
13    let output = ddmin(input, &mut oracle);
14    assert_eq!(output.remaining(), &[2, 4], "DDMin should keep the required values");
15    assert_eq!(output.removed(), &[1, 3], "DDMin should remove the irrelevant values");
16}