Browse Source

Add tolerance to 32 bit tests

pull/1555/head
James Jackson-South 5 years ago
parent
commit
045612f133
  1. 33
      .gitattributes
  2. 27
      tests/ImageSharp.Tests/Processing/Processors/Binarization/BinaryThresholdTest.cs
  3. 13
      tests/ImageSharp.Tests/TestUtilities/TestEnvironment.cs

33
.gitattributes

@ -2,8 +2,13 @@
# Set default behavior to: # Set default behavior to:
# treat as text and # treat as text and
# normalize to Unix-style line endings # normalize to Unix-style line endings
###############################################################################
* text eol=lf * text eol=lf
###############################################################################
# Set explicit file behavior to: # Set explicit file behavior to:
# treat as text and
# normalize to Unix-style line endings
###############################################################################
*.asm text eol=lf *.asm text eol=lf
*.c text eol=lf *.c text eol=lf
*.clj text eol=lf *.clj text eol=lf
@ -48,19 +53,35 @@
*.txt text eol=lf *.txt text eol=lf
*.vb text eol=lf *.vb text eol=lf
*.yml text eol=lf *.yml text eol=lf
###############################################################################
# Set explicit file behavior to:
# treat as text # treat as text
# normalize to Unix-style line endings and # normalize to Unix-style line endings and
# diff as csharp # diff as csharp
###############################################################################
*.cs text eol=lf diff=csharp *.cs text eol=lf diff=csharp
###############################################################################
# Set explicit file behavior to:
# treat as text
# normalize to Unix-style line endings and
# use a union merge when resoling conflicts # use a union merge when resoling conflicts
###############################################################################
*.csproj text eol=lf merge=union *.csproj text eol=lf merge=union
*.dbproj text eol=lf merge=union *.dbproj text eol=lf merge=union
*.fsproj text eol=lf merge=union *.fsproj text eol=lf merge=union
*.ncrunchproject text eol=lf merge=union *.ncrunchproject text eol=lf merge=union
*.vbproj text eol=lf merge=union *.vbproj text eol=lf merge=union
###############################################################################
# Set explicit file behavior to:
# treat as text
# normalize to Windows-style line endings and # normalize to Windows-style line endings and
# use a union merge when resoling conflicts
###############################################################################
*.sln text eol=crlf merge=union *.sln text eol=crlf merge=union
###############################################################################
# Set explicit file behavior to:
# treat as binary # treat as binary
###############################################################################
*.basis binary *.basis binary
*.bmp binary *.bmp binary
*.dds binary *.dds binary
@ -89,7 +110,10 @@
*.woff2 binary *.woff2 binary
*.xls binary *.xls binary
*.xlsx binary *.xlsx binary
###############################################################################
# Set explicit file behavior to:
# diff as plain text # diff as plain text
###############################################################################
*.doc diff=astextplain *.doc diff=astextplain
*.docx diff=astextplain *.docx diff=astextplain
*.dot diff=astextplain *.dot diff=astextplain
@ -98,12 +122,3 @@
*.rtf diff=astextplain *.rtf diff=astextplain
*.svg diff=astextplain *.svg diff=astextplain
*.jpg,*.jpeg,*.bmp,*.gif,*.png,*.tif,*.tiff,*.tga,*.webp filter=lfs diff=lfs merge=lfs -text *.jpg,*.jpeg,*.bmp,*.gif,*.png,*.tif,*.tiff,*.tga,*.webp filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.bmp filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text
*.tiff filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text

