Exemple #1
0
        public void BredthFirstSearchWorks()
        {
            Graph.Graph g = new Graph.UndirectedGraph(9);
            g.AddEdge(0, 2);
            g.AddEdge(0, 1);
            g.AddEdge(0, 5);
            g.AddEdge(1,2);
            g.AddEdge(2,4);
            g.AddEdge(2,3);
            g.AddEdge(3,4);
            g.AddEdge(3,5);

            //create another path to 3 that is really long
            g.AddEdge(1, 6);
            g.AddEdge(6,7);
            g.AddEdge(7,8);
            g.AddEdge(8,3);

            Graph.BreadthFirstSearch dfs = new Graph.BreadthFirstSearch(g, 0);

            Assert.AreEqual(dfs.edgeTo[1], 0);
            Assert.AreEqual(dfs.edgeTo[2], 0);
            Assert.AreEqual(dfs.edgeTo[3], 2);
            Assert.AreEqual(dfs.edgeTo[4], 2);
            Assert.AreEqual(dfs.edgeTo[5], 0);

            //I have no idea how to implement distance to, the stupid course didn't explain it
            Assert.AreEqual(dfs.disTo[1], 1);
            Assert.AreEqual(dfs.disTo[2], 1);
            Assert.AreEqual(dfs.disTo[3], 2);
            Assert.AreEqual(dfs.disTo[4], 2);
            Assert.AreEqual(dfs.disTo[5], 1);
        }
Exemple #2
0
        public void DirectedBredthFirstSearchWorks()
        {
            Graph.Graph g = new Graph.DirectedGraph(9);
            g.AddEdge(0, 2);
            g.AddEdge(0, 1);
            g.AddEdge(2, 4);
            g.AddEdge(5, 0);
            g.AddEdge(1, 2);
            g.AddEdge(3, 2);
            g.AddEdge(4, 3);
            g.AddEdge(3, 5);
            g.AddEdge(3, 5);

            Graph.BreadthFirstSearch dfs = new Graph.BreadthFirstSearch(g, 0);

            Assert.AreEqual(dfs.edgeTo[1], 0);
            Assert.AreEqual(dfs.edgeTo[2], 0);
            Assert.AreEqual(dfs.edgeTo[3], 4);
            Assert.AreEqual(dfs.edgeTo[4], 2);
            Assert.AreEqual(dfs.edgeTo[5], 3);

            Assert.AreEqual(dfs.disTo[1], 1);
            Assert.AreEqual(dfs.disTo[2], 1);
            Assert.AreEqual(dfs.disTo[3], 3);
            Assert.AreEqual(dfs.disTo[4], 2);
            Assert.AreEqual(dfs.disTo[5], 4);
        }