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);
        }
        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);
        }
        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);
        }