[position] Move whole-module move_generator tests to a tests/ module

This commit is contained in:
Eryn Wells 2024-02-03 10:05:11 -08:00
parent 4a601c2b81
commit 6c14851806
3 changed files with 40 additions and 38 deletions

View file

@ -7,6 +7,7 @@ mod move_set;
mod pawn;
mod queen;
mod rook;
mod tests;
pub(crate) use move_set::MoveSet;
@ -171,41 +172,3 @@ impl Moves {
.chain(self.king_moves.iter())
}
}
#[cfg(test)]
mod tests {
use crate::{position, r#move::AlgebraicMoveFormatter, Move, MoveBuilder};
use chessfriend_core::{piece, Square};
use std::collections::HashSet;
#[test]
fn one_king() {
let pos = position![
White King on D3,
Black King on H6,
];
let expected_moves = HashSet::from_iter([
MoveBuilder::new(piece!(White King), Square::D3, Square::D4).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::E4).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::E3).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::E2).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::D2).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::C2).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::C3).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::C4).build(),
]);
let generated_moves: HashSet<Move> = pos.moves().iter().collect();
assert_eq!(
generated_moves,
expected_moves,
"{:?}",
generated_moves
.symmetric_difference(&expected_moves)
.map(|m| format!("{}", AlgebraicMoveFormatter::new(&m, &pos)))
.collect::<Vec<String>>()
);
}
}

View file

@ -0,0 +1,3 @@
// Eryn Wells <eryn@erynwells.me>
mod single_pieces;

View file

@ -0,0 +1,36 @@
// Eryn Wells <eryn@erynwells.me>
use crate::{position, r#move::AlgebraicMoveFormatter, Move, MoveBuilder};
use chessfriend_core::{piece, Square};
use std::collections::HashSet;
#[test]
fn one_king() {
let pos = position![
White King on D3,
Black King on H6,
];
let expected_moves = HashSet::from_iter([
MoveBuilder::new(piece!(White King), Square::D3, Square::D4).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::E4).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::E3).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::E2).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::D2).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::C2).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::C3).build(),
MoveBuilder::new(piece!(White King), Square::D3, Square::C4).build(),
]);
let generated_moves: HashSet<Move> = pos.moves().iter().collect();
assert_eq!(
generated_moves,
expected_moves,
"{:?}",
generated_moves
.symmetric_difference(&expected_moves)
.map(|m| format!("{}", AlgebraicMoveFormatter::new(&m, &pos)))
.collect::<Vec<String>>()
);
}