|
|
|
@ -42,53 +42,6 @@ namespace ImageSharp.Tests |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private static void ModifyPixel<TPixel>(ImageBase<TPixel> img, int x, int y, byte perChannelChange) |
|
|
|
where TPixel : struct, IPixel<TPixel> |
|
|
|
{ |
|
|
|
TPixel pixel = img[x, y]; |
|
|
|
var rgbaPixel = default(Rgba32); |
|
|
|
pixel.ToRgba32(ref rgbaPixel); |
|
|
|
|
|
|
|
if (rgbaPixel.R + perChannelChange <= 255) |
|
|
|
{ |
|
|
|
rgbaPixel.R += perChannelChange; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
rgbaPixel.R -= perChannelChange; |
|
|
|
} |
|
|
|
|
|
|
|
if (rgbaPixel.G + perChannelChange <= 255) |
|
|
|
{ |
|
|
|
rgbaPixel.G += perChannelChange; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
rgbaPixel.G -= perChannelChange; |
|
|
|
} |
|
|
|
|
|
|
|
if (rgbaPixel.B + perChannelChange <= 255) |
|
|
|
{ |
|
|
|
rgbaPixel.B += perChannelChange; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
rgbaPixel.B -= perChannelChange; |
|
|
|
} |
|
|
|
|
|
|
|
if (rgbaPixel.A + perChannelChange <= 255) |
|
|
|
{ |
|
|
|
rgbaPixel.A += perChannelChange; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
rgbaPixel.A -= perChannelChange; |
|
|
|
} |
|
|
|
|
|
|
|
pixel.PackFromRgba32(rgbaPixel); |
|
|
|
img[x, y] = pixel; |
|
|
|
} |
|
|
|
|
|
|
|
[Theory] |
|
|
|
[WithTestPatternImages(110, 110, PixelTypes.Rgba32)] |
|
|
|
public void TolerantImageComparer_ApprovesSimilarityBelowTolerance<TPixel>(TestImageProvider<TPixel> provider) |
|
|
|
@ -98,7 +51,7 @@ namespace ImageSharp.Tests |
|
|
|
{ |
|
|
|
using (Image<TPixel> clone = image.Clone()) |
|
|
|
{ |
|
|
|
ModifyPixel(clone, 0, 0, 1); |
|
|
|
ImagingTestCaseUtility.ModifyPixel(clone, 0, 0, 1); |
|
|
|
|
|
|
|
var comparer = ImageComparer.Tolerant(); |
|
|
|
comparer.VerifySimilarity(image, clone); |
|
|
|
@ -115,7 +68,7 @@ namespace ImageSharp.Tests |
|
|
|
{ |
|
|
|
using (Image<TPixel> clone = image.Clone()) |
|
|
|
{ |
|
|
|
ModifyPixel(clone, 3, 1, 2); |
|
|
|
ImagingTestCaseUtility.ModifyPixel(clone, 3, 1, 2); |
|
|
|
|
|
|
|
var comparer = ImageComparer.Tolerant(); |
|
|
|
|
|
|
|
@ -139,9 +92,9 @@ namespace ImageSharp.Tests |
|
|
|
{ |
|
|
|
using (Image<TPixel> clone = image.Clone()) |
|
|
|
{ |
|
|
|
ModifyPixel(clone, 0, 0, 10); |
|
|
|
ModifyPixel(clone, 1, 0, 10); |
|
|
|
ModifyPixel(clone, 2, 0, 10); |
|
|
|
ImagingTestCaseUtility.ModifyPixel(clone, 0, 0, 10); |
|
|
|
ImagingTestCaseUtility.ModifyPixel(clone, 1, 0, 10); |
|
|
|
ImagingTestCaseUtility.ModifyPixel(clone, 2, 0, 10); |
|
|
|
|
|
|
|
var comparer = ImageComparer.Tolerant(pixelThresholdInPixelByteSum: 42); |
|
|
|
comparer.VerifySimilarity(image, clone); |
|
|
|
@ -180,7 +133,7 @@ namespace ImageSharp.Tests |
|
|
|
{ |
|
|
|
using (Image<TPixel> clone = image.Clone()) |
|
|
|
{ |
|
|
|
ModifyPixel(clone.Frames[0], 42, 43, 1); |
|
|
|
ImagingTestCaseUtility.ModifyPixel(clone.Frames[0], 42, 43, 1); |
|
|
|
|
|
|
|
IEnumerable<ImageSimilarityReport> reports = ImageComparer.Exact.CompareImages(image, clone); |
|
|
|
|
|
|
|
@ -214,8 +167,8 @@ namespace ImageSharp.Tests |
|
|
|
{ |
|
|
|
using (Image<TPixel> clone = image.Clone()) |
|
|
|
{ |
|
|
|
ModifyPixel(clone, 42, 24, 1); |
|
|
|
ModifyPixel(clone, 7, 93, 1); |
|
|
|
ImagingTestCaseUtility.ModifyPixel(clone, 42, 24, 1); |
|
|
|
ImagingTestCaseUtility.ModifyPixel(clone, 7, 93, 1); |
|
|
|
|
|
|
|
IEnumerable<ImageSimilarityReport> reports = ExactImageComparer.Instance.CompareImages(image, clone); |
|
|
|
|
|
|
|
|