public Int32AvlNode AddLeftLeft(Int32AvlNode orginalRoot, int i) { var api = CreateApi(); var oldNode4 = orginalRoot.Left; var node2 = CreateNode(2); var newRoot4 = api.AddNode(orginalRoot, node2); Assert.IsNotNull(newRoot4); Assert.IsNotNull(newRoot4.Left); Assert.IsNotNull(newRoot4.Right); Assert.AreNotSame(newRoot4.Right, orginalRoot); Assert.AreNotSame(newRoot4, oldNode4); Assert.AreSame(node2, newRoot4.Left); Assert.AreEqual(newRoot4.Key, oldNode4.Key); Assert.AreEqual(orginalRoot.Key, newRoot4.Right.Key); Assert.AreEqual(2, newRoot4.Left.Key); Assert.AreEqual(4, newRoot4.Key); Assert.AreEqual(6, newRoot4.Right.Key); Assert.AreEqual(0, newRoot4.BalanceFactor); Assert.AreEqual(0, newRoot4.Left.BalanceFactor); Assert.AreEqual(0, newRoot4.Right.BalanceFactor); return(newRoot4); }
public Int32AvlNode AddRightRight(Int32AvlNode newRoot4, int i) { var api = CreateApi(); var oldNode6 = newRoot4.Right; var node8 = CreateNode(i); var newRoot6 = api.AddNode(newRoot4, node8); Assert.IsNotNull(newRoot6); Assert.IsNotNull(newRoot6.Left); Assert.IsNotNull(newRoot6.Right); Assert.AreNotSame(newRoot6.Left, newRoot4); Assert.AreNotSame(newRoot6, oldNode6); Assert.AreSame(node8, newRoot6.Right); Assert.AreEqual(newRoot6.Key, oldNode6.Key); Assert.AreEqual(newRoot4.Key, newRoot6.Left.Key); Assert.AreEqual(4, newRoot6.Left.Key); Assert.AreEqual(6, newRoot6.Key); Assert.AreEqual(8, newRoot6.Right.Key); Assert.AreEqual(0, newRoot6.BalanceFactor); Assert.AreEqual(0, newRoot6.Left.BalanceFactor); Assert.AreEqual(0, newRoot6.Right.BalanceFactor); return(newRoot6); }
public Int32AvlNode CreateNode(int i) { var avlNode = new Int32AvlNode { Key = i }; return(avlNode); }
public void Case_OnlyRootPresent() // Case 1.1 { var api = CreateApi(); Int32AvlNode root = null; root = api.AddNode(root, CreateNode(2)); root = api.Remove(root, 2); Assert.IsNull(root); }
public void Case_RootAndLeftChild_DeleteChild() // Case 1.2a { var api = CreateApi(); Int32AvlNode root = null; root = api.AddNode(root, CreateNode(2)); root = api.AddNode(root, CreateNode(1)); root = api.Remove(root, 1); Assert.AreEqual(2, root.Key); Assert.AreEqual(0, root.BalanceFactor); }
public void Case_RootAndFour_10_5_20_1_6_DeleteLeaf_1() // Case 1.2x { var api = CreateApi(); Int32AvlNode root = null; root = api.AddNode(root, CreateNode(10)); root = api.AddNode(root, CreateNode(5)); root = api.AddNode(root, CreateNode(20)); root = api.AddNode(root, CreateNode(1)); root = api.AddNode(root, CreateNode(6)); root = api.Remove(root, 1); Assert.AreEqual(10, root.Key); Assert.AreEqual(1, root.BalanceFactor); Assert.AreEqual(-1, root.Left.BalanceFactor); Assert.AreEqual(0, root.Right.BalanceFactor); Assert.AreEqual(0, root.Left.Right.BalanceFactor); }
public Int32AvlNode AddLeft(Int32AvlNode node4, int i) { var api = CreateApi(); var node2 = CreateNode(i); var newRoot4 = api.AddNode(node4, node2); var newNode2 = newRoot4.Left; Assert.IsNotNull(node2); Assert.IsNotNull(newRoot4); Assert.IsNotNull(newNode2); Assert.AreNotSame(node4, newRoot4); Assert.AreSame(node2, newNode2); Assert.AreEqual(0, node4.BalanceFactor); Assert.AreEqual(0, node2.BalanceFactor); Assert.AreEqual(0, newNode2.BalanceFactor); Assert.AreEqual(1, newRoot4.BalanceFactor); return(newRoot4); }
public Int32AvlNode AddRight(Int32AvlNode node4, int i) { var api = CreateApi(); var node6 = CreateNode(i); var newRoot4 = api.AddNode(node4, node6); var newNode6 = newRoot4.Right; Assert.IsNotNull(node6); Assert.IsNotNull(newRoot4); Assert.IsNotNull(newNode6); Assert.AreNotSame(node4, newRoot4); Assert.AreSame(node6, newNode6); Assert.AreEqual(0, node4.BalanceFactor); Assert.AreEqual(0, node6.BalanceFactor); Assert.AreEqual(0, newNode6.BalanceFactor); Assert.AreEqual(-1, newRoot4.BalanceFactor); return(newRoot4); }
public void Case_RootAndFour_10_5_20_15_DeleteNode_20() // Case 2b { var api = CreateApi(); Int32AvlNode root = null; root = api.AddNode(root, CreateNode(10)); root = api.AddNode(root, CreateNode(5)); root = api.AddNode(root, CreateNode(20)); root = api.AddNode(root, CreateNode(15)); root = api.Remove(root, 20); Assert.AreEqual(10, root.Key); Assert.AreEqual(5, root.Left.Key); Assert.AreEqual(15, root.Right.Key); Assert.AreEqual(0, root.BalanceFactor); Assert.AreEqual(0, root.Left.BalanceFactor); Assert.AreEqual(0, root.Right.BalanceFactor); }
public Int32AvlNode AddLeftRight(Int32AvlNode newRoot4, int i) { var api = CreateApi(); var newNode = CreateNode(i); var newRoot5 = api.AddNode(newRoot4, newNode); var oldNode6 = newRoot4.Left; Assert.IsNotNull(newRoot5); Assert.IsNotNull(newRoot5.Right); Assert.IsNotNull(newRoot5.Left); Assert.AreNotSame(newRoot5, newNode); Assert.AreNotSame(newRoot5.Right, newRoot4); Assert.AreNotSame(newRoot5.Left, oldNode6); Assert.AreEqual(newRoot5.Key, newNode.Key); Assert.AreEqual(newRoot5.Right.Key, newRoot4.Key); Assert.AreEqual(newRoot5.Left.Key, oldNode6.Key); Assert.AreEqual(0, newRoot5.BalanceFactor); Assert.AreEqual(0, newRoot5.Left.BalanceFactor); Assert.AreEqual(0, newRoot5.Right.BalanceFactor); return(newRoot5); }