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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. // Arrange: eine lebende Zellen
  19. Life l = new Life();
  20. l.setAlive(0, 0);
  21. // Act: Berechnung der Folgegeneration
  22. ILife nextGen = l.nextGeneration();
  23. // Assert: Rasterpunkt mit einem Nachbarn sollte sterben
  24. assertFalse(nextGen.isAlive(1, 1));
  25. }
  26. @Test
  27. public void keepAliveCell() {
  28. // Arrange: drei lebende Zellen
  29. Life l = new Life();
  30. l.setAlive(0, 0);
  31. l.setAlive(0, 1);
  32. l.setAlive(1, 1);
  33. // Act: Berechnung der Folgegeneration
  34. ILife nextGen = l.nextGeneration();
  35. // Assert: Rasterpunkt mit zwei Nachbarn sollte überleben
  36. assertTrue(nextGen.isAlive(1, 1));
  37. }
  38. @Test
  39. public void destroyCrowdedCell() {
  40. // Arrange: fünf lebende Zellen
  41. Life l = new Life();
  42. l.setAlive(0, 0);
  43. l.setAlive(0, 1);
  44. l.setAlive(0, 2);
  45. l.setAlive(1, 0);
  46. l.setAlive(1, 1);
  47. // Act: Berechnung der Folgegeneration
  48. ILife nextGen = l.nextGeneration();
  49. // Assert: Rasterpunkt mit mehr als drei Nachbarn sollte sterben
  50. assertFalse(nextGen.isAlive(1, 1));
  51. }
  52. }