setup
This commit is contained in:
parent
83f51b4452
commit
3bff18f34f
7 changed files with 48 additions and 22 deletions
|
|
@ -2,11 +2,14 @@ use std::{fs, io};
|
|||
|
||||
pub fn load_actual(year: usize, day: usize) -> io::Result<String> {
|
||||
let path = format!("./data/{year}/day{:02}", day);
|
||||
fs::read_to_string(path)
|
||||
let file = fs::read_to_string(path)?;
|
||||
Ok(file.trim().into())
|
||||
}
|
||||
|
||||
pub fn load_test(year: usize, day: usize) -> (io::Result<String>, io::Result<String>) {
|
||||
pub fn load_test(year: usize, day: usize) -> Result<(String, String), io::Error> {
|
||||
let input_path = format!("./examples/{year}/day{:02}", day);
|
||||
let result_path = format!("./examples/{year}/day{:02}_solution", day);
|
||||
(fs::read_to_string(input_path), fs::read_to_string(result_path))
|
||||
let out1 = fs::read_to_string(input_path)?;
|
||||
let out2 = fs::read_to_string(result_path)?;
|
||||
Ok((out1.trim().into(), out2.trim().into()))
|
||||
}
|
||||
|
|
|
|||
25
src/main.rs
25
src/main.rs
|
|
@ -10,21 +10,25 @@ use fetch_input::fetch_input;
|
|||
use std::{path::Path, time::Instant, env};
|
||||
|
||||
fn main() {
|
||||
run_daily();
|
||||
}
|
||||
|
||||
fn run_daily() {
|
||||
let year = env::var("ADVENT_YEAR")
|
||||
.unwrap_or("2024".into())
|
||||
.unwrap()
|
||||
.parse()
|
||||
.unwrap();
|
||||
let day = env::var("ADVENT_DAY")
|
||||
.unwrap_or("1".into())
|
||||
.unwrap()
|
||||
.parse()
|
||||
.unwrap();
|
||||
|
||||
if ! Path::new(&format!("./data/{}/day{:02}", year, day)).exists()
|
||||
&& env::var("ADVENT_TOKEN").is_ok() {
|
||||
fetch_input(year, day).expect("Set ADVENT_TOKEN to the correct session cookie to fetch input automatically");
|
||||
}
|
||||
fetch_input(year, day).expect("Token Failed");
|
||||
|
||||
run_all();
|
||||
let data = load_actual(year, day).unwrap();
|
||||
|
||||
println!("Solved 1: {}", solution(&data, year, day, 1).unwrap());
|
||||
println!("Solved 2: {}", solution(&data, year, day, 1).unwrap());
|
||||
}
|
||||
|
||||
fn run_all() {
|
||||
|
|
@ -38,8 +42,11 @@ fn run_all() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for year in years_to_run {
|
||||
let mut total = 0;
|
||||
|
||||
for day in 1..=25 {
|
||||
for part in [1, 2] {
|
||||
let input = load_actual(year, day).unwrap_or_else(|_| panic!("Missing input for {}/{:02}", year, day));
|
||||
|
|
@ -47,8 +54,12 @@ fn run_all() {
|
|||
let now = Instant::now();
|
||||
let result = solution(&input, year, day, part).unwrap_or_else(|| panic!("No solution at {}/{:02}", year, day));
|
||||
let time_passed = now.elapsed().as_millis();
|
||||
|
||||
total += time_passed;
|
||||
|
||||
println!("Running Year {}, Day {:02}, Part {} - Result {} - took {}ms", year, day, part, result, time_passed);
|
||||
}
|
||||
}
|
||||
println!("\nTook a total of {total}ms to run {year}!");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue