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

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