Пример #1
0
        public void TwoVerticesGraphHasNoSimplePath()
        {
            var sut = new PathOfMoreThanKLength();

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

            var(hasPath, path) = sut.GetPathOfMoreThanKLength(graph, 0, 9);

            Assert.False(hasPath);
            Assert.Empty(path);
        }
Пример #2
0
        public void TwoVerticesGraphHasSimplePath()
        {
            var sut = new PathOfMoreThanKLength();

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

            var(hasPath, path) = sut.GetPathOfMoreThanKLength(graph, 0, 9);

            Assert.True(hasPath);
#pragma warning disable HAA0101 // Array allocation for params parameter
            Assert.Collection(path, arg => Assert.Equal(0, arg), arg => Assert.Equal(1, arg));
#pragma warning restore HAA0101 // Array allocation for params parameter
        }
Пример #3
0
        public void OneVertexGraphHashZeroWeightPath()
        {
            var sut = new PathOfMoreThanKLength();

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

            var(hasPath, path) = sut.GetPathOfMoreThanKLength(graph, 0, 0);

            Assert.True(hasPath);
            Assert.Collection(path, arg => Assert.Equal(0, arg));
        }
Пример #4
0
        public void BaselineHasNoPath()
        {
            var sut = new PathOfMoreThanKLength();

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

            var(hasPath, path) = sut.GetPathOfMoreThanKLength(graph, 0, 50);

            Assert.False(hasPath);
            Assert.Empty(path);
        }