示例#1
0
        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");


            //}
        }
示例#2
0
文件: RBTest.cs 项目: Discretka/dis
        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);
        }
示例#3
0
文件: RBTest.cs 项目: Discretka/dis
        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"));
        }
示例#4
0
文件: RBTest.cs 项目: Discretka/dis
        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));
        }
示例#5
0
文件: RBTest.cs 项目: Discretka/dis
        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));
        }