public void TestSetEqualsEdgeCase() { EqualityComparer <int> equalityComparer = EqualityComparer <int> .Default; Func <int, int> getHashCode = value => Math.Abs(value) < 5 ? 0 : 1; ImmutableTreeSet <int> .Builder set = ImmutableTreeSet.CreateBuilder(new SubsetHashCodeEqualityComparer <int>(equalityComparer, getHashCode)); set.UnionWith(new[] { 1, 3, 7, 9 }); Assert.False(set.SetEquals(new[] { 1, 4, 7, 9 })); }
public void TestRemoveEdgeCase() { EqualityComparer <int> equalityComparer = EqualityComparer <int> .Default; Func <int, int> getHashCode = value => Math.Abs(value) < 5 ? 0 : 1; ImmutableTreeSet <int> .Builder set = ImmutableTreeSet.CreateBuilder(new SubsetHashCodeEqualityComparer <int>(equalityComparer, getHashCode)); set.UnionWith(Enumerable.Range(0, 10)); Assert.True(set.Remove(4)); Assert.False(set.Remove(4)); }
public void TestClear() { ImmutableTreeSet <int> .Builder set = ImmutableTreeSet.CreateBuilder <int>(); set.Clear(); Assert.Empty(set); set.UnionWith(Enumerable.Range(0, 10)); Assert.NotEmpty(set); set.Clear(); Assert.Empty(set); }
public void TestIntersectWithEdgeCase() { EqualityComparer <int> equalityComparer = EqualityComparer <int> .Default; Func <int, int> getHashCode = value => Math.Abs(value) < 5 ? 0 : 1; ImmutableTreeSet <int> .Builder set = ImmutableTreeSet.CreateBuilder(new SubsetHashCodeEqualityComparer <int>(equalityComparer, getHashCode)); ImmutableTreeSet <int> .Builder other = ImmutableTreeSet.CreateBuilder(set.KeyComparer); set.UnionWith(Enumerable.Range(0, 10)); other.UnionWith(new[] { 4, 3, 5 }); set.IntersectWith(other); Assert.Equal(new[] { 3, 4, 5 }, set); }