private IBTreeRange Search() { IBTreeRange range = Search(Constraint().GetObject()); QEBitmap bitmap = QEBitmap.ForQE(Constraint().Evaluator()); if (bitmap.TakeGreater()) { if (bitmap.TakeEqual()) { return(range.ExtendToLast()); } IBTreeRange greater = range.Greater(); if (bitmap.TakeSmaller()) { return(greater.Union(range.Smaller())); } return(greater); } if (bitmap.TakeSmaller()) { if (bitmap.TakeEqual()) { return(range.ExtendToFirst()); } return(range.Smaller()); } return(range); }
public virtual void TestSearchingRemoved() { int[] keys = new int[] { 3, 4, 7, 9 }; Add(keys); Remove(4); IBTreeRange result = Search(4); Assert.IsTrue(result.IsEmpty()); IBTreeRange range = result.Greater(); BTreeAssert.AssertRange(new int[] { 7, 9 }, range); }