From f0530bf56a404bbe3be6a20b4748793b078d543c Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Mon, 27 Mar 2023 18:22:00 +0200 Subject: [PATCH] Add test for GetConverter with ycck color space which uses FeatureTestRunner to disable specific hw features --- .../Formats/Jpg/JpegColorConverterTests.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/ImageSharp.Tests/Formats/Jpg/JpegColorConverterTests.cs b/tests/ImageSharp.Tests/Formats/Jpg/JpegColorConverterTests.cs index dcb56e5714..8ede71a5c7 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/JpegColorConverterTests.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/JpegColorConverterTests.cs @@ -166,6 +166,35 @@ public class JpegColorConverterTests } } + [Fact] + public void GetConverterReturnsCorrectConverterWithYcckColorSpace() + { + FeatureTestRunner.RunWithHwIntrinsicsFeature( + RunTest, + HwIntrinsics.AllowAll | HwIntrinsics.DisableAVX2 | HwIntrinsics.DisableSSE2 | HwIntrinsics.DisableHWIntrinsic); + + static void RunTest(string arg) + { + // arrange + Type expectedType = typeof(JpegColorConverterBase.YccKScalar); + if (Avx.IsSupported) + { + expectedType = typeof(JpegColorConverterBase.YccKAvx); + } + else if (Sse2.IsSupported) + { + expectedType = typeof(JpegColorConverterBase.YccKVector); + } + + // act + JpegColorConverterBase converter = JpegColorConverterBase.GetConverter(JpegColorSpace.Ycck, 8); + Type actualType = converter.GetType(); + + // assert + Assert.Equal(expectedType, actualType); + } + } + [Theory] [InlineData(JpegColorSpace.Grayscale, 1)] [InlineData(JpegColorSpace.Ycck, 4)]