diff --git a/tests/solvers.rs b/tests/solvers.rs new file mode 100644 index 0000000..358f1c3 --- /dev/null +++ b/tests/solvers.rs @@ -0,0 +1,67 @@ +use advent_of_code_2025::*; + +// The "../../data" and "../../../data" paths are useful for running the binary from +// "target/release/" directory with "data/" directory in package root or parent directory. +const EXAMPLE_PATHS: &'static [&'static str] = &[ + "./data/examples", + "../data/examples", + "../../data/examples", + "../../../data/examples", +]; + +#[test] +fn printing_department_examples() { + assert_eq!( + Ok((13, 0)), + solvers::run_solver( + solvers::printing_department::PrintingDepartment {}, + &EXAMPLE_PATHS + ) + ); +} + +#[test] +fn printing_department() { + assert_eq!( + Ok((1433, 0)), + solvers::run_solver( + solvers::printing_department::PrintingDepartment {}, + &solvers::DATA_PATHS + ) + ); +} + +#[test] +fn cafeteria_examples() { + assert_eq!( + Ok((3, 14)), + solvers::run_solver(solvers::cafeteria::Cafeteria {}, &EXAMPLE_PATHS) + ); +} + +#[test] +fn cafeteria() { + assert_eq!( + Ok((509, 336790092076620)), + solvers::run_solver(solvers::cafeteria::Cafeteria {}, &solvers::DATA_PATHS) + ); +} + +#[test] +fn trash_compactor_examples() { + assert_eq!( + Ok((4277556, 0)), + solvers::run_solver(solvers::trash_compactor::TrashCompactor {}, &EXAMPLE_PATHS) + ); +} + +#[test] +fn trash_compactor() { + assert_eq!( + Ok((8108520669952, 0)), + solvers::run_solver( + solvers::trash_compactor::TrashCompactor {}, + &solvers::DATA_PATHS + ) + ); +}