From d89a54499822dbb06ecbec923a7170d8aedfc68b Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Mon, 19 Feb 2024 18:59:42 +0100 Subject: [PATCH] Impl: Get possible values from row --- src/sudoku_solver.rs | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/sudoku_solver.rs b/src/sudoku_solver.rs index c7ea286..d72cc7b 100644 --- a/src/sudoku_solver.rs +++ b/src/sudoku_solver.rs @@ -44,15 +44,19 @@ mod tests { fn create_test_playfield(input: &str, size: usize) -> Playfield { Playfield::new(&input.to_string(), size) } + fn setup_solver(input: &str, size: usize) -> SudokuSolver { + let playfield = create_test_playfield(input, size); + SudokuSolver::new(&playfield) + } mod solve { use super::*; #[test] fn simple() { - let playfield = create_test_playfield("1 2 3 2 3 1 3 1 0", 3); + let solver = setup_solver("1 2 3 2 3 1 3 1 0", 3); let expected = create_test_playfield("1 2 3 2 3 1 3 1 2", 3); - let solved = SudokuSolver::new(&playfield).solve(); + let solved = solver.solve(); assert_eq!(solved, expected); } @@ -63,13 +67,21 @@ mod tests { #[test] fn simple() { - let playfield = create_test_playfield("1 2 0 1 2 0 1 2 0", 3); - let expected = vec![3]; + let solver = setup_solver("1 2 0 3 0 0 0 0 0", 3); + let expected_row_1 = vec![3]; + let expected_row_2 = vec![1, 2]; + let expected_row_3 = vec![1, 2, 3]; - let possible_values = - SudokuSolver::new(&playfield).possible_values_from_row(&playfield.fields[0]); + let possible_values_row_1 = + solver.possible_values_from_row(&solver.playfield.fields[0]); + let possible_values_row_2 = + solver.possible_values_from_row(&solver.playfield.fields[1]); + let possible_values_row_3 = + solver.possible_values_from_row(&solver.playfield.fields[2]); - assert_eq!(possible_values, expected); + assert_eq!(possible_values_row_1, expected_row_1); + assert_eq!(possible_values_row_2, expected_row_2); + assert_eq!(possible_values_row_3, expected_row_3); } } }