From f4f84af2a8d9eecc86bfbb754d94cf5018367f34 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Thu, 16 Feb 2017 00:26:16 +1100 Subject: [PATCH] Better integration tests --- .../Processors/Filters/DitherTest.cs | 56 +++++++++++++------ 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/tests/ImageSharp.Tests/Processors/Filters/DitherTest.cs b/tests/ImageSharp.Tests/Processors/Filters/DitherTest.cs index db473901d..e89a1b1ec 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/DitherTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/DitherTest.cs @@ -14,64 +14,88 @@ namespace ImageSharp.Tests public class DitherTest : FileTestBase { - [Fact] - public void ImageShouldApplyDitherFilter() + public static readonly TheoryData Ditherers = new TheoryData + { + { "Ordered", new Ordered() }, + { "Bayer", new Bayer() } + }; + + public static readonly TheoryData ErrorDiffusers = new TheoryData + { + { "Atkinson", new Atkinson() }, + { "Burks", new Burks() }, + { "FloydSteinberg", new FloydSteinberg() }, + { "JarvisJudiceNinke", new JarvisJudiceNinke() }, + { "Sierra2", new Sierra2() }, + { "Sierra3", new Sierra3() }, + { "SierraLite", new SierraLite() }, + { "Stucki", new Stucki() }, + }; + + [Theory] + [MemberData(nameof(Ditherers))] + public void ImageShouldApplyDitherFilter(string name, IOrderedDither ditherer) { string path = this.CreateOutputDirectory("Dither", "Dither"); foreach (TestFile file in Files) { + string filename = file.GetFileName(name); using (Image image = file.CreateImage()) - using (FileStream output = File.OpenWrite($"{path}/{file.FileName}")) + using (FileStream output = File.OpenWrite($"{path}/{filename}")) { - image.Dither(new Bayer()).Save(output); + image.Dither(ditherer).Save(output); } } } - [Fact] - public void ImageShouldApplyDitherFilterInBox() + [Theory] + [MemberData(nameof(Ditherers))] + public void ImageShouldApplyDitherFilterInBox(string name, IOrderedDither ditherer) { string path = this.CreateOutputDirectory("Dither", "Dither"); foreach (TestFile file in Files) { - string filename = file.GetFileName("-InBox"); + string filename = file.GetFileName($"{name}-InBox"); using (Image image = file.CreateImage()) using (FileStream output = File.OpenWrite($"{path}/{filename}")) { - image.Dither(new Bayer(), new Rectangle(10, 10, image.Width / 2, image.Height / 2)).Save(output); + image.Dither(ditherer, new Rectangle(10, 10, image.Width / 2, image.Height / 2)).Save(output); } } } - [Fact] - public void ImageShouldApplyDiffusionFilter() + [Theory] + [MemberData(nameof(ErrorDiffusers))] + public void ImageShouldApplyDiffusionFilter(string name, IErrorDiffuser diffuser) { string path = this.CreateOutputDirectory("Dither", "Diffusion"); foreach (TestFile file in Files) { + string filename = file.GetFileName(name); using (Image image = file.CreateImage()) - using (FileStream output = File.OpenWrite($"{path}/{file.FileName}")) + using (FileStream output = File.OpenWrite($"{path}/{filename}")) { - image.Dither(new SierraLite(), .5F).Save(output); + image.Dither(diffuser, .5F).Save(output); } } } - [Fact] - public void ImageShouldApplyDiffusionFilterInBox() + [Theory] + [MemberData(nameof(ErrorDiffusers))] + public void ImageShouldApplyDiffusionFilterInBox(string name, IErrorDiffuser diffuser) { string path = this.CreateOutputDirectory("Dither", "Diffusion"); foreach (TestFile file in Files) { - string filename = file.GetFileName("-InBox"); + string filename = file.GetFileName($"{name}-InBox"); using (Image image = file.CreateImage()) using (FileStream output = File.OpenWrite($"{path}/{filename}")) { - image.Dither(new SierraLite(), .5F, new Rectangle(10, 10, image.Width / 2, image.Height / 2)).Save(output); + image.Dither(diffuser, .5F, new Rectangle(10, 10, image.Width / 2, image.Height / 2)).Save(output); } } }