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.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 Zelle
  19. Life l = new Life();
  20. l.setAlive(1, 1);
  21. //Act
  22. ILife nextGen = l.nextGeneration();
  23. //Assert: Zelle sollte jetzt tot sein
  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, 0);
  33. // Act: Berechnung der Folgegeneration
  34. ILife nextGen = l.nextGeneration();
  35. // Assert: Rasterpunkt mit zwei Nachbarn lebt noch
  36. assertTrue(nextGen.isAlive(0, 1));
  37. }
  38. @Test
  39. public void destroyCrowdedCell() {
  40. // Arrange: Zellblock
  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 vier Nachbarn ist tot
  50. assertFalse(nextGen.isAlive(1, 1));
  51. }
  52. }