Replace uses of types in r#move with types from the moves package types
This commit is contained in:
parent
aaad991899
commit
d668091d0d
16 changed files with 273 additions and 280 deletions
|
@ -58,13 +58,14 @@ impl MoveGeneratorInternal for KingMoveGenerator {
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::{assert_move_list, position, test_position, Move, MoveBuilder, PositionBuilder};
|
||||
use crate::{assert_move_list, position, test_position, testing::*, PositionBuilder};
|
||||
use chessfriend_bitboard::bitboard;
|
||||
use chessfriend_core::{piece, Color, Square};
|
||||
use chessfriend_moves::{Builder as MoveBuilder, Castle, Move};
|
||||
use std::collections::HashSet;
|
||||
|
||||
#[test]
|
||||
fn one_king() {
|
||||
fn one_king() -> TestResult {
|
||||
let pos = position![White King on E4];
|
||||
|
||||
let generator = KingMoveGenerator::new(&pos, Color::White, BitBoard::FULL, BitBoard::FULL);
|
||||
|
@ -74,24 +75,27 @@ mod tests {
|
|||
bitboard![E5, F5, F4, F3, E3, D3, D4, D5]
|
||||
);
|
||||
|
||||
let builder = MoveBuilder::push(&piece!(White King on E4));
|
||||
let expected_moves: HashSet<Move> = HashSet::from_iter([
|
||||
MoveBuilder::new(piece!(White King), Square::E4, Square::D5).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::E4, Square::E5).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::E4, Square::F5).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::E4, Square::F4).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::E4, Square::F3).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::E4, Square::E3).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::E4, Square::D3).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::E4, Square::D4).build(),
|
||||
builder.clone().to(Square::D5).build()?,
|
||||
builder.clone().to(Square::E5).build()?,
|
||||
builder.clone().to(Square::F5).build()?,
|
||||
builder.clone().to(Square::F4).build()?,
|
||||
builder.clone().to(Square::F3).build()?,
|
||||
builder.clone().to(Square::E3).build()?,
|
||||
builder.clone().to(Square::D3).build()?,
|
||||
builder.clone().to(Square::D4).build()?,
|
||||
]);
|
||||
|
||||
let generated_moves: HashSet<Move> = generator.iter().collect();
|
||||
|
||||
assert_move_list!(generated_moves, expected_moves, pos);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn one_king_corner() {
|
||||
fn one_king_corner() -> TestResult {
|
||||
let pos = position![White King on A1];
|
||||
|
||||
let generator = KingMoveGenerator::new(&pos, Color::White, BitBoard::FULL, BitBoard::FULL);
|
||||
|
@ -104,13 +108,14 @@ mod tests {
|
|||
"Generated:\n{generated_bitboard}\nExpected:\n{expected_bitboard}"
|
||||
);
|
||||
|
||||
let builder = MoveBuilder::push(&piece!(White King on A1));
|
||||
let expected_moves = [
|
||||
MoveBuilder::new(piece!(White King), Square::A1, Square::A2).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::A1, Square::B1).build(),
|
||||
MoveBuilder::new(piece!(White King), Square::A1, Square::B2).build(),
|
||||
builder.clone().to(Square::A2).build()?,
|
||||
builder.clone().to(Square::B1).build()?,
|
||||
builder.clone().to(Square::B2).build()?,
|
||||
];
|
||||
|
||||
let mut generated_moves: HashSet<Move> = generator.iter().collect();
|
||||
let mut generated_moves: HashSet<_> = generator.iter().collect();
|
||||
|
||||
for ex_move in expected_moves {
|
||||
assert!(
|
||||
|
@ -125,6 +130,8 @@ mod tests {
|
|||
"Moves unexpectedly present: {:#?}",
|
||||
generated_moves
|
||||
);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -161,16 +168,8 @@ mod tests {
|
|||
let generated_moves: HashSet<Move> = generator.iter().collect();
|
||||
|
||||
let king = piece!(White King);
|
||||
assert!(generated_moves.contains(
|
||||
&MoveBuilder::new(king, Square::E1, Square::G1)
|
||||
.castle(Castle::KingSide)
|
||||
.build()
|
||||
));
|
||||
assert!(generated_moves.contains(
|
||||
&MoveBuilder::new(king, Square::E1, Square::C1)
|
||||
.castle(Castle::QueenSide)
|
||||
.build()
|
||||
));
|
||||
assert!(generated_moves.contains(&MoveBuilder::castling(Castle::KingSide).build()));
|
||||
assert!(generated_moves.contains(&MoveBuilder::castling(Castle::QueenSide).build()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -189,16 +188,8 @@ mod tests {
|
|||
let generated_moves: HashSet<Move> = generator.iter().collect();
|
||||
|
||||
let king = piece!(White King);
|
||||
assert!(generated_moves.contains(
|
||||
&MoveBuilder::new(king, Square::E1, Square::G1)
|
||||
.castle(Castle::KingSide)
|
||||
.build()
|
||||
));
|
||||
assert!(!generated_moves.contains(
|
||||
&MoveBuilder::new(king, Square::E1, Square::C1)
|
||||
.castle(Castle::QueenSide)
|
||||
.build()
|
||||
));
|
||||
assert!(generated_moves.contains(&MoveBuilder::castling(Castle::KingSide).build()));
|
||||
assert!(!generated_moves.contains(&MoveBuilder::castling(Castle::QueenSide).build()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -217,15 +208,7 @@ mod tests {
|
|||
let generated_moves: HashSet<Move> = generator.iter().collect();
|
||||
|
||||
let king = piece!(White King);
|
||||
assert!(!generated_moves.contains(
|
||||
&MoveBuilder::new(king, Square::E1, Square::G1)
|
||||
.castle(Castle::KingSide)
|
||||
.build()
|
||||
));
|
||||
assert!(generated_moves.contains(
|
||||
&MoveBuilder::new(king, Square::E1, Square::C1)
|
||||
.castle(Castle::QueenSide)
|
||||
.build()
|
||||
));
|
||||
assert!(!generated_moves.contains(&MoveBuilder::castling(Castle::KingSide).build()));
|
||||
assert!(generated_moves.contains(&MoveBuilder::castling(Castle::QueenSide).build()));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue