public void GetDiscoveredStraightAttackMoves_RookE1PawnE3TargetE7_ReturnsEmpty() { // arrange var s = new Side("G1", new PieceSet<Queen>(), new PieceSet<Bishop>(), new PieceSet<Knight>(), new PieceSet<Rook>(new Square("E1")), new WhitePawns(Bitboard.With.A3.Build()) ); // act var result = s.GetDiscoverdStraightAttackMoves(new Square("E7"), Bitboard.Empty); // assert result.Count().Should().Be(0); }
public void GetDiscoveredStraightAttackMoves_RookE1PawnE3EnemyD4TargetE7_ReturnsE3D4() { // arrange var s = new Side("G1", new PieceSet<Queen>(), new PieceSet<Bishop>(), new PieceSet<Knight>(), new PieceSet<Rook>(new Square("E1")), new WhitePawns(Bitboard.With.Rank2.E3.Except.E2.Build()) ); // act var result = s.GetDiscoverdStraightAttackMoves(new Square("E7"), new Square("D4").AsBoard); // assert result.Should().Have.SameSequenceAs( new Move("E3", "D4") ); }
public void GetDiscoveredStraightAttackMoves_RookA4PawnB4TargetE4_ReturnsB4B5() { // arrange var s = new Side("G1", new PieceSet<Queen>(), new PieceSet<Bishop>(), new PieceSet<Knight>(), new PieceSet<Rook>(new Square("A4")), new WhitePawns(Bitboard.With.Rank2.B4.Except.B2.Build()) ); // act var result = s.GetDiscoverdStraightAttackMoves(new Square("E4"), Bitboard.Empty); // assert result.Should().Have.SameSequenceAs( new Move("B4", "B5") ); }
public void GetDiscoveredStraightAttackMoves_RookE1KnightE2TargetE7_AllKnightMoves() { // arrange var s = new Side("A1", new PieceSet<Queen>(), new PieceSet<Bishop>(), new PieceSet<Knight>(new Square("E2")), new PieceSet<Rook>(new Square("E1")), new WhitePawns() ); var expected = new PieceSet<Knight>(new Square("E2")).GetMoves(Bitboard.Empty, Bitboard.Empty); // act var result = s.GetDiscoverdStraightAttackMoves(new Square("E7"), Bitboard.Empty); // assert result.Should().Have.SameSequenceAs(expected); }
public void GetDiscoveredStraightAttackMoves_RookE1KingE3TargetE7() { // arrange var s = new Side("E3", new PieceSet<Queen>(), new PieceSet<Bishop>(), new PieceSet<Knight>(), new PieceSet<Rook>(new Square("E1")), new WhitePawns() ); IEnumerable<Move> expected = new PieceSet<King>(new Square("E3")).GetMoves(Bitboard.Empty, Bitboard.Empty, Bitboard.Full, ~Bitboard.With.FileE.Build()); // act IEnumerable<Move> result = s.GetDiscoverdStraightAttackMoves(new Square("E7"), Bitboard.Empty); // assert result.Should().Have.SameSequenceAs(expected); }