public void CheckSecondSituationDiagonallyRightTopTest()
        {
            Board     board = new Board();
            bool?     win;
            AlphaBeta alphaBeta = new AlphaBeta();
            int       result    = 0;

            //__XOX__
            //__OXO__
            //_OXXXO_
            //should be inf
            //but its not

            //__X____
            //_XX____
            //XXX____
            board.PutToken(0);
            board.PutToken(1);
            board.PutToken(1);
            board.PutToken(2);
            board.PutToken(2);
            board.PutToken(2);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(900000, result);

            //___O
            //__XO___
            //_XXO___
            //XXXO___
            result = 0;
            board.PutToken(3);
            board.PutToken(3);
            board.PutToken(3);
            board.PutToken(3);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(50000, result);

            //___O
            //__XO___
            //_XXO___
            //_XXO___
            result = 0;
            board.RemoveToken(0);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(0, result);

            result = 0;
            //____X__
            //_______
            //__XO___
            //_XXO___
            //_XXO___
            board.RemoveToken(3);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(900000, result);

            result = 0;
            //______X
            //______X
            //____X_X
            //___XX_X
            board = new Board();
            board.PutToken(3);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(6);
            board.PutToken(6);
            board.PutToken(6);
            board.PutToken(6);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(900000, result);


            result = 0;
            //__X____
            //_XO____
            //XOO____
            //OXO____
            board = new Board();
            board.PutToken(0);
            board.PutToken(0);
            board.PutToken(1);
            board.PutToken(1);
            board.PutToken(1);
            board.PutToken(2);
            board.PutToken(2);
            board.PutToken(2);
            board.PutToken(2);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(900000, result);

            result = 0;
            //_______
            //___X___
            //__XO___
            //__OX___
            //XOOO___
            //OXOO___
            board.RemoveToken(1);
            board.PutToken(3);
            board.PutToken(3);
            board.PutToken(3);
            board.PutToken(3);
            board.PutToken(3);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(900000, result);

            result = 0;
            //_______
            //___XX__
            //__XOO__
            //__OXO__
            //XOOOX__
            //OXOOX__
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(900000, result);

            //_______
            //___XX__
            //___OO__
            //_XOXO__
            //XOOOX__
            //OXOOX__
            result = 0;
            board.RemoveToken(2);
            board.PutToken(1);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(900000, result);

            //____O__
            //___XX__
            //__XOX__
            //_XOOX__
            //_OXOO__
            result = 0;
            board  = new Board();
            board.PutToken(1);
            board.PutToken(1);
            board.PutToken(2);
            board.PutToken(2);
            board.PutToken(2);
            board.PutToken(3);
            board.PutToken(3);
            board.PutToken(3);
            board.PutToken(3);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            board.PutToken(4);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(900000, result);

            result = 0;
            board.RemoveToken(4);
            alphaBeta.CheckSecondSituationDiagonallyRightTop(true, board, ref result);
            Assert.AreEqual(int.MaxValue, result);
        }