diff --git a/Cargo.lock b/Cargo.lock index d24ff9e..e7d3b91 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -179,6 +179,9 @@ dependencies = [ [[package]] name = "day_1" version = "0.1.0" +dependencies = [ + "criterion", +] [[package]] name = "day_10" diff --git a/day_1/Cargo.toml b/day_1/Cargo.toml index 849e3ec..612c06f 100644 --- a/day_1/Cargo.toml +++ b/day_1/Cargo.toml @@ -7,3 +7,9 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +[dev-dependencies] +criterion = "0.3" + +[[bench]] +name = "day_1" +harness = false diff --git a/day_1/benches/day_1.rs b/day_1/benches/day_1.rs new file mode 100644 index 0000000..1e6acfc --- /dev/null +++ b/day_1/benches/day_1.rs @@ -0,0 +1,19 @@ +use criterion::{criterion_group, criterion_main, Criterion}; +use day_1::day_1::{input, part_1, part_2}; + +fn criterion_benchmark(c: &mut Criterion) { + let input = input(); + c.bench_function("day 1 part 1", |b| { + b.iter(|| { + part_1(&input); + }) + }); + c.bench_function("day 1 part 2", |b| { + b.iter(|| { + part_2(&input); + }) + }); +} + +criterion_group!(benches, criterion_benchmark); +criterion_main!(benches);