Beispiel #1
0
        public bool IsSupersetOf(MultiSet other)
        {
            MultiSet primarySet = new MultiSet();

            foreach (string element in mSet)
            {
                primarySet.Add(element);
            }

            MultiSet difference = other.Subtract(primarySet);

            if (difference.ToList().Count == 0)
            {
                return(true);
            }
            return(false);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            MultiSet set = new MultiSet();

            set.Add("cattle");
            set.Add("bee");
            set.Add("cattle");
            set.Add("bee");
            set.Add("happy");
            set.Add("zachariah");

            Debug.Assert(set.Remove("zachariah"));
            Debug.Assert(!set.Remove("fun"));

            Debug.Assert(set.GetMultiplicity("cattle") == 2);

            List <string> expectedList = new List <string> {
                "bee", "bee", "cattle", "cattle", "happy"
            };
            List <string> list = set.ToList();

            Debug.Assert(list.Count == 5);

            for (int i = 0; i < expectedList.Count; i++)
            {
                Debug.Assert(expectedList[i] == list[i]);
            }

            MultiSet set2 = new MultiSet();

            set2.Add("cattle");
            set2.Add("cattle");
            set2.Add("bee");

            list = set.Union(set2).ToList();
            Debug.Assert(list.Count == 5);

            for (int i = 0; i < expectedList.Count; i++)
            {
                Debug.Assert(expectedList[i] == list[i]);
            }

            expectedList = new List <string> {
                "bee", "cattle", "cattle"
            };
            list = set.Intersect(set2).ToList();
            Debug.Assert(list.Count == 3);

            for (int i = 0; i < expectedList.Count; i++)
            {
                Debug.Assert(expectedList[i] == list[i]);
            }

            expectedList = new List <string> {
                "bee", "happy"
            };
            list = set.Subtract(set2).ToList();
            Debug.Assert(list.Count == 2);

            for (int i = 0; i < expectedList.Count; i++)
            {
                Debug.Assert(expectedList[i] == list[i]);
            }

            List <MultiSet> expectedPowerset = getExpectedPowerset();
            List <MultiSet> set2PowerSet     = set2.FindPowerSet();

            Debug.Assert(set2PowerSet.Count == expectedPowerset.Count);

            for (int i = 0; i < expectedPowerset.Count; i++)
            {
                expectedList = expectedPowerset[i].ToList();
                list         = set2PowerSet[i].ToList();

                Debug.Assert(expectedList.Count == list.Count);

                for (int j = 0; j < expectedList.Count; j++)
                {
                    Debug.Assert(expectedList[j] == list[j]);
                }
            }

            Debug.Assert(!set.IsSubsetOf(set2));
            Debug.Assert(set.IsSupersetOf(set2));
        }