Browse Source

Use configuration instance in tiff tests instead of changing the default config

pull/1570/head
Brian Popow 5 years ago
parent
commit
2f1f77597f
  1. 43
      tests/ImageSharp.Tests/Formats/Tiff/ImageExtensionsTest.cs
  2. 15
      tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs
  3. 47
      tests/ImageSharp.Tests/Formats/Tiff/TiffEncoderTests.cs
  4. 17
      tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs

43
tests/ImageSharp.Tests/Formats/Tiff/ImageExtensionsTest.cs

@ -13,12 +13,15 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
[Trait("Format", "Tiff")]
public class ImageExtensionsTest
{
private readonly Configuration configuration;
public ImageExtensionsTest()
{
Configuration.Default.ImageFormatsManager.AddImageFormat(TiffFormat.Instance);
Configuration.Default.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector());
Configuration.Default.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder());
Configuration.Default.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder());
this.configuration = new Configuration();
this.configuration.ImageFormatsManager.AddImageFormat(TiffFormat.Instance);
this.configuration.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector());
this.configuration.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder());
this.configuration.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder());
}
[Fact]
@ -27,12 +30,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageExtensionsTest));
string file = Path.Combine(dir, "SaveAsTiff_Path.tiff");
using (var image = new Image<Rgba32>(10, 10))
using (var image = new Image<Rgba32>(this.configuration, 10, 10))
{
image.SaveAsTiff(file);
}
using (Image.Load(file, out IImageFormat mime))
using (Image.Load(this.configuration, file, out IImageFormat mime))
{
Assert.Equal("image/tiff", mime.DefaultMimeType);
}
@ -44,12 +47,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageExtensionsTest));
string file = Path.Combine(dir, "SaveAsTiffAsync_Path.tiff");
using (var image = new Image<Rgba32>(10, 10))
using (var image = new Image<Rgba32>(this.configuration, 10, 10))
{
await image.SaveAsTiffAsync(file);
}
using (Image.Load(file, out IImageFormat mime))
using (Image.Load(this.configuration, file, out IImageFormat mime))
{
Assert.Equal("image/tiff", mime.DefaultMimeType);
}
@ -61,12 +64,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageExtensions));
string file = Path.Combine(dir, "SaveAsTiff_Path_Encoder.tiff");
using (var image = new Image<Rgba32>(10, 10))
using (var image = new Image<Rgba32>(this.configuration, 10, 10))
{
image.SaveAsTiff(file, new TiffEncoder());
}
using (Image.Load(file, out IImageFormat mime))
using (Image.Load(this.configuration, file, out IImageFormat mime))
{
Assert.Equal("image/tiff", mime.DefaultMimeType);
}
@ -78,12 +81,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageExtensions));
string file = Path.Combine(dir, "SaveAsTiffAsync_Path_Encoder.tiff");
using (var image = new Image<Rgba32>(10, 10))
using (var image = new Image<Rgba32>(this.configuration, 10, 10))
{
await image.SaveAsTiffAsync(file, new TiffEncoder());
}
using (Image.Load(file, out IImageFormat mime))
using (Image.Load(this.configuration, file, out IImageFormat mime))
{
Assert.Equal("image/tiff", mime.DefaultMimeType);
}
@ -94,14 +97,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
using var memoryStream = new MemoryStream();
using (var image = new Image<Rgba32>(10, 10))
using (var image = new Image<Rgba32>(this.configuration, 10, 10))
{
image.SaveAsTiff(memoryStream);
}
memoryStream.Position = 0;
using (Image.Load(memoryStream, out IImageFormat mime))
using (Image.Load(this.configuration, memoryStream, out IImageFormat mime))
{
Assert.Equal("image/tiff", mime.DefaultMimeType);
}
@ -112,14 +115,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
using var memoryStream = new MemoryStream();
using (var image = new Image<Rgba32>(10, 10))
using (var image = new Image<Rgba32>(this.configuration, 10, 10))
{
await image.SaveAsTiffAsync(memoryStream);
}
memoryStream.Position = 0;
using (Image.Load(memoryStream, out IImageFormat mime))
using (Image.Load(this.configuration, memoryStream, out IImageFormat mime))
{
Assert.Equal("image/tiff", mime.DefaultMimeType);
}
@ -130,14 +133,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
using var memoryStream = new MemoryStream();
using (var image = new Image<Rgba32>(10, 10))
using (var image = new Image<Rgba32>(this.configuration, 10, 10))
{
image.SaveAsTiff(memoryStream, new TiffEncoder());
}
memoryStream.Position = 0;
using (Image.Load(memoryStream, out IImageFormat mime))
using (Image.Load(this.configuration, memoryStream, out IImageFormat mime))
{
Assert.Equal("image/tiff", mime.DefaultMimeType);
}
@ -148,14 +151,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
using var memoryStream = new MemoryStream();
using (var image = new Image<Rgba32>(10, 10))
using (var image = new Image<Rgba32>(this.configuration, 10, 10))
{
await image.SaveAsTiffAsync(memoryStream, new TiffEncoder());
}
memoryStream.Position = 0;
using (Image.Load(memoryStream, out IImageFormat mime))
using (Image.Load(this.configuration, memoryStream, out IImageFormat mime))
{
Assert.Equal("image/tiff", mime.DefaultMimeType);
}

