Exemplo n.º 1
0
        // B→D
        // D→C
        // A→B→C
        // A→B→D→C
        static void Main()
        {
            var feeder = new LineFeeder("data.txt");
            var factory = new VertexFactory<string>();
            foreach (var line in feeder)
            {
                var splittedLine = line.Split(',');
                factory.Add(splittedLine[0],splittedLine[1]);
            }
            //var path = @"C:\Users\Eduard\Source\Repos\CycleDetection\data.txt";
            var graph = new List<Vertex<string>>();
            graph.AddRange(factory.VertexDictionary.Select(vde=>vde.Value));

            var detector = new StronglyConnectedComponentFinder<string>();
            var components = detector.DetectCycle(graph);
            int index = 0;
            foreach (var component in components)
            {
                Console.Write($"component {index++} : ");
                foreach (var vertex in component)
                {
                    Console.Write(vertex.Value + " ");
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
Exemplo n.º 2
0
 public void LineFeederTest()
 {
     var a = new LineFeeder(@"DataToTestLineFeeder.txt");
     var results = a.ToList();
     Assert.AreEqual(3, results.Count);
     Assert.AreEqual("linea1", results.First());
     Assert.AreEqual("linea2", results.Skip(1).First());
     Assert.AreEqual("linea3", results.Skip(2).First());
 }
Exemplo n.º 3
0
        public void LineFeederTest()
        {
            var a       = new LineFeeder(@"DataToTestLineFeeder.txt");
            var results = a.ToList();

            Assert.AreEqual(3, results.Count);
            Assert.AreEqual("linea1", results.First());
            Assert.AreEqual("linea2", results.Skip(1).First());
            Assert.AreEqual("linea3", results.Skip(2).First());
        }