示例#1
0
        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);
            }
        }
示例#2
0
        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");
        }