public void CreateTreeAndOverWriteSomeAndReadAgain() { var node = new BPTreeNode <int, TestObject>(15); for (int i = 0; i < 50; i++) { node = node.Insert(i, new TestObject() { Num = i.ToString() }); } var result = node.Query(6); node = node.Insert(6, new TestObject() { Num = 6.ToString() + "a" }); for (int i = 0; i < 10; i++) { node = node.Insert(i, new TestObject() { Num = i.ToString() + "b" }); } for (int i = 0; i < 50; i++) { var retrieved = node.Query(i); } }
public BranchingFactorGroupResult TestUnSequential(int branchFactor, int numInsertions) { var result = new BranchingFactorGroupResult(); Stopwatch timer = new Stopwatch(); timer.Start(); var node = new BPTreeNode <int, int>(); node.BranchingFactor = branchFactor; for (int i = 1; i < numInsertions + 1; i++) { timer.Stop(); var num = GetRandomNumber(result.UsedNumbers); timer.Start(); node = node.Insert(num, num); } timer.Stop(); result.TestResult = timer.ElapsedTicks; //result.NodeResult = node; for (int i = 0; i < 5; i++) { var randomIndex = GetRandomNumber(0, result.UsedNumbers.Keys.Count - 1, new Dictionary <int, int>()); var randomNumber = result.UsedNumbers.Keys.ElementAt((int)randomIndex); timer.Restart(); var queryResult = node.Query(randomNumber); timer.Stop(); result.ReadResults.Add(timer.ElapsedTicks); } return(result); }
public BranchingFactorGroupResult TestSequential(int branchFactor, int numInsertions) { var result = new BranchingFactorGroupResult(); Stopwatch timer = new Stopwatch(); timer.Start(); var node = new BPTreeNode <int, int>(); node.BranchingFactor = branchFactor; for (int i = 1; i < numInsertions + 1; i++) { node = node.Insert(i, i); } timer.Stop(); result.TestResult = timer.ElapsedTicks; //result.NodeResult = node; for (int i = 0; i < 5; i++) { var randomNumber = GetRandomNumber(1, numInsertions, new Dictionary <int, int>()); timer.Restart(); var queryResult = node.Query(randomNumber); timer.Stop(); result.ReadResults.Add(timer.ElapsedTicks); } return(result); }
private bool TestNode(BPTreeNode <int, int> node, long key, long data) { if (node == null) { return(false); } return(node.Data.Any(n => n.Key == key && n.Value == data)); }
public void CreateSingleNode() { var node = new BPTreeNode <int, int>(10); node = node.Insert(1, 123); Assert.IsTrue(TestNode(node, 1, 123)); }
public void CreateNodeAndInsertSequentially() { var node = new BPTreeNode <int, int>(10); // insert arbitrary calc based on i to spice things up and know that it isn't just returning the key Func <int, int> calcData = num => ((int)(((num + 3) * 5) / 4)); for (int i = 0; i < 1000; i++) { node = node.Insert(i, calcData(i)); for (int j = 0; j <= i; j++) { var retrieved = node.Query(j); Assert.AreEqual(retrieved, calcData(j)); } } }
public void IndexSequentialTest() { BPTreeNode <int, int> node = new BPTreeNode <int, int>(10); for (int i = 1; i <= 1000000; i++) { node = node.Insert(i, i); } if (File.Exists(@"C:\temp\node.xml")) { File.Delete(@"C:\temp\node.xml"); } using (FileStream stream = File.Create(@"C:\temp\node.xml")) { XmlSerializer ser = new XmlSerializer(typeof(BPTreeNode <int, int>)); ser.Serialize(stream, node); } }
public BTreeViewModel() { BPTreeNode <int, int> node = new BPTreeNode <int, int>(20); TreeNode = node; Stopwatch stop = new Stopwatch(); stop.Start(); for (int i = 1; i <= 999; i++) { //var num = i; //stop.Stop(); var num = GenerateRandomNumber(); //stop.Start(); node = node.Insert(num, num); } //stop.Stop(); TreeNode = node; InsertCommand = new DelegateCommand(o => !string.IsNullOrEmpty(TextValue), o => { int val = 0; if (int.TryParse(TextValue, out val)) { TreeNode = TreeNode.Insert(val, val); PropertyChanged(this, new PropertyChangedEventArgs("Root")); _history.Add(val); } else { var elems = TextValue.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (var e in elems) { int v = 0; if (int.TryParse(e, out v)) { TreeNode = TreeNode.Insert(v, v); PropertyChanged(this, new PropertyChangedEventArgs("Root")); _history.Add(v); } } } TextValue = null; PropertyChanged(this, new PropertyChangedEventArgs("TextValue")); PropertyChanged(this, new PropertyChangedEventArgs("History")); PropertyChanged(this, new PropertyChangedEventArgs("HistoryString")); }); ResetCommand = new DelegateCommand(o => true, o => { TreeNode = new BPTreeNode <int, int>(100); PropertyChanged(this, new PropertyChangedEventArgs("Root")); _history = new List <int>(); PropertyChanged(this, new PropertyChangedEventArgs("History")); }); SaveCommand = new DelegateCommand(o => true, o => { SaveFileDialog dialog = new SaveFileDialog(); if (dialog.ShowDialog() == DialogResult.OK) { using (var stream = File.Create(dialog.FileName)) { XmlSerializer ser = new XmlSerializer(typeof(BPTreeNode <int, int>)); ser.Serialize(stream, TreeNode); } } }); //TextValue = "50,100,20,150,40,10,30,18,2,19,15"; }