public void ReadBiomeLayerTest(int index) { TLayer layer = _fixture.Layers[index]; var reader = new PNGMapLayerReader(layer.Bitmap, layer.MapLayerHeader); TMapLayer result = reader.ReadLayer(); Assert.Equal(layer.MapLayerHeader.Type, result.Type); Dictionary <string, TColor> dict = layer.MapLayerHeader.Colors.ToDictionary(col => col.Type, col => col.Color); for (int y = 0; y < layer.Bitmap.Height; y++) { for (int x = 0; x < layer.Bitmap.Width; x++) { var pixel = layer.Bitmap.GetPixel(x, y); var color = dict[result.GetValue(x, y)]; Assert.Equal(pixel.R, color.R); Assert.Equal(pixel.G, color.G); Assert.Equal(pixel.B, color.B); } } }
public MapLayerFixture() { int width = 10; int height = 11; var header = new TMapLayerHeader() { Type = DefinitionType.Biome, Colors = new TColorDefinition[] { new TColorDefinition() { Type = "biome0", Color = new TColor() { R = 0, G = 0, B = 0 } }, new TColorDefinition() { Type = "biome1", Color = new TColor() { R = 1, G = 2, B = 3 } }, new TColorDefinition() { Type = "biome2", Color = new TColor() { R = 2, G = 2, B = 3 } } } }; var bitmap = new Bitmap(width, height); bitmap.SetPixel(1, 1, Color.FromArgb(1, 2, 3)); bitmap.SetPixel(9, 9, Color.FromArgb(1, 2, 3)); bitmap.SetPixel(0, 0, Color.FromArgb(2, 2, 3)); bitmap.SetPixel(5, 6, Color.FromArgb(2, 2, 3)); BiomeLayer = new TLayer() { Bitmap = bitmap, MapLayerHeader = header }; header = new TMapLayerHeader() { Type = DefinitionType.Resource, Colors = new TColorDefinition[] { new TColorDefinition() { Type = "test0", Color = new TColor() { R = 0, G = 0, B = 0 } }, new TColorDefinition() { Type = "test1", Color = new TColor() { R = 1, G = 2, B = 3 } }, new TColorDefinition() { Type = "test2", Color = new TColor() { R = 2, G = 2, B = 3 } } } }; bitmap = new Bitmap(width, height); bitmap.SetPixel(3, 5, Color.FromArgb(1, 2, 3)); bitmap.SetPixel(2, 1, Color.FromArgb(1, 2, 3)); bitmap.SetPixel(1, 5, Color.FromArgb(2, 2, 3)); bitmap.SetPixel(4, 7, Color.FromArgb(2, 2, 3)); ResourceLayer = new TLayer() { Bitmap = bitmap, MapLayerHeader = header }; header = new TMapLayerHeader() { Type = DefinitionType.Biome, Colors = new TColorDefinition[] { new TColorDefinition() { Type = "test0", Color = new TColor() { R = 0, G = 0, B = 0 } }, new TColorDefinition() { Type = "test1", Color = new TColor() { R = 1, G = 2, B = 3 } }, new TColorDefinition() { Type = "test2", Color = new TColor() { R = 2, G = 2, B = 3 } } } }; bitmap = new Bitmap(width + 1, height); bitmap.SetPixel(1, 1, Color.FromArgb(1, 2, 3)); bitmap.SetPixel(9, 9, Color.FromArgb(1, 2, 3)); bitmap.SetPixel(0, 0, Color.FromArgb(2, 2, 3)); bitmap.SetPixel(5, 6, Color.FromArgb(2, 2, 3)); InvalidSizeLayer = new TLayer() { Bitmap = bitmap, MapLayerHeader = header }; }