public void Given_FibonacciNumber_When_CheckingIfIsFibonacciNumber_Expect_True() { // Arrange var fibonacciCheckerService = new FibonacciCheckerService(); const int fibonacciNumber = 3; // Act var isFibonacci = fibonacciCheckerService.IsFibonacci(fibonacciNumber); // Assert Assert.True(isFibonacci); }
public void Given_IsFibonacciBoolean_When_IncrementingValue_Expect_True() { // Arrange var fibonacciCheckerService = new FibonacciCheckerService(); var gridCell = new GridCell(fibonacciCheckerService); // Act gridCell.IncrementGridCellValue(1); // Assert Assert.IsTrue(gridCell.IsFibonacci); // Act gridCell.IncrementGridCellValue(4); // Assert Assert.IsTrue(gridCell.IsFibonacci); }
public void Given_CellCoordinate_When_HorizontalAndVerticalFibonacciNeighborsAreAboveThreshold_Expect_CorrectNeighborCells() { // Arrange var fibonacciCheckerService = new FibonacciCheckerService(); var fibonacciNeighborService = new FibonacciNeighborService(); var grid = new Grid(fibonacciCheckerService); var cellsToSetToTrue = GetVerticalCells(); cellsToSetToTrue.AddRange(GetHorizontalCells()); foreach (var(rowIndex, columnIndex) in cellsToSetToTrue) { var gridCell = grid.FibonacciGrid[rowIndex, columnIndex]; gridCell.IncrementGridCellValue(5); } var cellsToSetToFalse = new List <Tuple <int, int> > { Tuple.Create(20, 25), Tuple.Create(30, 25), Tuple.Create(25, 20), Tuple.Create(25, 30) }; foreach (var(rowIndex, columnIndex) in cellsToSetToFalse) { grid.FibonacciGrid[rowIndex, columnIndex].IncrementGridCellValue(4); } var cellToCheck = new List <Tuple <int, int> > { Tuple.Create(25, 25) }; // Act var neighbors = fibonacciNeighborService.FindNeighbors(grid, cellToCheck); var vertical = neighbors.First(); var horizontal = neighbors.Skip(1).First(); // Assert Assert.AreEqual(9, horizontal.Count); horizontal.ForEach(cell => Assert.AreEqual(5, cell.Value)); Assert.AreEqual(9, vertical.Count); vertical.ForEach(cell => Assert.AreEqual(5, cell.Value)); }