import org.junit.Test; import static org.junit.Assert.*; public class LifeTest { @Test public void createNewCell() { // Arrange (drei lebende Zellen) Life l = new Life(); l.setAlive(0, 0); l.setAlive(0, 1); l.setAlive(0, 2); // Act (Berechnung der Folgegeneration) ILife nextGen = l.nextGeneration(); // Assert (Rasterpunkt mit drei Nachbarn sollte jetzt leben) assertTrue(nextGen.isAlive(1, 1)); } @Test public void destroyLonelyCell() { // Arrange (vier lebende Zellen) Life firstGen = new Life(); firstGen.setAlive(0, 0); firstGen.setAlive(0, 1); // Act (Berechnung der Folgegeneration) ILife nextGen = firstGen.nextGeneration(); // Assert (Rasterpunkt ohne Nachbarn sollte jetzt sterben) assertTrue(nextGen.isDead(0, 0)); assertTrue(nextGen.isDead(0, 1)); } @Test public void keepAliveCell() { // Arrange (drei lebende Zellen) Life firstGen = new Life(); firstGen.setAlive(1, 1); firstGen.setAlive(2, 2); firstGen.setAlive(3, 3); // Act (Berechnung der Folgegeneration) ILife nextGen = firstGen.nextGeneration(); // Assert (Rasterpunkt bleibt am Leben) assertTrue(nextGen.isAlive(2, 2)); } @Test public void destroyCrowdedCell() { // Arrange (drei lebende Zellen) Life firstGen = new Life(); firstGen.setAlive(0, 0); firstGen.setAlive(0, 1); firstGen.setAlive(0, 2); firstGen.setAlive(1, 0); firstGen.setAlive(1, 1); // Act (Berechnung der Folgegeneration) ILife nextGen = firstGen.nextGeneration(); // Assert (Rasterpunkt stirbt wegen Überbevölkerung) assertTrue(nextGen.isDead(0, 1)); assertTrue(nextGen.isDead(1, 1)); } }