@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); }
@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 public void testExperiencedPlanElementsModule() { Config config = ConfigUtils.createConfig(); com.google.inject.Injector injector = Injector.createInjector(config, new ExperiencedPlanElementsModule(), new EventsManagerModule(), new ScenarioByInstanceModule(ScenarioUtils.createScenario(config)), new ReplayEvents.Module()); Subscriber subscriber = new Subscriber(); injector.getInstance(EventsToActivities.class).addActivityHandler(subscriber); ReplayEvents replayEvents = injector.getInstance(ReplayEvents.class); replayEvents.playEventsFile(matsimTestUtils.getClassInputDirectory() + "events.xml", 0); Assert.assertEquals("There are two activities.", 2, subscriber.activityCount); }
@Test public void testCreatesActivty() { EventsToActivities testee = new EventsToActivities(); MockActivityHandler ah = new MockActivityHandler(); testee.addActivityHandler(ah); testee.reset(0); testee.handleEvent(new ActivityStartEvent(10.0, Id.create("1", Person.class), Id.create("l1", Link.class), Id.create("l1", ActivityFacility.class), "work")); testee.handleEvent(new ActivityEndEvent(30.0, Id.create("1", Person.class), Id.create("l1", Link.class), Id.create("l1", ActivityFacility.class), "work")); Assert.assertNotNull(ah.handledActivity); Assert.assertEquals(10.0, ah.handledActivity.getActivity().getStartTime(), 1e-8); Assert.assertEquals(30.0, ah.handledActivity.getActivity().getEndTime(), 1e-8); }
@Test public void testDontCreateNightActivityIfNoneIsBeingPerformedWhenSimulationEnds() { EventsToActivities testee = new EventsToActivities(); MockActivityHandler ah = new MockActivityHandler(); testee.addActivityHandler(ah); testee.reset(0); testee.handleEvent(new ActivityEndEvent(10.0, Id.create("1", Person.class), Id.create("l1", Link.class), Id.create("f1", ActivityFacility.class), "home")); Assert.assertNotNull(ah.handledActivity); Assert.assertEquals(Time.UNDEFINED_TIME, ah.handledActivity.getActivity().getStartTime(), 1e-8); Assert.assertEquals(10.0, ah.handledActivity.getActivity().getEndTime(), 1e-8); ah.reset(); testee.finish(); Assert.assertNull(ah.handledActivity); }
@Test public void testCreateNightActivity() { EventsToActivities testee = new EventsToActivities(); MockActivityHandler ah = new MockActivityHandler(); testee.addActivityHandler(ah); testee.reset(0); testee.handleEvent(new ActivityEndEvent(10.0, Id.create("1", Person.class), Id.create("l1", Link.class), Id.create("l1", ActivityFacility.class), "home")); Assert.assertNotNull(ah.handledActivity); Assert.assertEquals(Time.UNDEFINED_TIME, ah.handledActivity.getActivity().getStartTime(), 1e-8); Assert.assertEquals(10.0, ah.handledActivity.getActivity().getEndTime(), 1e-8); ah.reset(); testee.handleEvent(new ActivityStartEvent(90.0, Id.create("1", Person.class), Id.create("l1", Link.class), Id.create("l1", ActivityFacility.class), "home")); testee.finish(); Assert.assertNotNull(ah.handledActivity); Assert.assertEquals(Time.UNDEFINED_TIME, ah.handledActivity.getActivity().getEndTime(), 1e-8); Assert.assertEquals(90.0, ah.handledActivity.getActivity().getStartTime(), 1e-8); }