public void KingJumpsTest(Player player)
        {
            var board = TestUtils.GetEmptyBoard(5);

            board[2, 2] = player.ToKing();
            PlacePiecesToJump(player, board);
            var nextMove = new NextMovesGenerator(board, player).GenerateNextMoves();

            Assert.AreEqual(4, nextMove.Count);

            var expectedBoard = TestUtils.GetEmptyBoard(5);

            PlacePiecesToJump(player, expectedBoard);
            expectedBoard[0, 0] = player.ToKing();
            expectedBoard[1, 1] = CheckerPiece.Empty;
            Assert.IsTrue(nextMove.Contains(expectedBoard), "Didn't get board" + Environment.NewLine + expectedBoard.ToState(player));

            expectedBoard = TestUtils.GetEmptyBoard(5);
            PlacePiecesToJump(player, expectedBoard);
            expectedBoard[4, 4] = player.ToKing();
            expectedBoard[3, 3] = CheckerPiece.Empty;
            Assert.IsTrue(nextMove.Contains(expectedBoard), "Didn't get board" + Environment.NewLine + expectedBoard.ToState(player));

            expectedBoard = TestUtils.GetEmptyBoard(5);
            PlacePiecesToJump(player, expectedBoard);
            expectedBoard[0, 4] = player.ToKing();
            expectedBoard[1, 3] = CheckerPiece.Empty;
            Assert.IsTrue(nextMove.Contains(expectedBoard), "Didn't get board" + Environment.NewLine + expectedBoard.ToState(player));

            expectedBoard = TestUtils.GetEmptyBoard(5);
            PlacePiecesToJump(player, expectedBoard);
            expectedBoard[4, 0] = player.ToKing();
            expectedBoard[3, 1] = CheckerPiece.Empty;
            Assert.IsTrue(nextMove.Contains(expectedBoard), "Didn't get board" + Environment.NewLine + expectedBoard.ToState(player));
        }
        public void KingMovesTest(Player player)
        {
            var board = TestUtils.GetEmptyBoard(3);

            board[1, 1] = player.ToKing();
            var nextMove = new NextMovesGenerator(board, player).GenerateNextMoves();

            Assert.AreEqual(4, nextMove.Count);

            var expectedBoard = TestUtils.GetEmptyBoard(3);

            expectedBoard[0, 0] = player.ToKing();
            Assert.IsTrue(nextMove.Contains(expectedBoard), "Didn't get board" + Environment.NewLine + expectedBoard);

            expectedBoard       = TestUtils.GetEmptyBoard(3);
            expectedBoard[2, 2] = player.ToKing();
            Assert.IsTrue(nextMove.Contains(expectedBoard), "Didn't get board" + Environment.NewLine + expectedBoard);

            expectedBoard       = TestUtils.GetEmptyBoard(3);
            expectedBoard[0, 2] = player.ToKing();
            Assert.IsTrue(nextMove.Contains(expectedBoard), "Didn't get board" + Environment.NewLine + expectedBoard);

            expectedBoard       = TestUtils.GetEmptyBoard(3);
            expectedBoard[2, 0] = player.ToKing();
            Assert.IsTrue(nextMove.Contains(expectedBoard), "Didn't get board" + Environment.NewLine + expectedBoard);
        }