From c276b8b0cd6d5fbcccabfa104977088ded591297 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 21 Apr 2018 15:22:18 +0200 Subject: [PATCH] #542: add test for vertical gradient --- .../Drawing/FillLinearGradientBrushTests.cs | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/tests/ImageSharp.Tests/Drawing/FillLinearGradientBrushTests.cs b/tests/ImageSharp.Tests/Drawing/FillLinearGradientBrushTests.cs index 8946626bc..d1b253680 100644 --- a/tests/ImageSharp.Tests/Drawing/FillLinearGradientBrushTests.cs +++ b/tests/ImageSharp.Tests/Drawing/FillLinearGradientBrushTests.cs @@ -81,5 +81,47 @@ namespace SixLabors.ImageSharp.Tests.Drawing } } } + + [Fact] + public void VerticalLinearGradientBrushReturnsUnicolorColumns() + { + int width = 10; + int height = 500; + int lastRowIndex = height - 1; + + + string path = TestEnvironment.CreateOutputDirectory("Fill", "LinearGradientBrush"); + using (var image = new Image(width, height)) + { + LinearGradientBrush unicolorLinearGradientBrush = + new LinearGradientBrush( + new SixLabors.Primitives.Point(0, 0), + new SixLabors.Primitives.Point(0, 500), + new LinearGradientBrush.ColorStop(0, Rgba32.Red), + new LinearGradientBrush.ColorStop(1, Rgba32.Yellow)); + + image.Mutate(x => x.Fill(unicolorLinearGradientBrush)); + image.Save($"{path}/verticalRedToYellow.png"); + + using (PixelAccessor sourcePixels = image.Lock()) + { + Rgba32 columnColor23 = sourcePixels[0, 23]; + Rgba32 columnColor42 = sourcePixels[0, 42]; + Rgba32 columnColor333 = sourcePixels[0, 333]; + + for (int i = 0; i < width; i++) + { + // check first and last column, these are known: + Assert.Equal(Rgba32.Red, sourcePixels[i, 0]); + Assert.Equal(Rgba32.Yellow, sourcePixels[i, lastRowIndex]); + + // check the random colors: + Assert.Equal(columnColor23, sourcePixels[i, 23]); + Assert.Equal(columnColor42, sourcePixels[i, 42]); + Assert.Equal(columnColor333, sourcePixels[i, 333]); + } + } + } + } } } \ No newline at end of file