From a6d6d5537b3ac0e3cfc39e27631dac09f0166c22 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Tue, 1 Dec 2020 20:01:58 -0800 Subject: [PATCH] Rename files to include 'day'. --- 2020/src/bin/{1-input.txt => day1-input.txt} | 0 2020/src/bin/{1-test.txt => day1-test.txt} | 0 2020/src/bin/{1.rs => day1.rs} | 17 +++++++++++++---- 3 files changed, 13 insertions(+), 4 deletions(-) rename 2020/src/bin/{1-input.txt => day1-input.txt} (100%) rename 2020/src/bin/{1-test.txt => day1-test.txt} (100%) rename 2020/src/bin/{1.rs => day1.rs} (89%) diff --git a/2020/src/bin/1-input.txt b/2020/src/bin/day1-input.txt similarity index 100% rename from 2020/src/bin/1-input.txt rename to 2020/src/bin/day1-input.txt diff --git a/2020/src/bin/1-test.txt b/2020/src/bin/day1-test.txt similarity index 100% rename from 2020/src/bin/1-test.txt rename to 2020/src/bin/day1-test.txt diff --git a/2020/src/bin/1.rs b/2020/src/bin/day1.rs similarity index 89% rename from 2020/src/bin/1.rs rename to 2020/src/bin/day1.rs index f9107c3..676e011 100644 --- a/2020/src/bin/1.rs +++ b/2020/src/bin/day1.rs @@ -62,7 +62,7 @@ fn find_pair_2020(nums: &Vec) -> Option<(u32, u32)> { /// Finds triple of numbers in `nums` that sum to 2020. If no triple is found, `None` is returned. fn find_triple_2020(nums: &Vec) -> Option<(u32, u32, u32)> { for (idx1, first) in nums.iter().enumerate() { - for (idx2, second) in nums.iter().enumerate().skip(idx1 + 1) { + for second in nums.iter().skip(idx1 + 1) { for third in nums.iter() { if first + second + third == 2020 { return Some((*first, *second, *third)); @@ -88,23 +88,32 @@ fn parse>(path: P) -> Result> { #[cfg(test)] mod tests { + use anyhow::Context; + use super::*; + fn get_nums() -> Vec { + let root = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")); + let path = root.join("src/bin/day1-test.txt"); + parse(&path) + .with_context(|| format!("Input {}", path.display())) + .expect("failed to parse") + } #[test] fn test_parse() { - let nums = parse("src/bin/1-test.txt").expect("failed to parse"); + let nums = get_nums(); assert_eq!(nums, vec![1721, 979, 366, 299, 675, 1456]); } #[test] fn test_find_pair_2020() { - let nums = parse("src/bin/1-test.txt").expect("failed to parse"); + let nums = get_nums(); assert_eq!(find_pair_2020(&nums), Some((1721, 299))); } #[test] fn test_find_triple_2020() { - let nums = parse("src/bin/1-test.txt").expect("failed to parse"); + let nums = get_nums(); assert_eq!(find_triple_2020(&nums), Some((979, 366, 675))); } }