diff --git a/tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs b/tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs
index 5d8a155f0..3610f9683 100644
--- a/tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs
+++ b/tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs
@@ -9,6 +9,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Normalization
{
+ // ReSharper disable InconsistentNaming
public class HistogramEqualizationTests
{
private static readonly ImageComparer ValidatorComparer = ImageComparer.TolerantPercentage(0.0456F);
@@ -113,5 +114,30 @@ namespace SixLabors.ImageSharp.Tests.Processing.Normalization
image.CompareToReferenceOutput(ValidatorComparer, provider);
}
}
+
+ ///
+ /// This is regression test for a bug with the calculation of the y-start positions,
+ /// where it could happen that one too much start position was calculated in some cases.
+ /// See: https://github.com/SixLabors/ImageSharp/pull/984
+ ///
+ [Theory]
+ [WithTestPatternImages(110, 110, PixelTypes.Rgba32)]
+ [WithTestPatternImages(170, 170, PixelTypes.Rgba32)]
+ public void Issue984_DoesNotThrowException(TestImageProvider provider)
+ where TPixel : struct, IPixel
+ {
+ using (Image image = provider.GetImage())
+ {
+ var options = new HistogramEqualizationOptions()
+ {
+ Method = HistogramEqualizationMethod.AdaptiveTileInterpolation,
+ LuminanceLevels = 256,
+ ClipHistogram = true,
+ NumberOfTiles = 10
+ };
+ System.Exception ex = Record.Exception(() => image.Mutate(x => x.HistogramEqualization(options)));
+ Assert.Null(ex);
+ }
+ }
}
}