public void CircleGraphTests()
        {
            GeometryGraph          graph    = GraphGenerator.GenerateCircle(10);
            SugiyamaLayoutSettings settings = new SugiyamaLayoutSettings();

            GraphGenerator.SetRandomNodeShapes(graph, random);
            WriteLine("Trying Circle Graph with Top to Down layer direction");
            LayoutAndValidate(graph, settings, 18, 10);
        }
        public void CircleGraphDownwardConstraintTests()
        {
            GeometryGraph graph      = GraphGenerator.GenerateCircle(6);
            ISet <Node>   avoidNodes = new HashSet <Node>(graph.Nodes);

            Node firstNode = graph.Nodes.First();
            Node lastNode  = graph.Nodes.Last();

            //add some non-cyclic nodes
            Node node1 = GraphGenerator.CreateNode(graph.Nodes.Count);
            Node node2 = GraphGenerator.CreateNode(graph.Nodes.Count + 1);

            graph.Nodes.Add(node1);
            graph.Nodes.Add(node2);
            graph.Edges.Add(GraphGenerator.CreateEdge(firstNode, node1));
            graph.Edges.Add(GraphGenerator.CreateEdge(node2, lastNode));

            GraphGenerator.SetRandomNodeShapes(graph, random);
            LayoutAndValidate(graph, 2.5, avoidNodes);
        }