public void DistinctWithComparerEqualsIsCalledForRepeatingNullValue() { Data <string> data = Data <string>(null, null); ThrowingStringEqualityComparer comparer = new ThrowingStringEqualityComparer(); Assert.Throws <NullReferenceException>(() => data.Distinct(comparer).Iterate()); }
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) }
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 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 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 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)); }
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 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)); }
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 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)); }
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)); }
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()); }
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)); }
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)); }
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()); }
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)); }
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)); }