pub fn process_part1(input: &str) -> i32 { input .lines() .map(|line| { let sides = line .split_whitespace() .map(|side| side.parse::().unwrap()) .collect::>(); if sides[0] + sides[1] > sides[2] && sides[0] + sides[2] > sides[1] && sides[1] + sides[2] > sides[0] { return 1; } 0 }) .sum() } pub fn process_part2(input: &str) -> u32 { input .lines() .map(|line| { line.split_whitespace() .map(|side| side.parse::().unwrap()) .collect::>() }) .collect::>>() .chunks(3) .map(|line_triple| { (0..3) .map(|triangle_idx| { if line_triple[0][triangle_idx] + line_triple[1][triangle_idx] > line_triple[2][triangle_idx] && line_triple[0][triangle_idx] + line_triple[2][triangle_idx] > line_triple[1][triangle_idx] && line_triple[1][triangle_idx] + line_triple[2][triangle_idx] > line_triple[0][triangle_idx] { return 1; } 0 }) .sum::() }) .sum() } #[cfg(test)] mod tests { use super::*; const INPUT: &str = " 5 10 25"; #[test] fn part1() { let result = process_part1(INPUT); assert_eq!(result, 0); } }