diff --git a/tests/ImageSharp.Tests/PixelFormats/PixelBlenders/PorterDuffCompositorTests.cs b/tests/ImageSharp.Tests/PixelFormats/PixelBlenders/PorterDuffCompositorTests.cs index 90b963f5c..f70fa0a2a 100644 --- a/tests/ImageSharp.Tests/PixelFormats/PixelBlenders/PorterDuffCompositorTests.cs +++ b/tests/ImageSharp.Tests/PixelFormats/PixelBlenders/PorterDuffCompositorTests.cs @@ -1,35 +1,37 @@ // Copyright (c) Six Labors and contributors. // Licensed under the Apache License, Version 2.0. -using SixLabors.ImageSharp.PixelFormats; -using SixLabors.ImageSharp.Processing; -using SixLabors.ImageSharp.Processing.Drawing; - -using Xunit; - namespace SixLabors.ImageSharp.Tests.PixelFormats.PixelBlenders { + using SixLabors.ImageSharp.PixelFormats; + using SixLabors.ImageSharp.Processing; + using SixLabors.ImageSharp.Processing.Drawing; + + using Xunit; + public class PorterDuffCompositorTests { // TODO: Add other modes to compare. - private static PixelBlenderMode[] CompositingOperators = - { - PixelBlenderMode.Src, - PixelBlenderMode.Atop, - PixelBlenderMode.Over, - PixelBlenderMode.In, - PixelBlenderMode.Out, - PixelBlenderMode.Dest, - PixelBlenderMode.DestAtop, - PixelBlenderMode.DestOver, - PixelBlenderMode.DestIn, - PixelBlenderMode.DestOut, - PixelBlenderMode.Clear, - PixelBlenderMode.Xor - }; + public static readonly TheoryData CompositingOperators = + new TheoryData + { + PixelBlenderMode.Src, + PixelBlenderMode.Atop, + PixelBlenderMode.Over, + PixelBlenderMode.In, + PixelBlenderMode.Out, + PixelBlenderMode.Dest, + PixelBlenderMode.DestAtop, + PixelBlenderMode.DestOver, + PixelBlenderMode.DestIn, + PixelBlenderMode.DestOut, + PixelBlenderMode.Clear, + PixelBlenderMode.Xor + }; - [Fact] - public void PorterDuffOutputIsCorrect() + [Theory] + [MemberData(nameof(CompositingOperators))] + public void PorterDuffOutputIsCorrect(PixelBlenderMode mode) { string path = TestEnvironment.CreateOutputDirectory("PorterDuff"); var srcFile = TestFile.Create(TestImages.Png.PDSrc); @@ -38,15 +40,12 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats.PixelBlenders using (Image src = srcFile.CreateImage()) using (Image dest = destFile.CreateImage()) { - foreach (PixelBlenderMode m in CompositingOperators) + using (Image res = dest.Clone(x => x.Blend(src, new GraphicsOptions { BlenderMode = mode }))) { - using (Image res = dest.Clone(x => x.Blend(src, new GraphicsOptions { BlenderMode = m }))) - { - // TODO: Generate reference files once this works. - res.Save($"{path}/{m}.png"); - } + // TODO: Generate reference files once this works. + res.Save($"{path}/{mode}.png"); } } } } -} +} \ No newline at end of file