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:
parent
d2fe546824
commit
5f1fce6cc2
10 changed files with 142 additions and 83 deletions
|
@ -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(())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue