Added benchmarking for each day

This commit is contained in:
Luke Else 2023-12-01 17:55:07 +00:00
parent 4267b68253
commit 308c456fa4

View File

@ -1,26 +1,40 @@
mod utils;
mod solutions;
mod utils;
use std::error::Error;
use std::{error::Error, time::SystemTime};
use solutions::*;
use crate::utils::get_input;
fn main() -> Result<(), Box<dyn Error>> {
let days: Vec<Box<dyn Solution>> = vec![
Box::new(day01::Day01{}),
Box::new(day02::Day02{})
];
let days: Vec<Box<dyn Solution>> = vec![Box::new(day01::Day01 {}), Box::new(day02::Day02 {})];
// Run through and generate solutions
for day in days.iter().rev() {
println!("Day{} Part1 Test: {}", day.get_day(), day.part1(get_input(day.get_day(), utils::InputType::Test1)?.as_mut())?);
println!("Day{} Part1 Result: {}", day.get_day(), day.part1(get_input(day.get_day(), utils::InputType::Actual)?.as_mut())?);
println!("========== Day {} ==========", day.get_day());
let start_time = SystemTime::now();
println!(
"Part1 Test: {}",
day.part1(get_input(day.get_day(), utils::InputType::Test1)?.as_mut())?
);
println!(
"Part1 Result: {}",
day.part1(get_input(day.get_day(), utils::InputType::Actual)?.as_mut())?
);
println!("Day{} Part2 Test: {}", day.get_day(), day.part2(get_input(day.get_day(), utils::InputType::Test2)?.as_mut())?);
println!("Day{} Part2 Result: {}", day.get_day(), day.part2(get_input(day.get_day(), utils::InputType::Actual)?.as_mut())?);
println!(
"Part2 Test: {}",
day.part2(get_input(day.get_day(), utils::InputType::Test2)?.as_mut())?
);
println!(
"Part2 Result: {}",
day.part2(get_input(day.get_day(), utils::InputType::Actual)?.as_mut())?
);
println!(
"========= {}ms =========",
SystemTime::now().duration_since(start_time)?.as_millis()
);
}
Ok(())