Compare commits
2 Commits
a1f44e5886
...
25daf558e6
Author | SHA1 | Date | |
---|---|---|---|
|
25daf558e6 | ||
|
db4a8b0d24 |
@ -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<T: BufRead>(input: Lines<T>) -> u64 {
|
||||
let cards: Vec<Card> = 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: &Card) -> Vec<&'a
|
||||
new_cards
|
||||
}
|
||||
|
||||
fn problem2(input: InputIter) -> u64 {
|
||||
fn problem2<T: BufRead>(input: Lines<T>) -> u64 {
|
||||
let orig_cards: Vec<Card> = 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);
|
||||
}
|
||||
}
|
||||
|
@ -17,11 +17,11 @@ fn main() {
|
||||
|
||||
// PROBLEM 1 solution
|
||||
|
||||
fn problem1(input: InputIter) -> u64 {
|
||||
fn problem1<T: BufRead>(input: Lines<T>) -> u64 {
|
||||
0
|
||||
}
|
||||
|
||||
// PROBLEM 2 solution
|
||||
fn problem2(input: InputIter) -> u64 {
|
||||
fn problem2<T: BufRead>(input: Lines<T>) -> u64 {
|
||||
0
|
||||
}
|
Loading…
Reference in New Issue
Block a user