public void Link() { FibonacciHeap heap1 = new FibonacciHeap(); DoubleLinkedList root1 = new DoubleLinkedList(); FibonacciNode y = new FibonacciNode() { StationID = 1, MinPathValue = 10 }; FibonacciNode x = new FibonacciNode() { StationID = 2, MinPathValue = 5 }; root1.Add(y); root1.Add(x); heap1.Link(root1, y, x); Assert.AreEqual(2, root1.head.StationID); Assert.AreEqual(1, x.Child.StationID); Assert.AreEqual(1, x.Degree); Assert.AreEqual(2, root1.head.RightNode.StationID); FibonacciHeap heap2 = new FibonacciHeap(); DoubleLinkedList root2 = new DoubleLinkedList(); FibonacciNode z = new FibonacciNode() { StationID = 3, MinPathValue = 10 }; x.Child = z; z.Parent = x; x.Degree = 1; root1.Add(y); root1.Add(x); heap2.Link(root2, y, x); Assert.AreEqual(2, root1.head.StationID); Assert.AreEqual(3, x.Child.StationID); Assert.AreEqual(2, x.Degree); Assert.AreEqual(2, root1.head.RightNode.StationID); Assert.AreEqual(3, x.Child.StationID); Assert.AreEqual(1, x.Child.RightNode.StationID); }