Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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]);
                }
            }
        }