public void TestStringSet() { using (StringSet set = new StringSet("test", true)) { set.Clear(); List <string> strings = new List <string>(); Random r = new Random(); for (int i = 0; i < 1000; i++) { strings.Add(RandomString(64)); } strings.Sort(); Assert.AreEqual(strings.Count, set.AddMany(strings)); Assert.AreEqual(0, set.AddMany(strings)); string[] existing = set.Enumerate().ToArray(); Assert.AreEqual(strings, existing); Assert.IsFalse(set.Contains("test")); Assert.IsFalse(set.Contains("test2")); Assert.IsTrue(set.Add("test")); Assert.IsTrue(set.Add("test2")); Assert.AreEqual(strings.Count + 2, set.GetCount()); Assert.IsFalse(set.Add("test")); Assert.IsFalse(set.Add("test2")); Assert.IsTrue(set.Contains("test")); Assert.IsTrue(set.Contains("test2")); Assert.IsFalse(set.Contains("nothing")); Assert.AreEqual(2, set.DeleteMany(new string[] { "test", "test2" })); Assert.AreEqual(strings.Count, set.GetCount()); Assert.IsFalse(set.Contains("test")); Assert.IsFalse(set.Contains("test2")); Assert.IsFalse(set.Contains("test3")); Assert.IsTrue(set.Add("test3")); Assert.AreEqual(strings.Count + 1, set.GetCount()); Assert.IsTrue(set.Delete("test3")); Assert.IsFalse(set.Delete("test3")); Assert.AreEqual(strings.Count, set.GetCount()); Assert.AreEqual(strings.Count, set.Clear()); Assert.AreEqual(0, set.GetCount()); Assert.AreEqual(new string[0], set.Enumerate()); } }