From db4a8b0d24f12ee6d4f70f0667533ebc08283f8d Mon Sep 17 00:00:00 2001 From: Keenan Tims Date: Tue, 5 Dec 2023 21:45:49 -0800 Subject: [PATCH] day4: Add tests --- 4/src/main.rs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/4/src/main.rs b/4/src/main.rs index 5af7175..feb8296 100644 --- a/4/src/main.rs +++ b/4/src/main.rs @@ -129,7 +129,7 @@ impl From<&str> for Card { // Take a seat in the large pile of colorful cards. How many points are they worth in // total? -fn problem1(input: InputIter) -> u64 { +fn problem1(input: Lines) -> u64 { let cards: Vec = input .map(|line| Card::from(line.unwrap().as_str())) .collect(); @@ -199,7 +199,7 @@ fn problem2_award_copies<'a>(orig_cards: &'a Vec, card: &Card) -> Vec<&'a new_cards } -fn problem2(input: InputIter) -> u64 { +fn problem2(input: Lines) -> u64 { let orig_cards: Vec = input .map(|line| Card::from(line.unwrap().as_str())) .collect(); @@ -218,3 +218,29 @@ fn problem2(input: InputIter) -> u64 { (won_cards.len() + orig_cards.len()) as u64 } + +#[cfg(test)] +mod tests { + use crate::{problem1, problem2}; + use std::io::{BufRead, Cursor}; + + const example_input: &str = "Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 +Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 +Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 +Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 +Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 +Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11"; + + #[test] + fn problem1_example_test() { + let input = Cursor::new(example_input).lines(); + + assert_eq!(problem1(input), 13); + } + + #[test] + fn problem2_example_test() { + let input = Cursor::new(example_input).lines(); + assert_eq!(problem2(input), 30); + } +}