Ejemplo n.º 1
0
        public void ComputeMinimumSpanningTree_SimpleGraph_IsCorrect()
        {
            var g            = CreateGraph(3, (0, 1, 1), (1, 2, 2));
            var a            = new PrimMinimumSpanningTreeAlgorithm <UndirectedGraph <Empty, int>, VertexIdx, EdgeIdx, int>(g, new IntCalculator());
            var spanningTree = a.ComputeMinimumSpanningTree(new VertexIdx(0));

            Assert.That(spanningTree.ToArray(), Is.EquivalentTo(Edges(0, 1)));
        }
Ejemplo n.º 2
0
        public void ComputeMinimumSpanningTree_GraphWithoutEdges_IsEmpty()
        {
            var g            = CreateGraph(1);
            var a            = new PrimMinimumSpanningTreeAlgorithm <UndirectedGraph <Empty, int>, VertexIdx, EdgeIdx, int>(g, new IntCalculator());
            var spanningTree = a.ComputeMinimumSpanningTree(new VertexIdx(0));

            Assert.That(spanningTree.IsEmpty, Is.True);
        }
Ejemplo n.º 3
0
        public void ComputeMinimumSpanningTree_WikipediaExample_IsCorrect()
        {
            var g            = CreateGraph(6, (0, 1, 1), (0, 3, 4), (0, 4, 3), (1, 3, 4), (1, 4, 2), (2, 4, 4), (2, 5, 5), (3, 4, 4), (4, 5, 7));
            var a            = new PrimMinimumSpanningTreeAlgorithm <UndirectedGraph <Empty, int>, VertexIdx, EdgeIdx, int>(g, new IntCalculator());
            var spanningTree = a.ComputeMinimumSpanningTree(new VertexIdx(0));

            Assert.That(spanningTree.Length, Is.EqualTo(5));
            Assert.That(spanningTree.ToArray().Sum(e => g.GetEdgeTag(e)), Is.EqualTo(16));
        }