Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions tooling/ast_fuzzer/tests/calibration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//! We can use this to calibrate the frequency values with some statistical feedback.
//!
//! ```shell
//! cargo test -p noir_ast_fuzzer --test calibration -- --nocapture

Check warning on line 9 in tooling/ast_fuzzer/tests/calibration.rs

View workflow job for this annotation

GitHub Actions / Code

Unknown word (nocapture)
//! ```
use std::collections::BTreeMap;

Expand Down Expand Up @@ -41,7 +41,7 @@
program_count += 1;
Ok(())
})
.budget_ms(1000)
.budget_ms(2000)
.size_min(1 << 12)
.size_max(1 << 20);

Expand All @@ -61,19 +61,21 @@
}
}

// Sum of frequencies normalized to 100, as it appears in the printout above.
let freq_100 = |unconstrained, group: &str, keys: &[&str]| {
keys.iter().map(|key| counts[&unconstrained][group][key]).sum::<usize>() * 100
/ counts[&unconstrained][group].values().sum::<usize>()
let total = counts[&unconstrained][group].values().sum::<usize>();
keys.iter().map(|key| counts[&unconstrained][group][key] * 100 / total).sum::<usize>()
};

// Assert relative frequencies
let loops_a = freq_100(false, "stmt", &["for"]);
let loops_b = freq_100(true, "stmt", &["for", "loop", "while"]);
let break_b = freq_100(true, "stmt", &["break"]);

assert!((9..=11).contains(&loops_a), "ACIR loops: {loops_a}");
assert!((loops_a - 1..=loops_a + 1).contains(&loops_b), "Brillig loops: {loops_b}");
assert!(break_b >= loops_b, "Brillig should break out of loops: {break_b}");
let loop_range = 8..=12;
assert!(loop_range.contains(&loops_a), "ACIR loops should be ~10: {loops_a}");
assert!(loop_range.contains(&loops_b), "Brillig loops should be ~10: {loops_b}");
assert!(break_b >= loops_b, "Brillig should break out of loops: {break_b} >= {loops_b}");
}

/// Classify the expression into "expr" or "stmt" for frequency settings.
Expand Down
Loading