From 878b3802fdb7dfabe1984ad86344f8db4bc9e716 Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Tue, 15 Aug 2017 20:20:58 +0200 Subject: [PATCH] looks like ApplyOilPaintFilterInBox() is failing with a very good reason --- .../Processors/Effects/OilPaintTest.cs | 4 ++-- .../ImagePixelsAreDifferentException.cs | 17 ++++++++++++++++- .../ImageComparison/ImageSimilarityReport.cs | 2 +- .../TestUtilities/PixelTypes.cs | 1 - .../TestUtilities/Tests/ImageComparerTests.cs | 11 +++++++++-- 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/tests/ImageSharp.Tests/Processing/Processors/Effects/OilPaintTest.cs b/tests/ImageSharp.Tests/Processing/Processors/Effects/OilPaintTest.cs index eb7652d9f..9deaaf126 100644 --- a/tests/ImageSharp.Tests/Processing/Processors/Effects/OilPaintTest.cs +++ b/tests/ImageSharp.Tests/Processing/Processors/Effects/OilPaintTest.cs @@ -22,7 +22,7 @@ namespace ImageSharp.Tests.Processing.Processors.Effects [Theory] [WithFileCollection(nameof(DefaultFiles), nameof(OilPaintValues), DefaultPixelType)] - public void ImageShouldApplyOilPaintFilter(TestImageProvider provider, int levels, int brushSize) + public void ApplyOilPaintFilter(TestImageProvider provider, int levels, int brushSize) where TPixel : struct, IPixel { using (Image image = provider.GetImage()) @@ -34,7 +34,7 @@ namespace ImageSharp.Tests.Processing.Processors.Effects [Theory] [WithFileCollection(nameof(DefaultFiles), nameof(OilPaintValues), DefaultPixelType)] - public void ImageShouldApplyOilPaintFilterInBox(TestImageProvider provider, int levels, int brushSize) + public void ApplyOilPaintFilterInBox(TestImageProvider provider, int levels, int brushSize) where TPixel : struct, IPixel { using (Image source = provider.GetImage()) diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImagePixelsAreDifferentException.cs b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImagePixelsAreDifferentException.cs index ec74cb7c3..1cf26e49b 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImagePixelsAreDifferentException.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImagePixelsAreDifferentException.cs @@ -10,9 +10,24 @@ namespace ImageSharp.Tests.TestUtilities.ImageComparison public ImageSimilarityReport[] Reports { get; } public ImagePixelsAreDifferentException(IEnumerable reports) - : base("Images are not similar enough! See 'Reports' for more details! ") + : base("Images are not similar enough!" + StringifyReports(reports)) { this.Reports = reports.ToArray(); } + + private static string StringifyReports(IEnumerable reports) + { + StringBuilder sb = new StringBuilder(); + sb.Append(Environment.NewLine); + + int i = 0; + foreach (ImageSimilarityReport r in reports) + { + sb.Append($"Report{i}: "); + sb.Append(r); + sb.Append(Environment.NewLine); + } + return sb.ToString(); + } } } \ No newline at end of file diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageSimilarityReport.cs b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageSimilarityReport.cs index fd0b26574..0740a7e82 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageSimilarityReport.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageSimilarityReport.cs @@ -29,7 +29,7 @@ { return this.IsEmpty ? "[SimilarImages]" : StringifyDifferences(this.Differences); } - + private static string StringifyDifferences(PixelDifference[] differences) { var sb = new StringBuilder(); diff --git a/tests/ImageSharp.Tests/TestUtilities/PixelTypes.cs b/tests/ImageSharp.Tests/TestUtilities/PixelTypes.cs index c4e0a0384..645a4dc59 100644 --- a/tests/ImageSharp.Tests/TestUtilities/PixelTypes.cs +++ b/tests/ImageSharp.Tests/TestUtilities/PixelTypes.cs @@ -60,7 +60,6 @@ namespace ImageSharp.Tests // TODO: Add multi-flag entries by rules defined in PackedPixelConverterHelper - Default = Rgba32, // "All" is handled as a separate, individual case instead of using bitwise OR All = 30 } diff --git a/tests/ImageSharp.Tests/TestUtilities/Tests/ImageComparerTests.cs b/tests/ImageSharp.Tests/TestUtilities/Tests/ImageComparerTests.cs index e61ef822a..8bb26ad17 100644 --- a/tests/ImageSharp.Tests/TestUtilities/Tests/ImageComparerTests.cs +++ b/tests/ImageSharp.Tests/TestUtilities/Tests/ImageComparerTests.cs @@ -115,10 +115,17 @@ namespace ImageSharp.Tests { using (Image clone = image.Clone()) { - ModifyPixel(clone, 0, 0, 2); + ModifyPixel(clone, 3, 1, 2); var comparer = ImageComparer.Tolerant(); - comparer.VerifySimilarity(image, clone); + + ImagePixelsAreDifferentException ex = Assert.ThrowsAny( + () => + { + comparer.VerifySimilarity(image, clone); + }); + PixelDifference diff = ex.Reports.Single().Differences.Single(); + Assert.Equal(new Point(3, 1), diff.Position); } } }