Search in sources :

Example 1 with SimpleEdge

use of org.opentripplanner.routing.edgetype.SimpleEdge in project OpenTripPlanner by opentripplanner.

the class TestOverlayGraph method testBasic.

public void testBasic() throws Exception {
    Graph g = new Graph();
    Vertex a = new IntersectionVertex(g, "a", 5, 5);
    Vertex b = new IntersectionVertex(g, "b", 6, 5);
    Vertex c = new IntersectionVertex(g, "c", 7, 5);
    Vertex d = new IntersectionVertex(g, "d", 8, 5);
    // vary weights so edges are not considered equal
    Edge ab = new SimpleEdge(a, b, 1, 1);
    Edge bc1 = new SimpleEdge(b, c, 1, 1);
    Edge bc2 = new SimpleEdge(b, c, 2, 2);
    Edge bc3 = new SimpleEdge(b, c, 3, 3);
    Edge cd1 = new SimpleEdge(c, d, 1, 1);
    Edge cd2 = new SimpleEdge(c, d, 2, 2);
    Edge cd3 = new SimpleEdge(c, d, 3, 3);
    OverlayGraph og = new OverlayGraph(g);
    assertEquals(g.countVertices(), og.countVertices());
    assertEquals(g.countEdges(), og.countEdges());
    for (Vertex v : g.getVertices()) {
        for (Edge e : v.getOutgoing()) {
            assertTrue(og.getOutgoing(v).contains(e));
            assertTrue(og.getIncoming(e.getToVertex()).contains(e));
        }
        for (Edge e : v.getIncoming()) {
            assertTrue(og.getIncoming(v).contains(e));
            assertTrue(og.getOutgoing(e.getFromVertex()).contains(e));
        }
    }
    assertTrue(og.getIncoming(a).size() == 0);
    assertTrue(og.getOutgoing(d).size() == 0);
    // add an edge that is not in the overlay
    Edge ad = new FreeEdge(a, d);
    assertTrue(d.getIncoming().size() == 4);
    assertTrue(og.getIncoming(d).size() == 3);
    assertTrue(a.getOutgoing().size() == 2);
    assertTrue(og.getOutgoing(a).size() == 1);
    // remove edges from overlaygraph
    og.removeEdge(bc1);
    og.removeEdge(bc2);
    assertEquals(og.countEdges(), g.countEdges() - 3);
    assertTrue(og.getOutgoing(b).size() == 1);
    assertTrue(og.getIncoming(c).size() == 1);
}
Also used : Vertex(org.opentripplanner.routing.graph.Vertex) IntersectionVertex(org.opentripplanner.routing.vertextype.IntersectionVertex) Graph(org.opentripplanner.routing.graph.Graph) IntersectionVertex(org.opentripplanner.routing.vertextype.IntersectionVertex) SimpleEdge(org.opentripplanner.routing.edgetype.SimpleEdge) FreeEdge(org.opentripplanner.routing.edgetype.FreeEdge) FreeEdge(org.opentripplanner.routing.edgetype.FreeEdge) SimpleEdge(org.opentripplanner.routing.edgetype.SimpleEdge) Edge(org.opentripplanner.routing.graph.Edge)

Aggregations

FreeEdge (org.opentripplanner.routing.edgetype.FreeEdge)1 SimpleEdge (org.opentripplanner.routing.edgetype.SimpleEdge)1 Edge (org.opentripplanner.routing.graph.Edge)1 Graph (org.opentripplanner.routing.graph.Graph)1 Vertex (org.opentripplanner.routing.graph.Vertex)1 IntersectionVertex (org.opentripplanner.routing.vertextype.IntersectionVertex)1