public void Test_Constructor() { // Test for method java.util.LinkedHashSet() LinkedHashSet<object> hs2 = new LinkedHashSet<object>(); assertEquals("Created incorrect LinkedHashSet", 0, hs2.Count); }
public void TestBasic() { int numItr = 500; int setSize = 500; for (int i = 0; i < numItr; i++) { ISet<int> s1 = new LinkedHashSet<int>(); AddRandoms(s1, setSize); ISet<int> s2 = new LinkedHashSet<int>(); AddRandoms(s2, setSize); ISet<int> intersection = clone(s1); intersection.IntersectWith(s2); ISet<int> diff1 = clone(s1); diff1.ExceptWith(s2); ISet<int> diff2 = clone(s2); diff2.ExceptWith(s1); ISet<int> union = clone(s1); union.UnionWith(s2); //if (diff1.ExceptWith(diff2)) // throw new Exception("Set algebra identity 2 failed"); //if (diff1.ExceptWith(intersection)) // throw new Exception("Set algebra identity 3 failed"); //if (diff2.ExceptWith(diff1)) // throw new Exception("Set algebra identity 4 failed"); //if (diff2.ExceptWith(intersection)) // throw new Exception("Set algebra identity 5 failed"); //if (intersection.ExceptWith(diff1)) // throw new Exception("Set algebra identity 6 failed"); //if (intersection.ExceptWith(diff1)) // throw new Exception("Set algebra identity 7 failed"); int expected = diff1.Count; diff1.ExceptWith(diff2); assertEquals("Set algebra identity 2 failed", expected, diff1.Count); expected = diff1.Count; diff1.ExceptWith(intersection); assertEquals("Set algebra identity 3 failed", expected, diff1.Count); expected = diff2.Count; diff2.ExceptWith(diff1); assertEquals("Set algebra identity 4 failed", expected, diff2.Count); expected = diff2.Count; diff2.ExceptWith(intersection); assertEquals("Set algebra identity 5 failed", expected, diff2.Count); expected = intersection.Count; intersection.ExceptWith(diff1); assertEquals("Set algebra identity 6 failed", expected, intersection.Count); expected = intersection.Count; intersection.ExceptWith(diff1); assertEquals("Set algebra identity 7 failed", expected, intersection.Count); intersection.UnionWith(diff1); intersection.UnionWith(diff2); assertTrue("Set algebra identity 1 failed", intersection.Equals(union)); // .NET - test structural equality (this could also be done with SetEquals()) assertEquals("Incorrect hashCode computation.", new LinkedHashSet<int>(union).GetHashCode(), union.GetHashCode()); var e = union.GetEnumerator(); while (e.MoveNext()) assertTrue("Couldn't remove element from copy.", intersection.Remove(e.Current)); assertFalse("Copy nonempty after deleting all elements.", intersection.Any()); e = union.GetEnumerator(); while (e.MoveNext()) { int o = e.Current; assertTrue("Set doesn't contain one of its elements.", union.Contains(o)); // Not possible in .NET //e.Remove(); // if (union.contains(o)) // throw new Exception("Set contains element after deletion."); } // Since we couldn't do the above op, we need to Clear() manually union.Clear(); assertFalse("Set nonempty after deleting all elements.", union.Any()); s1.Clear(); assertFalse("Set nonempty after clear.", s1.Any()); } Console.Out.WriteLine("Success."); }
public void Test_InsertionOrder() { var set = new LinkedHashSet<string>(StringComparer.Ordinal); set.Add("one"); set.Add("two"); set.Add("three"); var i = set.GetEnumerator(); assertTrue(i.MoveNext()); assertEquals("one", i.Current); assertTrue(i.MoveNext()); assertEquals("two", i.Current); assertTrue(i.MoveNext()); assertEquals("three", i.Current); assertFalse(i.MoveNext()); set.UnionWith(new string[] { "four", "five", "six" }); i = set.GetEnumerator(); assertTrue(i.MoveNext()); assertEquals("one", i.Current); assertTrue(i.MoveNext()); assertEquals("two", i.Current); assertTrue(i.MoveNext()); assertEquals("three", i.Current); assertTrue(i.MoveNext()); assertEquals("four", i.Current); assertTrue(i.MoveNext()); assertEquals("five", i.Current); assertTrue(i.MoveNext()); assertEquals("six", i.Current); assertFalse(i.MoveNext()); set.ExceptWith(new string[] { "two", "four" }); i = set.GetEnumerator(); assertTrue(i.MoveNext()); assertEquals("one", i.Current); assertTrue(i.MoveNext()); assertEquals("three", i.Current); assertTrue(i.MoveNext()); assertEquals("five", i.Current); assertTrue(i.MoveNext()); assertEquals("six", i.Current); assertFalse(i.MoveNext()); set.UnionWith(new string[] { "two", "four" }); // Make sure these get added to the end i = set.GetEnumerator(); assertTrue(i.MoveNext()); assertEquals("one", i.Current); assertTrue(i.MoveNext()); assertEquals("three", i.Current); assertTrue(i.MoveNext()); assertEquals("five", i.Current); assertTrue(i.MoveNext()); assertEquals("six", i.Current); assertTrue(i.MoveNext()); assertEquals("two", i.Current); assertTrue(i.MoveNext()); assertEquals("four", i.Current); assertFalse(i.MoveNext()); set.SymmetricExceptWith(new string[] { "seven", "nine", "three", "five", "eight" }); i = set.GetEnumerator(); assertTrue(i.MoveNext()); assertEquals("one", i.Current); assertTrue(i.MoveNext()); assertEquals("six", i.Current); assertTrue(i.MoveNext()); assertEquals("two", i.Current); assertTrue(i.MoveNext()); assertEquals("four", i.Current); assertTrue(i.MoveNext()); assertEquals("seven", i.Current); assertTrue(i.MoveNext()); assertEquals("nine", i.Current); assertTrue(i.MoveNext()); assertEquals("eight", i.Current); assertFalse(i.MoveNext()); set.Remove("two"); i = set.GetEnumerator(); assertTrue(i.MoveNext()); assertEquals("one", i.Current); assertTrue(i.MoveNext()); assertEquals("six", i.Current); assertTrue(i.MoveNext()); assertEquals("four", i.Current); assertTrue(i.MoveNext()); assertEquals("seven", i.Current); assertTrue(i.MoveNext()); assertEquals("nine", i.Current); assertTrue(i.MoveNext()); assertEquals("eight", i.Current); assertFalse(i.MoveNext()); set.Add("two"); i = set.GetEnumerator(); assertTrue(i.MoveNext()); assertEquals("one", i.Current); assertTrue(i.MoveNext()); assertEquals("six", i.Current); assertTrue(i.MoveNext()); assertEquals("four", i.Current); assertTrue(i.MoveNext()); assertEquals("seven", i.Current); assertTrue(i.MoveNext()); assertEquals("nine", i.Current); assertTrue(i.MoveNext()); assertEquals("eight", i.Current); assertTrue(i.MoveNext()); assertEquals("two", i.Current); assertFalse(i.MoveNext()); }