public void SudokuSolver_ClonesArgumentToAvoidModifyingOriginal() { var puzzle = new SudokuPuzzle(); puzzle.SetValue(1, 4, SudokuValue.NINE); var solver = new SudokuSolver.SudokuSolver(puzzle); puzzle.ClearBoard(); Assert.AreEqual(SudokuValue.NINE, solver.Puzzle.GetValue(1, 4)); }
public void SudokuPuzzle_CanCloneItself() { var puzzle = new SudokuPuzzle(); puzzle.SetValue(1, 4, SudokuValue.NINE); puzzle.SetValue(2, 3, SudokuValue.FIVE); var clone = puzzle.Clone() as SudokuPuzzle; puzzle.ClearBoard(); Assert.AreEqual(SudokuValue.NINE, clone.GetValue(1, 4)); Assert.AreEqual(SudokuValue.FIVE, clone.GetValue(2, 3)); }
public void SudokuPuzzle_CanClearBoard() { var puzzle = new SudokuPuzzle(); puzzle.SetValue(0, 3, SudokuValue.NINE); puzzle.SetValue(0, 4, SudokuValue.EIGHT); puzzle.ClearBoard(); for (int i = 0; i < puzzle.CurrentBoard.Length; i++) { // board is a square... for (int j = 0; j < puzzle.CurrentBoard.Length; j++) { Assert.AreEqual(SudokuValue.UNASSIGNED, puzzle.CurrentBoard[i][j]); } } }