From cd3cb82192568ae3b83747e7398bbc8c1a4b78e8 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 28 Jan 2024 15:47:32 -0800 Subject: [PATCH] Add an assert_move_list! macro to help with verifying move lists --- position/src/lib.rs | 4 ++++ position/src/tests.rs | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 position/src/tests.rs diff --git a/position/src/lib.rs b/position/src/lib.rs index 015b10b..9c58540 100644 --- a/position/src/lib.rs +++ b/position/src/lib.rs @@ -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}; diff --git a/position/src/tests.rs b/position/src/tests.rs new file mode 100644 index 0000000..8663afa --- /dev/null +++ b/position/src/tests.rs @@ -0,0 +1,19 @@ +// Eryn Wells + +#[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::>() + ) + }; +}