コード例 #1
0
ファイル: IndexedLeaf.cs プロジェクト: git-thinh/limada
        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);
        }
コード例 #2
0
        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);
        }