public void GeneratesCorrectKnightMovesComplexPosition() { // Assemble var position = Position.FromFENString("8/ppp1p3/b2p1p1p/1N3bp1/8/4N3/PPPPPPPP/8 w - - 1 8 "); var moves = new List <Move>(); // Act MoveGenerator.AddKnightMoves(position, moves); // Assert var expectedMoves = new List <Move> { new Move(Square.e3, Square.d1, MoveFlags.QuietMove), new Move(Square.e3, Square.f1, MoveFlags.QuietMove), new Move(Square.e3, Square.c4, MoveFlags.QuietMove), new Move(Square.e3, Square.d5, MoveFlags.QuietMove), new Move(Square.e3, Square.g4, MoveFlags.QuietMove), new Move(Square.e3, Square.f5, MoveFlags.Capture, Piece.Bishop), new Move(Square.b5, Square.a3, MoveFlags.QuietMove), new Move(Square.b5, Square.c3, MoveFlags.QuietMove), new Move(Square.b5, Square.d4, MoveFlags.QuietMove), new Move(Square.b5, Square.d6, MoveFlags.Capture, Piece.Pawn), new Move(Square.b5, Square.a7, MoveFlags.Capture, Piece.Pawn), new Move(Square.b5, Square.c7, MoveFlags.Capture, Piece.Pawn), }; moves.Should().BeEquivalentTo(expectedMoves); }
public void GeneratesCorrectKnightMovesStartingPosition() { // Assemble var position = new Position(Board.StartingPosition, Side.White, null, CastlingRights.All, 0); var moves = new List <Move>(); // Act MoveGenerator.AddKnightMoves(position, moves); // Assert var expectedMoves = new List <Move> { new Move(Square.b1, Square.a3, MoveFlags.QuietMove), new Move(Square.b1, Square.c3, MoveFlags.QuietMove), new Move(Square.g1, Square.f3, MoveFlags.QuietMove), new Move(Square.g1, Square.h3, MoveFlags.QuietMove) }; moves.Should().BeEquivalentTo(expectedMoves); }
public void GetKnightMoves() => MoveGenerator.AddKnightMoves(_position, new List <Move>());