diff --git a/.gitignore b/.gitignore index ea8c4bf..04dc301 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +tarpaulin-report.html \ No newline at end of file diff --git a/src/board.rs b/src/board.rs index e3596ea..57e7504 100644 --- a/src/board.rs +++ b/src/board.rs @@ -121,6 +121,20 @@ mod tests { use crate::board::{Boardfield, BoardfieldOps}; use crate::piece::{PieceColor, PieceType}; + #[test] + #[should_panic] + fn get_out_of_bounds() { + let field = Boardfield::startpos(); + field.get_pos(64); + } + + #[test] + #[should_panic] + fn set_out_of_bounds() { + let mut field = Boardfield::startpos(); + field.set_pos(64, 0u8); + } + #[test] fn bitfield_board() { let field = Boardfield::startpos(); diff --git a/src/main.rs b/src/main.rs index 1660215..1013d4c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,7 +4,9 @@ use std::sync::{Arc}; use crate::uci::{uci_handle_command, UCIState}; use spin::Mutex; +#[cfg(not(tarpaulin_include))] // UCI parse engine is not tested with tarpaulin, outer test harness is planned pub mod uci; + pub mod board; pub mod piece; @@ -12,6 +14,7 @@ pub const ENGINE_NAME: &str = "Bamboo"; pub const ENGINE_VERSION: &str = "1.0"; pub const ENGINE_AUTHOR: &str = "c0repwn3r"; +#[cfg(not(tarpaulin_include))] fn main() { println!("{} {} by {}", ENGINE_NAME, ENGINE_VERSION, ENGINE_AUTHOR); diff --git a/src/piece.rs b/src/piece.rs index 4500e66..95829b9 100644 --- a/src/piece.rs +++ b/src/piece.rs @@ -63,20 +63,32 @@ mod piece_tests { fn piece_color_checks() { assert!(!Piece::is_white(PieceType::Pawn as u8 | PieceColor::Black as u8)); assert!(Piece::is_white(PieceType::Pawn as u8 | PieceColor::White as u8)); + assert!(Piece::is_black(PieceType::Pawn as u8 | PieceColor::Black as u8)); + assert!(!Piece::is_black(PieceType::Pawn as u8 | PieceColor::White as u8)); assert!(!Piece::is_white(PieceType::Knight as u8 | PieceColor::Black as u8)); assert!(Piece::is_white(PieceType::Knight as u8 | PieceColor::White as u8)); + assert!(Piece::is_black(PieceType::Knight as u8 | PieceColor::Black as u8)); + assert!(!Piece::is_black(PieceType::Knight as u8 | PieceColor::White as u8)); assert!(!Piece::is_white(PieceType::Bishop as u8 | PieceColor::Black as u8)); assert!(Piece::is_white(PieceType::Bishop as u8 | PieceColor::White as u8)); + assert!(Piece::is_black(PieceType::Bishop as u8 | PieceColor::Black as u8)); + assert!(!Piece::is_black(PieceType::Bishop as u8 | PieceColor::White as u8)); assert!(!Piece::is_white(PieceType::Rook as u8 | PieceColor::Black as u8)); assert!(Piece::is_white(PieceType::Rook as u8 | PieceColor::White as u8)); + assert!(Piece::is_black(PieceType::Rook as u8 | PieceColor::Black as u8)); + assert!(!Piece::is_black(PieceType::Rook as u8 | PieceColor::White as u8)); assert!(!Piece::is_white(PieceType::Queen as u8 | PieceColor::Black as u8)); assert!(Piece::is_white(PieceType::Queen as u8 | PieceColor::White as u8)); + assert!(Piece::is_black(PieceType::Queen as u8 | PieceColor::Black as u8)); + assert!(!Piece::is_black(PieceType::Queen as u8 | PieceColor::White as u8)); assert!(!Piece::is_white(PieceType::King as u8 | PieceColor::Black as u8)); assert!(Piece::is_white(PieceType::King as u8 | PieceColor::White as u8)); + assert!(Piece::is_black(PieceType::King as u8 | PieceColor::Black as u8)); + assert!(!Piece::is_black(PieceType::King as u8 | PieceColor::White as u8)); } } \ No newline at end of file