public void HaveNoHiddenCellsIfDifficultyIsTest()
        {
            // Arrange
            populatedTestMatrix.SetDifficulty(new Difficulty()
            {
                Name            = "Test",
                DifficultyLevel = DifficultyLevel.TEST
            });

            // Act
            sut = populatedTestMatrix;

            var result = false;

            foreach (var cell in sut.SudokuCells)
            {
                if (cell.Hidden == true)
                {
                    result = true;
                }
            }

            // Assert
            Assert.That(result, Is.False);;
        }
        public async Task SolveSudokuMatrices()
        {
            // Arrange
            var intList = new List <int>()
            {
                4, 1, 9, 2, 6, 5, 3, 8, 7,
                2, 8, 3, 1, 7, 9, 4, 5, 6,
                5, 6, 7, 4, 3, 8, 9, 1, 2,
                1, 2, 5, 3, 9, 4, 7, 6, 8,
                7, 3, 8, 5, 1, 6, 2, 4, 9,
                6, 9, 4, 7, 8, 2, 5, 3, 1,
                3, 5, 6, 8, 2, 7, 1, 9, 4,
                8, 7, 1, 9, 4, 3, 6, 2, 5,
                9, 4, 2, 6, 5, 1, 8, 7, 3
            };

            sut = new SudokuMatrix(intList);

            sut.SetDifficulty(new Difficulty()
            {
                Name            = "Easy",
                DifficultyLevel = DifficultyLevel.EASY
            }
                              );

            // Act
            await sut.Solve();

            // Assert
            Assert.That(sut.IsValid(), Is.EqualTo(true));
        }
        public void DetermineIfMatrixIsSolved()
        {
            // Arrange
            var intList = new List <int>()
            {
                4, 1, 9, 2, 6, 5, 3, 8, 7,
                2, 8, 3, 1, 7, 9, 4, 5, 6,
                5, 6, 7, 4, 3, 8, 9, 1, 2,
                1, 2, 5, 3, 9, 4, 7, 6, 8,
                7, 3, 8, 5, 1, 6, 2, 4, 9,
                6, 9, 4, 7, 8, 2, 5, 3, 1,
                3, 5, 6, 8, 2, 7, 1, 9, 4,
                8, 7, 1, 9, 4, 3, 6, 2, 5,
                9, 4, 2, 6, 5, 1, 8, 7, 3
            };

            // Act
            sut = new SudokuMatrix(intList);

            sut.SetDifficulty(new Difficulty()
            {
                Name            = "Test",
                DifficultyLevel = DifficultyLevel.TEST
            });

            // Assert
            Assert.That(sut.IsSolved(), Is.True);
        }
        public void HaveNoObscuredCellsOnTestDifficulty()
        {
            // Arrange
            populatedTestMatrix.SetDifficulty(new Difficulty()
            {
                Name            = "Test",
                DifficultyLevel = DifficultyLevel.TEST
            });

            // Act
            sut = populatedTestMatrix;

            var result = 0;

            foreach (var cell in sut.SudokuCells)
            {
                if (cell.Hidden == false)
                {
                    result++;
                }
            }

            // Assert
            Assert.That(result, Is.EqualTo(81));
        }
        public void ImplementIDBEntry()
        {
            // Arrange and Act
            sut = new SudokuMatrix(stringList);

            // Assert
            Assert.That(sut, Is.InstanceOf <IEntityBase>());
        }
        public void ReturnTrueIfValid()
        {
            // Arrange and Act
            sut = populatedTestMatrix;

            // Assert
            Assert.That(sut.IsValid(), Is.True);
        }
        public void HaveAnID()
        {
            // Arrange and Act
            sut = new SudokuMatrix(stringList);

            // Assert
            Assert.That(sut.Id, Is.TypeOf <int>());
            Assert.That(sut.Id, Is.EqualTo(0));
        }
        public async static Task AttachSudokuCells(
            this ISudokuMatrix matrix,
            DatabaseContext context)
        {
            var cells = await context.SudokuCells
                        .Where(cell => cell.SudokuMatrixId == matrix.Id)
                        .ToListAsync();

            matrix.SudokuCells = cells;
        }
        public void AcceptStringInConstructor()
        {
            // Arrange and Act
            sut = new SudokuMatrix(stringList);

            // Assert
            Assert.That(stringList, Is.TypeOf <string>());
            Assert.That(sut, Is.Not.Null);
            Assert.That(sut.SudokuCells.Count, Is.GreaterThan(0));
        }
        public void AcceptIntListInConstructor()
        {
            // Arrange and Act
            intList = populatedTestMatrix.ToIntList();
            sut     = new SudokuMatrix(intList);

            // Assert
            Assert.That(intList, Is.TypeOf <List <int> >());
            Assert.That(sut, Is.Not.Null);
            Assert.That(sut.SudokuCells.Count, Is.GreaterThan(0));
        }
        public void GenerateValidSolutions()
        {
            // Arrange
            sut = new SudokuMatrix();

            // Act
            sut.GenerateSolution();

            // Assert
            Assert.That(sut.IsValid(), Is.True);
        }
        public void OutputValuesAsStringWithToString()
        {
            // Arrange
            sut = populatedTestMatrix;

            // Act
            var result = sut.ToString();

            // Assert
            Assert.That(result, Is.TypeOf <string>());
            Assert.That(result.Length, Is.EqualTo(81));
        }
        public void OutputValuesAsIntListWithToDisplayedValuesList()
        {
            // Arrange
            sut = populatedTestMatrix;

            // Act
            var result = sut.ToDisplayedIntList();

            // Assert
            Assert.That(result, Is.TypeOf <List <int> >());
            Assert.That(result.Count, Is.EqualTo(81));
        }
        public void CreateZeroedListWithBlankConstructor()
        {
            // Arrange and Act
            sut = new SudokuMatrix();

            // Assert
            Assert.That(sut.SudokuCells[0].Value, Is.EqualTo(0));
            Assert.That(sut.SudokuCells[9].Value, Is.EqualTo(0));
            Assert.That(sut.SudokuCells[18].Value, Is.EqualTo(0));
            Assert.That(sut.SudokuCells[27].Value, Is.EqualTo(0));
            Assert.That(sut.SudokuCells[36].Value, Is.EqualTo(0));
            Assert.That(sut.SudokuCells[45].Value, Is.EqualTo(0));
            Assert.That(sut.SudokuCells[54].Value, Is.EqualTo(0));
            Assert.That(sut.SudokuCells[63].Value, Is.EqualTo(0));
            Assert.That(sut.SudokuCells[72].Value, Is.EqualTo(0));
        }
        public void AcceptDifficultyAndIntListConstructor()
        {
            // Arrange
            var difficulty = new Difficulty {
                DifficultyLevel = DifficultyLevel.TEST
            };

            intList = populatedTestMatrix.ToIntList();

            // Act
            sut = new SudokuMatrix(difficulty, intList);

            // Assert
            Assert.That(difficulty, Is.TypeOf <Difficulty>());
            Assert.That(intList, Is.TypeOf <List <int> >());
            Assert.That(sut, Is.TypeOf <SudokuMatrix>());
            Assert.That(sut.SudokuCells.Count, Is.GreaterThan(0));
        }
        internal static List <int> IsolateIntersectingValues(ISudokuMatrix sudokuMatrix, List <int> paramList)
        {
            var MissingFirstColumn   = MissingSudokuValues(sudokuMatrix.FirstColumnValues);
            var MissingSecondColumn  = MissingSudokuValues(sudokuMatrix.SecondColumnValues);
            var MissingThirdColumn   = MissingSudokuValues(sudokuMatrix.ThirdColumnValues);
            var MissingFourthColumn  = MissingSudokuValues(sudokuMatrix.FourthColumnValues);
            var MissingFifthColumn   = MissingSudokuValues(sudokuMatrix.FifthColumnValues);
            var MissingSixthColumn   = MissingSudokuValues(sudokuMatrix.SixthColumnValues);
            var MissingSeventhColumn = MissingSudokuValues(sudokuMatrix.SeventhColumnValues);
            var MissingEighthColumn  = MissingSudokuValues(sudokuMatrix.EighthColumnValues);
            var MissingNinthColumn   = MissingSudokuValues(sudokuMatrix.NinthColumnValues);
            var MissingFirstRegion   = MissingSudokuValues(sudokuMatrix.FirstRegionValues);
            var MissingSecondRegion  = MissingSudokuValues(sudokuMatrix.SecondRegionValues);
            var MissingThirdRegion   = MissingSudokuValues(sudokuMatrix.ThirdRegionValues);
            var MissingFourthRegion  = MissingSudokuValues(sudokuMatrix.FourthRegionValues);
            var MissingFifthRegion   = MissingSudokuValues(sudokuMatrix.FifthRegionValues);
            var MissingSixthRegion   = MissingSudokuValues(sudokuMatrix.SixthRegionValues);
            var MissingSeventhRegion = MissingSudokuValues(sudokuMatrix.SeventhRegionValues);
            var MissingEighthRegion  = MissingSudokuValues(sudokuMatrix.EighthRegionValues);
            var MissingNinthRegion   = MissingSudokuValues(sudokuMatrix.NinthRegionValues);
            var MissingFirstRow      = MissingSudokuValues(sudokuMatrix.FirstRowValues);
            var MissingSecondRow     = MissingSudokuValues(sudokuMatrix.SecondRowValues);
            var MissingThirdRow      = MissingSudokuValues(sudokuMatrix.ThirdRowValues);
            var MissingFourthRow     = MissingSudokuValues(sudokuMatrix.FourthRowValues);
            var MissingFifthRow      = MissingSudokuValues(sudokuMatrix.FifthRowValues);
            var MissingSixthRow      = MissingSudokuValues(sudokuMatrix.SixthRowValues);
            var MissingSeventhRow    = MissingSudokuValues(sudokuMatrix.SeventhRowValues);
            var MissingEighthRow     = MissingSudokuValues(sudokuMatrix.EighthRowValues);
            var MissingNinthRow      = MissingSudokuValues(sudokuMatrix.NinthRowValues);

            var tmp   = new SudokuMatrix(paramList);
            var count = 0;

            do
            {
                for (var i = 0; i < tmp.SudokuCells.Count; i++)
                {
                    if (i == 0)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingFirstRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 1)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingFirstRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 2)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingFirstRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 3)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingSecondRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 4)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingSecondRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 5)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingSecondRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 6)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingThirdRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 7)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingThirdRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 8)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingThirdRegion, ref MissingFirstRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 9)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingFirstRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 10)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingFirstRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 11)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingFirstRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 12)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingSecondRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 13)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingSecondRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 14)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingSecondRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 15)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingThirdRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 16)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingThirdRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 17)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingThirdRegion, ref MissingSecondRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 18)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingFirstRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 19)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingFirstRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 20)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingFirstRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 21)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingSecondRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 22)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingSecondRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 23)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingSecondRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 24)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingThirdRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 25)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingThirdRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 26)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingThirdRegion, ref MissingThirdRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 27)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingFourthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 28)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingFourthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 29)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingFourthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 30)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingFifthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 31)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingFifthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 32)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingFifthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 33)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingSixthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 34)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingSixthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 35)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingSixthRegion, ref MissingFourthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 36)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingFourthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 37)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingFourthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 38)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingFourthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 39)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingFifthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 40)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingFifthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 41)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingFifthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 42)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingSixthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 43)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingSixthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 44)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingSixthRegion, ref MissingFifthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 45)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingFourthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 46)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingFourthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 47)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingFourthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 48)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingFifthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 49)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingFifthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 50)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingFifthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 51)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingSixthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 52)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingSixthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 53)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingSixthRegion, ref MissingSixthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 54)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingSeventhRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 55)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingSeventhRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 56)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingSeventhRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 57)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingEighthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 58)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingEighthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 59)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingEighthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 60)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingNinthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 61)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingNinthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 62)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingNinthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 63)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingSeventhRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 64)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingSeventhRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 65)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingSeventhRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 66)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingEighthRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 67)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingEighthRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 68)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingEighthRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 69)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingNinthRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 70)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingNinthRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 71)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingNinthRegion, ref MissingEighthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 72)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn,
                                                               ref MissingSeventhRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 73)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn,
                                                               ref MissingSeventhRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 74)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn,
                                                               ref MissingSeventhRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 75)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn,
                                                               ref MissingEighthRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 76)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn,
                                                               ref MissingEighthRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 77)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn,
                                                               ref MissingEighthRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 78)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn,
                                                               ref MissingNinthRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                    else if (i == 79)
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn,
                                                               ref MissingNinthRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                    else
                    {
                        ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn,
                                                               ref MissingNinthRegion, ref MissingNinthRow, tmp.SudokuCells[i]);
                    }
                }

                count++;
            } while (count < 10);

            var result = new SudokuMatrix(tmp.ToIntList());

            return(result.ToIntList());
        }