public void TestCreateByKey() { var comparer = EqualityComparers.Create((string s) => s.Length); comparer.Equals("a", "b").ShouldEqual(true); comparer.Equals(null, string.Empty).ShouldEqual(false); comparer.Equals(string.Empty, null).ShouldEqual(false); comparer.Equals("aa", "b").ShouldEqual(false); comparer.GetHashCode("abc").ShouldEqual(3); }
public void TestRapidExit() { var comparer = EqualityComparers.Create( (int a, int b) => { throw new InvalidOperationException("should never get here"); }, i => { throw new InvalidOperationException("should never get here"); } ); Sequence <int>().CollectionEquals(Sequence <int>(), comparer).ShouldEqual(true); new int[0].CollectionEquals(new int[0], comparer).ShouldEqual(true); new[] { 1, 2, 3 }.CollectionEquals(new[] { 1, 2, 3, 4 }).ShouldEqual(false); }
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 TestCreate() { Assert.Throws <ArgumentNullException>(() => EqualityComparers.Create <int>(null)); var comparer = EqualityComparers.Create <string>((a, b) => a.Length == b.Length); comparer.Equals("a", "b").ShouldEqual(true); comparer.Equals(null, string.Empty).ShouldEqual(false); comparer.Equals(string.Empty, null).ShouldEqual(false); comparer.Equals("aa", "b").ShouldEqual(false); comparer.GetHashCode("abc").ShouldEqual(-1); comparer = EqualityComparers.Create <string>((a, b) => a.Length == b.Length, s => s.Length); comparer.Equals("a", "b").ShouldEqual(true); comparer.Equals(null, string.Empty).ShouldEqual(false); comparer.Equals(string.Empty, null).ShouldEqual(false); comparer.Equals("aa", "b").ShouldEqual(false); comparer.GetHashCode("abc").ShouldEqual(3); }