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); } }