use of org.onebusaway.transit_data_federation.impl.transit_graph.TransitGraphImpl in project onebusaway-application-modules by camsys.
the class StopTimeEntriesFactoryTest method testDuplicateRemoval.
@Test
public void testDuplicateRemoval() {
TransitGraphImpl graph = new TransitGraphImpl();
Stop stopA = new Stop();
stopA.setId(aid("stopA"));
graph.putStopEntry(stop("stopA", 47.672207391799056, -122.387855896286));
Stop stopB = new Stop();
stopB.setId(aid("stopB"));
graph.putStopEntry(stop("stopB", 47.66852277218285, -122.3853882639923));
Stop stopC = new Stop();
stopC.setId(aid("stopC"));
graph.putStopEntry(stop("stopC", 47.66847942216854, -122.37545336180114));
graph.refreshStopMapping();
Agency agency = new Agency();
agency.setId("1");
agency.setTimezone("America/Los_Angeles");
Route route = new Route();
route.setAgency(agency);
Trip trip = new Trip();
trip.setRoute(route);
trip.setServiceId(aid("serviceId"));
TripEntryImpl tripEntry = trip("trip");
StopTime stA = new StopTime();
stA.setId(100);
stA.setArrivalTime(time(9, 00));
stA.setDepartureTime(time(9, 05));
stA.setStopSequence(100);
stA.setStop(stopA);
stA.setTrip(trip);
StopTime stB = new StopTime();
stB.setId(101);
stB.setArrivalTime(time(9, 00));
stB.setDepartureTime(time(9, 05));
stB.setStopSequence(101);
stB.setStop(stopB);
stB.setTrip(trip);
StopTime stC = new StopTime();
stC.setId(102);
stC.setArrivalTime(time(10, 00));
stC.setDepartureTime(time(10, 05));
stC.setStopSequence(102);
stC.setStop(stopC);
stC.setTrip(trip);
StopTimeEntriesFactory factory = new StopTimeEntriesFactory();
factory.setDistanceAlongShapeLibrary(new DistanceAlongShapeLibrary());
List<StopTime> stopTimes = Arrays.asList(stA, stB, stC);
ShapePointsFactory shapePointsFactory = new ShapePointsFactory();
shapePointsFactory.addPoint(47.673840100841396, -122.38756621771239);
shapePointsFactory.addPoint(47.668667271970484, -122.38756621771239);
shapePointsFactory.addPoint(47.66868172192725, -122.3661729186096);
ShapePoints shapePoints = shapePointsFactory.create();
List<StopTimeEntryImpl> entries = factory.processStopTimes(graph, stopTimes, tripEntry, shapePoints);
assertEquals(stopTimes.size(), entries.size());
StopTimeEntryImpl entry = entries.get(0);
assertEquals(0, entry.getAccumulatedSlackTime());
assertEquals(time(9, 00), entry.getArrivalTime());
assertEquals(time(9, 05), entry.getDepartureTime());
assertEquals(0, entry.getSequence());
assertEquals(181.5, entry.getShapeDistTraveled(), 0.1);
assertEquals(5 * 60, entry.getSlackTime());
entry = entries.get(1);
assertEquals(5 * 60, entry.getAccumulatedSlackTime());
assertEquals(time(9, 28, 31), entry.getArrivalTime());
assertEquals(time(9, 28, 31), entry.getDepartureTime());
assertEquals(1, entry.getSequence());
assertEquals(738.7, entry.getShapeDistTraveled(), 0.1);
assertEquals(0, entry.getSlackTime());
entry = entries.get(2);
assertEquals(5 * 60, entry.getAccumulatedSlackTime());
assertEquals(time(10, 00), entry.getArrivalTime());
assertEquals(time(10, 05), entry.getDepartureTime());
assertEquals(2, entry.getSequence());
assertEquals(1484.5, entry.getShapeDistTraveled(), 0.1);
assertEquals(5 * 60, entry.getSlackTime());
}
use of org.onebusaway.transit_data_federation.impl.transit_graph.TransitGraphImpl in project onebusaway-application-modules by camsys.
the class StopTimeEntriesFactoryTest method test.
@Test
public void test() {
TransitGraphImpl graph = new TransitGraphImpl();
Stop stopA = new Stop();
stopA.setId(aid("stopA"));
graph.putStopEntry(stop("stopA", 47.672207391799056, -122.387855896286));
Stop stopB = new Stop();
stopB.setId(aid("stopB"));
graph.putStopEntry(stop("stopB", 47.66852277218285, -122.3853882639923));
Stop stopC = new Stop();
stopC.setId(aid("stopC"));
graph.putStopEntry(stop("stopC", 47.66847942216854, -122.37545336180114));
graph.refreshStopMapping();
Agency agency = new Agency();
agency.setId("1");
agency.setTimezone("America/Los_Angeles");
Route route = new Route();
route.setAgency(agency);
Trip trip = new Trip();
trip.setRoute(route);
trip.setServiceId(aid("serviceId"));
TripEntryImpl tripEntry = trip("trip");
StopTime stA = new StopTime();
stA.setId(100);
stA.setArrivalTime(time(9, 00));
stA.setDepartureTime(time(9, 05));
stA.setStopSequence(100);
stA.setStop(stopA);
stA.setTrip(trip);
StopTime stB = new StopTime();
stB.setId(101);
stB.setStopSequence(101);
stB.setStop(stopB);
stB.setTrip(trip);
StopTime stC = new StopTime();
stC.setId(102);
stC.setArrivalTime(time(10, 00));
stC.setDepartureTime(time(10, 05));
stC.setStopSequence(102);
stC.setStop(stopC);
stC.setTrip(trip);
StopTimeEntriesFactory factory = new StopTimeEntriesFactory();
factory.setDistanceAlongShapeLibrary(new DistanceAlongShapeLibrary());
List<StopTime> stopTimes = Arrays.asList(stA, stB, stC);
ShapePointsFactory shapePointsFactory = new ShapePointsFactory();
shapePointsFactory.addPoint(47.673840100841396, -122.38756621771239);
shapePointsFactory.addPoint(47.668667271970484, -122.38756621771239);
shapePointsFactory.addPoint(47.66868172192725, -122.3661729186096);
ShapePoints shapePoints = shapePointsFactory.create();
List<StopTimeEntryImpl> entries = factory.processStopTimes(graph, stopTimes, tripEntry, shapePoints);
assertEquals(stopTimes.size(), entries.size());
StopTimeEntryImpl entry = entries.get(0);
assertEquals(0, entry.getAccumulatedSlackTime());
assertEquals(time(9, 00), entry.getArrivalTime());
assertEquals(time(9, 05), entry.getDepartureTime());
assertEquals(0, entry.getSequence());
assertEquals(181.5, entry.getShapeDistTraveled(), 0.1);
assertEquals(5 * 60, entry.getSlackTime());
entry = entries.get(1);
assertEquals(5 * 60, entry.getAccumulatedSlackTime());
assertEquals(time(9, 28, 31), entry.getArrivalTime());
assertEquals(time(9, 28, 31), entry.getDepartureTime());
assertEquals(1, entry.getSequence());
assertEquals(738.7, entry.getShapeDistTraveled(), 0.1);
assertEquals(0, entry.getSlackTime());
entry = entries.get(2);
assertEquals(5 * 60, entry.getAccumulatedSlackTime());
assertEquals(time(10, 00), entry.getArrivalTime());
assertEquals(time(10, 05), entry.getDepartureTime());
assertEquals(2, entry.getSequence());
assertEquals(1484.5, entry.getShapeDistTraveled(), 0.1);
assertEquals(5 * 60, entry.getSlackTime());
}
use of org.onebusaway.transit_data_federation.impl.transit_graph.TransitGraphImpl in project onebusaway-application-modules by camsys.
the class TransitGraphTaskTest method testInterpolation.
@Test
public void testInterpolation() throws IOException, ClassNotFoundException {
AgencyEntriesFactory agencyEntriesFactory = Mockito.mock(AgencyEntriesFactory.class);
BlockEntriesFactory blockEntriesFactory = Mockito.mock(BlockEntriesFactory.class);
RouteCollectionEntriesFactory routeCollectionEntriesFactory = Mockito.mock(RouteCollectionEntriesFactory.class);
RouteEntriesFactory routeEntriesFactory = Mockito.mock(RouteEntriesFactory.class);
StopEntriesFactory stopEntriesFactory = Mockito.mock(StopEntriesFactory.class);
TripEntriesFactory tripEntriesFactory = Mockito.mock(TripEntriesFactory.class);
FrequencyEntriesFactory frequencyEntriesFactory = Mockito.mock(FrequencyEntriesFactory.class);
RefreshService refreshService = Mockito.mock(RefreshService.class);
TransitGraphTask task = new TransitGraphTask();
task.setAgencyEntriesFactory(agencyEntriesFactory);
task.setBlockEntriesFactory(blockEntriesFactory);
task.setRouteCollectionEntriesFactroy(routeCollectionEntriesFactory);
task.setRouteEntriesFactory(routeEntriesFactory);
task.setStopEntriesFactory(stopEntriesFactory);
task.setTripEntriesFactory(tripEntriesFactory);
task.setFrequencyEntriesFactory(frequencyEntriesFactory);
task.setRefreshService(refreshService);
File path = File.createTempFile("TemporaryBundleDirectory-", "");
path.delete();
FederatedTransitDataBundle bundle = Mockito.mock(FederatedTransitDataBundle.class);
Mockito.when(bundle.getTransitGraphPath()).thenReturn(path);
task.setBundle(bundle);
task.run();
Mockito.verify(agencyEntriesFactory).processAgencies(Mockito.any(TransitGraphImpl.class));
Mockito.verify(routeEntriesFactory).processRoutes(Mockito.any(TransitGraphImpl.class));
Mockito.verify(routeCollectionEntriesFactory).processRouteCollections(Mockito.any(TransitGraphImpl.class));
Mockito.verify(stopEntriesFactory).processStops(Mockito.any(TransitGraphImpl.class));
Mockito.verify(tripEntriesFactory).processTrips(Mockito.any(TransitGraphImpl.class));
Mockito.verify(refreshService).refresh(RefreshableResources.TRANSIT_GRAPH);
assertTrue(path.exists());
TransitGraphImpl graph = ObjectSerializationLibrary.readObject(path);
assertNotNull(graph);
}
Aggregations