Fix the remaining tests

Well… all the tests except the Peter Ellis Jones tests.

Pass around whole EnPassant types instead of pulling out just the e.p. square.
Make sure that Castling moves have their target and origin squares populated.
Add a color field to the Castle move style to make this possible.
This commit is contained in:
Eryn Wells 2024-02-25 12:38:55 -08:00
parent d2fe546824
commit 5f1fce6cc2
10 changed files with 142 additions and 83 deletions

View file

@ -154,7 +154,7 @@ mod tests {
}
#[test]
fn white_king_unobstructed_castles() {
fn white_king_unobstructed_castles() -> TestResult {
let pos = test_position!(
White King on E1,
White Rook on A1,
@ -167,12 +167,16 @@ mod tests {
let generator = KingMoveGenerator::new(&pos, Color::White, BitBoard::FULL, BitBoard::FULL);
let generated_moves: HashSet<Move> = generator.iter().collect();
assert!(generated_moves.contains(&MoveBuilder::castling(Castle::KingSide).build()));
assert!(generated_moves.contains(&MoveBuilder::castling(Castle::QueenSide).build()));
assert!(generated_moves
.contains(&MoveBuilder::castling(Color::White, Castle::KingSide).build()?));
assert!(generated_moves
.contains(&MoveBuilder::castling(Color::White, Castle::QueenSide).build()?));
Ok(())
}
#[test]
fn white_king_obstructed_queenside_castle() {
fn white_king_obstructed_queenside_castle() -> TestResult {
let pos = test_position!(
White King on E1,
White Knight on B1,
@ -186,12 +190,16 @@ mod tests {
let generator = KingMoveGenerator::new(&pos, Color::White, BitBoard::FULL, BitBoard::FULL);
let generated_moves: HashSet<Move> = generator.iter().collect();
assert!(generated_moves.contains(&MoveBuilder::castling(Castle::KingSide).build()));
assert!(!generated_moves.contains(&MoveBuilder::castling(Castle::QueenSide).build()));
assert!(generated_moves
.contains(&MoveBuilder::castling(Color::White, Castle::KingSide).build()?));
assert!(!generated_moves
.contains(&MoveBuilder::castling(Color::White, Castle::QueenSide).build()?));
Ok(())
}
#[test]
fn white_king_obstructed_kingside_castle() {
fn white_king_obstructed_kingside_castle() -> TestResult {
let pos = test_position!(
White King on E1,
White Rook on A1,
@ -205,7 +213,11 @@ mod tests {
let generator = KingMoveGenerator::new(&pos, Color::White, BitBoard::FULL, BitBoard::FULL);
let generated_moves: HashSet<Move> = generator.iter().collect();
assert!(!generated_moves.contains(&MoveBuilder::castling(Castle::KingSide).build()));
assert!(generated_moves.contains(&MoveBuilder::castling(Castle::QueenSide).build()));
assert!(!generated_moves
.contains(&MoveBuilder::castling(Color::White, Castle::KingSide).build()?));
assert!(generated_moves
.contains(&MoveBuilder::castling(Color::White, Castle::QueenSide).build()?));
Ok(())
}
}