Esempio n. 1
0
        public void DFSWithAction_NoVertices_SmallGraphTest()
        {
            var graph = new AdjacencyListGraph <int>();

            foreach (var vertex in graph.DFS(1, v => { }))
            {
            }
        }
Esempio n. 2
0
        public void DFS_1Vertex_SmallGraphTest()
        {
            var graph = new AdjacencyListGraph <int>();

            graph.AddVertex(1);

            foreach (var vertex in graph.DFS(1))
            {
                Assert.AreEqual(1, vertex);
            }
        }
Esempio n. 3
0
        public void DFS_SmallGraphTest()
        {
            var graph = new AdjacencyListGraph <int>();

            graph.AddEdge(1, 2);
            graph.AddEdge(1, 3);
            graph.AddEdge(1, 5);
            graph.AddEdge(2, 4);
            graph.AddEdge(2, 6);
            graph.AddEdge(3, 7);
            graph.AddEdge(5, 6);

            int idx  = 0;
            var path = new[] { 1, 2, 4, 6, 3, 7, 5 };

            foreach (var vertex in graph.DFS(1))
            {
                Assert.AreEqual(path[idx++], vertex);
            }
            Assert.AreEqual(path.Length, idx);
        }
Esempio n. 4
0
        public void DFSWithAction_SmallGraphTest()
        {
            var graph = new AdjacencyListGraph <int>();

            graph.AddEdge(1, 2);
            graph.AddEdge(1, 3);
            graph.AddEdge(1, 5);
            graph.AddEdge(2, 4);
            graph.AddEdge(2, 6);
            graph.AddEdge(3, 7);
            graph.AddEdge(5, 6);

            int pathIdx         = 0;
            int lastVerticesIdx = 0;
            var lastVertices    = new[] { 4, 6, 7, 5 };
            var path            = new[] { 1, 2, 4, 6, 3, 7, 5 };

            foreach (var vertex in graph.DFS(1, v => Assert.AreEqual(lastVertices[lastVerticesIdx++], v)))
            {
                Assert.AreEqual(path[pathIdx++], vertex);
            }
            Assert.AreEqual(path.Length, pathIdx);
            Assert.AreEqual(lastVertices.Length, lastVerticesIdx);
        }