public void CascadingCut() { FibonacciHeap heap = new FibonacciHeap(); DoubleLinkedList list = new DoubleLinkedList(); FibonacciNode y = new FibonacciNode() { StationID = 1, MinPathValue = 10 }; FibonacciNode x = new FibonacciNode() { StationID = 2, MinPathValue = 20, Mark = true }; FibonacciNode z = new FibonacciNode() { StationID = 3, MinPathValue = 21, Mark = true }; x.Parent = y; y.Child = x; z.Parent = x; x.Child = z; list.Add(y); heap.CascadingCut(list, z); Assert.AreEqual(null, x.Child); Assert.AreEqual(null, y.Child); Assert.AreEqual(null, x.Parent); Assert.AreEqual(null, z.Parent); Assert.AreEqual(1, list.head.StationID); Assert.AreEqual(3, list.head.RightNode.StationID); Assert.AreEqual(2, list.head.RightNode.RightNode.StationID); }