GameOfLifeAssigment/test/LifeTest.java

83 lines
2.1 KiB
Java
Raw Normal View History

2025-02-09 23:01:20 +01:00
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() {
// Zellen, die weniger als zwei Nachbarn haben, müssen sterben (Einsamkeit).
// Arrange: lebende Zelle (1,1) hat weniger als zwei Nachbarn und sollte sterben.
Life l = new Life();
l.setAlive(1, 1);
l.setAlive(0, 0);
// Act: Berechnung der Folgegeneration
ILife nextGen = l.nextGeneration();
// Assert: Zelle (1,1) sollte tot sein
assertFalse(nextGen.isAlive(1, 1));
2025-02-09 23:01:20 +01:00
}
@Test
public void keepAliveWithTwoNeighbours() {
Life l = new Life();
l.setAlive(1, 1);
l.setAlive(0, 0);
l.setAlive(0, 1);
ILife nextGen = l.nextGeneration();
assertTrue(nextGen.isAlive(1, 1));
}
@Test
public void keepAliveWithThreeNeighbours() {
Life l = new Life();
l.setAlive(1, 1);
l.setAlive(0, 0);
l.setAlive(0, 1);
l.setAlive(0, 2);
ILife nextGen = l.nextGeneration();
assertTrue(nextGen.isAlive(1, 1));
2025-02-09 23:01:20 +01:00
}
@Test
public void destroyCrowdedCell() {
// Zellen mit mehr als drei Nachbarn sterben (Überbevölkerung).
2025-02-16 16:08:03 +01:00
// Arrange: lebende Zelle (1,1) hat mehr als drei Nachbarn und sollte sterben.
Life l = new Life();
l.setAlive(1, 1);
l.setAlive(0, 0);
l.setAlive(0, 1);
l.setAlive(0, 2);
l.setAlive(1, 0);
// Act: Berechnung der Folgegeneration
ILife nextGen = l.nextGeneration();
// Assert: Zelle (1,1) sollte tot sein
assertFalse(nextGen.isAlive(1, 1));
2025-02-09 23:01:20 +01:00
}
}