예제 #1
0
        public void CanLayoutAGraphWithMultipleRootNodes()
        {
            GraphLayoutEngine l = new GraphLayoutEngine();
            Graph             g = (new GraphBuilder()).GenerateGraph("a-b-c\na-c\nd-e-f");

            l.Layout(g);
        }
예제 #2
0
        private void RedrawGraph(Graph graph, Func <Node, Size, UserControl> controlBuilder, Size nodeSize)
        {
            var renderer = new GraphRenderer(graphCanvas, controlBuilder, nodeSize);
            var layout   = new GraphLayoutEngine();

            layout.Layout(graph);
            renderer.Render(graph);
        }
예제 #3
0
        public void CanLayoutStraightLine()
        {
            GraphLayoutEngine l = new GraphLayoutEngine();
            Graph             g = (new GraphBuilder()).GenerateGraph("a-b-c-d");

            l.Layout(g);
            AssertNodeIsOnRow(g, "a", 0);
            AssertNodeIsOnRow(g, "b", 0);
            AssertNodeIsOnRow(g, "c", 0);
            AssertNodeIsOnRow(g, "d", 0);
        }
예제 #4
0
        public void BranchGoesOnSecondLine()
        {
            GraphLayoutEngine l = new GraphLayoutEngine();
            Graph             g = (new GraphBuilder()).GenerateGraph("a-b-c-d\na-e-f-g");

            l.Layout(g);
            AssertNodeIsOnRow(g, "a", 0);
            AssertNodeIsOnRow(g, "b", 0);
            AssertNodeIsOnRow(g, "c", 0);
            AssertNodeIsOnRow(g, "d", 0);
            AssertNodeIsOnRow(g, "e", 1);
            AssertNodeIsOnRow(g, "f", 1);
            AssertNodeIsOnRow(g, "g", 1);
        }