dev-bench 0.1.0

Performance measurement and regression detection for Rust. Part of the dev-* verification suite.
Documentation
use dev_bench::{Benchmark, Threshold};
use std::time::Duration;

#[test]
fn smoke_basic_run() {
    let mut b = Benchmark::new("noop");
    for _ in 0..100 {
        b.iter(|| std::hint::black_box(1 + 1));
    }
    let r = b.finish();
    assert_eq!(r.samples.len(), 100);
    assert_eq!(r.name, "noop");
}

#[test]
fn smoke_no_baseline_skips() {
    let mut b = Benchmark::new("x");
    b.iter(|| ());
    let r = b.finish();
    let v = r.compare_against_baseline(None, Threshold::regression_pct(10.0));
    assert!(matches!(v.verdict, dev_report::Verdict::Skip));
}

#[test]
fn smoke_within_threshold_passes() {
    let mut b = Benchmark::new("x");
    for _ in 0..5 {
        b.iter(|| std::thread::sleep(Duration::from_micros(1)));
    }
    let r = b.finish();
    let v = r.compare_against_baseline(Some(r.mean), Threshold::regression_pct(20.0));
    assert!(matches!(v.verdict, dev_report::Verdict::Pass));
}