コード例 #1
0
 public void Test_Constructor()
 {
     // Test for method java.util.LinkedHashSet()
     LinkedHashSet<object> hs2 = new LinkedHashSet<object>();
     assertEquals("Created incorrect LinkedHashSet", 0, hs2.Count);
 }
コード例 #2
0
            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.");
            }
コード例 #3
0
        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());
        }