public void SetCellThrowsForOutOfInvalidPositions(int x, int y) { var grid = new TorusGrid(100, 100); var position = new Position(x, y); var gridCell = GetGridCell(); Assert.Throws <ArgumentOutOfRangeException>(() => grid.SetCell(position, gridCell)); }
public void OccupiedCellsReturnsAddedOrganisms() { var grid = new TorusGrid(100, 100); var cell1 = GetGridCell(); var position1 = new Position(30, 30); var cell2 = GetGridCell(); var position2 = new Position(10, 20); grid.SetCell(position1, cell1); grid.SetCell(position2, cell2); var occupiedCells = grid.GetOccupiedCells().ToList(); var expected = new List <(Position, GridCell)>(new[]
public void TorusGridTest() { for (int height = 2; height <= 8; height += 2) { for (int width = 2; width <= 8; width++) { Console.WriteLine($"size = {width}, {height}"); TorusGrid grid = new TorusGrid(width, height); Console.WriteLine($"mapsize = {grid.MapWidth}, {grid.MapHeight}"); Console.WriteLine("map :"); Console.WriteLine(grid.ToString()); Console.WriteLine("link :"); foreach ((int index, var link) in grid.Link) { Console.WriteLine($"{index} : {string.Join(',', link)}"); } Assert.IsTrue(GridValidationUtil.IsValid(grid), $"{width}, {height}"); Assert.AreEqual(width * height, grid.Count, $"count {width}, {height}"); Assert.AreEqual(6, grid[0].Links); Assert.AreEqual(6, grid[width - 1].Links); Assert.AreEqual(6, grid[width * height - width].Links); Assert.AreEqual(6, grid[width * height - 1].Links); Assert.AreEqual(0, grid.Cells.Where((cell) => cell.Links != 6).Count()); Console.WriteLine("---------------------------"); } } }