Search in sources :

Example 16 with GraphHopperWeb

use of com.graphhopper.api.GraphHopperWeb in project graphhopper by graphhopper.

the class RouteResourceTest method testSnapPreventionsAndPointHints.

@Test
public void testSnapPreventionsAndPointHints() {
    GraphHopperWeb hopper = new GraphHopperWeb(clientUrl(app, "/route"));
    GHRequest request = new GHRequest(42.511139, 1.53285, 42.508165, 1.532271);
    request.setProfile("my_car");
    request.setSnapPreventions(Collections.singletonList("tunnel"));
    request.setPointHints(Arrays.asList("Avinguda Fiter i Rossell", ""));
    GHResponse rsp = hopper.route(request);
    assertFalse(rsp.hasErrors(), rsp.getErrors().toString());
    assertEquals(1590, rsp.getBest().getDistance(), 2);
    // contradicting hints should still allow routing
    request.setSnapPreventions(Collections.singletonList("tunnel"));
    request.setPointHints(Arrays.asList("Tunèl del Pont Pla", ""));
    rsp = hopper.route(request);
    assertEquals(490, rsp.getBest().getDistance(), 2);
}
Also used : GHRequest(com.graphhopper.GHRequest) GraphHopperWeb(com.graphhopper.api.GraphHopperWeb) GHResponse(com.graphhopper.GHResponse) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 17 with GraphHopperWeb

use of com.graphhopper.api.GraphHopperWeb in project graphhopper by graphhopper.

the class RouteResourceTest method testPathDetails.

@Test
public void testPathDetails() {
    GraphHopperWeb client = new GraphHopperWeb(clientUrl(app, "/route"));
    GHRequest request = new GHRequest(42.554851, 1.536198, 42.510071, 1.548128).setProfile("my_car");
    request.setPathDetails(Arrays.asList("average_speed", "edge_id", "time"));
    GHResponse rsp = client.route(request);
    assertFalse(rsp.hasErrors(), rsp.getErrors().toString());
    assertTrue(rsp.getErrors().isEmpty(), rsp.getErrors().toString());
    Map<String, List<PathDetail>> pathDetails = rsp.getBest().getPathDetails();
    assertFalse(pathDetails.isEmpty());
    assertTrue(pathDetails.containsKey("average_speed"));
    assertTrue(pathDetails.containsKey("edge_id"));
    assertTrue(pathDetails.containsKey("time"));
    List<PathDetail> averageSpeedList = pathDetails.get("average_speed");
    assertEquals(13, averageSpeedList.size());
    assertEquals(30.0, averageSpeedList.get(0).getValue());
    assertEquals(14, averageSpeedList.get(0).getLength());
    assertEquals(60.0, averageSpeedList.get(1).getValue());
    assertEquals(5, averageSpeedList.get(1).getLength());
    List<PathDetail> edgeIdDetails = pathDetails.get("edge_id");
    assertEquals(77, edgeIdDetails.size());
    assertEquals(882L, edgeIdDetails.get(0).getValue());
    assertEquals(2, edgeIdDetails.get(0).getLength());
    assertEquals(883L, edgeIdDetails.get(1).getValue());
    assertEquals(8, edgeIdDetails.get(1).getLength());
    long expectedTime = rsp.getBest().getTime();
    long actualTime = 0;
    List<PathDetail> timeDetails = pathDetails.get("time");
    for (PathDetail pd : timeDetails) {
        actualTime += (Long) pd.getValue();
    }
    assertEquals(expectedTime, actualTime);
}
Also used : PathDetail(com.graphhopper.util.details.PathDetail) GHRequest(com.graphhopper.GHRequest) InstructionList(com.graphhopper.util.InstructionList) GraphHopperWeb(com.graphhopper.api.GraphHopperWeb) GHResponse(com.graphhopper.GHResponse) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 18 with GraphHopperWeb

use of com.graphhopper.api.GraphHopperWeb in project graphhopper by graphhopper.

the class RouteResourceTest method testPathDetailsSamePoint.

