public void TestComparerEquality() { Func <string, string, bool> sameLength = (a, b) => a.Length == b.Length; Func <string, int> getLength = s => s.Length; ComparersTest.TestEquality(EqualityComparers.Create(sameLength, getLength), EqualityComparers.Create(sameLength, getLength), EqualityComparers.Create(getLength)); ComparersTest.TestEquality(EqualityComparers.Create(getLength), EqualityComparers.Create(getLength, EqualityComparer <int> .Default), EqualityComparers.Create((string s) => s[0])); ComparersTest.TestEquality(EqualityComparers.GetReferenceComparer <string>(), EqualityComparers.GetReferenceComparer <string>(), EqualityComparer <string> .Default); ComparersTest.TestEquality(EqualityComparers.GetCollectionComparer(EqualityComparer <string> .Default), EqualityComparers.GetCollectionComparer <string>(), EqualityComparers.GetCollectionComparer(StringComparer.OrdinalIgnoreCase)); ComparersTest.TestEquality(EqualityComparers.GetSequenceComparer(StringComparer.Ordinal), EqualityComparers.GetSequenceComparer(StringComparer.Ordinal), EqualityComparers.GetCollectionComparer(StringComparer.Ordinal)); }
public void TestReferenceComparer() { var referenceComparer = EqualityComparers.GetReferenceComparer <string>(); Assert.Same(referenceComparer, EqualityComparers.GetReferenceComparer <string>()); referenceComparer.Equals(new string('a', 1), new string('a', 1)).ShouldEqual(false); var text = new string('a', 1); referenceComparer.Equals(text, text).ShouldEqual(true); referenceComparer.GetHashCode(text).ShouldEqual(referenceComparer.GetHashCode(text)); referenceComparer.Equals(text, null).ShouldEqual(false); referenceComparer.Equals(null, null).ShouldEqual(true); var obj = new object(); EqualityComparers.GetReferenceComparer <object>().GetHashCode(obj) .ShouldEqual(obj.GetHashCode()); }