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("---------------------------"); } } }
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("---------------------------"); } }
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("---------------------------"); } } }