public void Test_RBTREE_DELETE() { RbTree rbTree = new RbTree(); System.Collections.Generic.IList <IDirectoryEntry> repo = GetDirectoryRepository(25); foreach (var item in repo) { rbTree.Insert(item); } try { IRbNode n; rbTree.Delete(DirectoryEntry.Mock("5", StgType.StgInvalid), out n); rbTree.Delete(DirectoryEntry.Mock("24", StgType.StgInvalid), out n); rbTree.Delete(DirectoryEntry.Mock("7", StgType.StgInvalid), out n); } catch (Exception ex) { Assert.Fail("Item removal failed: " + ex.Message); } // CFItem c; // bool s = rbTree.TryLookup(new CFMock("7", StgType.StgStream), out c); // Assert.IsFalse(s); // c = null; // Assert.IsTrue(rbTree.TryLookup(new CFMock("6", StgType.StgStream), out c)); // Assert.IsTrue(c.IsStream); // Assert.IsTrue(rbTree.TryLookup(new CFMock("12", StgType.StgStream), out c)); // Assert.IsTrue(c.Name == "12"); //} }
public void Delete_InsertThreeElementsAndDeleteTwoElements_FindOneElement() { var comparer = new StringComparator(); var map = new RbTree <string, int>(comparer); map.Insert("vga", 5); map.Insert("hj", 1); map.Insert("vbz", 9); map.Delete("vga"); map.Delete("vbz"); var actual = map.Find("hj"); var expected = 1; Assert.AreEqual(expected, actual); }
public void Delete_TryDeleteNoExistElement_Exception() { var comparer = new StringComparator(); var map = new RbTree <string, int>(comparer); map.Insert("kgj", 45); map.Insert("a", 21); map.Insert("vba", 90); Assert.Throws <Exception>(() => map.Delete("b")); }
public void Delete_InsertSevenElementsAndDeleteFourElements_FindAllElement() { var comparer = new StringComparator(); var map = new RbTree <string, int>(comparer); map.Insert("aa", 5); map.Insert("ab", 1); map.Insert("zzz", 9); map.Insert("4ga", 189); map.Insert("11", 22); map.Insert("bn", 56); map.Insert("az", 88); map.Delete("aa"); map.Delete("ab"); map.Delete("zzz"); map.Delete("bn"); var actual = map.GetKeys(); var expected = new List <string> { "11", "4ga", "az" }; Assert.IsTrue(AreEqual(actual, expected, comparer)); }
public void Find_TryFindNoExistElement_Exception() { var comparer = new StringComparator(); var map = new RbTree <string, int>(comparer); map.Insert("ffg", 45); map.Insert("acb", 21); map.Insert("hyred", 90); map.Delete("acb"); Assert.Throws <Exception>(() => map.Find("acb")); }
static void Test2() { var tree = new RbTree(null, null); var t1 = DateTime.Now; for (int i = 0; i < 1000000; i++) { RbKey key = new IntKey(i); tree.Insert(key, 10 + i); } Console.WriteLine(String.Format("Insert time: {0} sec", Convert.ToDecimal(DateTime.Now.Subtract(t1).TotalMilliseconds) / 1000)); t1 = DateTime.Now; bool found; object value; for (int i = 0; i < 1000000; i++) { RbKey key = new IntKey(i); tree.Get(key, out value, out found); } Console.WriteLine(String.Format("Search time: {0} sec", Convert.ToDecimal(DateTime.Now.Subtract(t1).TotalMilliseconds) / 1000)); for (int i = 0; i < 1000000; i++) { RbKey key = new IntKey(i); tree.Delete(key); } Console.WriteLine(String.Format("Delete time: {0} sec", Convert.ToDecimal(DateTime.Now.Subtract(t1).TotalMilliseconds) / 1000)); }