public void UnitRsc_SetEquals2()
        {
#if TEST_BCL
            var cp = SortedSet <User> .CreateSetComparer();

            var user1 = new SortedSet <User>(new UserComparer());
            var user2 = new SortedSet <User>(new UserComparer());
#else
            var cp = RankedSet <User> .CreateSetComparer();

            var user1 = new RankedSet <User>(new UserComparer());
            var user2 = new RankedSet <User>(new UserComparer());
#endif
            bool eq0 = cp.Equals(user1, user2);
            Assert.IsTrue(eq0);

            user1.Add(new User("admin"));
            user2.Add(new User("tester"));
            bool eq1 = cp.Equals(user1, user2);
            Assert.IsFalse(eq1);

            user1.Add(new User("tester"));
            user2.Add(new User("admin"));
            bool eq2 = cp.Equals(user1, user2);
            Assert.IsTrue(eq2);
        }
        public void UnitRsc_Equals()
        {
#if TEST_BCL
            var setComparer2 = SortedSet <string> .CreateSetComparer();

            var setComparer3 = SortedSet <int> .CreateSetComparer();
#else
            var setComparer2 = RankedSet <string> .CreateSetComparer();

            var setComparer3 = RankedSet <int> .CreateSetComparer();
#endif
            bool eq0 = setComparer.Equals(null);
            Assert.IsFalse(eq0);

            bool eq1 = setComparer.Equals(setComparer);
            Assert.IsTrue(eq1);

            bool eq2 = setComparer.Equals(setComparer2);
            Assert.IsTrue(eq2);

            bool eq3 = setComparer.Equals(setComparer3);
            Assert.IsFalse(eq3);
        }
Beispiel #3
0
        static void Main()
        {
            var names1 = new string[] { "Falco", "Nico", "David Bowie", "Tom Petty", "Joni Mitchell", "Warren Zevon" };
            var names2 = new string[] { "Michelangelo", "Rembrandt", "Joni Mitchell", "David Bowie" };

            var musicians = new RankedSet <string> (names1);

            // Remove mononymous items.
            Console.WriteLine("Remove single names from the set...");
            Console.WriteLine($"  Count before: {musicians.Count}");
            musicians.RemoveWhere(IsMononymous);
            Console.WriteLine($"  Count after: {musicians.Count}\n");

            // List names starting with 'J'.
            Console.WriteLine("Musicians J-T");
            foreach (var name in musicians.ElementsBetween("J", "U"))
            {
                Console.WriteLine($"  {name}");
            }

            // Create another RankedSet.
            var painters = new RankedSet <string> (names2);

            // Remove elements in musicians that are also in painters.
            Console.WriteLine("\nRemove duplicates (of painters) from the musicians...");
            Console.WriteLine($"  Count before: {musicians.Count}");
            musicians.ExceptWith(painters);
            Console.WriteLine($"  Count after: {musicians.Count}\n");

            Console.WriteLine("List of musicians that are not painters:");
            foreach (string name in musicians)
            {
                Console.WriteLine($"  {name}");
            }

            var comp = RankedSet <string> .CreateSetComparer();

            HashSet <RankedSet <string> > setOfSets = new HashSet <RankedSet <string> > (comp);

            setOfSets.Add(musicians);
            setOfSets.Add(painters);

            Console.WriteLine("\nAll sets in hash set:");
            foreach (var set in setOfSets)
            {
                Console.WriteLine($"  {set.Count} items:");
                foreach (var item in set)
                {
                    Console.WriteLine($"    {item}");
                }
            }

            // Create a 3rd RankedSet.
            var people = new RankedSet <string> {
                "Tom Petty", "Warren Zevon"
            };

            // Create a set equality comparer.
            var comparer = RankedSet <string> .CreateSetComparer();

            Console.WriteLine($"\nSet comparison 1: {comparer.Equals (musicians, people)}");
            Console.WriteLine($"Set comparison 2: {comparer.Equals (painters, people)}");
        }