public void RemoveParentTest() { // Parent node HeapNode <float, string> node = new HeapNode <float, string>(0, "Potato"); // Add child, remove parent HeapNode <float, string> child = new HeapNode <float, string>(2, "Tomato"); node.AddChild(child); child.RemoveParent(); Assert.IsNull(child.Parent); // Child has no parent Assert.AreEqual(node.Children.Count, 0); // Node has no children Assert.IsFalse(node.Children.Contains(child)); // Child is not a child of node Assert.AreEqual(node.Rank, 0); // Rank reflects number of children }