public void MinimumSpanningTreeWeightForNeighborNodeIsEqualEdgeWeight()
        {
            var sut = new KruskalMinimumSpanningTree();

            var graph =
                new[]
            {
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 0,
                            Weight = 1,
                            To     = 1
                        }
                    }
                },
                new WeightedGraphVertex
                {
                }
            };

            Assert.Equal(1, sut.GetMinimumSpanningTreeWeight(graph));
        }
Exemple #2
0
        public void MinimumSpanningTreeWeightIsClculatedForGraphWithCycle()
        {
            var sut = new KruskalMinimumSpanningTree();

            var graph =
                new[]
            {
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 0,
                            Weight = 1,
                            To     = 1
                        },
                        new WeightedGraphNodeEdge
                        {
                            From   = 0,
                            Weight = 5,
                            To     = 2
                        }
                    }
                },
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 1,
                            Weight = 2,
                            To     = 2
                        }
                    }
                },
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 2,
                            Weight = 2,
                            To     = 0
                        }
                    }
                }
            };


            Assert.Equal(3, sut.GetMinimumSpanningTreeWeight(graph));
        }
Exemple #3
0
        public void MinimumSpanningTreeWeightForOneNodeGraphIsZero()
        {
            var sut = new KruskalMinimumSpanningTree();

            var graph =
                new[]
            {
                new WeightedGraphVertex
                {
                }
            };

            Assert.Equal(0, sut.GetMinimumSpanningTreeWeight(graph));
        }
Exemple #4
0
        public void NodeDiscardedWhenCycleIsFound()
        {
            var sut = new KruskalMinimumSpanningTree();

            var graph =
                new[]
            {
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 0,
                            Weight = 1,
                            To     = 1
                        },
                        new WeightedGraphNodeEdge
                        {
                            From   = 0,
                            Weight = 5,
                            To     = 2
                        }
                    }
                },
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 1,
                            Weight = 2,
                            To     = 2
                        }
                    }
                },
                new WeightedGraphVertex
                {
                }
            };

            Assert.Equal(3, sut.GetMinimumSpanningTreeWeight(graph));
        }
Exemple #5
0
        public void BaseLine()
        {
            var sut = new KruskalMinimumSpanningTree();

            var graph =
                new[]
            {
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 0,
                            To     = 1,
                            Weight = 14
                        },
                        new WeightedGraphNodeEdge
                        {
                            From   = 0,
                            To     = 2,
                            Weight = 9
                        },
                        new WeightedGraphNodeEdge
                        {
                            From   = 0,
                            To     = 3,
                            Weight = 7
                        }
                    }
                },
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 1,
                            To     = 4,
                            Weight = 9
                        },
                        new WeightedGraphNodeEdge
                        {
                            From   = 1,
                            To     = 2,
                            Weight = 2
                        }
                    }
                },
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 2,
                            To     = 3,
                            Weight = 10
                        },
                        new WeightedGraphNodeEdge
                        {
                            From   = 2,
                            To     = 5,
                            Weight = 11
                        },
                        new WeightedGraphNodeEdge
                        {
                            From   = 2,
                            To     = 1,
                            Weight = 2
                        },
                    }
                },
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 3,
                            To     = 5,
                            Weight = 15
                        }
                    }
                },
                new WeightedGraphVertex
                {
                    Edges = new System.Collections.Generic.List <WeightedGraphNodeEdge>
                    {
                        new WeightedGraphNodeEdge
                        {
                            From   = 4,
                            To     = 5,
                            Weight = 6
                        }
                    }
                },
                new WeightedGraphVertex
                {
                }
            };

            Assert.Equal(33, sut.GetMinimumSpanningTreeWeight(graph));
        }