public void RandomAddRemoveTest() { const int NUMBERS_TO_ADD = 200; MyAVLTREE <int, string> myAVLTREE = new MyAVLTREE <int, string>(); List <int> addedValues = new List <int>(); Random random = new Random(System.DateTime.Now.Millisecond.GetHashCode()); for (int i = 0; i < NUMBERS_TO_ADD; i++) { int randomNumber = random.Next(100); myAVLTREE.Add(randomNumber, ""); addedValues.Add(randomNumber); Assert.That(myAVLTREE.Height(), Is.LessThan(MaxHeight(myAVLTREE) + 1), $"Add from: {string.Join(",", addedValues)}"); } var allAdded = addedValues.ToArray(); List <int> removedIndeces = new List <int>(); while (addedValues.Count > 0) { int rnd = random.Next(addedValues.Count()); removedIndeces.Add(rnd); int toRemove = addedValues[rnd]; addedValues.RemoveAt(rnd); myAVLTREE.Remove(toRemove); Assert.That(myAVLTREE.Height(), Is.LessThan(MaxHeight(myAVLTREE) + 1), $"Removed indices from {string.Join(",", addedValues)}: {string.Join(",", removedIndeces)}"); } }
public void TestDelete1() { MyAVLTREE <int, string> myAVLTREE = new MyAVLTREE <int, string>(); myAVLTREE.Add(10, ""); myAVLTREE.Add(8, ""); myAVLTREE.Add(13, ""); myAVLTREE.Add(11, ""); myAVLTREE.Add(14, ""); myAVLTREE.Remove(8); Assert.That(myAVLTREE.Root.Left.Key, Is.EqualTo(10)); Assert.That(myAVLTREE.Root.Right.Key, Is.EqualTo(14)); Assert.That(myAVLTREE.Height, Is.EqualTo(3)); }