public static void Equals_Some_ForReferenceT_WithCustomComparer() { // Arrange IStructuralEquatable anagram = Maybe.SomeOrNone(Anagram); var margana = Maybe.SomeOrNone(Margana); var other = Maybe.SomeOrNone("XXX"); var none = Maybe <string> .None; var cmp = new AnagramEqualityComparer(); // Act & Assert Assert.True(anagram.Equals(anagram)); Assert.False(anagram.Equals(margana)); Assert.False(anagram.Equals(other)); Assert.False(anagram.Equals(none)); Assert.False(anagram.Equals(new object())); Assert.True(anagram.Equals(anagram, cmp)); Assert.True(anagram.Equals(margana, cmp)); Assert.False(anagram.Equals(other, cmp)); Assert.False(anagram.Equals(none, cmp)); Assert.False(anagram.Equals(new object(), cmp)); Assert.False(anagram.Equals(null, cmp)); // REVIEW: very odd, after Equals(null), we must use !. Assert.False(anagram.Equals(null)); }
public static void GetHashCode_Some_WithCustomComparer() { // Arrange var cmp = new AnagramEqualityComparer(); // Act & Assert Assert.Equal(cmp.GetHashCode(MyText), ((IStructuralEquatable)SomeText).GetHashCode(cmp)); }
public void AnagramEqualityComparer_GetHashCode_SameForAnagrams(string word, string anagram) { var comparer = new AnagramEqualityComparer(); var hash1 = comparer.GetHashCode(word); var hash2 = comparer.GetHashCode(anagram); Assert.Equal(hash1, hash2); }
public void CustomComparer() { string[] first = { "Bob", "Robert", "Tim", "Matt", "miT" }; string[] second = { "ttaM", "Charlie", "Bbo" }; string[] expected = { "Bob", "Robert", "Tim", "Matt", "Charlie" }; var comparer = new AnagramEqualityComparer(); Assert.Equal(expected, first.Union(second, comparer), comparer); }
public void CustomComparer() { string[] first = { "Bob", "Robert", "Tim", "Matt", "miT" }; string[] second = { "ttaM", "Charlie", "Bbo" }; string[] expected = { "Bob", "Robert", "Tim", "Matt", "Charlie" }; var comparer = new AnagramEqualityComparer(); Assert.Equal(expected, first.AsQueryable().Union(second.AsQueryable(), comparer), comparer); }
public static void RunOrderedIntersectTest2() { string[] first = { "Tim", "Bob", "Mike", "Robert" }; string[] second = { "ekiM", "bBo" }; var comparer = new AnagramEqualityComparer(); string[] expected = first.Except(second, comparer).ToArray(); string[] actual = first.AsParallel().AsOrdered().Except(second.AsParallel().AsOrdered(), comparer).ToArray(); Assert.True(expected.SequenceEqual(actual), "RunOrderedIntersectTest2: FAILED."); }