public void NextGeneration_Reproduction_CellRevived() { // Arrange var neighbourCounterSvc = new NeighborCounterServiceBuilder() .CountReturns(3) // exactly three live neighbours .Build(); var oldGenGrid = new GridBuilder() .WithRows(1) .WithCols(1) .Build(); // Act var sut = _createTestSubject(neighbourCounterSvc); var newGenGrid = sut.NextGeneration(oldGenGrid); // Assert: Cell revived due to reproduction Assert.IsTrue(newGenGrid[0][0].IsAlive); }
public void NextGeneration_With3Neighbours_CellLives() { // Arrange var neighbourCounterSvc = new NeighborCounterServiceBuilder() .CountReturns(3) .Build(); var oldGenGrid = new GridBuilder() .WithRows(1) .WithCols(1) .WithActiveCell(1, 1) .Build(); // Act var sut = _createTestSubject(neighbourCounterSvc); var newGenGrid = sut.NextGeneration(oldGenGrid); // Assert Assert.IsTrue(newGenGrid[0][0].IsAlive); }
public void NextGeneration_Underpopulation_CellDies() { // Arrange var neighbourCounterSvc = new NeighborCounterServiceBuilder() .CountReturns(Faker.RandomNumber.Next(0, 1)) .Build(); var oldGenGrid = new GridBuilder() .WithRows(1) .WithCols(1) .WithActiveCell(1, 1) .Build(); // Act var sut = _createTestSubject(neighbourCounterSvc); var newGenGrid = sut.NextGeneration(oldGenGrid); // Assert: Died due to underpopulation Assert.IsFalse(newGenGrid[0][0].IsAlive); }