You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LifeTest.java 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import org.junit.Test;
  2. import static org.junit.Assert.*;
  3. public class LifeTest {
  4. @Test
  5. public void createNewCell() {
  6. // Arrange: drei lebende Zellen
  7. Life l = new Life();
  8. l.setAlive(0, 0);
  9. l.setAlive(0, 1);
  10. l.setAlive(0, 2);
  11. // Act: Berechnung der Folgegeneration
  12. ILife nextGen = l.nextGeneration();
  13. // Assert: Rasterpunkt mit drei Nachbarn sollte jetzt leben
  14. assertTrue(nextGen.isAlive(1, 1));
  15. }
  16. @Test
  17. public void destroyLonelyCell() {
  18. Life l = new Life();
  19. l.setAlive(0, 0);
  20. l.setAlive(0, 1);
  21. l.setAlive(0, 2);
  22. // Act: Berechnung der Folgegeneration
  23. ILife nextGen = l.nextGeneration();
  24. // Assert: Rasterpunkt mit einem Nachbar sollte jetzt sterben
  25. assertFalse(nextGen.isAlive(0, 2));
  26. }
  27. @Test
  28. public void keepAliveCell() {
  29. // Arrange: drei lebende Zellen
  30. Life l = new Life();
  31. l.setAlive(0, 0);
  32. l.setAlive(0, 1);
  33. l.setAlive(0, 2);
  34. // Act: Berechnung der Folgegeneration
  35. ILife nextGen = l.nextGeneration();
  36. // Assert: Rasterpunkt mit zwei Nachbarn sollte jetzt leben
  37. assertTrue(nextGen.isAlive(0, 1));
  38. }
  39. @Test
  40. public void destroyCrowdedCell() {
  41. // Arrange: fünf lebende Zellen
  42. Life l = new Life();
  43. l.setAlive(0, 0);
  44. l.setAlive(0, 1);
  45. l.setAlive(0, 2);
  46. l.setAlive(1, 1);
  47. l.setAlive(1, 0);
  48. // Act: Berechnung der Folgegeneration
  49. ILife nextGen = l.nextGeneration();
  50. // Assert: Rasterpunkt mit vier Nachbarn sollte jetzt sterben
  51. assertFalse(nextGen.isAlive(0, 1));
  52. }
  53. }