diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ExactImageComparer.cs b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ExactImageComparer.cs index 87725aec9..52f160ded 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ExactImageComparer.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ExactImageComparer.cs @@ -12,6 +12,7 @@ public class ExactImageComparer : ImageComparer public static ExactImageComparer Instance { get; } = new ExactImageComparer(); public override ImageSimilarityReport CompareImagesOrFrames( + int index, ImageFrame expected, ImageFrame actual) { @@ -52,6 +53,6 @@ public class ExactImageComparer : ImageComparer } } - return new ImageSimilarityReport(expected, actual, differences); + return new ImageSimilarityReport(index, expected, actual, differences); } } diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/Exceptions/ImageDifferenceIsOverThresholdException.cs b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/Exceptions/ImageDifferenceIsOverThresholdException.cs index b2fa7271a..33b7228ae 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/Exceptions/ImageDifferenceIsOverThresholdException.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/Exceptions/ImageDifferenceIsOverThresholdException.cs @@ -33,13 +33,11 @@ public class ImageDifferenceIsOverThresholdException : ImagesSimilarityException sb.AppendFormat("Test Environment is Mono : {0}", TestEnvironment.IsMono); sb.Append(Environment.NewLine); - int i = 0; foreach (ImageSimilarityReport r in reports) { - sb.Append($"Report ImageFrame {i}: "); + sb.AppendFormat("Report ImageFrame {0}: ", r.Index); sb.Append(r); sb.Append(Environment.NewLine); - i++; } return sb.ToString(); diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageComparer.cs b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageComparer.cs index 9a022a873..3de525964 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageComparer.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageComparer.cs @@ -27,6 +27,7 @@ public abstract class ImageComparer => Tolerant(imageThresholdInPercents / 100F, perPixelManhattanThreshold); public abstract ImageSimilarityReport CompareImagesOrFrames( + int index, ImageFrame expected, ImageFrame actual) where TPixelA : unmanaged, IPixel @@ -40,7 +41,7 @@ public static class ImageComparerExtensions Image expected, Image actual) where TPixelA : unmanaged, IPixel - where TPixelB : unmanaged, IPixel => comparer.CompareImagesOrFrames(expected.Frames.RootFrame, actual.Frames.RootFrame); + where TPixelB : unmanaged, IPixel => comparer.CompareImagesOrFrames(0, expected.Frames.RootFrame, actual.Frames.RootFrame); public static IEnumerable> CompareImages( this ImageComparer comparer, @@ -58,7 +59,7 @@ public static class ImageComparerExtensions for (int i = 0; i < expected.Frames.Count; i++) { - ImageSimilarityReport report = comparer.CompareImagesOrFrames(expected.Frames[i], actual.Frames[i]); + ImageSimilarityReport report = comparer.CompareImagesOrFrames(i, expected.Frames[i], actual.Frames[i]); if (!report.IsEmpty) { result.Add(report); @@ -125,7 +126,7 @@ public static class ImageComparerExtensions if (outsideChanges.Any()) { - cleanedReports.Add(new ImageSimilarityReport(r.ExpectedImage, r.ActualImage, outsideChanges, null)); + cleanedReports.Add(new ImageSimilarityReport(r.Index, r.ExpectedImage, r.ActualImage, outsideChanges, null)); } } diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageSimilarityReport.cs b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageSimilarityReport.cs index 8f441cc57..c50ae5e21 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageSimilarityReport.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageSimilarityReport.cs @@ -9,17 +9,21 @@ namespace SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison; public class ImageSimilarityReport { protected ImageSimilarityReport( + int index, object expectedImage, object actualImage, IEnumerable differences, float? totalNormalizedDifference = null) { + this.Index = index; this.ExpectedImage = expectedImage; this.ActualImage = actualImage; this.TotalNormalizedDifference = totalNormalizedDifference; this.Differences = differences.ToArray(); } + public int Index { get; } + public object ExpectedImage { get; } public object ActualImage { get; } @@ -89,16 +93,17 @@ public class ImageSimilarityReport : ImageSimilarityReport where TPixelB : unmanaged, IPixel { public ImageSimilarityReport( + int index, ImageFrame expectedImage, ImageFrame actualImage, IEnumerable differences, float? totalNormalizedDifference = null) - : base(expectedImage, actualImage, differences, totalNormalizedDifference) + : base(index, expectedImage, actualImage, differences, totalNormalizedDifference) { } public static ImageSimilarityReport Empty => - new ImageSimilarityReport(null, null, Enumerable.Empty(), 0f); + new ImageSimilarityReport(0, null, null, Enumerable.Empty(), 0f); public new ImageFrame ExpectedImage => (ImageFrame)base.ExpectedImage; diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/TolerantImageComparer.cs b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/TolerantImageComparer.cs index 793d7af33..c54113307 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageComparison/TolerantImageComparer.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageComparison/TolerantImageComparer.cs @@ -56,7 +56,7 @@ public class TolerantImageComparer : ImageComparer /// public int PerPixelManhattanThreshold { get; } - public override ImageSimilarityReport CompareImagesOrFrames(ImageFrame expected, ImageFrame actual) + public override ImageSimilarityReport CompareImagesOrFrames(int index, ImageFrame expected, ImageFrame actual) { if (expected.Size() != actual.Size()) { @@ -103,7 +103,7 @@ public class TolerantImageComparer : ImageComparer if (normalizedDifference > this.ImageThreshold) { - return new ImageSimilarityReport(expected, actual, differences, normalizedDifference); + return new ImageSimilarityReport(index, expected, actual, differences, normalizedDifference); } else {