Esempio n. 1
0
        public void CompareNullBothKeys()
        {
            var comparer = new KeyValuePairComparer <string, string>();
            var a        = new KeyValuePair <string, string>(null, null);
            var b        = new KeyValuePair <string, string>(null, "asdf");

            Assert.AreEqual(0, comparer.Compare(a, b));
        }
Esempio n. 2
0
        public void CompareGreater()
        {
            var comparer = new KeyValuePairComparer <int, string>();
            var a        = new KeyValuePair <int, string>(2, null);
            var b        = new KeyValuePair <int, string>(1, "asdf");

            Assert.AreEqual(1, comparer.Compare(a, b));
        }
Esempio n. 3
0
        public void CompareNullFirstKey()
        {
            // All instances are greater than null (MSDN)
            var comparer = new KeyValuePairComparer <string, string>();
            var a        = new KeyValuePair <string, string>(null, null);
            var b        = new KeyValuePair <string, string>("a", "asdf");

            Assert.AreEqual(-1, comparer.Compare(a, b));
        }
Esempio n. 4
0
        public void CompareUsingCustomKeyComparer()
        {
            // Test that the custom comparer for the keys is used if supplied
            var keyComparer = new ReverseIntComparer();
            var comparer    = new KeyValuePairComparer <int, string>(keyComparer);
            var a           = new KeyValuePair <int, string>(2, null);
            var b           = new KeyValuePair <int, string>(1, "asdf");

            Assert.AreEqual(-1, comparer.Compare(a, b));
        }
Esempio n. 5
0
        /// <summary>
        /// All keys in the input set must be less than all keys in the current set || all keys in the input set must be greater than all keys in the current set.
        /// </summary>
        public void InternalMerge(IOrderedSet <TKey, TValue> set)
        {
            if (set.Count == 0)
            {
                return;
            }

            if (this.Count == 0)
            {
                foreach (var x in set) //set.Forward()
                {
                    list.Add(x);
                }

                return;
            }

            Debug.Assert(comparer.Compare(this.Last.Key, set.First.Key) < 0 || comparer.Compare(this.First.Key, set.Last.Key) > 0);

            if (list != null)
            {
                int idx = kvComparer.Compare(set.Last, list[0]) < 0 ? 0 : list.Count;
                list.InsertRange(idx, set);
            }
            else if (dictionary != null)
            {
                foreach (var kv in set)
                {
                    dictionary.Add(kv.Key, kv.Value); //there should be no exceptions
                }
            }
            else //if (set != null)
            {
                foreach (var kv in set)
                {
                    this.set.Add(kv);
                }
            }
        }
Esempio n. 6
0
        public void CustomComparison()
        {
            var associationKeyComparer = new KeyValuePairComparer<int, string>((x, y) => x.CompareTo(y) * -1);

            var pair1 = new KeyValuePair<int, string>(5, "5");
            var pair2 = new KeyValuePair<int, string>(5, "6");
            var pair3 = new KeyValuePair<int, string>(3, "5");
            var pair4 = new KeyValuePair<int, string>(5, "5");

            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair2), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair3), -1);
            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair4), 0);

            Assert.AreEqual(associationKeyComparer.Compare(pair2, pair1), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair3, pair1), +1);
            Assert.AreEqual(associationKeyComparer.Compare(pair4, pair1), 0);

            Assert.AreEqual(associationKeyComparer.Compare(pair2.Key, pair1.Key), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair3.Key, pair1.Key), +1);
            Assert.AreEqual(associationKeyComparer.Compare(pair4.Key, pair1.Key), 0);
        }
Esempio n. 7
0
        public void CustomComparison()
        {
            var associationKeyComparer = new KeyValuePairComparer <int, string>((x, y) => x.CompareTo(y) * -1);

            var pair1 = new KeyValuePair <int, string>(5, "5");
            var pair2 = new KeyValuePair <int, string>(5, "6");
            var pair3 = new KeyValuePair <int, string>(3, "5");
            var pair4 = new KeyValuePair <int, string>(5, "5");

            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair2), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair3), -1);
            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair4), 0);

            Assert.AreEqual(associationKeyComparer.Compare(pair2, pair1), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair3, pair1), +1);
            Assert.AreEqual(associationKeyComparer.Compare(pair4, pair1), 0);

            Assert.AreEqual(associationKeyComparer.Compare(pair2.Key, pair1.Key), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair3.Key, pair1.Key), +1);
            Assert.AreEqual(associationKeyComparer.Compare(pair4.Key, pair1.Key), 0);
        }
Esempio n. 8
0
        public void DefaultComparer()
        {
            var associationKeyComparer = new KeyValuePairComparer<int, string>();

            var pair1 = new KeyValuePair<int, string>(5, "5");
            var pair2 = new KeyValuePair<int, string>(5, "6");
            var pair3 = new KeyValuePair<int, string>(3, "5");
            var pair4 = new KeyValuePair<int, string>(5, "5");

            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair2), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair3), 1);
            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair4), 0);

            Assert.AreEqual(associationKeyComparer.Compare(pair2, pair1), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair3, pair1), -1);
            Assert.AreEqual(associationKeyComparer.Compare(pair4, pair1), 0);
        }
Esempio n. 9
0
        public void CustomComparer()
        {
            var associationKeyComparer = new KeyValuePairComparer <int, string>(Comparer <int> .Default);

            var pair1 = new KeyValuePair <int, string>(5, "5");
            var pair2 = new KeyValuePair <int, string>(5, "6");
            var pair3 = new KeyValuePair <int, string>(3, "5");
            var pair4 = new KeyValuePair <int, string>(5, "5");

            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair2), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair3), 1);
            Assert.AreEqual(associationKeyComparer.Compare(pair1, pair4), 0);

            Assert.AreEqual(associationKeyComparer.Compare(pair2, pair1), 0);
            Assert.AreEqual(associationKeyComparer.Compare(pair3, pair1), -1);
            Assert.AreEqual(associationKeyComparer.Compare(pair4, pair1), 0);
        }