//Bearbeitet von: Marie Trexler import org.junit.Test; import static org.junit.Assert.*; public class LifeTest { @Test public void nuke() { // Arrange: drei lebende Zellen Life l = new Life(); l.setAlive(0, 0); l.setAlive(0, 1); l.setAlive(0, 2); // Act: Alles wird ausgelöscht l.nukeAll(); // Assert: Alle Rasterpunkt sterben assertFalse(l.isAlive(0, 1)); } @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: 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 weniger als zwei Nachbarn soll sterben assertFalse(nextGen.isAlive(0, 2)); } @Test public void keepAliveCell() { // 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 mindestens zwei aber weniger als vier Nachbarn soll leben assertTrue(nextGen.isAlive(0, 1)); } @Test public void destroyCrowdedCell() { // Arrange: fünf lebende Zellen Life l = new Life(); l.setAlive(0, 0); l.setAlive(0, 1); l.setAlive(0, 2); l.setAlive(1, 1); l.setAlive(1, 0); // Act: Berechnung der Folgegeneration ILife nextGen = l.nextGeneration(); // Assert: Rasterpunkt mit mehr als drei Nachbarn soll sterben assertFalse(nextGen.isAlive(0, 1)); } }