Ejemplo n.º 1
0
        public void TestTransientReduction()
        {
            var input = new string[] {
                "Step A must be finished before step I can begin",
                "Step A must be finished before step O can begin",
                "Step A must be finished before step F can begin",
                "Step B must be finished before step A can begin",
                "Step B must be finished before step I can begin",
                "Step B must be finished before step F can begin",
                "Step B must be finished before step U can begin",
                "Step B must be finished before step L can begin",
                "Step B must be finished before step G can begin",
                "Step F must be finished before step L can begin",
                "Step F must be finished before step K can begin",
                "Step F must be finished before step H can begin",
                "Step H must be finished before step U can begin",
                "Step H must be finished before step K can begin",
                "Step H must be finished before step M can begin",
                "Step H must be finished before step G can begin",
                "Step H must be finished before step I can begin",
                "Step H must be finished before step O can begin",
                "Step G must be finished before step M can begin",
                "Step G must be finished before step I can begin",
                "Step I must be finished before step O can begin"
            };

            Graph.Build(input);
            Graph.ApplyTransientReduction(Graph.Roots.Select(r => r.Name).ToList());

            Assert.That(Graph.GetStepOrder(), Is.EqualTo("BAFHGIKLMOU"));
        }