@Test
public void testPathDetailsSamePoint() {
    GraphHopperWeb hopper = new GraphHopperWeb(clientUrl(app, "/route"));
    GHRequest request = new GHRequest(42.554851, 1.536198, 42.554851, 1.536198).setPathDetails(Arrays.asList("average_speed", "edge_id", "time")).setProfile("my_car");
    GHResponse rsp = hopper.route(request);
    assertFalse(rsp.hasErrors(), rsp.getErrors().toString());
    assertTrue(rsp.getErrors().isEmpty(), rsp.getErrors().toString());
}
Also used : GHRequest(com.graphhopper.GHRequest) GraphHopperWeb(com.graphhopper.api.GraphHopperWeb) GHResponse(com.graphhopper.GHResponse) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 19 with GraphHopperWeb

use of com.graphhopper.api.GraphHopperWeb in project graphhopper by graphhopper.

the class RouteResourceTest method testPathDetailsRoadClass.

@Test
public void testPathDetailsRoadClass() {
    GraphHopperWeb client = new GraphHopperWeb(clientUrl(app, "/route"));
    GHRequest request = new GHRequest(42.546757, 1.528645, 42.520573, 1.557999).setProfile("my_car");
    request.setPathDetails(Arrays.asList(RoadClass.KEY, Surface.KEY, RoadEnvironment.KEY, "average_speed", RoadClassLink.KEY));
    GHResponse rsp = client.route(request);
    assertFalse(rsp.hasErrors(), rsp.getErrors().toString());
    assertEquals(4, rsp.getBest().getPathDetails().get(RoadClass.KEY).size());
    assertEquals(RoadClass.PRIMARY.toString(), rsp.getBest().getPathDetails().get(RoadClass.KEY).get(3).getValue());
    assertFalse((Boolean) rsp.getBest().getPathDetails().get(RoadClassLink.KEY).get(0).getValue());
    List<PathDetail> roadEnvList = rsp.getBest().getPathDetails().get(RoadEnvironment.KEY);
    assertEquals(10, roadEnvList.size());
    assertEquals(RoadEnvironment.ROAD.toString(), roadEnvList.get(0).getValue());
    assertEquals(RoadEnvironment.TUNNEL.toString(), roadEnvList.get(6).getValue());
}
Also used : PathDetail(com.graphhopper.util.details.PathDetail) GHRequest(com.graphhopper.GHRequest) GraphHopperWeb(com.graphhopper.api.GraphHopperWeb) GHResponse(com.graphhopper.GHResponse) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 20 with GraphHopperWeb

use of com.graphhopper.api.GraphHopperWeb in project graphhopper by graphhopper.

the class RouteResourceTest method testSnapPreventions.

@Test
public void testSnapPreventions() {
    GraphHopperWeb hopper = new GraphHopperWeb(clientUrl(app, "route"));
    GHRequest request = new GHRequest(42.511139, 1.53285, 42.508165, 1.532271);
    request.setProfile("my_car");
    GHResponse rsp = hopper.route(request);
    assertFalse(rsp.hasErrors(), rsp.getErrors().toString());
    assertEquals(490, rsp.getBest().getDistance(), 2);
    request.setSnapPreventions(Collections.singletonList("tunnel"));
    rsp = hopper.route(request);
    assertEquals(1081, rsp.getBest().getDistance(), 2);
}
Also used : GHRequest(com.graphhopper.GHRequest) GraphHopperWeb(com.graphhopper.api.GraphHopperWeb) GHResponse(com.graphhopper.GHResponse) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

GHRequest (com.graphhopper.GHRequest)22 GraphHopperWeb (com.graphhopper.api.GraphHopperWeb)22 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)22 GHResponse (com.graphhopper.GHResponse)20 GHPoint (com.graphhopper.util.shapes.GHPoint)13 EnumSource (org.junit.jupiter.params.provider.EnumSource)11 Test (org.junit.jupiter.api.Test)10 ResponsePath (com.graphhopper.ResponsePath)5 InstructionList (com.graphhopper.util.InstructionList)4 PathDetail (com.graphhopper.util.details.PathDetail)3 Instruction (com.graphhopper.util.Instruction)1 RoundaboutInstruction (com.graphhopper.util.RoundaboutInstruction)1 PointNotFoundException (com.graphhopper.util.exceptions.PointNotFoundException)1 PointOutOfBoundsException (com.graphhopper.util.exceptions.PointOutOfBoundsException)1 Response (javax.ws.rs.core.Response)1 ValueSource (org.junit.jupiter.params.provider.ValueSource)1