Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }