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.
// Licensed under the Apache License, Version 2.0.
// </copyright>
namespace ImageSharp.Tests
{
using System;
@ -14,29 +13,31 @@ namespace ImageSharp.Tests
{
public static readonly TheoryData<string, IResampler> ReSamplers =
new TheoryData<string, IResampler>
{
{ "Bicubic", new BicubicResampler() },
{ "Triangle", new TriangleResampler() },
{ "NearestNeighbor", new NearestNeighborResampler() },
// Perf: Enable for local testing only
//{ "Box", new BoxResampler() },
//{ "Lanczos3", new Lanczos3Resampler() },
//{ "Lanczos5", new Lanczos5Resampler() },
//{ "Lanczos8", new Lanczos8Resampler() },
{ "MitchellNetravali", new MitchellNetravaliResampler() },
//{ "Hermite", new HermiteResampler() },
//{ "Spline", new SplineResampler() },
//{ "Robidoux", new RobidouxResampler() },
//{ "RobidouxSharp", new RobidouxSharpResampler() },
//{ "RobidouxSoft", new RobidouxSoftResampler() },
//{ "Welch", new WelchResampler() }
};
{
{ "Bicubic", new BicubicResampler() },
{ "Triangle", new TriangleResampler() },
{ "NearestNeighbor", new NearestNeighborResampler() },
// Perf: Enable for local testing only
// { "Box", new BoxResampler() },
// { "Lanczos3", new Lanczos3Resampler() },
// { "Lanczos5", new Lanczos5Resampler() },
{ "MitchellNetravali", new MitchellNetravaliResampler() },
// { "Lanczos8", new Lanczos8Resampler() },
// { "Hermite", new HermiteResampler() },
// { "Spline", new SplineResampler() },
// { "Robidoux", new RobidouxResampler() },
// { "RobidouxSharp", new RobidouxSharpResampler() },
// { "RobidouxSoft", new RobidouxSoftResampler() },
// { "Welch", new WelchResampler() }
};
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
public void ImageShouldResize(string name, IResampler sampler)
{
string path = CreateOutputDirectory("Resize");
string path = this.CreateOutputDirectory("Resize");
foreach (TestFile file in Files)
{
@ -46,19 +47,18 @@ namespace ImageSharp.Tests
using (FileStream output = File.OpenWrite($"{path}/{filename}"))
{
image.Resize(image.Width / 2, image.Height / 2, sampler, true)
//image.Resize(555, 275, sampler, false)
.Save(output);
.Save(output);
}
}
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -74,12 +74,12 @@ namespace ImageSharp.Tests
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -95,12 +95,12 @@ namespace ImageSharp.Tests
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -122,12 +122,12 @@ namespace ImageSharp.Tests
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -149,12 +149,12 @@ namespace ImageSharp.Tests
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -176,12 +176,12 @@ namespace ImageSharp.Tests
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -204,12 +204,12 @@ namespace ImageSharp.Tests
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -232,12 +232,12 @@ namespace ImageSharp.Tests
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -260,12 +260,12 @@ namespace ImageSharp.Tests
}
[Theory]
[MemberData("ReSamplers")]
[MemberData(nameof(ReSamplers))]
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)
{
@ -293,6 +293,33 @@ namespace ImageSharp.Tests
[InlineData(0, 1)]
[InlineData(1, 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)]
public static void Lanczos3WindowOscillatesCorrectly(float x, float expected)
{
@ -301,5 +328,19 @@ namespace ImageSharp.Tests
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