From 1e777f595d99ce685a8dc6945a609fc2f9b4a476 Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Thu, 22 Feb 2018 18:26:01 +0100 Subject: [PATCH] fixed JpegEncoderTests --- .../Formats/Jpg/JpegEncoderTests.cs | 28 ++++++++++++------- tests/Images/External | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/tests/ImageSharp.Tests/Formats/Jpg/JpegEncoderTests.cs b/tests/ImageSharp.Tests/Formats/Jpg/JpegEncoderTests.cs index 10657ea78f..cc030bbf7c 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/JpegEncoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/JpegEncoderTests.cs @@ -15,6 +15,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison; using SixLabors.ImageSharp.Tests.TestUtilities.ReferenceCodecs; + using SixLabors.Primitives; using Xunit; using Xunit.Abstractions; @@ -55,20 +56,27 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg TestJpegEncoderCore(provider, subsample, quality); } - private static ImageComparer GetComparer(int quality) + /// + /// Anton's SUPER-SCIENTIFIC tolerance threshold calculation + /// + private static ImageComparer GetComparer(int quality, JpegSubsample subsample) { - if (quality > 90) - { - return ImageComparer.Tolerant(0.0005f / 100); - } - else if (quality > 50) + float tolerance = 0.015f; // ~1.5% + + if (quality < 50) { - return ImageComparer.Tolerant(0.005f / 100); + tolerance *= 10f; } - else + else if (quality < 75 || subsample == JpegSubsample.Ratio420) { - return ImageComparer.Tolerant(0.01f / 100); + tolerance *= 5f; + if (subsample == JpegSubsample.Ratio420) + { + tolerance *= 2f; + } } + + return ImageComparer.Tolerant(tolerance); } private static void TestJpegEncoderCore( @@ -88,7 +96,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg Quality = quality }; string info = $"{subsample}-Q{quality}"; - ImageComparer comparer = GetComparer(quality); + ImageComparer comparer = GetComparer(quality, subsample); // Does DebugSave & load reference CompareToReferenceInput(): image.VerifyEncoder(provider, "jpeg", info, encoder, comparer, referenceImageExtension: "png"); diff --git a/tests/Images/External b/tests/Images/External index d9c7d37074..20f83891ce 160000 --- a/tests/Images/External +++ b/tests/Images/External @@ -1 +1 @@ -Subproject commit d9c7d37074e112eabeccdde6381286f69b01b8b1 +Subproject commit 20f83891ce75597486f5532010a8c5dea1419a4d