public void HandleNode(TestObject_Integer nodeToHandle)
 {
     if (nodeToHandle != null)
     {
         traverseText.Append(nodeToHandle.Value.ToString());
     }
 }
            public void GenericBinaryTree_AddRandomElementsAndDeleteThem()
            {
                TestObject_Integer[] testObjectArray_01 = new TestObject_Integer[100000];
                TestObject_Integer[] testObjectArray_02 = new TestObject_Integer[100000];

                for (int i = 0; i < testObjectArray_01.Length; i++)
                {
                    testObjectArray_01[i] = new TestObject_Integer(i);
                    testObjectArray_02[i] = new TestObject_Integer(i);
                }

                testObjectArray_01 = CollectionManipulation.RandomizeGenericArray<TestObject_Integer>(testObjectArray_01);
                System.Threading.Thread.Sleep(100);
                testObjectArray_02 = CollectionManipulation.RandomizeGenericArray<TestObject_Integer>(testObjectArray_02);

                GenericBinaryTree<TestObject_Integer> testTree = new GenericBinaryTree<TestObject_Integer>();

                bool addResult = true;
                for (int i = 0; i < testObjectArray_01.Length; i++)
                {
                    if (!testTree.Add(testObjectArray_01[i]))
                    {
                        addResult = false;
                    }
                }

                Assert.IsTrue(addResult, "addResult");
                Assert.IsFalse(testTree.HasErrors, "HasErrors");

                bool deleteResult = true;
                for (int i = 0; i < testObjectArray_02.Length; i++)
                {
                    if (!testTree.Delete(testObjectArray_02[i]))
                    {
                        deleteResult = false;
                    }
                }

                Assert.IsTrue(deleteResult, "deleteResult");
                Assert.IsFalse(testTree.HasErrors, "HasErrors");
                Assert.IsNull(testTree.RootNode, "RootNode");
            }