Search in sources :

Example 1 with LayerSweepTypeDecider

use of org.eclipse.elk.alg.layered.p3order.LayerSweepTypeDecider in project elk by eclipse.

the class LayerSweepTypeDeciderTest method allHierarchicalButMinusOne_StillReturnsBU.

/**
 * <pre>
 *   ____
 * *=|=*=|=*
 *   |___|
 *
 * </pre>
 */
@Test
public void allHierarchicalButMinusOne_StillReturnsBU() throws Exception {
    LNode leftNode = addNodeToLayer(makeLayer());
    LNode middleNode = addNodeToLayer(makeLayer());
    LNode rightNode = addNodeToLayer(makeLayer());
    LPort[] middlePortRight = addPortsOnSide(2, middleNode, PortSide.EAST);
    LPort[] middlePortLeft = addPortsOnSide(2, middleNode, PortSide.WEST);
    eastWestEdgeFromTo(leftNode, middlePortLeft[1]);
    eastWestEdgeFromTo(leftNode, middlePortLeft[0]);
    eastWestEdgeFromTo(middlePortRight[0], rightNode);
    eastWestEdgeFromTo(middlePortRight[1], rightNode);
    LGraph innerGraph = nestedGraph(middleNode);
    Layer[] layers = makeLayers(3, innerGraph);
    LNode[] leftInnerDummyNodes = addExternalPortDummiesToLayer(layers[2], middlePortRight);
    LNode node = addNodeToLayer(layers[1]);
    LNode[] rightInnerDummyNodes = addExternalPortDummiesToLayer(layers[0], middlePortLeft);
    eastWestEdgeFromTo(leftInnerDummyNodes[0], node);
    eastWestEdgeFromTo(leftInnerDummyNodes[1], node);
    eastWestEdgeFromTo(node, rightInnerDummyNodes[0]);
    eastWestEdgeFromTo(node, rightInnerDummyNodes[1]);
    graph.id = 0;
    innerGraph.id = 1;
    setOnAllGraphs(LayeredOptions.CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS, -1.0, graph);
    GraphInfoHolder gd = new GraphInfoHolder(innerGraph, CrossMinType.BARYCENTER, Arrays.asList(new GraphInfoHolder(graph, CrossMinType.BARYCENTER, null)));
    LayerSweepTypeDecider td = new LayerSweepTypeDecider(gd);
    IInitializable.init(Arrays.asList(td), innerGraph.toNodeArray());
    assertTrue(td.useBottomUp());
}
Also used : LPort(org.eclipse.elk.alg.layered.graph.LPort) LNode(org.eclipse.elk.alg.layered.graph.LNode) LGraph(org.eclipse.elk.alg.layered.graph.LGraph) GraphInfoHolder(org.eclipse.elk.alg.layered.p3order.GraphInfoHolder) Layer(org.eclipse.elk.alg.layered.graph.Layer) LayerSweepTypeDecider(org.eclipse.elk.alg.layered.p3order.LayerSweepTypeDecider) Test(org.junit.Test)

Aggregations

LGraph (org.eclipse.elk.alg.layered.graph.LGraph)1 LNode (org.eclipse.elk.alg.layered.graph.LNode)1 LPort (org.eclipse.elk.alg.layered.graph.LPort)1 Layer (org.eclipse.elk.alg.layered.graph.Layer)1 GraphInfoHolder (org.eclipse.elk.alg.layered.p3order.GraphInfoHolder)1 LayerSweepTypeDecider (org.eclipse.elk.alg.layered.p3order.LayerSweepTypeDecider)1 Test (org.junit.Test)1