Exemplo n.º 1
0
        public void FindsPathInSimpleGraph()
        {
            // Given
            var assembly = Assembly.GetExecutingAssembly();
            AdjacencyListLoader loader;

            using (var stream = assembly.GetManifestResourceStream("Tests.Stubs.Maps." + "simple.al.txt"))
            {
                loader = new AdjacencyListLoader(stream);
            }

            // When
            var dfs = new GraphDepthFirstSearch <GraphNode, GraphEdge>(loader.Graph, 0, 5);

            // Then
            Assert.AreEqual(4, dfs.Path.Count);
        }
Exemplo n.º 2
0
        public void VisitsAllNodes()
        {
            // Given
            var assembly = Assembly.GetExecutingAssembly();
            AdjacencyListLoader loader;

            using (var stream = assembly.GetManifestResourceStream("Tests.Stubs.Maps." + "simple.al.txt"))
            {
                loader = new AdjacencyListLoader(stream);
            }

            // When
            var dfs = new GraphDepthFirstSearch <GraphNode, GraphEdge>(loader.Graph, 0);

            // Then
            Assert.AreEqual(6, dfs.NumNodesExplored);
        }
Exemplo n.º 3
0
        public void PathFoundIsNotOptimal()
        {
            // Given
            var assembly = Assembly.GetExecutingAssembly();
            AdjacencyListLoader loader;

            using (var stream = assembly.GetManifestResourceStream("Tests.Stubs.Maps." + "simple.al.txt"))
            {
                loader = new AdjacencyListLoader(stream);
            }

            // When
            var dfs  = new GraphDepthFirstSearch <GraphNode, GraphEdge>(loader.Graph, 0, 4);
            var path = dfs.Path;

            // Then
            Assert.AreNotEqual(3, path.Count);
        }
Exemplo n.º 4
0
        public void FindsPathOnComplexMap()
        {
            // Given
            var       assembly  = Assembly.GetExecutingAssembly();
            MapLoader mapLoader = null;

            using (var stream = assembly.GetManifestResourceStream("Tests.Stubs.Maps." + "simple.txt"))
            {
                mapLoader = new MapLoader(stream, true, new SimpleGridNodeFactory());
            }

            // When
            var dfs = new GraphDepthFirstSearch <GraphGridNode, GraphEdge>(
                mapLoader.Graph,
                mapLoader.Source.Index,
                mapLoader.Destination.Index
                );

            // Then
            Assert.IsTrue(dfs.Found);
        }