public void DistinctWithComparerEqualsIsCalledForRepeatingNullValue()
        {
            Data <string> data = Data <string>(null, null);
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Assert.Throws <NullReferenceException>(() => data.Distinct(comparer).Iterate());
        }
Exemple #2
0
        public void IntersectWithComparerEqualsIsCalledForRepeatingNullValue()
        {
            Data <string> first  = Data <string>(null, "a", "b");
            Data <string> second = Data <string>("b", "c", null);
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Assert.Throws <NullReferenceException>(() => first.Intersect(second, comparer).Iterate());
        }
        public void DistinctWithComparerCallCounts()
        {
            Data <string> data = Data("a", "b", "b", "c", "c", "c");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            data.Distinct(comparer).Iterate();

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(6)); // # Count
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(3));      // # Count of repetitions (Count - DistinctCount)
        }
Exemple #4
0
        public void LookupIndexerComparerEqualsIsCalledForExistingNullKey()
        {
            Data <string> data = Data(null, "a", "b");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Lookup <string, string> lookup = (Lookup <string, string>)data.ToLookup(x => x, comparer);

            IEnumerable <string> dontCare;

            Assert.Throws <NullReferenceException>(() => dontCare = lookup[null]);
        }
Exemple #5
0
        public void ExceptWithComparerCallCounts()
        {
            Data <string> first  = Data("a", "a", "b", "c");
            Data <string> second = Data("b", "c", "d", "d");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            first.Except(second, comparer).Iterate();

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(8)); // # Count
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(4));      // # Count of repetitions (Count - DistinctCount)
        }
Exemple #6
0
        public void IntersectWithComparerCallCounts()
        {
            Data <string> first  = Data("a", "a", "b", "c");
            Data <string> second = Data("b", "c", "d", "d");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            first.Intersect(second, comparer).Iterate();

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(8)); // # Count
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(3));      // # Count of repetitions in Second + Count of intersection
        }
Exemple #7
0
        public void ContainsWithComparerNoMatchCallCounts()
        {
            Data <string> data = Data("a", "b", "c", "d");

            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            data.Contains("e", comparer);

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(0));
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(4));
        }
Exemple #8
0
        public void LookupContainsComparerGetHashCodeCalledForEmptySource()
        {
            Data <string> data = Data <string>();
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();
            Lookup <string, string>        lookup   = (Lookup <string, string>)data.ToLookup(x => x, comparer);

            comparer.ResetCounts();
            lookup.Contains("a");

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(1));
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(0));
        }
Exemple #9
0
        public void LookupIndexerComparerCallCounts()
        {
            Data <string> data = Data("a", "b", "c", "d", "e");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();
            Lookup <string, string>        lookup   = (Lookup <string, string>)data.ToLookup(x => x, comparer);

            comparer.ResetCounts();
            IEnumerable <string> dontCare = lookup["d"];

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(1));
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(1));
        }
Exemple #10
0
        public void SequenceEqualWithComparerDiferrentLengthCallCounts()
        {
            Data <string> first  = Data("a", "b", "c", "d");
            Data <string> second = Data("a", "b");

            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            first.SequenceEqual(second, comparer);

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(0));
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(2)); // # Min Length
        }
Exemple #11
0
        public void LookupContainsComparerEqualsIsCalledForExistingNullKey()
        {
            Data <Country> data = Data
                                  (
                new Country()
            {
                Name = "China", Continent = "Asia"
            },
                new Country()
            {
                Name = "Unknown1", Continent = null
            }
                                  );
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();
            Lookup <string, Country>       lookup   = (Lookup <string, Country>)data.ToLookup(x => x.Continent, comparer);

            Assert.Throws <NullReferenceException>(() => lookup.Contains(null));
        }
Exemple #12
0
        public void ToLookupWithElementSelectorComparerEqualsIsCalledForRepeatingNullKey()
        {
            Data <Country> data = Data
                                  (
                new Country {
                Name = "China", Continent = "Asia"
            },
                new Country {
                Name = "Unknown1", Continent = null
            },
                new Country {
                Name = "Unknown2", Continent = null
            }
                                  );
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Assert.Throws <NullReferenceException>(() => data.ToLookup(k => k.Continent, e => e.Name, comparer));
        }
