public virtual void Test1()
        {
            int degree = 3;

            NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                                 ("test1", degree);
            tree.Insert(1, "Value 1");
            tree.Insert(20, "Value 20");
            tree.Insert(25, "Value 25");
            tree.Insert(29, "Value 29");
            tree.Insert(21, "Value 21");
            AssertEquals(5, tree.GetRoot().GetNbKeys());
            AssertEquals(0, tree.GetRoot().GetNbChildren());
            AssertEquals(21, tree.GetRoot().GetMedian().GetKey());
            AssertEquals("[Value 21]", tree.GetRoot().GetMedian().GetValue().ToString());
            AssertEquals(0, tree.GetRoot().GetNbChildren());
            // println(tree.getRoot());
            tree.Insert(45, "Value 45");
            AssertEquals(2, tree.GetRoot().GetNbChildren());
            AssertEquals(1, tree.GetRoot().GetNbKeys());
            AssertEquals(21, tree.GetRoot().GetKeyAt(0));
            AssertEquals("[Value 21]", tree.GetRoot().GetValueAsObjectAt(0).ToString());
            // println(tree.getRoot());
            System.Collections.IList o = tree.Search(20);
            AssertEquals("Value 20", o[0]);
            o = tree.Search(29);
            AssertEquals("Value 29", o[0]);
            o = tree.Search(45);
            AssertEquals("Value 45", o[0]);
        }
        public virtual void TestNonUniqueKey()
        {
            int degree = 3;

            NeoDatis.Btree.IBTreeMultipleValuesPerKey tree1 = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                                  ("7", degree);
            tree1.Insert(1, "A");
            tree1.Insert(1, "AA");
            tree1.Insert(1, "AAA");
            AssertEquals(3, tree1.Search(1).Count);
            AssertEquals("[A, AA, AAA]", tree1.Search(1).ToString());
            AssertEquals(3, tree1.GetSize());
        }
        public virtual void TestString2()
        {
            int size = 300;
            int max  = 0;

            NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                                 ("default", 5);
            for (int i = 1; i < size; i++)
            {
                for (int j = 1; j < size; j++)
                {
                    string key   = ((i + 1) * size + j).ToString();
                    string value = (i * j).ToString();
                    tree.Insert(key, value);
                    if (i * j > max)
                    {
                        max = i * j;
                    }
                }
            }
            // println("max = " + max);
            for (int i = 1; i < size; i++)
            {
                for (int j = 1; j < size; j++)
                {
                    string key   = ((i + 1) * size + j).ToString();
                    string value = (i * j).ToString();
                    System.Collections.IList p = tree.Search(key);
                    AssertEquals(value, p[0]);
                }
            }
        }
        public virtual void Test2()
        {
            int degree = 10;

            NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                                 ("test2", degree);
            for (int i = 0; i < 50000; i++)
            {
                tree.Insert(i, "Value " + i);
            }
            AssertEquals("Value 0", tree.Search(0)[0]);
            AssertEquals("Value 1000", tree.Search(1000)[0]);
            AssertEquals("Value 2000", tree.Search(2000)[0]);
            AssertEquals("Value 3000", tree.Search(3000)[0]);
            // tree.resetNbRead();
            AssertEquals("Value 4999", tree.Search(4999)[0]);
        }
        public virtual void TestInsertUsingInt2()
		{
			int size = 8000;
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("default", 5);
			for (int i = 1; i < size; i++)
			{
				tree.Insert(i, i.ToString());
			}
			System.Collections.IList l = tree.Search(1);
			AssertEquals("[1]", l.ToString());
			l = tree.Search(1000);
			AssertEquals("1000", l[0]);
			l = tree.Search(2000);
			AssertEquals("2000", l[0]);
			l = tree.Search(9800);
			AssertNull(l);
			l = tree.Search(99999);
			AssertEquals(null, l);
		}
        public virtual void TestInsertUsingInt2()
        {
            int size = 8000;

            NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                                 ("default", 5);
            for (int i = 1; i < size; i++)
            {
                tree.Insert(i, i.ToString());
            }
            System.Collections.IList l = tree.Search(1);
            AssertEquals("[1]", l.ToString());
            l = tree.Search(1000);
            AssertEquals("1000", l[0]);
            l = tree.Search(2000);
            AssertEquals("2000", l[0]);
            l = tree.Search(9800);
            AssertNull(l);
            l = tree.Search(99999);
            AssertEquals(null, l);
        }
        public virtual void Test5()
        {
            int degree = 40;

            NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                                 ("5", degree);
            long a0 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            for (int i = 0; i < 500000; i++)
            {
                tree.Insert(i, "Value " + i);
            }
            long a1 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            // println("insert time = " + (a1 - a0));
            AssertEquals("[Value 0]", tree.Search(0).ToString());
            AssertEquals("[Value 1000]", tree.Search(1000).ToString());
            AssertEquals("[Value 2000]", tree.Search(2000).ToString());
            AssertEquals("[Value 48000]", tree.Search(48000).ToString());
            // tree.resetNbRead();
            long t0 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            for (int i = 0; i < 100000; i++)
            {
                AssertEquals("[Value 490000]", tree.Search(490000).ToString());
            }
            long t1 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            // tree.resetNbRead();
            AssertEquals("[Value 490000]", tree.Search(490000).ToString());
        }
 public virtual void TestInsertUsingInt1()
 {
     NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                          ("default", 5);
     tree.Insert(50, "50");
     tree.Insert(40, "40");
     tree.Insert(30, "30");
     tree.Insert(20, "20");
     tree.Insert(10, "10");
     tree.Insert(15, "15");
     tree.Insert(25, "25");
     tree.Insert(35, "35");
     tree.Insert(21, "21");
     tree.Insert(22, "22");
     tree.Insert(23, "23");
     System.Collections.IList l = tree.Search(22);
     AssertEquals("22", l[0]);
 }
 public virtual void TestString1()
 {
     NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                          ("default", 5);
     tree.Insert("50", "50");
     tree.Insert("40", "40");
     tree.Insert("30", "30");
     tree.Insert("20", "20");
     tree.Insert("10", "10");
     tree.Insert("15", "15");
     tree.Insert("25", "25");
     tree.Insert("35", "35");
     tree.Insert("21", "21");
     tree.Insert("22", "22");
     tree.Insert("23", "23");
     System.Collections.IList p = tree.Search("22");
     AssertEquals("22", p[0]);
 }
        public virtual void TestNonUniqueKey2()
        {
            int degree = 3;

            NeoDatis.Btree.IBTreeMultipleValuesPerKey tree1 = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
                                                                  ("7", degree);
            tree1.Insert(1, "A");
            tree1.Insert(1, "AA");
            tree1.Insert(1, "AAA");
            tree1.Insert(1, "BBB");
            System.Collections.ICollection c = tree1.Search(1);
            AssertEquals(4, c.Count);
            System.Collections.IEnumerator iterator = c.GetEnumerator();
            AssertEquals("A", iterator.Current);
            AssertEquals("AA", iterator.Current);
            AssertEquals(4, tree1.GetSize());
            AssertEquals("[A, AA, AAA, BBB]", c.ToString());
        }
        public virtual void TestInsertUsingInt1()
		{
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("default", 5);
			tree.Insert(50, "50");
			tree.Insert(40, "40");
			tree.Insert(30, "30");
			tree.Insert(20, "20");
			tree.Insert(10, "10");
			tree.Insert(15, "15");
			tree.Insert(25, "25");
			tree.Insert(35, "35");
			tree.Insert(21, "21");
			tree.Insert(22, "22");
			tree.Insert(23, "23");
			System.Collections.IList l = tree.Search(22);
			AssertEquals("22", l[0]);
		}
        public virtual void TestString1()
		{
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("default", 5);
			tree.Insert("50", "50");
			tree.Insert("40", "40");
			tree.Insert("30", "30");
			tree.Insert("20", "20");
			tree.Insert("10", "10");
			tree.Insert("15", "15");
			tree.Insert("25", "25");
			tree.Insert("35", "35");
			tree.Insert("21", "21");
			tree.Insert("22", "22");
			tree.Insert("23", "23");
			System.Collections.IList p = tree.Search("22");
			AssertEquals("22", p[0]);
		}
        public virtual void Test1()
		{
			int degree = 3;
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("test1", degree);
			tree.Insert(1, "Value 1");
			tree.Insert(20, "Value 20");
			tree.Insert(25, "Value 25");
			tree.Insert(29, "Value 29");
			tree.Insert(21, "Value 21");
			AssertEquals(5, tree.GetRoot().GetNbKeys());
			AssertEquals(0, tree.GetRoot().GetNbChildren());
			AssertEquals(21, tree.GetRoot().GetMedian().GetKey());
			AssertEquals("[Value 21]", tree.GetRoot().GetMedian().GetValue().ToString());
			AssertEquals(0, tree.GetRoot().GetNbChildren());
			// println(tree.getRoot());
			tree.Insert(45, "Value 45");
			AssertEquals(2, tree.GetRoot().GetNbChildren());
			AssertEquals(1, tree.GetRoot().GetNbKeys());
			AssertEquals(21, tree.GetRoot().GetKeyAt(0));
			AssertEquals("[Value 21]", tree.GetRoot().GetValueAsObjectAt(0).ToString());
			// println(tree.getRoot());
			System.Collections.IList o = tree.Search(20);
			AssertEquals("Value 20", o[0]);
			o = tree.Search(29);
			AssertEquals("Value 29", o[0]);
			o = tree.Search(45);
			AssertEquals("Value 45", o[0]);
		}
        public virtual void TestString2()
		{
			int size = 300;
			int max = 0;
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("default", 5);
			for (int i = 1; i < size; i++)
			{
				for (int j = 1; j < size; j++)
				{
					string key = ((i + 1) * size + j).ToString();
					string value = (i * j).ToString();
					tree.Insert(key, value);
					if (i * j > max)
					{
						max = i * j;
					}
				}
			}
			// println("max = " + max);
			for (int i = 1; i < size; i++)
			{
				for (int j = 1; j < size; j++)
				{
					string key = ((i + 1) * size + j).ToString();
					string value = (i * j).ToString();
					System.Collections.IList p = tree.Search(key);
					AssertEquals(value, p[0]);
				}
			}
		}
        public virtual void TestNonUniqueKey2()
		{
			int degree = 3;
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree1 = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("7", degree);
			tree1.Insert(1, "A");
			tree1.Insert(1, "AA");
			tree1.Insert(1, "AAA");
			tree1.Insert(1, "BBB");
			System.Collections.ICollection c = tree1.Search(1);
			AssertEquals(4, c.Count);
			System.Collections.IEnumerator iterator = c.GetEnumerator();
			AssertEquals("A", iterator.Current);
			AssertEquals("AA", iterator.Current);
			AssertEquals(4, tree1.GetSize());
			AssertEquals("[A, AA, AAA, BBB]", c.ToString());
		}
        public virtual void TestNonUniqueKey()
		{
			int degree = 3;
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree1 = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("7", degree);
			tree1.Insert(1, "A");
			tree1.Insert(1, "AA");
			tree1.Insert(1, "AAA");
			AssertEquals(3, tree1.Search(1).Count);
			AssertEquals("[A, AA, AAA]", tree1.Search(1).ToString());
			AssertEquals(3, tree1.GetSize());
		}
        public virtual void Test5()
		{
			int degree = 40;
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("5", degree);
			long a0 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
			for (int i = 0; i < 500000; i++)
			{
				tree.Insert(i, "Value " + i);
			}
			long a1 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
			// println("insert time = " + (a1 - a0));
			AssertEquals("[Value 0]", tree.Search(0).ToString());
			AssertEquals("[Value 1000]", tree.Search(1000).ToString());
			AssertEquals("[Value 2000]", tree.Search(2000).ToString());
			AssertEquals("[Value 48000]", tree.Search(48000).ToString());
			// tree.resetNbRead();
			long t0 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
			for (int i = 0; i < 100000; i++)
			{
				AssertEquals("[Value 490000]", tree.Search(490000).ToString());
			}
			long t1 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();
			// tree.resetNbRead();
			AssertEquals("[Value 490000]", tree.Search(490000).ToString());
		}
        public virtual void Test2()
		{
			int degree = 10;
			NeoDatis.Btree.IBTreeMultipleValuesPerKey tree = new NeoDatis.Btree.Impl.Multiplevalue.InMemoryBTreeMultipleValuesPerKey
				("test2", degree);
			for (int i = 0; i < 50000; i++)
			{
				tree.Insert(i, "Value " + i);
			}
			AssertEquals("Value 0", tree.Search(0)[0]);
			AssertEquals("Value 1000", tree.Search(1000)[0]);
			AssertEquals("Value 2000", tree.Search(2000)[0]);
			AssertEquals("Value 3000", tree.Search(3000)[0]);
			// tree.resetNbRead();
			AssertEquals("Value 4999", tree.Search(4999)[0]);
		}