advent-of-code/2021/src/teststuff.rs

47 lines
1.5 KiB
Rust
Raw Normal View History

2021-11-22 14:30:40 +01:00
#[macro_export]
macro_rules! bench {
2021-12-06 12:26:12 +01:00
($part: ident $(<$gen: literal>)? ($($param: expr),*) == $expected:expr) => {
2021-12-01 14:16:29 +01:00
paste::paste! {
2021-11-22 14:30:40 +01:00
#[bench]
2021-12-06 12:26:12 +01:00
fn [<$part $($gen)? _bench>](b: &mut test::Bencher) {
let raw = &read_file(DAY);
2021-11-22 14:30:40 +01:00
let input = parse_input(&raw);
2021-12-06 12:26:12 +01:00
b.iter(|| assert_eq!($part $(::<$gen>)? (test::black_box(&input)$(, $param)*), $expected));
2021-11-22 14:30:40 +01:00
}
}
};
}
#[macro_export]
macro_rules! bench_input {
2021-12-03 17:05:53 +01:00
($fn:expr => $expected:expr) => {
2021-11-22 14:30:40 +01:00
#[bench]
fn bench_input_parsing(b: &mut test::Bencher) {
let raw = &read_file(DAY);
2021-12-03 17:05:53 +01:00
b.iter(|| assert_eq!($fn(&parse_input(test::black_box(&raw))), $expected));
2021-11-22 14:30:40 +01:00
}
};
}
#[macro_export]
macro_rules! test {
2021-12-06 12:26:12 +01:00
($part: ident $(<$gen: literal>)? ($($param: expr),*) == $expected:expr) => {
2021-12-01 14:16:29 +01:00
paste::paste! {
2021-11-22 14:30:40 +01:00
#[test]
2021-12-06 12:26:12 +01:00
fn [<$part $($gen)? _test>]() {
2021-11-22 14:30:40 +01:00
let input = parse_input(TEST_INPUT);
2021-12-06 12:26:12 +01:00
assert_eq!($part $(::<$gen>)? (&input$(, $param)*), $expected);
2021-11-22 14:30:40 +01:00
}
}
};
2021-12-12 12:41:23 +01:00
(with $input: ident: $part: ident $(<$gen: literal>)? ($($param: expr),*) == $expected:expr) => {
paste::paste! {
#[test]
2021-12-20 16:05:38 +01:00
fn [<$part $($gen)? $input:lower _test>]() {
2021-12-12 12:41:23 +01:00
let input = parse_input([<TEST_INPUT $input>]);
assert_eq!($part $(::<$gen>)? (&input$(, $param)*), $expected);
}
}
};
2021-11-22 14:30:40 +01:00
}