From 7f5d8635cce6851459151b8cd086c334fc508781 Mon Sep 17 00:00:00 2001 From: Burnus Date: Sun, 3 Dec 2023 22:37:53 +0100 Subject: [PATCH] Bugfix for 2023 day 03: Handle number in very last position correctly --- 2023/day03_gear_ratios/src/lib.rs | 9 +++++++-- 2023/day03_gear_ratios/tests/sample_input | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/2023/day03_gear_ratios/src/lib.rs b/2023/day03_gear_ratios/src/lib.rs index 5972409..7e14839 100644 --- a/2023/day03_gear_ratios/src/lib.rs +++ b/2023/day03_gear_ratios/src/lib.rs @@ -16,7 +16,7 @@ fn find_part_numbers(input: &str) -> (Vec, Vec) { } } let mut cur_num = 0; - for (line_idx, line) in input.lines().enumerate() { + for (line_idx, line) in input.lines().chain("\n".lines()).enumerate() { if cur_num > 0 { let digits = (1_u32..).find(|d| 10_usize.pow(*d) > cur_num).unwrap() as usize; let mut is_part = false; @@ -89,10 +89,15 @@ mod tests { read_to_string(name).expect(&format!("Unable to read file: {name}")[..]).trim().to_string() } + #[test] + fn empty_str() { + assert_eq!(run(""), (0, 0)) + } + #[test] fn test_sample() { let sample_input = read_file("tests/sample_input"); - assert_eq!(run(&sample_input), (4361, 467835)); + assert_eq!(run(&sample_input), (4364, 467835)); } #[test] diff --git a/2023/day03_gear_ratios/tests/sample_input b/2023/day03_gear_ratios/tests/sample_input index b20187f..22158d1 100644 --- a/2023/day03_gear_ratios/tests/sample_input +++ b/2023/day03_gear_ratios/tests/sample_input @@ -5,6 +5,6 @@ 617*...... .....+.58. ..592..... -......755. -...$.*.... -.664.598.. +......755.1 +...$.*...* +.664.598.2