Browse Source

Additional png decoder tests for average filter

pull/2028/head
Brian Popow 4 years ago
parent
commit
e1f96f2647
  1. 4
      tests/ImageSharp.Benchmarks/Codecs/Png/DecodeFilteredPng.cs
  2. 11
      tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs
  3. 6
      tests/ImageSharp.Tests/TestImages.cs

4
tests/ImageSharp.Benchmarks/Codecs/Png/DecodeFilteredPng.cs

@ -26,8 +26,8 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs
this.filter1 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter1));
this.filter2 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter2));
this.filter3 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter4));
this.averageFilter3bpp = File.ReadAllBytes(TestImageFullPath(TestImages.Png.AverageFilter3bpp));
this.averageFilter4bpp = File.ReadAllBytes(TestImageFullPath(TestImages.Png.AverageFilter4bpp));
this.averageFilter3bpp = File.ReadAllBytes(TestImageFullPath(TestImages.Png.AverageFilter3BytesPerPixel));
this.averageFilter4bpp = File.ReadAllBytes(TestImageFullPath(TestImages.Png.AverageFilter4BytesPerPixel));
}
[Benchmark(Baseline = true, Description = "None-filtered PNG file")]

11
tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs

@ -111,6 +111,17 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
image.CompareToOriginal(provider, ImageComparer.Exact);
}
[Theory]
[WithFile(TestImages.Png.AverageFilter3BytesPerPixel, PixelTypes.Rgba64)]
[WithFile(TestImages.Png.AverageFilter4BytesPerPixel, PixelTypes.Rgba64)]
public void Decode_WithAverageFilter<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : unmanaged, IPixel<TPixel>
{
using Image<TPixel> image = provider.GetImage(PngDecoder);
image.DebugSave(provider);
image.CompareToOriginal(provider, ImageComparer.Exact);
}
[Theory]
[WithFile(TestImages.Png.GrayA8Bit, PixelTypes.Rgba32)]
[WithFile(TestImages.Png.Gray1BitTrans, PixelTypes.Rgba32)]

6
tests/ImageSharp.Tests/TestImages.cs

@ -68,10 +68,10 @@ namespace SixLabors.ImageSharp.Tests
public const string Filter0 = "Png/filter0.png";
public const string Filter1 = "Png/filter1.png";
public const string Filter2 = "Png/filter2.png";
public const string AverageFilter3bpp = "Png/filter3.png";
public const string AverageFilter3BytesPerPixel = "Png/filter3.png";
public const string Filter4 = "Png/filter4.png";
public const string AverageFilter4bpp = "Png/AverageFilter4Bpp.png";
public const string AverageFilter4BytesPerPixel = "Png/AverageFilter4Bpp.png";
// Paletted images also from http://www.schaik.com/pngsuite/pngsuite_fil_png.html
public const string PalettedTwoColor = "Png/basn3p01.png";
@ -161,7 +161,7 @@ namespace SixLabors.ImageSharp.Tests
{
P1, Pd, Blur, Splash, Cross,
Powerpoint, SplashInterlaced, Interlaced,
Filter0, Filter1, Filter2, AverageFilter3bpp, Filter4,
Filter0, Filter1, Filter2, AverageFilter3BytesPerPixel, Filter4,
FilterVar, VimImage1, VimImage2, VersioningImage1,
VersioningImage2, Ratio4x1, Ratio1x4
};

Loading…
Cancel
Save