use of org.eclipse.elk.alg.layered.intermediate.greedyswitch.SwitchDecider in project elk by eclipse.
the class SwitchDeciderTest method givenDeciderForFreeLayer.
private SwitchDecider givenDeciderForFreeLayer(final int layerIndex, final CrossingCountSide direction) {
freeLayerIndex = layerIndex;
currentNodeOrder = graph.toNodeArray();
CrossingMatrixFiller crossingMatrixFiller = new CrossingMatrixFiller(greedyType, currentNodeOrder, layerIndex, direction);
return new SwitchDecider(layerIndex, currentNodeOrder, crossingMatrixFiller, new int[getNPorts(currentNodeOrder)], new GraphInfoHolder(graph, CrossMinType.ONE_SIDED_GREEDY_SWITCH, new ArrayList<>()), greedyType == CrossMinType.ONE_SIDED_GREEDY_SWITCH);
}
use of org.eclipse.elk.alg.layered.intermediate.greedyswitch.SwitchDecider in project elk by eclipse.
the class SwitchDeciderTest method switchingDummyNodesNotifiesPortSwitch.
/**
* <pre>
* ____
* | *p\ /-*
* | | x
* | *p/ \-*
* |__|
* @throws Exception
* </pre>
*/
@Test
public void switchingDummyNodesNotifiesPortSwitch() throws Exception {
LNode leftNode = addNodeToLayer(makeLayer());
LNode[] rightNodes = addNodesToLayer(2, makeLayer());
LPort[] leftPorts = addPortsOnSide(2, leftNode, PortSide.EAST);
LGraph nestedGraph = nestedGraph(leftNode);
Layer nestedLayer = makeLayer(nestedGraph);
LNode[] dummies = addExternalPortDummiesToLayer(nestedLayer, leftPorts);
eastWestEdgeFromTo(leftPorts[0], rightNodes[1]);
eastWestEdgeFromTo(leftPorts[1], rightNodes[0]);
CrossingMatrixFiller crossingMatrixFiller = new CrossingMatrixFiller(greedyType, nestedGraph.toNodeArray(), 0, CrossingCountSide.EAST);
GraphInfoHolder parentGraphData = new GraphInfoHolder(graph, greedyType, new ArrayList<>());
GraphInfoHolder graphData = new GraphInfoHolder(nestedGraph, greedyType, Lists.newArrayList(parentGraphData));
SwitchDecider switchDecider = new SwitchDecider(0, nestedGraph.toNodeArray(), crossingMatrixFiller, new int[getNPorts(nestedGraph.toNodeArray())], graphData, false);
if (greedyType == CrossMinType.TWO_SIDED_GREEDY_SWITCH) {
assertTrue(switchDecider.doesSwitchReduceCrossings(0, 1));
switchDecider.notifyOfSwitch(dummies[0], dummies[1]);
assertFalse(switchDecider.doesSwitchReduceCrossings(0, 1));
}
}
Aggregations