reference-comparer-equals.md 1.13 KB

Custom equality comparers with equals operator

If you need to compare Vectors using the overloaded operator == (see Vector2.operator ==, Vector3.operator ==, and Vector4.operator ==) you should use the respective comparer implementations:

  • Vector2ComparerWithEqualsOperator
  • Vector3ComparerWithEqualsOperator
  • Vector4ComparerWithEqualsOperator

The interface is the same as for other equality comparers except the public constructor error parameter is inapplicable in this case.

Example

[TestFixture]
public class Vector3Test
{
    [Test]
    public void VerifyThat_TwoVector3ObjectsAreEqual()
    {
        var actual = new Vector3(10e-7f, 10e-7f, 10e-7f);
        var expected = new Vector3(0f, 0f, 0f);

        Assert.That(actual, Is.EqualTo(expected).Using(Vector3ComparerWithEqualsOperator.Instance));
    }
}