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); }
private void AssertLastPointer(int searchValue, int expectedValue) { IBTreeRange single = Search(searchValue); IBTreeRange smallerRange = single.Smaller(); BTreePointer lastPointer = smallerRange.LastPointer(); Assert.AreEqual(expectedValue, lastPointer.Key()); }