public void DirectedTest1()
        {
            _database = new FileGraph(TestFilesPath + "NewTest1.test");
            _metadata = new FileMetadata((FileGraph)_database);

            var sourceId = ((FileGraph)_database).GetId("A");


            var targetId = ((FileGraph)_database).GetId("H");

            const bool directed    = false;
            const int  maxDistance = 3;


            var pathFinder = new SingleThreadPathFinder(_metadata, sourceId, targetId, directed, maxDistance, 0);


            var resultGraph = pathFinder.FindPath(_database);
            var edges       = resultGraph.Edges;

            Assert.IsTrue(edges.Count == 4);
            var results = new HashSet <string>();

            foreach (var edge in edges)
            {
                results.Add(_database.GetNode(edge.SourceId).Data.MakeString() + "," +
                            _database.GetNode(edge.TargetId).Data.MakeString() + "," + edge.Weight);
            }

            Assert.IsTrue(results.Contains("{[A] },{[D] },2"));
            Assert.IsTrue(results.Contains("{[D] },{[H] },1"));
            Assert.IsTrue(results.Contains("{[A] },{[I] },5"));
            Assert.IsTrue(results.Contains("{[I] },{[H] },1"));
        }
        public void InDirectedTest2()
        {
            var sourceId = ((FileGraph)_database).GetId("A");


            var targetId = ((FileGraph)_database).GetId("H");

            const bool directed    = true;
            const int  maxDistance = 4;


            var pathFinder = new SingleThreadPathFinder(_metadata, sourceId, targetId, directed, maxDistance, 0);

            var resultBuilder = pathFinder.FindPath(_database);
            var edges         = resultBuilder.Edges;

            Assert.IsTrue(edges.Count == 0);
        }