public void TestInitialize()
        {
            Tree = new RBOrderedTree <string>();

            for (int i = 0; i < InitialCount; ++i)
            {
                AddNew();
            }
        }
 public void TestCleanup()
 {
     Tree = null;
 }
示例#3
0
        public void OrderedTreeTest()
        {
            Random r = new Random((int)(DateTime.Now.Ticks ^ 0xffff));
            RBOrderedTree <int> tree = new RBOrderedTree <int>();
            List <int>          vals = new List <int>();
            int i, j, k;

            //fill tree
            while (tree.Count != 1000)
            {
                i = r.Next(10000);
                if (tree.Find(i) != null)
                {
                    continue;
                }
                tree.Add(i);
                vals.Add(i);
            }
            vals.Sort();

            //check ordering
            k = 0;
            for (i = 0; i < vals.Count; i++)
            {
                if (tree.GetByOrder(i).Key != vals[i])
                {
                    k++;
                }
            }

            Assert.AreEqual(0, k);
            //Console.WriteLine("{0}", k == 0 ? "ok" : "failed");

            //check get order operation
            k = 0;
            for (i = 0; i < tree.Count; i++)
            {
                if (tree.GetOrder(tree.GetByOrder(i)) != i)
                {
                    k++;
                }
            }
            Assert.AreEqual(0, k);
            //Console.WriteLine("{0}", k == 0 ? "ok" : "failed");

            //remove some items and re-check
            for (i = 0; i < 50; i++)
            {
                j = r.Next(vals.Count);
                tree.Remove(vals[j]);
                vals.RemoveAt(j);
            }

            //check ordering
            k = 0;
            for (i = 0; i < vals.Count; i++)
            {
                if (tree.GetByOrder(i).Key != vals[i])
                {
                    k++;
                }
            }
            Assert.AreEqual(0, k);
            //Console.WriteLine("{0}", k == 0 ? "ok" : "failed");

            //check get order operation
            k = 0;
            for (i = 0; i < tree.Count; i++)
            {
                if (tree.GetOrder(tree.GetByOrder(i)) != i)
                {
                    k++;
                }
            }
            Assert.AreEqual(0, k);
            //Console.WriteLine("{0}", k == 0 ? "ok" : "failed");
        }