use of org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter in project elk by eclipse.
the class CrossingsCounterTest method longInLayerCrossings.
/**
* <pre>
* *
* \
* /
* *
* \
* *+--
* | |
* * /
* *
* </pre>
*
* @throws Exception
*/
@Test
public void longInLayerCrossings() throws Exception {
LNode[] nodes = addNodesToLayer(5, makeLayer());
addInLayerEdge(nodes[0], nodes[1], PortSide.EAST);
addInLayerEdge(nodes[1], nodes[3], PortSide.EAST);
addInLayerEdge(nodes[2], nodes[4], PortSide.EAST);
counter = new CrossingsCounter(new int[getNumPorts(order())]);
assertThat(counter.countInLayerCrossingsOnSide(order()[0], PortSide.EAST), is(1));
}
use of org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter in project elk by eclipse.
the class CrossingsCounterTest method countCrossingsBetweenLayers_moreComplexThreeLayerGraph.
@Test
public void countCrossingsBetweenLayers_moreComplexThreeLayerGraph() {
getMoreComplexThreeLayerGraph();
GraphInfoHolder gd = new GraphInfoHolder(graph, CrossMinType.BARYCENTER, null);
gd.portDistributor().distributePortsWhileSweeping(order(), 1, true);
counter = new CrossingsCounter(new int[getNumPorts(order())]);
assertThat(counter.countCrossingsBetweenLayers(order()[0], order()[1]), is(1));
}
use of org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter in project elk by eclipse.
the class CrossingsCounterTest method countCrossingsBetweenLayers_ignoreSelfLoops.
@Test
public void countCrossingsBetweenLayers_ignoreSelfLoops() {
getCrossWithManySelfLoopsGraph();
counter = new CrossingsCounter(new int[getNumPorts(order())]);
assertThat(counter.countCrossingsBetweenLayers(order()[0], order()[1]), is(1));
}
use of org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter in project elk by eclipse.
the class CrossingsCounterTest method countCrossingsBetweenPorts_twoEdgesIntoSamePort.
/**
* <pre>
* * *
* \//
* //\
* * *
* ^Into same port
* </pre>
*/
@Test
public void countCrossingsBetweenPorts_twoEdgesIntoSamePort() {
Layer leftLayer = makeLayer();
Layer rightLayer = makeLayer();
LNode topLeft = addNodeToLayer(leftLayer);
LNode bottomLeft = addNodeToLayer(leftLayer);
LNode topRight = addNodeToLayer(rightLayer);
LNode bottomRight = addNodeToLayer(rightLayer);
eastWestEdgeFromTo(topLeft, bottomRight);
LPort bottomLeftPort = addPortOnSide(bottomLeft, PortSide.EAST);
LPort topRightPort = addPortOnSide(topRight, PortSide.WEST);
addEdgeBetweenPorts(bottomLeftPort, topRightPort);
addEdgeBetweenPorts(bottomLeftPort, topRightPort);
setUpIds();
counter = new CrossingsCounter(new int[getNumPorts(order())]);
counter.initForCountingBetween(order()[0], order()[1]);
assertThat(counter.countCrossingsBetweenPortsInBothOrders(bottomLeftPort, topLeft.getPorts().get(0)).getFirst(), is(2));
}
use of org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter in project elk by eclipse.
the class CrossingsCounterTest method benchmark.
@Ignore
public // @Test
void benchmark() {
makeTwoLayerRandomGraphWithNodesPerLayer(6000, 6);
counter = new CrossingsCounter(new int[getNumPorts(order())]);
System.out.println("Starting");
int length = 400;
long[] times = new long[length];
for (int i = 0; i < length; i++) {
long tick = new Date().getTime();
counter.countCrossingsBetweenLayers(order()[0], order()[1]);
times[i] = new Date().getTime() - tick;
}
System.out.println(Arrays.stream(times).min());
}
Aggregations