@Test public void testCalcDistanceDetails() { Path p = new Dijkstra(pathDetailGraph, new ShortestWeighting(encoder), TraversalMode.NODE_BASED).calcPath(1, 5); assertTrue(p.isFound()); Map<String, List<PathDetail>> details = p.calcDetails(Arrays.asList(new String[]{DISTANCE}), new PathDetailsBuilderFactory(), 0); assertTrue(details.size() == 1); List<PathDetail> distanceDetails = details.get(DISTANCE); assertEquals(5D, distanceDetails.get(0).getValue()); assertEquals(5D, distanceDetails.get(1).getValue()); assertEquals(10D, distanceDetails.get(2).getValue()); assertEquals(5D, distanceDetails.get(3).getValue()); }
@Test public void testCalcTimeDetails() { Path p = new Dijkstra(pathDetailGraph, new ShortestWeighting(encoder), TraversalMode.NODE_BASED).calcPath(1, 5); assertTrue(p.isFound()); Map<String, List<PathDetail>> details = p.calcDetails(Arrays.asList(new String[]{TIME}), new PathDetailsBuilderFactory(), 0); assertTrue(details.size() == 1); List<PathDetail> timeDetails = details.get(TIME); assertEquals(4, timeDetails.size()); assertEquals(400L, timeDetails.get(0).getValue()); assertEquals(200L, timeDetails.get(1).getValue()); assertEquals(3600L, timeDetails.get(2).getValue()); assertEquals(400L, timeDetails.get(3).getValue()); assertEquals(0, timeDetails.get(0).getFirst()); assertEquals(1, timeDetails.get(1).getFirst()); assertEquals(2, timeDetails.get(2).getFirst()); assertEquals(3, timeDetails.get(3).getFirst()); assertEquals(4, timeDetails.get(3).getLast()); }
@Test public void testCalcStreetNameDetails() { Path p = new Dijkstra(pathDetailGraph, new ShortestWeighting(encoder), TraversalMode.NODE_BASED).calcPath(1, 5); assertTrue(p.isFound()); Map<String, List<PathDetail>> details = p.calcDetails(Arrays.asList(new String[]{STREET_NAME}), new PathDetailsBuilderFactory(), 0); assertTrue(details.size() == 1); List<PathDetail> streetNameDetails = details.get(STREET_NAME); assertTrue(details.size() == 1); assertEquals(4, streetNameDetails.size()); assertEquals("1-2", streetNameDetails.get(0).getValue()); assertEquals("2-3", streetNameDetails.get(1).getValue()); assertEquals("3-4", streetNameDetails.get(2).getValue()); assertEquals("4-5", streetNameDetails.get(3).getValue()); assertEquals(0, streetNameDetails.get(0).getFirst()); assertEquals(1, streetNameDetails.get(1).getFirst()); assertEquals(2, streetNameDetails.get(2).getFirst()); assertEquals(3, streetNameDetails.get(3).getFirst()); assertEquals(4, streetNameDetails.get(3).getLast()); }
@Test public void testCalcAverageSpeedDetails() { Path p = new Dijkstra(pathDetailGraph, new ShortestWeighting(encoder), TraversalMode.NODE_BASED).calcPath(1, 5); assertTrue(p.isFound()); Map<String, List<PathDetail>> details = p.calcDetails(Arrays.asList(new String[]{AVERAGE_SPEED}), new PathDetailsBuilderFactory(), 0); assertTrue(details.size() == 1); List<PathDetail> averageSpeedDetails = details.get(AVERAGE_SPEED); assertEquals(4, averageSpeedDetails.size()); assertEquals(45.0, averageSpeedDetails.get(0).getValue()); assertEquals(90.0, averageSpeedDetails.get(1).getValue()); assertEquals(10.0, averageSpeedDetails.get(2).getValue()); assertEquals(45.0, averageSpeedDetails.get(3).getValue()); assertEquals(0, averageSpeedDetails.get(0).getFirst()); assertEquals(1, averageSpeedDetails.get(1).getFirst()); assertEquals(2, averageSpeedDetails.get(2).getFirst()); assertEquals(3, averageSpeedDetails.get(3).getFirst()); assertEquals(4, averageSpeedDetails.get(3).getLast()); }
@Test public void testCalcEdgeIdDetails() { Path p = new Dijkstra(pathDetailGraph, new ShortestWeighting(encoder), TraversalMode.NODE_BASED).calcPath(1, 5); assertTrue(p.isFound()); Map<String, List<PathDetail>> details = p.calcDetails(Arrays.asList(new String[]{EDGE_ID}), new PathDetailsBuilderFactory(), 0); assertTrue(details.size() == 1); List<PathDetail> edgeIdDetails = details.get(EDGE_ID); assertEquals(4, edgeIdDetails.size()); assertEquals(0, edgeIdDetails.get(0).getValue()); // This is out of order because we don't create the edges in order assertEquals(2, edgeIdDetails.get(1).getValue()); assertEquals(3, edgeIdDetails.get(2).getValue()); assertEquals(1, edgeIdDetails.get(3).getValue()); assertEquals(0, edgeIdDetails.get(0).getFirst()); assertEquals(1, edgeIdDetails.get(1).getFirst()); assertEquals(2, edgeIdDetails.get(2).getFirst()); assertEquals(3, edgeIdDetails.get(3).getFirst()); assertEquals(4, edgeIdDetails.get(3).getLast()); }
altRsp.addPathDetails(path.calcDetails(requestedPathDetails, pathBuilderFactory, origPoints)); origPoints = fullPoints.size();
Map<String, List<PathDetail>> details = p.calcDetails(Arrays.asList(DETAILS.AVERAGE_SPEED), new PathDetailsBuilderFactory(), 0);
altRsp.addPathDetails(path.calcDetails(requestedPathDetails, pathBuilderFactory, origPoints)); origPoints = fullPoints.size();