Esempio n. 1
0
        public void SolveBlockTest()
        {
            int[,] setBlockTestPuzzle = { { 1, 2, 0, 4 },
                                          { 3, 4, 0, 2 },
                                          { 2, 3, 0, 1 },
                                          { 4, 1, 0, 3 } };
            Sudoku sudoku = new Sudoku(setBlockTestPuzzle);

            sudoku.SolveBlock(0, 2);
            Assert.AreEqual(sudoku.AvailableValuesInRow(0).Count, 0);
            Assert.AreEqual(sudoku.AvailableValuesInColumn(2).Count, 3);
            Assert.AreEqual(sudoku.AvailableValuesInGrid(1).Count, 1);

            sudoku.SolveBlock(1, 2);
            Assert.AreEqual(sudoku.AvailableValuesInRow(1).Count, 0);
            Assert.AreEqual(sudoku.AvailableValuesInColumn(2).Count, 2);
            Assert.AreEqual(sudoku.AvailableValuesInGrid(1).Count, 0);

            sudoku.SolveBlock(2, 2);
            Assert.AreEqual(sudoku.AvailableValuesInRow(2).Count, 0);
            Assert.AreEqual(sudoku.AvailableValuesInColumn(2).Count, 0);
            Assert.AreEqual(sudoku.AvailableValuesInGrid(3).Count, 0);

            Assert.IsTrue(sudoku.Solved);
        }