public void Union() { Set <int> setOdds = new Set <int>(new int[] { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25 }); Set <int> setDigits = new Set <int>(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }); Set <int> set1, set2, set3; // Algorithms work different depending on sizes, so try both ways. set1 = new Set <int>(setOdds); set2 = new Set <int>(setDigits); set1.UnionWith(set2); InterfaceTests.TestCollectionGeneric(set1, new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 23, 25 }, false, null); set1 = new Set <int>(setOdds); set2 = new Set <int>(setDigits); set2.UnionWith(set1); InterfaceTests.TestCollectionGeneric(set2, new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 23, 25 }, false, null); set1 = new Set <int>(setOdds); set2 = new Set <int>(setDigits); set3 = Set <int> .Union(set1, set2); InterfaceTests.TestCollectionGeneric(set3, new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 23, 25 }, false, null); set1 = new Set <int>(setOdds); set2 = new Set <int>(setDigits); set3 = Set <int> .Union(set2, set1); InterfaceTests.TestCollectionGeneric(set3, new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 23, 25 }, false, null); // Make sure intersection with itself works. set1 = new Set <int>(setDigits); set1.UnionWith(set1); InterfaceTests.TestCollectionGeneric(set1, new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, false, null); set1 = new Set <int>(setDigits); set3 = Set <int> .Union(set1, set1); InterfaceTests.TestCollectionGeneric(set3, new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, false, null); }
public void Add() { ISet <string> set1 = new Set <string>(StringComparer.InvariantCultureIgnoreCase); bool b; b = set1.Add("hello"); Assert.IsTrue(b); b = set1.Add("foo"); Assert.IsTrue(b); b = set1.Add(""); Assert.IsTrue(b); b = set1.Add("HELLO"); Assert.IsFalse(b); b = set1.Add("foo"); Assert.IsFalse(b); b = set1.Add("Hello"); Assert.IsFalse(b); b = set1.Add("Eric"); Assert.IsTrue(b); InterfaceTests.TestCollectionGeneric(set1, new string[] { "", "Eric", "foo", "hello" }, false, null); }
public void SymmetricExcept() { Set <int> setOdds = new Set <int>(new int[] { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25 }); Set <int> setDigits = new Set <int>(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }); Set <int> set1, set2, set3; // Algorithms work different depending on sizes, so try both ways. set1 = new Set <int>(setOdds); set2 = new Set <int>(setDigits); set1.SymmetricExceptWith(set2); InterfaceTests.TestCollectionGeneric(set1, new int[] { 2, 4, 6, 8, 11, 13, 15, 17, 19, 21, 23, 25 }, false, null); set1 = new Set <int>(setOdds); set2 = new Set <int>(setDigits); set2.SymmetricExceptWith(set1); InterfaceTests.TestCollectionGeneric(set2, new int[] { 2, 4, 6, 8, 11, 13, 15, 17, 19, 21, 23, 25 }, false, null); set1 = new Set <int>(setOdds); set2 = new Set <int>(setDigits); set3 = Set <int> .SymmetricExcept(set1, set2); InterfaceTests.TestCollectionGeneric(set3, new int[] { 2, 4, 6, 8, 11, 13, 15, 17, 19, 21, 23, 25 }, false, null); set1 = new Set <int>(setOdds); set2 = new Set <int>(setDigits); set3 = Set <int> .SymmetricExcept(set2, set1); InterfaceTests.TestCollectionGeneric(set3, new int[] { 2, 4, 6, 8, 11, 13, 15, 17, 19, 21, 23, 25 }, false, null); // Make sure intersection with itself works. set1 = new Set <int>(setDigits); set1.SymmetricExceptWith(set1); Assert.AreEqual(0, set1.Count); set1 = new Set <int>(setDigits); set3 = Set <int> .SymmetricExcept(set1, set1); Assert.AreEqual(0, set3.Count); }