Browse Source

Cleanup resize tests.

pull/73/head
James Jackson-South 9 years ago
parent
commit
17122c5a84
  1. 139
      tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs

139
tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs

@ -2,7 +2,6 @@
// Copyright (c) James Jackson-South and contributors. // Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
// </copyright> // </copyright>
namespace ImageSharp.Tests namespace ImageSharp.Tests
{ {
using System; using System;
@ -14,29 +13,31 @@ namespace ImageSharp.Tests
{ {
public static readonly TheoryData<string, IResampler> ReSamplers = public static readonly TheoryData<string, IResampler> ReSamplers =
new TheoryData<string, IResampler> new TheoryData<string, IResampler>
{ {
{ "Bicubic", new BicubicResampler() }, { "Bicubic", new BicubicResampler() },
{ "Triangle", new TriangleResampler() }, { "Triangle", new TriangleResampler() },
{ "NearestNeighbor", new NearestNeighborResampler() }, { "NearestNeighbor", new NearestNeighborResampler() },
// Perf: Enable for local testing only
//{ "Box", new BoxResampler() }, // Perf: Enable for local testing only
//{ "Lanczos3", new Lanczos3Resampler() }, // { "Box", new BoxResampler() },
//{ "Lanczos5", new Lanczos5Resampler() }, // { "Lanczos3", new Lanczos3Resampler() },
//{ "Lanczos8", new Lanczos8Resampler() }, // { "Lanczos5", new Lanczos5Resampler() },
{ "MitchellNetravali", new MitchellNetravaliResampler() }, { "MitchellNetravali", new MitchellNetravaliResampler() },
//{ "Hermite", new HermiteResampler() },
//{ "Spline", new SplineResampler() }, // { "Lanczos8", new Lanczos8Resampler() },
//{ "Robidoux", new RobidouxResampler() }, // { "Hermite", new HermiteResampler() },
//{ "RobidouxSharp", new RobidouxSharpResampler() }, // { "Spline", new SplineResampler() },
//{ "RobidouxSoft", new RobidouxSoftResampler() }, // { "Robidoux", new RobidouxResampler() },
//{ "Welch", new WelchResampler() } // { "RobidouxSharp", new RobidouxSharpResampler() },
}; // { "RobidouxSoft", new RobidouxSoftResampler() },
// { "Welch", new WelchResampler() }
};
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResize(string name, IResampler sampler) public void ImageShouldResize(string name, IResampler sampler)
{ {
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -46,19 +47,18 @@ namespace ImageSharp.Tests
using (FileStream output = File.OpenWrite($"{path}/{filename}")) using (FileStream output = File.OpenWrite($"{path}/{filename}"))
{ {
image.Resize(image.Width / 2, image.Height / 2, sampler, true) image.Resize(image.Width / 2, image.Height / 2, sampler, true)
//image.Resize(555, 275, sampler, false) .Save(output);
.Save(output);
} }
} }
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeWidthAndKeepAspect(string name, IResampler sampler) public void ImageShouldResizeWidthAndKeepAspect(string name, IResampler sampler)
{ {
name = name + "-FixedWidth"; name = $"{name}-FixedWidth";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -74,12 +74,12 @@ namespace ImageSharp.Tests
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeHeightAndKeepAspect(string name, IResampler sampler) public void ImageShouldResizeHeightAndKeepAspect(string name, IResampler sampler)
{ {
name = name + "-FixedHeight"; name = $"{name}-FixedHeight";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -95,12 +95,12 @@ namespace ImageSharp.Tests
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeWithCropWidthMode(string name, IResampler sampler) public void ImageShouldResizeWithCropWidthMode(string name, IResampler sampler)
{ {
name = name + "-CropWidth"; name = $"{name}-CropWidth";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -122,12 +122,12 @@ namespace ImageSharp.Tests
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeWithCropHeightMode(string name, IResampler sampler) public void ImageShouldResizeWithCropHeightMode(string name, IResampler sampler)
{ {
name = name + "-CropHeight"; name = $"{name}-CropHeight";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -149,12 +149,12 @@ namespace ImageSharp.Tests
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeWithPadMode(string name, IResampler sampler) public void ImageShouldResizeWithPadMode(string name, IResampler sampler)
{ {
name = name + "-Pad"; name = $"{name}-Pad";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -176,12 +176,12 @@ namespace ImageSharp.Tests
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeWithBoxPadMode(string name, IResampler sampler) public void ImageShouldResizeWithBoxPadMode(string name, IResampler sampler)
{ {
name = name + "-BoxPad"; name = $"{name}-BoxPad";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -204,12 +204,12 @@ namespace ImageSharp.Tests
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeWithMaxMode(string name, IResampler sampler) public void ImageShouldResizeWithMaxMode(string name, IResampler sampler)
{ {
name = name + "Max"; name = $"{name}Max";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -232,12 +232,12 @@ namespace ImageSharp.Tests
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeWithMinMode(string name, IResampler sampler) public void ImageShouldResizeWithMinMode(string name, IResampler sampler)
{ {
name = name + "-Min"; name = $"{name}-Min";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -260,12 +260,12 @@ namespace ImageSharp.Tests
} }
[Theory] [Theory]
[MemberData("ReSamplers")] [MemberData(nameof(ReSamplers))]
public void ImageShouldResizeWithStretchMode(string name, IResampler sampler) public void ImageShouldResizeWithStretchMode(string name, IResampler sampler)
{ {
name = name + "Stretch"; name = $"{name}Stretch";
string path = CreateOutputDirectory("Resize"); string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files) foreach (TestFile file in Files)
{ {
@ -293,6 +293,33 @@ namespace ImageSharp.Tests
[InlineData(0, 1)] [InlineData(0, 1)]
[InlineData(1, 0)] [InlineData(1, 0)]
[InlineData(2, 0)] [InlineData(2, 0)]
public static void BicubicWindowOscillatesCorrectly(float x, float expected)
{
BicubicResampler sampler = new BicubicResampler();
float result = sampler.GetValue(x);
Assert.Equal(result, expected);
}
[Theory]
[InlineData(-2, 0)]
[InlineData(-1, 0)]
[InlineData(0, 1)]
[InlineData(1, 0)]
[InlineData(2, 0)]
public static void TriangleWindowOscillatesCorrectly(float x, float expected)
{
TriangleResampler sampler = new TriangleResampler();
float result = sampler.GetValue(x);
Assert.Equal(result, expected);
}
[Theory]
[InlineData(-2, 0)]
[InlineData(-1, 0)]
[InlineData(0, 1)]
[InlineData(1, 0)]
[InlineData(2, 0)] [InlineData(2, 0)]
public static void Lanczos3WindowOscillatesCorrectly(float x, float expected) public static void Lanczos3WindowOscillatesCorrectly(float x, float expected)
{ {
@ -301,5 +328,19 @@ namespace ImageSharp.Tests
Assert.Equal(result, expected); Assert.Equal(result, expected);
} }
[Theory]
[InlineData(-4, 0)]
[InlineData(-2, 0)]
[InlineData(0, 1)]
[InlineData(2, 0)]
[InlineData(4, 0)]
public static void Lanczos5WindowOscillatesCorrectly(float x, float expected)
{
Lanczos5Resampler sampler = new Lanczos5Resampler();
float result = sampler.GetValue(x);
Assert.Equal(result, expected);
}
} }
} }
Loading…
Cancel
Save