Пример #1
0
        public void TestGenerateEmptyBoard()
        {
            var hashGenerator = new BoardHash();
            var board         = new Board();

            var hash = hashGenerator.GetHash(board);

            Assert.AreEqual(_emptyHash, hash);
        }
Пример #2
0
        static void Main(string[] args)
        {
            System.Console.WriteLine("Insert the board hash as 1 long line:");
            var hash = System.Console.ReadLine();

            var boardHash = new BoardHash();
            var stats     = new BoardStatistics(boardHash.LoadFromHash(hash), new PossibilityCalculator(boardHash.LoadFromHash(hash)));

            System.Console.WriteLine($"\n\nStarting solving. There are {stats.GetPossibilities()} possibilities..");

            var solver = new BruteForceSolver();
            var result = solver.Solve((new BoardHash()).LoadFromHash(hash));

            System.Console.WriteLine($"Solved in {solver.Attempts} attempts.\n\n");
            OutputBoard(result);
        }
Пример #3
0
        public void TestClearBoard()
        {
            var board         = new Board();
            var hashGenerator = new BoardHash();

            // First check if the newly created board is empty
            Assert.AreEqual(_emptyHash, hashGenerator.GetHash(board));

            // Change the board to see if they're not empty
            board.SetBoardValue(1, 1, new BoardValue(1));
            Assert.AreNotEqual(_emptyHash, hashGenerator.GetHash(board));

            // Clear and check if it's empty
            board.Clear();
            Assert.AreEqual(_emptyHash, hashGenerator.GetHash(board));
        }
Пример #4
0
        public void TestLoadBoardFromHash()
        {
            var hashGenerator = new BoardHash();
            var hash          = String.Empty;

            for (int line = 0; line < 9; line++)
            {
                for (int column = 0; column < 9; column++)
                {
                    hash += column + 1;
                }
            }

            var board = hashGenerator.LoadFromHash(hash);

            Assert.AreEqual(hash, hashGenerator.GetHash(board));
        }
        public void PossibilitiesFor_EmptyFields()
        {
            // Arrange
            var boardHash = new BoardHash();
            var testSet   = GetTestSet();

            foreach (var assert in testSet)
            {
                // Act
                var board = boardHash.LoadFromHash(assert.Hash);
                var possibilityCalculator = new PossibilityCalculator(board);

                var actual = possibilityCalculator.PossibilitiesFor(assert.Line, assert.Column);

                // Assert
                CollectionAssert.AreEqual(assert.ExpectedResult, actual);
            }
        }