public double getRunningCostTime() { double timeInService = 0; if (this.transitDriverAlightsE != null) { if (this.vehicleAbortE != null) { throw new RuntimeException( "There is both a PersonLeavesVehicleEvent and a VehicleAbortsEvent for TransitDriverStartsEvent " + this.transitDriverStartsE); } timeInService = this.transitDriverAlightsE.getTime() - this.transitDriverStartsE.getTime(); } else if (this.vehicleAbortE != null) { timeInService = this.vehicleAbortE.getTime() - this.transitDriverStartsE.getTime(); } else { throw new RuntimeException( "Neither PersonLeavesVehicleEvent nor VehicleAbortEvent found for TransitDriverStartsEvent " + transitDriverStartsE.getDriverId() + "."); } return this.expensesPerSecond * timeInService; }
private void addEntry2Stats(TransitDriverStartsEvent event, ArrayList<Double> offsetList){ if (event == null || offsetList == null) { return; } if (this.routeId2StatsContrainerMap.get(event.getTransitRouteId()) == null) { // first entry - create new one ArrayList<TinyStatsContainer> statsList = new ArrayList<>(); for (Double offset : offsetList) { TinyStatsContainer statsContainer = new TinyStatsContainer(); statsContainer.handleEntry(offset - event.getTime()); statsList.add(statsContainer); } this.routeId2StatsContrainerMap.put(event.getTransitRouteId(), statsList); } else { // update existing one for (int i = 0; i < offsetList.size(); i++) { this.routeId2StatsContrainerMap.get(event.getTransitRouteId()).get(i).handleEntry(offsetList.get(i) - event.getTime()); } } }
@Override public void handleEvent(TransitDriverStartsEvent event) { FullDeparture fullDeparture = new FullDeparture(event.getTransitLineId(), event.getTransitRouteId(), event.getVehicleId(), event.getDepartureId()); VehicleTracker tracker = new VehicleTracker(fullDeparture, event.getDriverId(), getVehicleCapacity(event.getVehicleId())); vehicletrackers.put(event.getVehicleId().toString(),event.getTime(), tracker); }
@Test public void testWriteReadXml() { final TransitDriverStartsEvent event1 = new TransitDriverStartsEvent(36095.2, Id.create("ptDrvr-1", Person.class), Id.create("vehicle-bus5", Vehicle.class), Id.create("line L-1", TransitLine.class), Id.create("route-R1", TransitRoute.class), Id.create("departure-D-1", Departure.class)); final TransitDriverStartsEvent event2 = XmlEventsTester.testWriteReadXml(this.utils.getOutputDirectory() + "events.xml", event1); Assert.assertEquals(event1.getTime(), event2.getTime(), 1.0e-9); Assert.assertEquals(event1.getDriverId(), event2.getDriverId()); Assert.assertEquals(event1.getVehicleId(), event2.getVehicleId()); Assert.assertEquals(event1.getTransitRouteId(), event2.getTransitRouteId()); Assert.assertEquals(event1.getTransitLineId(), event2.getTransitLineId()); Assert.assertEquals(event1.getDepartureId(), event2.getDepartureId()); } }