public static void PrimsMinimumSpanningTree_1() { { var expected = MstGraphA.OrderBy(e => e.from).ToArray(); var actual = PrimAlgorithm.MinimumSpanningTreeWithHeap(new ArrayGraph(graphA)) .OrderBy(e => e.from) .ToArray(); Assert.AreEqualSequences(expected, actual, EdgeComparer.UndirectedEdgeComparer); } { var expected = MstGraphB.OrderBy(e => e.from).ToArray(); var actual = PrimAlgorithm.MinimumSpanningTreeWithHeap(new ArrayGraph(graphB)) .OrderBy(e => e.from) .ToArray(); Assert.AreEqualSequences(expected, actual, EdgeComparer.UndirectedEdgeComparer); } //foreach (var edge in actual) //{ // Console.WriteLine($"{edge.from} -> {edge.to} \t {edge.weight}"); //} }
public static void KruskalMinimumSpanningTree() { { var expected = MstGraphA.OrderBy(e => e.weight).ToArray(); var actual = KruskalAlgorithm.MinimumSpanningTree(new ArrayGraph(graphA)) .OrderBy(e => e.weight) .ToArray(); Assert.AreEqualSequences(expected, actual, EdgeComparer.UndirectedEdgeComparer); } { var expected = MstGraphB.OrderBy(e => e.weight).ToArray(); var actual = KruskalAlgorithm.MinimumSpanningTree(new ArrayGraph(graphB)) .OrderBy(e => e.weight) .ToArray(); Assert.AreEqualSequences(expected, actual, EdgeComparer.UndirectedEdgeComparer); } }