Implements Day1::init

master
Joey Pollack 1 year ago
parent fc1a39adf5
commit ed60b7ac4a

File diff suppressed because it is too large Load Diff

@ -0,0 +1,6 @@
3 4
4 3
2 5
1 3
3 9
3 3

@ -1,17 +1,20 @@
use ::solver_base::solver_base::Solver; use ::solver_base::solver_base::{Solver, RunMode};
use utils::utils; use utils::utils;
pub struct Day1 pub struct Day1
{ {
run_mode: RunMode,
do_debug_prints: bool,
data_a: Vec<i32>,
data_b: Vec<i32>,
} }
impl Day1 impl Day1
{ {
pub fn new() -> Day1 pub fn new() -> Day1
{ {
Day1 { } Day1 { run_mode: RunMode::TestCase, do_debug_prints: false, data_a: vec![], data_b: vec![] }
} }
} }
@ -27,13 +30,52 @@ impl Solver for Day1
println!("DATA: {}", data); println!("DATA: {}", data);
} }
fn init(self: &mut Self) fn init(self: &mut Self, run_mode: RunMode, enable_debug_prints: bool)
{
self.run_mode = run_mode;
self.do_debug_prints = enable_debug_prints;
let dir = utils::get_working_dir();
let data_filename =
match self.run_mode
{
RunMode::TestCase => format!("{}/data/test_case", dir),
RunMode::FirstCase => format!("{}/data/input", dir),
RunMode::SecondCase => format!("{}/data/input_second", dir),
};
let data = utils::load_data(&data_filename);
// Split the data and convert to i32 values
let data: Vec<i32> = data.split_ascii_whitespace().map(|x| x.parse::<i32>().unwrap()).collect();
// Split by column
for (i, d) in data.iter().enumerate()
{
// if i is even
if i % 2 < 1
{ {
todo!() self.data_a.push(*d)
}
else
{
self.data_b.push(*d);
}
}
if self.do_debug_prints
{
println!("Input data processed:\n\tdata_a: {:#?}\n\tdata_b: {:#?}", self.data_a, self.data_b);
}
} }
fn solve(self: &mut Self) -> String fn solve(self: &mut Self) -> String
{ {
todo!() // TODO: Day1::solve
println!("Day 1 solve not implemented yet.");
"NO RESULTS".to_string()
} }
} }

@ -1,4 +1,13 @@
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum RunMode
{
TestCase,
FirstCase,
SecondCase,
}
pub trait Solver pub trait Solver
{ {
@ -8,6 +17,6 @@ pub trait Solver
println!("SOLVER BASE PRINT TEST"); println!("SOLVER BASE PRINT TEST");
} }
fn init(self: &mut Self); fn init(self: &mut Self, run_mode: RunMode, enable_debug_prints: bool);
fn solve(self: &mut Self) -> String; fn solve(self: &mut Self) -> String;
} }

@ -2,7 +2,7 @@
use std::env; use std::env;
use day_1::day_1::Day1; use day_1::day_1::Day1;
use solver_base::solver_base::Solver; use solver_base::solver_base::{Solver, RunMode};
fn main() fn main()
{ {
@ -17,7 +17,7 @@ fn main()
let mut day_1 = Day1::new(); let mut day_1 = Day1::new();
//day_1.print_test(); //day_1.print_test();
Day1::print_test(); Day1::print_test();
day_1.init(); day_1.init(RunMode::TestCase, true);
day_1.solve(); day_1.solve();
} }

Loading…
Cancel
Save