[position] Move whole-module move_generator tests to a tests/ module
This commit is contained in:
parent
4a601c2b81
commit
6c14851806
3 changed files with 40 additions and 38 deletions
|
@ -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>>()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
3
position/src/move_generator/tests.rs
Normal file
3
position/src/move_generator/tests.rs
Normal file
|
@ -0,0 +1,3 @@
|
|||
// Eryn Wells <eryn@erynwells.me>
|
||||
|
||||
mod single_pieces;
|
36
position/src/move_generator/tests/single_pieces.rs
Normal file
36
position/src/move_generator/tests/single_pieces.rs
Normal 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>>()
|
||||
);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue