Example #1
0
        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));
        }
Example #2
0
        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[]
Example #3
0
        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("---------------------------");
                }
            }
        }