From 7be7e7c5496d5ebd17f6e0582b69156b0018979c Mon Sep 17 00:00:00 2001 From: Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> Date: Sun, 3 Dec 2023 13:05:25 +0100 Subject: [PATCH] tests --- 2023/day2/src/main.rs | 29 ++++++++++------------------- 2023/day3/src/main.rs | 25 ++++++++----------------- helper/src/lib.rs | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 36 deletions(-) diff --git a/2023/day2/src/main.rs b/2023/day2/src/main.rs index ad10f95..7324d97 100644 --- a/2023/day2/src/main.rs +++ b/2023/day2/src/main.rs @@ -25,9 +25,9 @@ fn main() { println!("result: {result}"); } -struct Day4; +struct Day2; -impl Day for Day4 { +impl Day for Day2 { fn part1() -> helper::Variants { Variants::basic(part1) } @@ -101,23 +101,14 @@ fn part2(input: &str) -> u64 { .sum() } -#[cfg(test)] -mod tests { - #[test] - fn part1() { - helper::test_part1::(&[ - (include_str!("../input_small.txt"), 8), - (include_str!("../input.txt"), 1931), - ] - ); +helper::tests! { + day2 Day2; + part1 { + small => 8; + default => 1931; } - - #[test] - fn part2() { - helper::test_part2::(&[ - (include_str!("../input_small.txt"), 2286), - (include_str!("../input.txt"), 83105), - ] - ); + part2 { + small => 2286; + default => 83105; } } diff --git a/2023/day3/src/main.rs b/2023/day3/src/main.rs index 7a3bc83..7f1c079 100644 --- a/2023/day3/src/main.rs +++ b/2023/day3/src/main.rs @@ -130,23 +130,14 @@ fn part2(input: &str) -> u64 { .sum() } -#[cfg(test)] -mod tests { - #[test] - fn part1() { - helper::test_part1::(&[ - (include_str!("../input_small.txt"), 4361), - (include_str!("../input.txt"), 537832), - ] - ); +helper::tests! { + day3 Day3; + part1 { + small => 4361; + default => 537832; } - - #[test] - fn part2() { - helper::test_part2::(&[ - (include_str!("../input_small.txt"), 467835), - (include_str!("../input.txt"), 81939900), - ] - ); + part2 { + small => 467835; + default => 81939900; } } diff --git a/helper/src/lib.rs b/helper/src/lib.rs index a3f4334..7b183b5 100644 --- a/helper/src/lib.rs +++ b/helper/src/lib.rs @@ -55,6 +55,40 @@ pub fn test_part2(inputs: &[(&str, u64)]) { } } +#[macro_export] +macro_rules! tests { + ( + $day_small:ident $day:ident; + part1 { + small => $p1small:expr; + default => $p1default:expr; + } + part2 { + small => $p2small:expr; + default => $p2default:expr; + } + ) => { + #[cfg(test)] + mod $day_small { + #[test] + fn part1() { + helper::test_part1::(&[ + (include_str!("../input_small.txt"), $p1small), + (include_str!("../input.txt"), $p1default), + ]); + } + + #[test] + fn part2() { + helper::test_part2::(&[ + (include_str!("../input_small.txt"), $p2small), + (include_str!("../input.txt"), $p2default), + ]); + } + } + }; +} + pub fn integer(input: &str) -> IResult<&str, u64> { map(digit1, |d: &str| d.parse::().unwrap())(input) }