[board] Implement a test_position macro that prints a Position after it builds it
Update the sight tests to use test_position! Remove a stray leftover mut. Clean up the test imports.
This commit is contained in:
parent
3c699b0b3d
commit
704ee2f425
2 changed files with 21 additions and 5 deletions
|
@ -18,3 +18,17 @@ macro_rules! position {
|
||||||
.build()
|
.build()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
#[macro_export]
|
||||||
|
macro_rules! test_position {
|
||||||
|
[$($color:ident $shape:ident on $square:ident),* $(,)?] => {
|
||||||
|
{
|
||||||
|
let pos = $crate::PositionBuilder::new()
|
||||||
|
$(.place_piece(piece!($color $shape on $square)))*
|
||||||
|
.build();
|
||||||
|
println!("{pos}");
|
||||||
|
pos
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -174,13 +174,13 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
mod pawn {
|
mod pawn {
|
||||||
use crate::{position, sight::Sight, BitBoard, Position, Square};
|
use crate::{sight::Sight, BitBoard, Square};
|
||||||
|
|
||||||
sight_test!(e4_pawn, piece!(White Pawn on E4), bitboard!(D5, F5));
|
sight_test!(e4_pawn, piece!(White Pawn on E4), bitboard!(D5, F5));
|
||||||
|
|
||||||
sight_test!(
|
sight_test!(
|
||||||
e4_pawn_one_blocker,
|
e4_pawn_one_blocker,
|
||||||
position![
|
test_position![
|
||||||
White Bishop on D5,
|
White Bishop on D5,
|
||||||
White Pawn on E4,
|
White Pawn on E4,
|
||||||
],
|
],
|
||||||
|
@ -190,11 +190,12 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn e4_pawn_two_blocker() {
|
fn e4_pawn_two_blocker() {
|
||||||
let pos = position!(
|
let pos = test_position!(
|
||||||
White Bishop on D5,
|
White Bishop on D5,
|
||||||
White Queen on F5,
|
White Queen on F5,
|
||||||
White Pawn on E4,
|
White Pawn on E4,
|
||||||
);
|
);
|
||||||
|
|
||||||
let pp = piece!(White Pawn on E4);
|
let pp = piece!(White Pawn on E4);
|
||||||
let sight = pp.sight_in_position(&pos);
|
let sight = pp.sight_in_position(&pos);
|
||||||
|
|
||||||
|
@ -203,11 +204,12 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn e4_pawn_capturable() {
|
fn e4_pawn_capturable() {
|
||||||
let pos = position!(
|
let pos = test_position!(
|
||||||
Black Bishop on D5,
|
Black Bishop on D5,
|
||||||
White Queen on F5,
|
White Queen on F5,
|
||||||
White Pawn on E4,
|
White Pawn on E4,
|
||||||
);
|
);
|
||||||
|
|
||||||
let pp = piece!(White Pawn on E4);
|
let pp = piece!(White Pawn on E4);
|
||||||
let sight = pp.sight_in_position(&pos);
|
let sight = pp.sight_in_position(&pos);
|
||||||
|
|
||||||
|
@ -216,7 +218,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn e5_en_passant() {
|
fn e5_en_passant() {
|
||||||
let mut pos = position!(
|
let mut pos = test_position!(
|
||||||
White Pawn on E5,
|
White Pawn on E5,
|
||||||
Black Pawn on D5,
|
Black Pawn on D5,
|
||||||
);
|
);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue