Пример #1
0
        public void HasCyclesReturnsFalseForDiamondGraph()
        {
            var graph = new Graph <object, object>(
                Enumerable.Range(1, 4).Select(vertexId => new Vertex <object>((uint)vertexId)),
                new []
            {
                new Edge <object>(0, 1, 2, isDirected: true),
                new Edge <object>(1, 1, 3, isDirected: true),
                new Edge <object>(2, 2, 4, isDirected: true),
                new Edge <object>(3, 3, 4, isDirected: true)
            });

            Assert.That(GraphAlgorithms.HasCycles(graph), Is.False);
        }
Пример #2
0
        public void HasCyclesThrowsExceptionForPartiallyUndirectedGraph()
        {
            var graph = new Graph <object, object>(
                Enumerable.Range(1, 4).Select(vertexId => new Vertex <object>((uint)vertexId)),
                new []
            {
                new Edge <object>(0, 1, 2),
                new Edge <object>(1, 1, 3),
                new Edge <object>(2, 2, 4, isDirected: true),
                new Edge <object>(3, 3, 4, isDirected: true)
            });

            Assert.That(() => GraphAlgorithms.HasCycles(graph), Throws.Exception);
        }
Пример #3
0
        public void HasCyclesReturnsTrueForTestGraph()
        {
            var graph = CreateTestGraph();

            Assert.That(GraphAlgorithms.HasCycles(graph), Is.True);
        }