public void TestAdd() { RecursiveBinarySearchTree<int> tree = new RecursiveBinarySearchTree<int>(); TreeNode<int> node1 = new TreeNode<int>(1); TreeNode<int> node2 = new TreeNode<int>(2); TreeNode<int> node3 = new TreeNode<int>(3); TreeNode<int> node4 = new TreeNode<int>(4); tree.Add(node4.Value); tree.Add(node2.Value); tree.Add(node3.Value); tree.Add(node1.Value); TreeNode<int> node5 = new TreeNode<int>(5); TreeNode<int> node6 = new TreeNode<int>(6); TreeNode<int> node7 = new TreeNode<int>(7); TreeNode<int> node8 = new TreeNode<int>(8); tree.Add(node6.Value); tree.Add(node5.Value); tree.Add(node8.Value); tree.Add(node7.Value); TreeNode<int> testNode = tree.FindNode(node2.Value); Assert.IsNotNull(testNode, "Couldn't find test node"); Assert.AreEqual(testNode.Value.CompareTo(node2.Value), 0, "Test node does not match value"); Assert.IsNotNull(testNode.LeftNode, "LeftNode is null"); Assert.IsNotNull(testNode.RightNode, "Right node is null"); TreeNode<int> leftNode = testNode.LeftNode; TreeNode<int> rightNode = testNode.RightNode; Assert.AreEqual(leftNode.Value.CompareTo(node1.Value), 0, "left node does not match expected value"); Assert.AreEqual(rightNode.Value.CompareTo(node3.Value), 0, "right node does not match expected value"); Assert.AreEqual(leftNode.ParentNode.Value.CompareTo(node2.Value), 0); Assert.AreEqual(rightNode.ParentNode.Value.CompareTo(node2.Value), 0); testNode = tree.FindNode(node6.Value); Assert.IsNotNull(testNode, "Couldn't find test node"); Assert.AreEqual(testNode.Value.CompareTo(node6.Value), 0, "Test node does not match value"); Assert.IsNotNull(testNode.LeftNode, "LeftNode is null"); Assert.IsNotNull(testNode.RightNode, "Right node is null"); leftNode = testNode.LeftNode; rightNode = testNode.RightNode; Assert.AreEqual(leftNode.Value.CompareTo(node5.Value), 0, "left node does not match expected value"); Assert.AreEqual(rightNode.Value.CompareTo(node8.Value), 0, "right node does not match expected value"); Assert.AreEqual(leftNode.ParentNode.Value.CompareTo(node6.Value), 0); Assert.AreEqual(rightNode.ParentNode.Value.CompareTo(node6.Value), 0); }
public IEnumerable <int> CreateTreeFromCollectionTest(List <int> items) { RecursiveBinarySearchTree <int> tree = new RecursiveBinarySearchTree <int>(items); List <int> result = new List <int>(); foreach (var data in tree) { result.Add(data); } return(result); }
public IEnumerable <int> AddTest(List <int> items, int item) { RecursiveBinarySearchTree <int> tree = new RecursiveBinarySearchTree <int>(items); tree.Add(item); List <int> result = new List <int>(); foreach (var data in tree) { result.Add(data); } return(result); }
public int TestGetMin(List <int> items, IComparer <int> comparator) { RecursiveBinarySearchTree <int> tree = new RecursiveBinarySearchTree <int>(items, comparator); return(tree.GetMin(tree.Root).Data); }
private RecursiveBinarySearchTree<int> ConstructTree() { RecursiveBinarySearchTree<int> tree = new RecursiveBinarySearchTree<int>(); TreeNode<int> node1 = new TreeNode<int>(1); TreeNode<int> node2 = new TreeNode<int>(2); TreeNode<int> node3 = new TreeNode<int>(3); TreeNode<int> node4 = new TreeNode<int>(4); tree.Add(node4.Value); tree.Add(node2.Value); tree.Add(node3.Value); tree.Add(node1.Value); TreeNode<int> node5 = new TreeNode<int>(5); TreeNode<int> node6 = new TreeNode<int>(6); TreeNode<int> node7 = new TreeNode<int>(7); TreeNode<int> node8 = new TreeNode<int>(8); tree.Add(node6.Value); tree.Add(node5.Value); tree.Add(node8.Value); tree.Add(node7.Value); return tree; }
public Student TestGetLeft(List <Student> items, IComparer <Student> comparator) { RecursiveBinarySearchTree <Student> tree = new RecursiveBinarySearchTree <Student>(items, comparator); return(tree.GetLeft().Data); }