public virtual void TestAddRemove() { SortedCollection4 collection = NewSortedCollection(); collection.Add(3); collection.Add(1); collection.Add(5); AssertCollection(new int[] { 1, 3, 5 }, collection); collection.Remove(3); AssertCollection(new int[] { 1, 5 }, collection); collection.Remove(1); AssertCollection(new int[] { 5 }, collection); }
public static IBTreeRange Union(BTreeRangeUnion union, BTreeRangeSingle single) { if (single.IsEmpty()) { return(union); } SortedCollection4 sorted = NewBTreeRangeSingleCollection(); sorted.Add(single); BTreeRangeSingle range = single; IEnumerator ranges = union.Ranges(); while (ranges.MoveNext()) { BTreeRangeSingle current = (BTreeRangeSingle)ranges.Current; if (CanBeMerged(current, range)) { sorted.Remove(range); range = Merge(current, range); sorted.Add(range); } else { sorted.Add(current); } } return(ToRange(sorted)); }