From c3a3ff1be15fc2f9f0f7a3b2715af4344ce9470b Mon Sep 17 00:00:00 2001 From: arnaudlabourel <arnaud.labourel@univ-amu.fr> Date: Tue, 24 Oct 2023 17:25:24 +0200 Subject: [PATCH] added test --- src/main/java/firefighter/model/Board.java | 8 +++++ .../firefighter/model/FirefighterBoard.java | 10 +++++++ .../model/FirefighterBoardTest.java | 29 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 src/test/java/firefighter/model/FirefighterBoardTest.java diff --git a/src/main/java/firefighter/model/Board.java b/src/main/java/firefighter/model/Board.java index df5996d..e53a9dd 100644 --- a/src/main/java/firefighter/model/Board.java +++ b/src/main/java/firefighter/model/Board.java @@ -19,6 +19,14 @@ public interface Board<S> { */ S getState(Position position); + /** + * Set the state of a specific position on the board to the specified state. + * + * @param state The state to set for the given position. + * @param position The position on the board for which to set the state. + */ + void setState(S state, Position position); + /** * Get the number of rows in the board. * diff --git a/src/main/java/firefighter/model/FirefighterBoard.java b/src/main/java/firefighter/model/FirefighterBoard.java index ac7d33b..925a162 100644 --- a/src/main/java/firefighter/model/FirefighterBoard.java +++ b/src/main/java/firefighter/model/FirefighterBoard.java @@ -140,4 +140,14 @@ public class FirefighterBoard implements Board<List<ModelElement>> { } return position; } + + @Override + public void setState(List<ModelElement> state, Position position) { + for(ModelElement element : state){ + switch (element){ + case FIRE -> firePositions.add(position); + case FIREFIGHTER -> firefighterPositions.add(position); + } + } + } } \ No newline at end of file diff --git a/src/test/java/firefighter/model/FirefighterBoardTest.java b/src/test/java/firefighter/model/FirefighterBoardTest.java new file mode 100644 index 0000000..a9b794c --- /dev/null +++ b/src/test/java/firefighter/model/FirefighterBoardTest.java @@ -0,0 +1,29 @@ +package firefighter.model; + +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.*; + +public class FirefighterBoardTest { + @Test + void testColumnCount(){ + Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + assertThat(board.columnCount()).isEqualTo(20); + } + @Test + void testRowCount(){ + Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + assertThat(board.rowCount()).isEqualTo(10); + } + @Test + void testStepNumber(){ + Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + for(int index = 0; index < 10; index++){ + assertThat(board.stepNumber()).isEqualTo(index); + board.updateToNextGeneration(); + } + assertThat(board.stepNumber()).isEqualTo(10); + } +} -- GitLab