Esempio n. 1
0
        static void Main(string[] args)
        {
            var max = 20;

            using var pages = new MemoryPageAccessor <BTreeNode <long, long> .Data>(1000);

            var ref1 = pages.GetReference(0);
            var ref2 = pages.GetReference(0);

            ref1.Value.Value = 10;
            ref2.Value.Value = 100;

            if (ref1.Value.Value != 100)
            {
                throw new Exception();
            }

            var btree = new BTree <long, long>(pages);

            var rand = new Random(10);

            var range = Enumerable.Range(0, max).ToList();
            var items = new List <long>();

            while (range.Count > 0)
            {
                var i = range.Count - 1; // rand.Next(range.Count);

                items.Add(range[i]);
                range.RemoveAt(i);
            }

            for (var i = 0; i < 11; i++)
            {
                var idx = items[i];

                Console.WriteLine($"{i}: Adding {idx}");
                btree.Add(idx, i);
                Visualizer.Visualize(btree, $"tree_{i}");
            }

            Visualizer.Visualize(btree);

            for (var i = 0; i < 10; i++)
            {
                var idx = (long)rand.Next(max);
                Console.WriteLine($"{idx}: {btree[idx]}");
            }

            return;

            for (var i = 3; i <= 7; i++)
            {
                RunRandomIterations((int)Math.Pow(10, i), 10000);
                RunRandomIterations(5 * (int)Math.Pow(10, i), 10000);
            }
        }