27
tests/ImageSharp.Tests/Processing/Processors/Binarization/BinaryThresholdTest.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System.Globalization;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Binarization; using SixLabors.ImageSharp.Processing.Processors.Binarization;
@ -64,7 +65,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization
{ {
image.Mutate(x => x.BinaryThreshold(value, BinaryThresholdColorComponent.Saturation)); image.Mutate(x => x.BinaryThreshold(value, BinaryThresholdColorComponent.Saturation));
image.DebugSave(provider, value); image.DebugSave(provider, value);
image.CompareToReferenceOutput(ImageComparer.Exact, provider, value.ToString("0.00", System.Globalization.NumberFormatInfo.InvariantInfo)); image.CompareToReferenceOutput(ImageComparer.Exact, provider, value.ToString("0.00", NumberFormatInfo.InvariantInfo));
} }
} }
@ -80,7 +81,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization
image.Mutate(x => x.BinaryThreshold(value, BinaryThresholdColorComponent.Saturation, bounds)); image.Mutate(x => x.BinaryThreshold(value, BinaryThresholdColorComponent.Saturation, bounds));
image.DebugSave(provider, value); image.DebugSave(provider, value);
image.CompareToReferenceOutput(ImageComparer.Exact, provider, value.ToString("0.00", System.Globalization.NumberFormatInfo.InvariantInfo)); image.CompareToReferenceOutput(ImageComparer.Exact, provider, value.ToString("0.00", NumberFormatInfo.InvariantInfo));
} }
} }
@ -93,7 +94,16 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization
{ {
image.Mutate(x => x.BinaryThreshold(value, BinaryThresholdColorComponent.MaxChroma)); image.Mutate(x => x.BinaryThreshold(value, BinaryThresholdColorComponent.MaxChroma));
image.DebugSave(provider, value); image.DebugSave(provider, value);
image.CompareToReferenceOutput(ImageComparer.Exact, provider, value.ToString("0.00", System.Globalization.NumberFormatInfo.InvariantInfo));
if (!TestEnvironment.Is64BitProcess && TestEnvironment.IsFramework)
{
var comparer = ImageComparer.TolerantPercentage(0.0004F);
image.CompareToReferenceOutput(comparer, provider, value.ToString("0.00", NumberFormatInfo.InvariantInfo));
}
else
{
image.CompareToReferenceOutput(ImageComparer.Exact, provider, value.ToString("0.00", NumberFormatInfo.InvariantInfo));
}
} }
} }
@ -109,7 +119,16 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization
image.Mutate(x => x.BinaryThreshold(value, BinaryThresholdColorComponent.MaxChroma, bounds)); image.Mutate(x => x.BinaryThreshold(value, BinaryThresholdColorComponent.MaxChroma, bounds));
image.DebugSave(provider, value); image.DebugSave(provider, value);
image.CompareToReferenceOutput(ImageComparer.Exact, provider, value.ToString("0.00", System.Globalization.NumberFormatInfo.InvariantInfo));
if (!TestEnvironment.Is64BitProcess && TestEnvironment.IsFramework)
{
var comparer = ImageComparer.TolerantPercentage(0.0004F);
image.CompareToReferenceOutput(comparer, provider, value.ToString("0.00", NumberFormatInfo.InvariantInfo));
}
else
{
image.CompareToReferenceOutput(ImageComparer.Exact, provider, value.ToString("0.00", NumberFormatInfo.InvariantInfo));
}
} }
} }
} }

13
tests/ImageSharp.Tests/TestUtilities/TestEnvironment.cs

@ -7,7 +7,6 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Tests namespace SixLabors.ImageSharp.Tests
{ {
@ -25,19 +24,11 @@ namespace SixLabors.ImageSharp.Tests
private static readonly Lazy<string> SolutionDirectoryFullPathLazy = new Lazy<string>(GetSolutionDirectoryFullPathImpl); private static readonly Lazy<string> SolutionDirectoryFullPathLazy = new Lazy<string>(GetSolutionDirectoryFullPathImpl);
private static readonly Lazy<bool> RunsOnCiLazy = new Lazy<bool>( private static readonly Lazy<bool> RunsOnCiLazy = new Lazy<bool>(() => bool.TryParse(Environment.GetEnvironmentVariable("CI"), out bool isCi) && isCi);
() =>
{
bool isCi;
return bool.TryParse(Environment.GetEnvironmentVariable("CI"), out isCi) && isCi;
});
private static readonly Lazy<string> NetCoreVersionLazy = new Lazy<string>(GetNetCoreVersion); private static readonly Lazy<string> NetCoreVersionLazy = new Lazy<string>(GetNetCoreVersion);
static TestEnvironment() static TestEnvironment() => PrepareRemoteExecutor();
{
PrepareRemoteExecutor();
}
/// <summary> /// <summary>
/// Gets the .NET Core version, if running on .NET Core, otherwise returns an empty string. /// Gets the .NET Core version, if running on .NET Core, otherwise returns an empty string.

Loading…
Cancel
Save