Ejemplo n.º 1
0
        private static void CheckCorrectness <K, V>(BPlusTree <K, V> bPlusTree, IEnumerable <K> allWrittenNumbers) where K : IComparable <K>
        {
            bool areNodesOk  = Helpers.CheckNodes(bPlusTree.Root);
            var  leaf        = bPlusTree.GetMinLeaf();
            var  keysInBTree = new HashSet <K>();

            while (leaf != null)
            {
                for (int i = 0; i <= leaf.KeyIndex; i++)
                {
                    keysInBTree.Add(leaf.Keys[i]);
                }
                leaf = leaf.Next;
            }
            int uniqCnt = allWrittenNumbers.Except(keysInBTree).Count();

            Trace.Assert(0 == uniqCnt);

            if (uniqCnt == 0 && areNodesOk)
            {
                Console.WriteLine("CheckCorrectness: OK");
            }
            else
            {
                Console.WriteLine("CheckCorrectness: FAIL");
            }
        }
Ejemplo n.º 2
0
        internal List <long> DumpKeysOnLeafNodes(BPlusTree <long, long> bPlusTree)
        {
            var allKeys      = new List <long>();
            var mostLeftLeaf = bPlusTree.GetMinLeaf();
            var temp         = mostLeftLeaf;

            while (temp != null)
            {
                for (int i = 0; i <= temp.KeyIndex; i++)
                {
                    allKeys.Add(temp.Keys[i]);
                }
                temp = temp.Next;
            }
            return(allKeys);
        }