예제 #1
0
        public void TestAClassicalGame()
        {
            IChess chess = new Classical();

            IPiece piece;

            Assert.All(GameOfChessData, tuple =>
            {
                Assert.True(chess.Process(tuple.Item1, out piece));
                if (tuple.Item3 == null)
                {
                    Assert.Null(piece);
                }
                else
                {
                    Assert.Equal(tuple.Item3.GetType(), piece.GetType());
                    Assert.Equal(tuple.Item3.Color, piece.Color);
                }
                Assert.Equal(tuple.Item2,
                             chess.AvailableMoves(chess.MoveEntries.Last().Position[tuple.Item1.FromSquare].Color).Count);
                Assert.Equal(tuple.Item4, chess.Position.Count);
            });

            Assert.Empty(chess.AvailableMoves(true));
            Assert.True(chess.IsChecked <Classical>(true));
        }
예제 #2
0
        public void TestProcessMove()
        {
            IChess chess = new Classical();

            var move = new Move(
                new Square(Files.e, Ranks.two),
                new Square(Files.e, Ranks.four),
                MoveType.Rush);

            Assert.True(chess.Process(move, out IPiece p));

            Assert.Equal(30, chess.AvailableMoves(true).Count);
        }