Skip to content
Snippets Groups Projects
Commit d796df6f authored by Guyslain's avatar Guyslain
Browse files

Add tests for NextGenerationInitializer

parent 5ff138c7
No related branches found
No related tags found
No related merge requests found
package model;
import controller.Simulation;
import datastruct.Coordinate;
import model.automata.GameOfLifeAutomaton;
import model.automata.GameOfLifeState;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.Random;
import static model.automata.GameOfLifeState.ALIVE;
import static model.automata.GameOfLifeState.DEAD;
import static org.junit.jupiter.api.Assertions.*;
class NextGenerationInitializerTest {
private final CellularAutomatonSimulation<GameOfLifeState> simulation =
new CellularAutomatonSimulation<>(
new GameOfLifeAutomaton(4,3),
new Random()
);
private final NextGenerationInitializer<GameOfLifeState> initializer =
new NextGenerationInitializer<>(this.simulation);
@BeforeEach
public void prepareSimulation() {
GameOfLifeState[][] state =
{ { DEAD, DEAD, ALIVE, DEAD }
, { ALIVE, ALIVE, DEAD, DEAD }
, { DEAD, DEAD, DEAD, DEAD }
};
for (Coordinate coordinate : this.simulation) {
this.simulation.at(coordinate).set(state[coordinate.y()][coordinate.x()]);
}
}
@Test
void initialValueAt() {
assertEquals(DEAD, initializer.initialValueAt(Coordinate.of(0,1)));
assertEquals(ALIVE, initializer.initialValueAt(Coordinate.of(1,0)));
assertEquals(ALIVE, initializer.initialValueAt(Coordinate.of(1,1)));
assertEquals(ALIVE, initializer.initialValueAt(Coordinate.of(1,2)));
assertEquals(DEAD, initializer.initialValueAt(Coordinate.of(2,2)));
}
@Test
public void testWrapCoordinateInsideGrid() {
Coordinate coordinate = Coordinate.of(1, 1);
Coordinate wrapped = initializer.wrap(coordinate);
assertEquals(coordinate, wrapped);
}
@Test
public void testWrapCoordinateOutsideGrid() {
assertEquals(
Coordinate.of(0, 1),
initializer.wrap(Coordinate.of(4, 4))
);
assertEquals(
Coordinate.of(3, 2),
initializer.wrap(Coordinate.of(-1, 2))
);
assertEquals(
Coordinate.of(3, 2),
initializer.wrap(Coordinate.of(-1, -1))
); }
@Test
public void testModuloPositive() {
int result = NextGenerationInitializer.modulo(7, 4);
assertEquals(3, result);
}
@Test
public void testModuloNegative() {
int result = NextGenerationInitializer.modulo(-7, 4);
assertEquals(1, result);
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment