public static void IsCanonical <T>(this IEqualityComparerAssertExtensions assert, IEqualityComparer <T> comparer, T other) { Assert.IsTrue(comparer.Equals(default(T), default(T)), CreateMessage("null == null")); Assert.IsFalse(comparer.Equals(default(T), other), CreateMessage("null != other")); Assert.IsFalse(comparer.Equals(other, default(T)), CreateMessage("other != null")); Assert.IsTrue(comparer.Equals(other, other), CreateMessage("other == other")); string CreateMessage(string requirement) { return($"{typeof(IEqualityComparer<T>).ToPrettyString()} violates the {requirement.QuoteWith("'")} requirement."); } }
public static void IsCanonical <T>(this IEqualityComparerAssertExtensions assert, IEqualityComparer <T> comparer, T value) { Assert.IsTrue(comparer.Equals(default, default), CreateMessage("null == null"));