|
|
|
@ -40,6 +40,55 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
|
|
|
|
private ITestOutputHelper Output { get; } |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void GetConverterThrowsExceptionOnInvalidColorSpace() |
|
|
|
{ |
|
|
|
Assert.Throws<Exception>(() => JpegColorConverterBase.GetConverter(JpegColorSpace.Undefined, 8)); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void GetConverterThrowsExceptionOnInvalidPrecision() |
|
|
|
{ |
|
|
|
// Valid precisions: 8 & 12 bit
|
|
|
|
Assert.Throws<Exception>(() => JpegColorConverterBase.GetConverter(JpegColorSpace.YCbCr, 9)); |
|
|
|
} |
|
|
|
|
|
|
|
[Theory] |
|
|
|
[InlineData(JpegColorSpace.Grayscale, 8)] |
|
|
|
[InlineData(JpegColorSpace.Grayscale, 12)] |
|
|
|
[InlineData(JpegColorSpace.Ycck, 8)] |
|
|
|
[InlineData(JpegColorSpace.Ycck, 12)] |
|
|
|
[InlineData(JpegColorSpace.Cmyk, 8)] |
|
|
|
[InlineData(JpegColorSpace.Cmyk, 12)] |
|
|
|
[InlineData(JpegColorSpace.RGB, 8)] |
|
|
|
[InlineData(JpegColorSpace.RGB, 12)] |
|
|
|
[InlineData(JpegColorSpace.YCbCr, 8)] |
|
|
|
[InlineData(JpegColorSpace.YCbCr, 12)] |
|
|
|
internal void GetConverterReturnsValidConverter(JpegColorSpace colorSpace, int precision) |
|
|
|
{ |
|
|
|
var converter = JpegColorConverterBase.GetConverter(colorSpace, precision); |
|
|
|
|
|
|
|
Assert.NotNull(converter); |
|
|
|
Assert.Equal(colorSpace, converter.ColorSpace); |
|
|
|
Assert.Equal(precision, converter.Precision); |
|
|
|
} |
|
|
|
|
|
|
|
[Theory] |
|
|
|
[InlineData(JpegColorSpace.Grayscale, 1)] |
|
|
|
[InlineData(JpegColorSpace.Ycck, 4)] |
|
|
|
[InlineData(JpegColorSpace.Cmyk, 4)] |
|
|
|
[InlineData(JpegColorSpace.RGB, 3)] |
|
|
|
[InlineData(JpegColorSpace.YCbCr, 3)] |
|
|
|
internal void ConvertWithSelectedConverter(JpegColorSpace colorSpace, int componentCount) |
|
|
|
{ |
|
|
|
ValidateConversion( |
|
|
|
colorSpace, |
|
|
|
componentCount, |
|
|
|
40, |
|
|
|
40, |
|
|
|
1); |
|
|
|
} |
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromYCbCrBasic(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
@ -96,18 +145,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
} |
|
|
|
#endif
|
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromYCbCr_WithDefaultConverter(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
{ |
|
|
|
ValidateConversion( |
|
|
|
JpegColorSpace.YCbCr, |
|
|
|
3, |
|
|
|
inputBufferLength, |
|
|
|
resultBufferLength, |
|
|
|
seed); |
|
|
|
} |
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromCmykBasic(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
@ -164,18 +201,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
} |
|
|
|
#endif
|
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromCmyk_WithDefaultConverter(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
{ |
|
|
|
ValidateConversion( |
|
|
|
JpegColorSpace.Cmyk, |
|
|
|
4, |
|
|
|
inputBufferLength, |
|
|
|
resultBufferLength, |
|
|
|
seed); |
|
|
|
} |
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromGrayscaleBasic(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
@ -232,18 +257,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
} |
|
|
|
#endif
|
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromGraysacle_WithDefaultConverter(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
{ |
|
|
|
ValidateConversion( |
|
|
|
JpegColorSpace.Grayscale, |
|
|
|
1, |
|
|
|
inputBufferLength, |
|
|
|
resultBufferLength, |
|
|
|
seed); |
|
|
|
} |
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromRgbBasic(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
@ -300,18 +313,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
} |
|
|
|
#endif
|
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromRgb_WithDefaultConverter(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
{ |
|
|
|
ValidateConversion( |
|
|
|
JpegColorSpace.RGB, |
|
|
|
3, |
|
|
|
inputBufferLength, |
|
|
|
resultBufferLength, |
|
|
|
seed); |
|
|
|
} |
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromYccKBasic(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
@ -368,18 +369,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
} |
|
|
|
#endif
|
|
|
|
|
|
|
|
[Theory] |
|
|
|
[MemberData(nameof(CommonConversionData))] |
|
|
|
public void FromYcck_WithDefaultConverter(int inputBufferLength, int resultBufferLength, int seed) |
|
|
|
{ |
|
|
|
ValidateConversion( |
|
|
|
JpegColorSpace.Ycck, |
|
|
|
4, |
|
|
|
inputBufferLength, |
|
|
|
resultBufferLength, |
|
|
|
seed); |
|
|
|
} |
|
|
|
|
|
|
|
private static JpegColorConverterBase.ComponentValues CreateRandomValues( |
|
|
|
int componentCount, |
|
|
|
int inputBufferLength, |
|
|
|
|