diff --git a/src/ImageSharp/Colors/Spaces/CieLab.cs b/src/ImageSharp/Colors/Spaces/CieLab.cs
index f4f349b52..a4b9cb5f4 100644
--- a/src/ImageSharp/Colors/Spaces/CieLab.cs
+++ b/src/ImageSharp/Colors/Spaces/CieLab.cs
@@ -161,7 +161,7 @@ namespace ImageSharp.Colors.Spaces
///
public bool Equals(CieLab other)
{
- return this.AlmostEquals(other, Constants.Epsilon);
+ return this.backingVector.Equals(other.backingVector);
}
///
@@ -169,9 +169,9 @@ namespace ImageSharp.Colors.Spaces
{
Vector3 result = Vector3.Abs(this.backingVector - other.backingVector);
- return result.X < precision
- && result.Y < precision
- && result.Z < precision;
+ return result.X <= precision
+ && result.Y <= precision
+ && result.Z <= precision;
}
}
}
diff --git a/src/ImageSharp/Colors/Spaces/CieXyz.cs b/src/ImageSharp/Colors/Spaces/CieXyz.cs
index 49396d3f6..5bd1eac63 100644
--- a/src/ImageSharp/Colors/Spaces/CieXyz.cs
+++ b/src/ImageSharp/Colors/Spaces/CieXyz.cs
@@ -152,7 +152,7 @@ namespace ImageSharp.Colors.Spaces
///
public bool Equals(CieXyz other)
{
- return this.AlmostEquals(other, Constants.Epsilon);
+ return this.backingVector.Equals(other.backingVector);
}
///
@@ -160,9 +160,9 @@ namespace ImageSharp.Colors.Spaces
{
Vector3 result = Vector3.Abs(this.backingVector - other.backingVector);
- return result.X < precision
- && result.Y < precision
- && result.Z < precision;
+ return result.X <= precision
+ && result.Y <= precision
+ && result.Z <= precision;
}
}
}
diff --git a/src/ImageSharp/Colors/Spaces/Cmyk.cs b/src/ImageSharp/Colors/Spaces/Cmyk.cs
index 190d73598..82e749f39 100644
--- a/src/ImageSharp/Colors/Spaces/Cmyk.cs
+++ b/src/ImageSharp/Colors/Spaces/Cmyk.cs
@@ -162,7 +162,7 @@ namespace ImageSharp.Colors.Spaces
///
public bool Equals(Cmyk other)
{
- return this.AlmostEquals(other, Constants.Epsilon);
+ return this.backingVector.Equals(other.backingVector);
}
///
@@ -170,10 +170,10 @@ namespace ImageSharp.Colors.Spaces
{
Vector4 result = Vector4.Abs(this.backingVector - other.backingVector);
- return result.X < precision
- && result.Y < precision
- && result.Z < precision
- && result.W < precision;
+ return result.X <= precision
+ && result.Y <= precision
+ && result.Z <= precision
+ && result.W <= precision;
}
}
}
diff --git a/src/ImageSharp/Colors/Spaces/Hsl.cs b/src/ImageSharp/Colors/Spaces/Hsl.cs
index 2cb02107b..13973349c 100644
--- a/src/ImageSharp/Colors/Spaces/Hsl.cs
+++ b/src/ImageSharp/Colors/Spaces/Hsl.cs
@@ -181,7 +181,7 @@ namespace ImageSharp.Colors.Spaces
///
public bool Equals(Hsl other)
{
- return this.AlmostEquals(other, Constants.Epsilon);
+ return this.backingVector.Equals(other.backingVector);
}
///
@@ -189,9 +189,9 @@ namespace ImageSharp.Colors.Spaces
{
Vector3 result = Vector3.Abs(this.backingVector - other.backingVector);
- return result.X < precision
- && result.Y < precision
- && result.Z < precision;
+ return result.X <= precision
+ && result.Y <= precision
+ && result.Z <= precision;
}
}
}
diff --git a/src/ImageSharp/Colors/Spaces/Hsv.cs b/src/ImageSharp/Colors/Spaces/Hsv.cs
index 8f7ebbdc7..f7ed05b86 100644
--- a/src/ImageSharp/Colors/Spaces/Hsv.cs
+++ b/src/ImageSharp/Colors/Spaces/Hsv.cs
@@ -174,7 +174,7 @@ namespace ImageSharp.Colors.Spaces
///
public bool Equals(Hsv other)
{
- return this.AlmostEquals(other, Constants.Epsilon);
+ return this.backingVector.Equals(other.backingVector);
}
///
@@ -182,9 +182,9 @@ namespace ImageSharp.Colors.Spaces
{
Vector3 result = Vector3.Abs(this.backingVector - other.backingVector);
- return result.X < precision
- && result.Y < precision
- && result.Z < precision;
+ return result.X <= precision
+ && result.Y <= precision
+ && result.Z <= precision;
}
}
}
diff --git a/tests/ImageSharp.Tests/Colors/ColorEqualityTests.cs b/tests/ImageSharp.Tests/Colors/ColorEqualityTests.cs
index af948fa21..c241e8d6f 100644
--- a/tests/ImageSharp.Tests/Colors/ColorEqualityTests.cs
+++ b/tests/ImageSharp.Tests/Colors/ColorEqualityTests.cs
@@ -7,6 +7,7 @@ namespace ImageSharp.Tests.Colors
{
using System;
using System.Numerics;
+ using ImageSharp.Colors.Spaces;
using Xunit;
///
@@ -37,6 +38,38 @@ namespace ImageSharp.Tests.Colors
{ new Short4(Vector4.One * 0x7FFF), new Short4(Vector4.One * 0x7FFF), typeof(Short4) },
};
+ public static readonly TheoryData