diff options
Diffstat (limited to 'src/2021/15/mod.rs')
-rw-r--r-- | src/2021/15/mod.rs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/2021/15/mod.rs b/src/2021/15/mod.rs index fa1d82a..e2d0656 100644 --- a/src/2021/15/mod.rs +++ b/src/2021/15/mod.rs @@ -40,12 +40,17 @@ fn dijkstra(map: &Grid<u8>) -> i64 { unreachable!() } -pub fn part1() -> anyhow::Result<i64> { - Ok(dijkstra(&data_digit_grid!())) +pub fn parse(fh: std::fs::File) -> anyhow::Result<Grid<u8>> { + Ok(crate::util::parse::digit_grid(crate::util::parse::lines( + fh, + ))) } -pub fn part2() -> anyhow::Result<i64> { - let grid = data_digit_grid!(); +pub fn part1(grid: Grid<u8>) -> anyhow::Result<i64> { + Ok(dijkstra(&grid)) +} + +pub fn part2(grid: Grid<u8>) -> anyhow::Result<i64> { let mut large_grid = Grid::default(); large_grid.grow(Row(grid.rows().0 * 5), Col(grid.cols().0 * 5)); for lrow in 0..5 { @@ -65,6 +70,12 @@ pub fn part2() -> anyhow::Result<i64> { #[test] fn test() { - assert_eq!(part1().unwrap(), 441); - assert_eq!(part2().unwrap(), 2849); + assert_eq!( + part1(parse(crate::util::data(2021, 15).unwrap()).unwrap()).unwrap(), + 441 + ); + assert_eq!( + part2(parse(crate::util::data(2021, 15).unwrap()).unwrap()).unwrap(), + 2849 + ); } |