@Override public void handleEvent(TransitDriverStartsEvent event) { this.legsDelegate.handleEvent(event); }
@Test public void testCreatesLegWithRoute() { Scenario scenario = createTriangularNetwork(); EventsToLegs eventsToLegs = new EventsToLegs(scenario); RememberingLegHandler lh = new RememberingLegHandler(); eventsToLegs.addLegHandler(lh); Id<Person> agentId = Id.create("1", Person.class); Id<Vehicle> vehId = Id.create("veh1", Vehicle.class); eventsToLegs.handleEvent(new PersonDepartureEvent(10.0, agentId, Id.createLinkId("l1"), "car")); eventsToLegs.handleEvent(new PersonEntersVehicleEvent(10.0, agentId, vehId)); eventsToLegs.handleEvent(new VehicleEntersTrafficEvent(10.0, agentId, Id.createLinkId("l1"), vehId, "car", 1.0)); eventsToLegs.handleEvent(new LinkLeaveEvent(10.0, vehId, Id.createLinkId("l1"))); eventsToLegs.handleEvent(new LinkEnterEvent(11.0, vehId, Id.createLinkId("l2"))); eventsToLegs.handleEvent(new LinkLeaveEvent(15.0, vehId, Id.createLinkId("l2"))); eventsToLegs.handleEvent(new LinkEnterEvent(16.0, vehId, Id.createLinkId("l3"))); eventsToLegs.handleEvent(new VehicleLeavesTrafficEvent(30.0, agentId, Id.createLinkId("l3"), vehId, "car", 1.0)); eventsToLegs.handleEvent(new PersonArrivalEvent(30.0, agentId, Id.createLinkId("l3"), "car")); Assert.assertNotNull(lh.handledLeg); Assert.assertEquals(10.0,lh.handledLeg.getLeg().getDepartureTime(), 1e-9); Assert.assertEquals(20.0,lh.handledLeg.getLeg().getTravelTime(), 1e-9); Assert.assertEquals(20.0,lh.handledLeg.getLeg().getRoute().getTravelTime(), 1e-9); Assert.assertEquals(550.0,lh.handledLeg.getLeg().getRoute().getDistance(), 1e-9); }
@Inject ExperiencedPlansServiceImpl(ControlerListenerManager controlerListenerManager, EventsToActivities eventsToActivities, EventsToLegs eventsToLegs) { controlerListenerManager.addControlerListener(new IterationStartsListener() { @Override public void notifyIterationStarts(IterationStartsEvent event) { for (Person person : population.getPersons().values()) { agentRecords.put(person.getId(), PopulationUtils.createPlan()); } } }); eventsToActivities.addActivityHandler(this); eventsToLegs.addLegHandler(this); }
EventsToLegs eventsToLegs = new EventsToLegs(scenario); ScoringFunctionFactory scoringFunctionFactory = agentId -> new RecordingScoringFunction();
@Override public void reset(int iteration) { this.actsDelegate.reset(iteration); this.legsDelegate.reset(iteration); } }
@Test public void testCreatesLeg() { Scenario scenario = createTriangularNetwork(); EventsToLegs eventsToLegs = new EventsToLegs(scenario); RememberingLegHandler lh = new RememberingLegHandler(); eventsToLegs.addLegHandler(lh); eventsToLegs.handleEvent(new PersonDepartureEvent(10.0, Id.create("1", Person.class), Id.create("l1", Link.class), "walk")); eventsToLegs.handleEvent(new TeleportationArrivalEvent(30.0, Id.create("1", Person.class), 50.0)); eventsToLegs.handleEvent(new PersonArrivalEvent(30.0, Id.create("1", Person.class), Id.create("l2", Link.class), "walk")); Assert.assertNotNull(lh.handledLeg); Assert.assertEquals(10.0, lh.handledLeg.getLeg().getDepartureTime(), 1e-9); Assert.assertEquals(20.0, lh.handledLeg.getLeg().getTravelTime(), 1e-9); Assert.assertEquals(50.0, lh.handledLeg.getLeg().getRoute().getDistance(), 1e-9); }
@Inject ScoringFunctionsForPopulation( ControlerListenerManager controlerListenerManager, EventsManager eventsManager, EventsToActivities eventsToActivities, EventsToLegs eventsToLegs, Population population, ScoringFunctionFactory scoringFunctionFactory) { controlerListenerManager.addControlerListener(new IterationStartsListener() { @Override public void notifyIterationStarts(IterationStartsEvent event) { init(); } }); this.population = population; this.scoringFunctionFactory = scoringFunctionFactory; eventsManager.addHandler(this); eventsToActivities.addActivityHandler(this); eventsToLegs.addLegHandler(this); // if ( passLinkEventsToPerson ) { eventsManager.addHandler(this.vehicles2Drivers); // } }
@Test(expected = RuntimeException.class) public void exceptionInScoringFunctionPropagates() { Config config = ConfigUtils.createConfig(); Scenario scenario = ScenarioUtils.createScenario(config); Id<Person> personId = Id.createPersonId(1); scenario.getPopulation().addPerson(scenario.getPopulation().getFactory().createPerson(personId)); EventsManager events = EventsUtils.createEventsManager(config); ControlerListenerManagerImpl controlerListenerManager = new ControlerListenerManagerImpl(); ScoringFunctionFactory throwingScoringFunctionFactory = new ThrowingScoringFunctionFactory(); EventsToActivities e2acts = new EventsToActivities(controlerListenerManager); EventsToLegs e2legs = new EventsToLegs(scenario.getNetwork()); EventsToLegsAndActivities e2legsActs = new EventsToLegsAndActivities(e2legs, e2acts); events.addHandler(e2legsActs); ScoringFunctionsForPopulation scoringFunctionsForPopulation = new ScoringFunctionsForPopulation( controlerListenerManager, events, e2acts, e2legs, scenario.getPopulation(), throwingScoringFunctionFactory ); controlerListenerManager.fireControlerIterationStartsEvent(0); events.processEvent(new PersonMoneyEvent(3600.0, personId, 3.4)); scoringFunctionsForPopulation.finishScoringFunctions(); }
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { this.legsDelegate.handleEvent(event); }
events, new EventsToActivities(controlerListenerManager), new EventsToLegs(scenario.getNetwork()), scenario.getPopulation(), scoringFunctionFactory
@Override public void handleEvent(LinkEnterEvent event) { this.legsDelegate.handleEvent(event); }
EventsToLegs e2legs = new EventsToLegs(scenario.getNetwork()); EventsToLegsAndActivities e2legsActs = new EventsToLegsAndActivities(e2legs, e2acts); events.addHandler(e2legsActs);
@Override public void handleEvent(PersonDepartureEvent event) { this.legsDelegate.handleEvent(event); }
@Override public void handleEvent(VehicleEntersTrafficEvent event) { this.legsDelegate.handleEvent(event); }
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { this.legsDelegate.handleEvent(event); }
@Override public void handleEvent(LinkLeaveEvent event) { this.legsDelegate.handleEvent(event); }
@Override public void handleEvent(PersonArrivalEvent event) { this.legsDelegate.handleEvent(event); }
@Override public void handleEvent(PersonEntersVehicleEvent event) { this.legsDelegate.handleEvent(event); }
@Override public void handleEvent(TeleportationArrivalEvent event) { this.legsDelegate.handleEvent(event); }