public void BoruvkasAlgorithmExecuteTest() { Func <IGraphEdge, Double> weightFunction = edge => Convert.ToDouble(edge["Weight"]); IDictionary <OperationParameter, Object> parameters = new Dictionary <OperationParameter, Object>(); parameters[GraphOperationParameters.WeightMetric] = weightFunction; BoruvkasAlgorithm operation = new BoruvkasAlgorithm(_sourceGraph, parameters); operation.Execute(); Assert.AreEqual(_resultGraph.VertexCount, operation.Result.VertexCount); Assert.AreEqual(_resultGraph.EdgeCount, operation.Result.EdgeCount); foreach (IGraphEdge resultEdge in operation.Result.Edges) { IGraphEdge edge = _resultGraph.GetEdge(resultEdge.Source.Coordinate, resultEdge.Target.Coordinate); Assert.IsNotNull(edge); Assert.AreEqual(resultEdge.Source.Coordinate, edge.Source.Coordinate); Assert.AreEqual(resultEdge.Target.Coordinate, edge.Target.Coordinate); Assert.AreEqual(resultEdge.Metadata, edge.Metadata); } }
public static void GetBoruvka() { var graph = Initializing.CreateGraph(@"./_First.txt"); var graphToReturn = BoruvkasAlgorithm.BoruvkaSolve(graph); System.Console.WriteLine("\n"); ConsolePrint.HeaderPrint("Boruvka's method minimum spanning tree"); ConsolePrint.PrintGraph(graph); ConsolePrint.PrintGraph(graphToReturn, "New Graph Edges"); }