15
tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs

@ -28,11 +28,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
private static MagickReferenceDecoder ReferenceDecoder => new MagickReferenceDecoder();
private readonly Configuration configuration;
public TiffDecoderTests()
{
Configuration.Default.ImageFormatsManager.AddImageFormat(TiffFormat.Instance);
Configuration.Default.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector());
Configuration.Default.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder());
this.configuration = new Configuration();
this.configuration.ImageFormatsManager.AddImageFormat(TiffFormat.Instance);
this.configuration.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector());
this.configuration.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder());
}
[Theory]
@ -52,7 +55,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
var testFile = TestFile.Create(imagePath);
using (var stream = new MemoryStream(testFile.Bytes, false))
{
IImageInfo info = Image.Identify(stream);
IImageInfo info = Image.Identify(this.configuration, stream);
Assert.Equal(expectedPixelSize, info.PixelType?.BitsPerPixel);
Assert.Equal(expectedWidth, info.Width);
@ -72,14 +75,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
var testFile = TestFile.Create(imagePath);
using (var stream = new MemoryStream(testFile.Bytes, false))
{
IImageInfo info = Image.Identify(stream);
IImageInfo info = Image.Identify(this.configuration, stream);
Assert.NotNull(info.Metadata);
Assert.Equal(expectedByteOrder, info.Metadata.GetTiffMetadata().ByteOrder);
stream.Seek(0, SeekOrigin.Begin);
using var img = Image.Load(stream);
using var img = Image.Load(this.configuration, stream);
Assert.Equal(expectedByteOrder, img.Metadata.GetTiffMetadata().ByteOrder);
}
}

47
tests/ImageSharp.Tests/Formats/Tiff/TiffEncoderTests.cs

