From 5cd04f175b9318226395f5da6463dc60e74c3864 Mon Sep 17 00:00:00 2001 From: szymon Date: Tue, 11 Aug 2026 20:33:50 +0200 Subject: [PATCH] test: board creation test --- src/logic/board.rs | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/src/logic/board.rs b/src/logic/board.rs index 648c6f3..3919d50 100644 --- a/src/logic/board.rs +++ b/src/logic/board.rs @@ -26,12 +26,12 @@ impl Board { let position: Position = Position { row, column }; // first player's pawns - if row <= 3 && is_valid_place_for_a_pawn { + if row < 3 && is_valid_place_for_a_pawn { Field { position, pawn: Some(Pawn::new(position, &player1)), } - } else if row > size - 3 && row <= size && is_valid_place_for_a_pawn { + } else if row >= size - 3 && is_valid_place_for_a_pawn { Field { position, pawn: Some(Pawn::new(position, &player2)), @@ -91,14 +91,37 @@ mod tests { } } - assert!(test_board[0][0].pawn.is_none()); - assert!(test_board[0][1].pawn.is_some()); + for row in 0..size { + for column in 0..size { + let is_row_even: bool = row % 2 == 0; + let is_column_even: bool = column % 2 == 0; + let is_valid_place_for_a_pawn: bool = + (is_row_even ^ is_column_even) && (row < 3 || row >= size - 3); - // we unwrap, because some value has to be here, if it's not then something is wrong - // beside we check for that in the assert above - assert!( - test_board[0][1].pawn.as_ref().unwrap().state - == PawnState::Man(Position { row: 0, column: 1 }) - ); + if is_valid_place_for_a_pawn { + assert!(test_board[row][column].pawn.is_some()); + // we unwrap, because some value has to be here, if it's not then something is wrong + // beside we check for that in the assert above + assert!( + test_board[row][column].pawn.as_ref().unwrap().state + == PawnState::Man(Position { row, column }) + ); + + if row < 3 { + assert_eq!( + test_board[row][column].pawn.as_ref().unwrap().owner, + player1.id + ) + } else if row >= size - 3 { + assert_eq!( + test_board[row][column].pawn.as_ref().unwrap().owner, + player2.id + ) + } + } else { + assert!(test_board[row][column].pawn.is_none()); + } + } + } } }