Add an assert_move_list! macro to help with verifying move lists

This commit is contained in:
Eryn Wells 2024-01-28 15:47:32 -08:00
parent d910ff708e
commit cd3cb82192
2 changed files with 23 additions and 0 deletions

View file

@ -11,5 +11,9 @@ mod sight;
#[macro_use]
mod macros;
#[cfg(test)]
#[macro_use]
mod tests;
pub use position::{MoveBuilder as MakeMoveBuilder, Position, PositionBuilder};
pub use r#move::{Castle, MakeMoveError, Move, MoveBuilder};

19
position/src/tests.rs Normal file
View file

@ -0,0 +1,19 @@
// Eryn Wells <eryn@erynwells.me>
#[macro_export]
macro_rules! assert_move_list {
($generated:expr, $expected:expr, $position:expr) => {
assert_eq!(
$generated,
$expected,
"Difference: {:?}",
$generated
.symmetric_difference(&$expected)
.map(|mv| format!(
"{}",
$crate::r#move::AlgebraicMoveFormatter::new(mv, &$position)
))
.collect::<Vec<String>>()
)
};
}