예제 #1
0
            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));
            }
예제 #2
0
            public static void GetHashCode_Some_WithCustomComparer()
            {
                // Arrange
                var cmp = new AnagramEqualityComparer();

                // Act & Assert
                Assert.Equal(cmp.GetHashCode(MyText), ((IStructuralEquatable)SomeText).GetHashCode(cmp));
            }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }
예제 #6
0
        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.");
        }