move to include_str!() macro for all data

Move away from I/O to just including the data in the program via macro.
This commit is contained in:
swaits committed 2021-12-04 21:59:10 -07:00
1 parent 5a32230b8c
commit 77a9b9fcc5
5 files changed
+20 -31

No files matched your search

+4 -4
View File
@@ -1,4 +1,4 @@
use crate::utils::read_data;
use crate::utils::parse_data;
use anyhow::Result;
fn count_incrementing_windows(window: usize, v: &[usize]) -> usize {
@@ -6,7 +6,7 @@ fn count_incrementing_windows(window: usize, v: &[usize]) -> usize {
}
pub(crate) fn run() -> Result<(usize, usize)> {
let data = read_data::<usize>("data/day01.txt")?;
let data = parse_data::<usize>(include_str!("../data/day01.txt"))?;
Ok((
count_incrementing_windows(1, &data),
count_incrementing_windows(3, &data),
@@ -19,14 +19,14 @@ mod tests {
#[test]
fn test_example() {
let data = read_data::<usize>("data/day01-test.txt").unwrap();
let data = parse_data::<usize>(include_str!("../data/day01-test.txt")).unwrap();
assert_eq!(count_incrementing_windows(1, &data), 7);
assert_eq!(count_incrementing_windows(3, &data), 5);
}
#[test]
fn test_my_data() {
let data = read_data::<usize>("data/day01.txt").unwrap();
let data = parse_data::<usize>(include_str!("../data/day01.txt")).unwrap();
assert_eq!(count_incrementing_windows(1, &data), 1298);
assert_eq!(count_incrementing_windows(3, &data), 1248);
}
+7 -8
View File
@@ -1,4 +1,3 @@
use crate::utils::read_file;
use anyhow::Result;
fn parse_line(s: &str) -> (&str, i32) {
@@ -34,7 +33,7 @@ fn follow_course_better(s: &str) -> i32 {
}
pub(crate) fn run() -> Result<(usize, usize)> {
let input = read_file("data/day02.txt")?;
let input = include_str!("../data/day02.txt");
Ok((
follow_course(&input) as usize,
follow_course_better(&input) as usize,
@@ -47,15 +46,15 @@ mod tests {
#[test]
fn test_example() {
let input = read_file("data/day02-test.txt").unwrap();
assert_eq!(follow_course(&input), 150);
assert_eq!(follow_course_better(&input), 900);
let input = include_str!("../data/day02-test.txt");
assert_eq!(follow_course(input), 150);
assert_eq!(follow_course_better(input), 900);
}
#[test]
fn test_my_data() {
let input = read_file("data/day02.txt").unwrap();
assert_eq!(follow_course(&input), 2070300);
assert_eq!(follow_course_better(&input), 2078985210);
let input = include_str!("../data/day02.txt");
assert_eq!(follow_course(input), 2070300);
assert_eq!(follow_course_better(input), 2078985210);
}
}
+3 -4
View File
@@ -1,4 +1,3 @@
use crate::utils::read_file;
use anyhow::Result;
fn strings_to_ints(s: &str) -> Vec<usize> {
@@ -89,7 +88,7 @@ fn diagnose_lifesupport(s: &str) -> usize {
}
pub(crate) fn run() -> Result<(usize, usize)> {
let input = read_file("data/day03.txt")?;
let input = include_str!("../data/day03.txt");
Ok((diagnose_power(&input), diagnose_lifesupport(&input)))
}
@@ -99,14 +98,14 @@ mod tests {
#[test]
fn test_example() {
let input = read_file("data/day03-test.txt").unwrap();
let input = include_str!("../data/day03-test.txt");
assert_eq!(diagnose_power(&input), 198);
assert_eq!(diagnose_lifesupport(&input), 230);
}
#[test]
fn test_my_data() {
let input = read_file("data/day03.txt").unwrap();
let input = include_str!("../data/day03.txt");
assert_eq!(diagnose_power(&input), 4191876);
// assert_eq!(follow_course(&input), 2070300);
// assert_eq!(follow_course_better(&input), 2078985210);
+5 -6
View File
@@ -1,4 +1,3 @@
use crate::utils::read_file;
use anyhow::Result;
#[derive(Debug)]
@@ -70,10 +69,10 @@ fn find_winning_score(s: &str, first: bool) -> usize {
}
pub(crate) fn run() -> Result<(usize, usize)> {
let input = read_file("data/day04.txt")?;
let input = include_str!("../data/day04.txt");
Ok((
find_winning_score(&input, true),
find_winning_score(&input, false),
find_winning_score(input, true),
find_winning_score(input, false),
))
}
#[cfg(test)]
@@ -82,14 +81,14 @@ mod tests {
#[test]
fn test_example() {
let input = read_file("data/day04-test.txt").unwrap();
let input = include_str!("../data/day04-test.txt");
assert_eq!(find_winning_score(&input, true), 4512);
assert_eq!(find_winning_score(&input, false), 1924);
}
#[test]
fn test_my_data() {
let input = read_file("data/day04.txt").unwrap();
let input = include_str!("../data/day04.txt");
assert_eq!(find_winning_score(&input, true), 71708);
assert_eq!(find_winning_score(&input, false), 34726);
}
+1 -9
View File
@@ -1,9 +1,5 @@
use anyhow::Result;
use std::{fs, str::FromStr};
pub fn read_data<T: FromStr>(filename: &str) -> Result<Vec<T>> {
parse_data(&read_file(filename)?)
}
use std::str::FromStr;
pub fn parse_data<T: FromStr>(s: &str) -> Result<Vec<T>> {
let mut ret = Vec::new();
@@ -16,7 +12,3 @@ pub fn parse_data<T: FromStr>(s: &str) -> Result<Vec<T>> {
}
Ok(ret)
}
pub fn read_file(filename: &str) -> Result<String> {
Ok(fs::read_to_string(filename)?)
}