Ejemplo n.º 1
0
        public void RectGridTest()
        {
            for (int height = 1; height <= 8; height++)
            {
                for (int width = 1; width <= 8; width++)
                {
                    Console.WriteLine($"size = {width}, {height}");

                    RectGrid grid = new RectGrid(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}");

                    if (width >= 2 && height >= 2)
                    {
                        Assert.AreEqual(2, grid[0].Links);
                        Assert.AreEqual(3, grid[width - 1].Links);

                        if (height % 2 == 0)
                        {
                            Assert.AreEqual(3, grid[width * height - width].Links);
                            Assert.AreEqual(2, grid[width * height - 1].Links);
                        }
                        else
                        {
                            Assert.AreEqual(2, grid[width * height - width].Links);
                            Assert.AreEqual(3, grid[width * height - 1].Links);
                        }

                        Assert.AreEqual(2, grid.Cells.Where((cell) => cell.Links == 2).Count());
                    }

                    Console.WriteLine("---------------------------");
                }
            }
        }
Ejemplo n.º 2
0
        public void HexaGridTest()
        {
            for (int size = 1; size <= 16; size++)
            {
                Console.WriteLine($"size = {size}");

                HexaGrid grid = new HexaGrid(size);

                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), $"{size}");
                Assert.AreEqual(1 + size * (size - 1) / 2 * 6, grid.Count, $"{size}");

                if (size >= 2)
                {
                    Assert.AreEqual(3, grid[0].Links);
                    Assert.AreEqual(3, grid[size - 1].Links);
                    Assert.AreEqual(3, grid[grid.Count / 2 - size + 1].Links);
                    Assert.AreEqual(3, grid[grid.Count / 2 + size - 1].Links);
                    Assert.AreEqual(3, grid[grid.Count - size].Links);
                    Assert.AreEqual(3, grid[grid.Count - 1].Links);

                    Assert.AreEqual(0, grid.Cells.Where((cell) => cell.Links < 3 || cell.Links == 5).Count());
                    Assert.AreEqual(6, grid.Cells.Where((cell) => cell.Links == 3).Count());
                    Assert.AreEqual((size - 2) * 6, grid.Cells.Where((cell) => cell.Links == 4).Count());
                }

                Console.WriteLine("---------------------------");
            }
        }
Ejemplo n.º 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("---------------------------");
                }
            }
        }