[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 pawn;
|
||||||
mod queen;
|
mod queen;
|
||||||
mod rook;
|
mod rook;
|
||||||
|
mod tests;
|
||||||
|
|
||||||
pub(crate) use move_set::MoveSet;
|
pub(crate) use move_set::MoveSet;
|
||||||
|
|
||||||
|
@ -171,41 +172,3 @@ impl Moves {
|
||||||
.chain(self.king_moves.iter())
|
.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