Browse Source

Added avx/no-avx runs to every Vector API based test

pull/1864/head
Dmitry Pentin 5 years ago
parent
commit
9ec9b5a987
  1. 87
      tests/ImageSharp.Tests/Formats/Jpg/JpegColorConverterTests.cs

87
tests/ImageSharp.Tests/Formats/Jpg/JpegColorConverterTests.cs

@ -9,7 +9,7 @@ using SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder;
using SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.ColorConverters; using SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.ColorConverters;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.Tests.Colorspaces.Conversion; using SixLabors.ImageSharp.Tests.Colorspaces.Conversion;
using SixLabors.ImageSharp.Tests.TestUtilities;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
@ -64,6 +64,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
var converter = JpegColorConverterBase.GetConverter(colorSpace, precision); var converter = JpegColorConverterBase.GetConverter(colorSpace, precision);
Assert.NotNull(converter); Assert.NotNull(converter);
Assert.True(converter.IsAvailable);
Assert.Equal(colorSpace, converter.ColorSpace); Assert.Equal(colorSpace, converter.ColorSpace);
Assert.Equal(precision, converter.Precision); Assert.Equal(precision, converter.Precision);
} }
@ -76,8 +77,9 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
[InlineData(JpegColorSpace.YCbCr, 3)] [InlineData(JpegColorSpace.YCbCr, 3)]
internal void ConvertWithSelectedConverter(JpegColorSpace colorSpace, int componentCount) internal void ConvertWithSelectedConverter(JpegColorSpace colorSpace, int componentCount)
{ {
var converter = JpegColorConverterBase.GetConverter(colorSpace, 8);
ValidateConversion( ValidateConversion(
colorSpace, converter,
componentCount, componentCount,
1); 1);
} }
@ -105,10 +107,16 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
return; return;
} }
ValidateConversion( FeatureTestRunner.RunWithHwIntrinsicsFeature(
converter, RunTest,
3, seed,
seed); HwIntrinsics.AllowAll | HwIntrinsics.DisableAVX);
static void RunTest(string arg) =>
ValidateConversion(
new JpegColorConverterBase.FromYCbCrVector(8),
3,
FeatureTestRunner.Deserialize<int>(arg));
} }
#if SUPPORTS_RUNTIME_INTRINSICS #if SUPPORTS_RUNTIME_INTRINSICS
@ -155,10 +163,16 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
return; return;
} }
ValidateConversion( FeatureTestRunner.RunWithHwIntrinsicsFeature(
converter, RunTest,
4, seed,
seed); HwIntrinsics.AllowAll | HwIntrinsics.DisableAVX);
static void RunTest(string arg) =>
ValidateConversion(
new JpegColorConverterBase.FromCmykVector(8),
4,
FeatureTestRunner.Deserialize<int>(arg));
} }
#if SUPPORTS_RUNTIME_INTRINSICS #if SUPPORTS_RUNTIME_INTRINSICS
@ -205,10 +219,16 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
return; return;
} }
ValidateConversion( FeatureTestRunner.RunWithHwIntrinsicsFeature(
converter, RunTest,
1, seed,
seed); HwIntrinsics.AllowAll | HwIntrinsics.DisableAVX);
static void RunTest(string arg) =>
ValidateConversion(
new JpegColorConverterBase.FromGrayScaleVector(8),
1,
FeatureTestRunner.Deserialize<int>(arg));
} }
#if SUPPORTS_RUNTIME_INTRINSICS #if SUPPORTS_RUNTIME_INTRINSICS
@ -255,10 +275,16 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
return; return;
} }
ValidateConversion( FeatureTestRunner.RunWithHwIntrinsicsFeature(
converter, RunTest,
3, seed,
seed); HwIntrinsics.AllowAll | HwIntrinsics.DisableAVX);
static void RunTest(string arg) =>
ValidateConversion(
new JpegColorConverterBase.FromRgbVector(8),
3,
FeatureTestRunner.Deserialize<int>(arg));
} }
#if SUPPORTS_RUNTIME_INTRINSICS #if SUPPORTS_RUNTIME_INTRINSICS
@ -305,10 +331,16 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
return; return;
} }
ValidateConversion( FeatureTestRunner.RunWithHwIntrinsicsFeature(
converter, RunTest,
4, seed,
seed); HwIntrinsics.AllowAll | HwIntrinsics.DisableAVX);
static void RunTest(string arg) =>
ValidateConversion(
new JpegColorConverterBase.FromYccKVector(8),
4,
FeatureTestRunner.Deserialize<int>(arg));
} }
#if SUPPORTS_RUNTIME_INTRINSICS #if SUPPORTS_RUNTIME_INTRINSICS
@ -361,17 +393,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
return new JpegColorConverterBase.ComponentValues(buffers, 0); return new JpegColorConverterBase.ComponentValues(buffers, 0);
} }
private static void ValidateConversion(
JpegColorSpace colorSpace,
int componentCount,
int seed)
{
ValidateConversion(
JpegColorConverterBase.GetConverter(colorSpace, 8),
componentCount,
seed);
}
private static void ValidateConversion( private static void ValidateConversion(
JpegColorConverterBase converter, JpegColorConverterBase converter,
int componentCount, int componentCount,

Loading…
Cancel
Save