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)); }
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)); }
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)); }
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)); }
/// <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); } } }
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); }
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); }
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); }
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); }