diff --git a/moves/src/generators/pawn.rs b/moves/src/generators/pawn.rs index 29cca6a..b7fd5ae 100644 --- a/moves/src/generators/pawn.rs +++ b/moves/src/generators/pawn.rs @@ -6,7 +6,7 @@ use super::GeneratedMove; use crate::{Move, PromotionShape}; use chessfriend_bitboard::{bit_scanner::TrailingBitScanner, BitBoard}; use chessfriend_board::Board; -use chessfriend_core::{Color, Direction, Rank, Shape, Square}; +use chessfriend_core::{Color, Direction, Rank, Square}; use std::slice; pub struct PawnMoveGenerator { @@ -364,6 +364,44 @@ mod tests { ); } + #[test] + fn white_f6_right_captures() { + let white_captures_board = test_board!(White Pawn on F6, Black Queen on G7); + let generated_moves: HashSet = + PawnMoveGenerator::new(&white_captures_board, Some(Color::White)).collect(); + assert_eq!( + generated_moves, + [ + GeneratedMove { + ply: Move::capture(Square::F6, Square::G7) + }, + GeneratedMove { + ply: Move::quiet(Square::F6, Square::F7) + } + ] + .into() + ); + } + + #[test] + fn black_d5_right_captures() { + let black_captures_board = test_board!(Black Pawn on D5, White Queen on C4); + let generated_moves: HashSet = + PawnMoveGenerator::new(&black_captures_board, Some(Color::Black)).collect(); + assert_eq!( + generated_moves, + [ + GeneratedMove { + ply: Move::capture(Square::D5, Square::C4) + }, + GeneratedMove { + ply: Move::quiet(Square::D5, Square::D4) + } + ] + .into() + ); + } + #[test] fn white_g7_push_promotions() { let board = test_board!(White Pawn on G7);