public void MateInThreeWhiteToPlay_Deepening()
        {
            var game = new Game();

            game.New();
            game.Reset();
            game
            .AddPiece("g8bK")
            .AddPiece("a7wR").AddPiece("b7wR").AddPiece("c7bP")
            .AddPiece("f6wK").AddPiece("g6wN")
            .AddPiece("f5wP")
            .AddPiece("b2bP").AddPiece("c3bR").AddPiece("e3bR").AddPiece("f3bN");
            EngineTests.DisableCastling(game);
            game.SetInitials();

            var engine     = new Engine();
            var evaluation = engine.BestMoveDeepeningSearch(game, TimeSpan.FromSeconds(4));

            Console.WriteLine(evaluation.ToString());

            Assert.IsTrue(new [] { "Rb8+", "Ra8+" }.Contains(evaluation.Move.ToString()));
        }
        public void BlackToPlay_MateInTwo_Deepening()
        {
            var game = new Game();

            game.New();
            game.Reset();
            game
            .AddPiece("a8bR").AddPiece("e8bK").AddPiece("f8bB")
            .AddPiece("c7bP").AddPiece("d7bP").AddPiece("f7bP")
            .AddPiece("a6bP").AddPiece("g6bQ")
            .AddPiece("b5bP").AddPiece("e5wP")
            .AddPiece("h4wQ")
            .AddPiece("b3wP").AddPiece("e3wB").AddPiece("f3bB").AddPiece("h3wP")
            .AddPiece("b2wP").AddPiece("c2wP").AddPiece("e2wN").AddPiece("f2wP").AddPiece("g2bR")
            .AddPiece("a1wR").AddPiece("e1wR").AddPiece("f1wK");
            game.CurrentPlayer = game.BlackPlayer;
            EngineTests.DisableCastling(game);
            game.SetInitials();
            var engine     = new Engine();
            var evaluation = engine.BestMoveDeepeningSearch(game, TimeSpan.FromSeconds(10));

            Console.WriteLine(evaluation);
            Assert.AreEqual("Rg1+", evaluation.Move.ToString());
        }