@ -21,20 +21,15 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
private static readonly IImageDecoder ReferenceDecoder = new MagickReferenceDecoder();
public static readonly TheoryData<string, TiffBitsPerPixel> TiffBitsPerPixelFiles =
new TheoryData<string, TiffBitsPerPixel>
{
{ Calliphora_BiColorUncompressed, TiffBitsPerPixel.Pixel1 },
{ GrayscaleUncompressed, TiffBitsPerPixel.Pixel8 },
{ RgbUncompressed, TiffBitsPerPixel.Pixel24 },
};
private readonly Configuration configuration;
public TiffEncoderTests()
{
Configuration.Default.ImageFormatsManager.AddImageFormat(TiffFormat.Instance);
Configuration.Default.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector());
Configuration.Default.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder());
Configuration.Default.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder());
this.configuration = new Configuration();
this.configuration.ImageFormatsManager.AddImageFormat(TiffFormat.Instance);
this.configuration.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector());
this.configuration.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder());
this.configuration.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder());
}
[Theory]
@ -70,20 +65,22 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
// assert
memStream.Position = 0;
using var output = Image.Load<Rgba32>(memStream);
using var output = Image.Load<Rgba32>(this.configuration, memStream);
TiffMetadata meta = output.Metadata.GetTiffMetadata();
Assert.Equal(expectedBitsPerPixel, meta.BitsPerPixel);
Assert.Equal(expectedCompression, meta.Compression);
}
[Theory]
[MemberData(nameof(TiffBitsPerPixelFiles))]
public void TiffEncoder_PreserveBitsPerPixel(string imagePath, TiffBitsPerPixel expectedBitsPerPixel)
[WithFile(Calliphora_BiColorUncompressed, PixelTypes.Rgba32, TiffBitsPerPixel.Pixel1)]
[WithFile(GrayscaleUncompressed, PixelTypes.Rgba32, TiffBitsPerPixel.Pixel8)]
[WithFile(RgbUncompressed, PixelTypes.Rgba32, TiffBitsPerPixel.Pixel24)]
public void TiffEncoder_PreserveBitsPerPixel<TPixel>(TestImageProvider<TPixel> provider, TiffBitsPerPixel expectedBitsPerPixel)
where TPixel : unmanaged, IPixel<TPixel>
{
// arrange
var tiffEncoder = new TiffEncoder();
var testFile = TestFile.Create(imagePath);
using Image<Rgba32> input = testFile.CreateRgba32Image();
using Image<TPixel> input = provider.GetImage();
using var memStream = new MemoryStream();
// act
@ -91,7 +88,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
// assert
memStream.Position = 0;
using var output = Image.Load<Rgba32>(memStream);
using var output = Image.Load<Rgba32>(this.configuration, memStream);
TiffMetadata meta = output.Metadata.GetTiffMetadata();
Assert.Equal(expectedBitsPerPixel, meta.BitsPerPixel);
}
@ -163,7 +160,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.None };
TiffEncoderPaletteTest(provider, encoder);
this.TiffEncoderPaletteTest(provider, encoder);
}
[Theory]
@ -173,7 +170,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.Deflate };
TiffEncoderPaletteTest(provider, encoder);
this.TiffEncoderPaletteTest(provider, encoder);
}
[Theory]
@ -183,7 +180,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.Deflate, UseHorizontalPredictor = true };
TiffEncoderPaletteTest(provider, encoder);
this.TiffEncoderPaletteTest(provider, encoder);
}
[Theory]
@ -193,7 +190,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.Lzw };
TiffEncoderPaletteTest(provider, encoder);
this.TiffEncoderPaletteTest(provider, encoder);
}
[Theory]
@ -203,7 +200,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.Lzw, UseHorizontalPredictor = true };
TiffEncoderPaletteTest(provider, encoder);
this.TiffEncoderPaletteTest(provider, encoder);
}
[Theory]
@ -213,10 +210,10 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
{
var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.PackBits };
TiffEncoderPaletteTest(provider, encoder);
this.TiffEncoderPaletteTest(provider, encoder);
}
private static void TiffEncoderPaletteTest<TPixel>(TestImageProvider<TPixel> provider, TiffEncoder encoder)
private void TiffEncoderPaletteTest<TPixel>(TestImageProvider<TPixel> provider, TiffEncoder encoder)
where TPixel : unmanaged, IPixel<TPixel>
{
// Because a quantizer is used to create the palette (and therefore changes to the original are expected),
@ -228,7 +225,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
image.Save(memStream, encoder);
memStream.Position = 0;
using var encodedImage = (Image<TPixel>)Image.Load(memStream);
using var encodedImage = (Image<TPixel>)Image.Load(this.configuration, memStream);
var encodedImagePath = provider.Utility.SaveTestOutputFile(encodedImage, "tiff", encoder);
TiffTestUtils.CompareWithReferenceDecoder(encodedImagePath, encodedImage);
}

17
tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs

@ -17,12 +17,15 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
[Trait("Format", "Tiff")]
public class TiffMetadataTests
{
private readonly Configuration configuration;
public TiffMetadataTests()
{
Configuration.Default.ImageFormatsManager.AddImageFormat(TiffFormat.Instance);
Configuration.Default.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector());
Configuration.Default.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder());
Configuration.Default.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder());
this.configuration = new Configuration();
this.configuration.ImageFormatsManager.AddImageFormat(TiffFormat.Instance);
this.configuration.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector());
this.configuration.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder());
this.configuration.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder());
}
[Fact]
@ -58,7 +61,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
var testFile = TestFile.Create(imagePath);
using var stream = new MemoryStream(testFile.Bytes, false);
IImageInfo imageInfo = Image.Identify(stream);
IImageInfo imageInfo = Image.Identify(this.configuration, stream);
Assert.NotNull(imageInfo);
TiffMetadata tiffMetadata = imageInfo.Metadata.GetTiffMetadata();
@ -79,7 +82,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
var testFile = TestFile.Create(imagePath);
using var stream = new MemoryStream(testFile.Bytes, false);
IImageInfo imageInfo = Image.Identify(stream);
IImageInfo imageInfo = Image.Identify(this.configuration, stream);
Assert.NotNull(imageInfo);
TiffMetadata tiffMetadata = imageInfo.Metadata.GetTiffMetadata();
@ -95,7 +98,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff
var testFile = TestFile.Create(imagePath);
using var stream = new MemoryStream(testFile.Bytes, false);
IImageInfo imageInfo = Image.Identify(stream);
IImageInfo imageInfo = Image.Identify(this.configuration, stream);
Assert.NotNull(imageInfo);
TiffMetadata tiffMetadata = imageInfo.Metadata.GetTiffMetadata();

Loading…
Cancel
Save