Fix Pieces unit tests

This commit is contained in:
Eryn Wells 2024-01-06 16:34:05 -08:00
parent c3e3ebfa97
commit c79c05ddb6

View file

@ -38,7 +38,7 @@ impl<'a> Iterator for Pieces<'a> {
}
let mut current_shape: Option<Shape> = None;
let mut next_nonempty_bitboard: Option<&BitBoard> = None;
let mut next_nonempty_bitboard: Option<BitBoard> = None;
while let Some(shape) = self.shape_iterator.next() {
let piece = Piece::new(self.color, *shape);
@ -80,12 +80,8 @@ mod tests {
use crate::Square;
use std::collections::HashSet;
fn square_at(sq: &str) -> Square {
Square::from_algebraic_str(sq).expect(sq)
}
fn place_piece_in_position(pos: &mut Position, sq: &str, piece: Piece) {
pos.place_piece(&piece, &square_at(sq))
fn place_piece_in_position(pos: &mut Position, piece: Piece, sq: Square) {
pos.place_piece(piece, sq)
.expect("Unable to place {piece:?} queen on {sq}");
}
@ -98,11 +94,10 @@ mod tests {
#[test]
fn one() {
let sq = Square::from_algebraic_str("e4").expect("e4");
let sq = Square::E4;
let mut pos = Position::empty();
pos.place_piece(&Piece::new(Color::White, Shape::Queen), &sq)
.expect("Unable to place white queen on e4");
place_piece_in_position(&mut pos, Piece::new(Color::White, Shape::Queen), Square::E4);
println!("{:?}", &pos);
let mut pieces = pos.pieces(Color::White);
@ -117,18 +112,18 @@ mod tests {
fn multiple_pieces() {
let mut pos = Position::empty();
place_piece_in_position(&mut pos, "e4", Piece::new(Color::White, Shape::Queen));
place_piece_in_position(&mut pos, "e1", Piece::new(Color::White, Shape::King));
place_piece_in_position(&mut pos, "b2", Piece::new(Color::White, Shape::Pawn));
place_piece_in_position(&mut pos, "c2", Piece::new(Color::White, Shape::Pawn));
place_piece_in_position(&mut pos, Piece::new(Color::White, Shape::Queen), Square::E4);
place_piece_in_position(&mut pos, Piece::new(Color::White, Shape::King), Square::E1);
place_piece_in_position(&mut pos, Piece::new(Color::White, Shape::Pawn), Square::B2);
place_piece_in_position(&mut pos, Piece::new(Color::White, Shape::Pawn), Square::C2);
println!("{:?}", &pos);
let expected_placed_pieces = HashSet::from([
PlacedPiece::new(Piece::new(Color::White, Shape::Queen), square_at("e4")),
PlacedPiece::new(Piece::new(Color::White, Shape::King), square_at("e1")),
PlacedPiece::new(Piece::new(Color::White, Shape::Pawn), square_at("b2")),
PlacedPiece::new(Piece::new(Color::White, Shape::Pawn), square_at("c2")),
PlacedPiece::new(Piece::new(Color::White, Shape::Queen), Square::E4),
PlacedPiece::new(Piece::new(Color::White, Shape::King), Square::E1),
PlacedPiece::new(Piece::new(Color::White, Shape::Pawn), Square::B2),
PlacedPiece::new(Piece::new(Color::White, Shape::Pawn), Square::C2),
]);
let placed_pieces = HashSet::from_iter(pos.pieces(Color::White));