[position] Clean up rook unit tests

Use test_position! instead of position!
Spell out the PlacedPiece constructor in the test_position! macro.
This commit is contained in:
Eryn Wells 2024-01-28 10:28:01 -08:00
parent ea74b214da
commit dab787170c
2 changed files with 14 additions and 7 deletions

View file

@ -22,7 +22,15 @@ macro_rules! test_position {
[$($color:ident $shape:ident on $square:ident),* $(,)?] => { [$($color:ident $shape:ident on $square:ident),* $(,)?] => {
{ {
let pos = $crate::PositionBuilder::new() let pos = $crate::PositionBuilder::new()
$(.place_piece(piece!($color $shape on $square)))* $(.place_piece(
chessfriend_core::PlacedPiece::new(
chessfriend_core::Piece::new(
chessfriend_core::Color::$color,
chessfriend_core::Shape::$shape
),
chessfriend_core::Square::$square
))
)*
.build(); .build();
println!("{pos}"); println!("{pos}");
pos pos

View file

@ -60,14 +60,13 @@ impl MoveGeneratorInternal for ClassicalMoveGenerator {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::{position, position::DiagramFormatter}; use crate::{position::DiagramFormatter, test_position};
use chessfriend_bitboard::{bitboard, BitBoard}; use chessfriend_bitboard::{bitboard, BitBoard};
use chessfriend_core::Color; use chessfriend_core::Color;
#[test] #[test]
fn classical_single_rook_bitboard() { fn classical_single_rook_bitboard() {
let pos = position![White Rook on A2]; let pos = test_position![White Rook on A2];
println!("{}", DiagramFormatter::new(&pos));
let generator = ClassicalMoveGenerator::new(&pos, Color::White); let generator = ClassicalMoveGenerator::new(&pos, Color::White);
@ -80,7 +79,7 @@ mod tests {
/// Test that a rook can move up to, but not onto, a friendly piece. /// Test that a rook can move up to, but not onto, a friendly piece.
#[test] #[test]
fn classical_single_rook_with_same_color_blocker_bitboard() { fn classical_single_rook_with_same_color_blocker_bitboard() {
let mut pos = position![ let pos = test_position![
White Rook on A1, White Rook on A1,
White Knight on E1, White Knight on E1,
]; ];
@ -100,7 +99,7 @@ mod tests {
/// Test that a rook can move up to, and then capture, an enemy piece. /// Test that a rook can move up to, and then capture, an enemy piece.
#[test] #[test]
fn classical_single_rook_with_opposing_color_blocker_bitboard() { fn classical_single_rook_with_opposing_color_blocker_bitboard() {
let pos = position![ let pos = test_position![
White Rook on A1, White Rook on A1,
Black Knight on E1, Black Knight on E1,
]; ];
@ -115,7 +114,7 @@ mod tests {
#[test] #[test]
fn classical_single_rook_in_center() { fn classical_single_rook_in_center() {
let pos = position![White Rook on D4]; let pos = test_position![White Rook on D4];
let generator = ClassicalMoveGenerator::new(&pos, Color::White); let generator = ClassicalMoveGenerator::new(&pos, Color::White);