Exemple #13
0
        public void GroupByWithResultSelectorComparerEqualsIsCalledForRepeatingNullKey()
        {
            Data <Country> data = Data
                                  (
                new Country {
                Name = "China", Continent = "Asia"
            },
                new Country {
                Name = "Unknown1", Continent = null
            },
                new Country {
                Name = "Unknown2", Continent = null
            }
                                  );
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Assert.Throws <NullReferenceException>(() => data.GroupBy(x => x.Continent, (k, c) => k, comparer).Iterate());
        }
        public void SequenceEqualWithComparerDiferrentLengthCallCounts()
        {
            Data<string> first = Data("a", "b", "c", "d");
            Data<string> second = Data("a", "b");

            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            first.SequenceEqual(second, comparer);

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(0));
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(2)); // # Min Length
        }
        public void DistinctWithComparerEqualsIsCalledForRepeatingNullValue()
        {
            Data<string> data = Data<string>(null, null);
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Assert.Throws<NullReferenceException>(() => data.Distinct(comparer).Iterate());
        }
Exemple #16
0
        public void ExceptWithComparerCallCounts()
        {
            Data<string> first = Data("a", "a", "b", "c");
            Data<string> second = Data("b", "c", "d", "d");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            first.Except(second, comparer).Iterate();

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(8)); // # Count
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(4)); // # Count of repetitions (Count - DistinctCount)
        }
        public void ToLookupWithElementSelectorComparerEqualsIsCalledForRepeatingNullKey()
        {
            Data<Country> data = Data
            (
                new Country { Name = "China", Continent = "Asia" },
                new Country { Name = "Unknown1", Continent = null },
                new Country { Name = "Unknown2", Continent = null }
            );
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Assert.Throws<NullReferenceException>(() => data.ToLookup(k => k.Continent, e => e.Name, comparer));
        }
Exemple #18
0
        public void LookupIndexerComparerCallCounts()
        {
            Data<string> data = Data("a", "b", "c", "d", "e");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();
            Lookup<string, string> lookup = (Lookup<string, string>)data.ToLookup(x => x, comparer);

            comparer.ResetCounts();
            IEnumerable<string> dontCare = lookup["d"];

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(1));
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(1));
        }
Exemple #19
0
        public void LookupIndexerComparerEqualsIsCalledForExistingNullKey()
        {
            Data<string> data = Data(null, "a", "b");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Lookup<string, string> lookup = (Lookup<string, string>)data.ToLookup(x => x, comparer);
            
            IEnumerable<string> dontCare;
            Assert.Throws<NullReferenceException>(() => dontCare = lookup[null]);
        }
        public void DistinctWithComparerCallCounts()
        {
            Data<string> data = Data("a", "b", "b", "c", "c", "c");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            data.Distinct(comparer).Iterate();

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(6)); // # Count
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(3)); // # Count of repetitions (Count - DistinctCount)
        }
        public void IntersectWithComparerCallCounts()
        {
            Data<string> first = Data("a", "a", "b", "c");
            Data<string> second = Data("b", "c", "d", "d");
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            first.Intersect(second, comparer).Iterate();

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(8)); // # Count
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(3)); // # Count of repetitions in Second + Count of intersection
        }
        public void IntersectWithComparerEqualsIsCalledForRepeatingNullValue()
        {
            Data<string> first = Data(null, "a", "b");
            Data<string> second = Data("b", "c", null);
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            Assert.Throws<NullReferenceException>(() => first.Intersect(second, comparer).Iterate());
        }
Exemple #23
0
        public void LookupContainsComparerEqualsIsCalledForExistingNullKey()
        {
            Data<Country> data = Data
            (
                new Country() { Name = "China", Continent = "Asia" },
                new Country() { Name = "Unknown1", Continent = null }
            );
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();
            Lookup<string, Country> lookup = (Lookup<string, Country>)data.ToLookup(x => x.Continent, comparer);

            Assert.Throws<NullReferenceException>(() => lookup.Contains(null));
        }
Exemple #24
0
        public void LookupContainsComparerGetHashCodeCalledForEmptySource()
        {
            Data<string> data = Data<string>();
            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();
            Lookup<string, string> lookup = (Lookup<string, string>)data.ToLookup(x => x, comparer);

            comparer.ResetCounts();
            lookup.Contains("a");

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(1));
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(0));
        }
        public void ContainsWithComparerNoMatchCallCounts()
        {
            Data<string> data = Data("a", "b", "c", "d");

            ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer();

            data.Contains("e", comparer);

            Assert.That(comparer.GetHashCodeCallCount, Is.EqualTo(0));
            Assert.That(comparer.EqualsCallCount, Is.EqualTo(4));
        }