private List<Conditional> TestConditionals(ControlFlowGraph graph, params string[] args)
        {
            graph.SortByDepthFirstPostOrder();

            graph.StructureLoops();
            var conditionals = graph.StructureConditionals();

            const string fmt = "{0}: {1}";
            var lines = conditionals.Select((x, i) => {
                var str = string.Format(fmt, i, x);
                Console.WriteLine(str);
                return str;
            }).ToArray();

            Assert.AreEqual(conditionals.Count, args.Length);

            for (int i = 0; i < args.Length; i++) {
                var expected = args[i];
                var actual = lines[i];
                Assert.AreEqual(expected, actual);
            }

            return conditionals;
        }