Search in sources :

Example 6 with CrossingsCounter

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));
}
Also used : LNode(org.eclipse.elk.alg.layered.graph.LNode) CrossingsCounter(org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter) Test(org.junit.Test)

Example 7 with CrossingsCounter

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));
}
Also used : CrossingsCounter(org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter) GraphInfoHolder(org.eclipse.elk.alg.layered.p3order.GraphInfoHolder) Test(org.junit.Test)

Example 8 with CrossingsCounter

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));
}
Also used : CrossingsCounter(org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter) Test(org.junit.Test)

Example 9 with CrossingsCounter

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));
}
Also used : LPort(org.eclipse.elk.alg.layered.graph.LPort) LNode(org.eclipse.elk.alg.layered.graph.LNode) CrossingsCounter(org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter) Layer(org.eclipse.elk.alg.layered.graph.Layer) Test(org.junit.Test)

Example 10 with CrossingsCounter

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());
}
Also used : CrossingsCounter(org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter) Date(java.util.Date) Ignore(org.junit.Ignore)

Aggregations

CrossingsCounter (org.eclipse.elk.alg.layered.p3order.counting.CrossingsCounter)18 Test (org.junit.Test)13 LNode (org.eclipse.elk.alg.layered.graph.LNode)10 LPort (org.eclipse.elk.alg.layered.graph.LPort)4 Layer (org.eclipse.elk.alg.layered.graph.Layer)4 GraphInfoHolder (org.eclipse.elk.alg.layered.p3order.GraphInfoHolder)3 Date (java.util.Date)1 BetweenLayerEdgeTwoNodeCrossingsCounter (org.eclipse.elk.alg.layered.intermediate.greedyswitch.BetweenLayerEdgeTwoNodeCrossingsCounter)1 Ignore (org.junit.Ignore)1