mirror of
https://github.com/Noratrieb/advent-of-code.git
synced 2026-01-14 17:45:02 +01:00
tests
This commit is contained in:
parent
b093225df0
commit
7be7e7c549
3 changed files with 52 additions and 36 deletions
|
|
@ -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::<super::Day4>(&[
|
||||
(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::<super::Day4>(&[
|
||||
(include_str!("../input_small.txt"), 2286),
|
||||
(include_str!("../input.txt"), 83105),
|
||||
]
|
||||
);
|
||||
part2 {
|
||||
small => 2286;
|
||||
default => 83105;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,23 +130,14 @@ fn part2(input: &str) -> u64 {
|
|||
.sum()
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
#[test]
|
||||
fn part1() {
|
||||
helper::test_part1::<super::Day3>(&[
|
||||
(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::<super::Day3>(&[
|
||||
(include_str!("../input_small.txt"), 467835),
|
||||
(include_str!("../input.txt"), 81939900),
|
||||
]
|
||||
);
|
||||
part2 {
|
||||
small => 467835;
|
||||
default => 81939900;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,40 @@ pub fn test_part2<D: Day>(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::<super::$day>(&[
|
||||
(include_str!("../input_small.txt"), $p1small),
|
||||
(include_str!("../input.txt"), $p1default),
|
||||
]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn part2() {
|
||||
helper::test_part2::<super::$day>(&[
|
||||
(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::<u64>().unwrap())(input)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue