static void run(Config config) { final Scenario scenario = ScenarioUtils.createScenario( config ) ; Controler controler = new Controler( scenario ) ; final EventsManager events = controler.getEvents() ; controler.addOverridingQSimModule( new AbstractQSimModule(){ @Override public void configureQSim() { final ConfigurableQNetworkFactory factory = new ConfigurableQNetworkFactory( events, scenario ) ; factory.setLinkSpeedCalculator(null); // fill with something reasonable factory.setTurnAcceptanceLogic(null); // fill with something reasonable bind( QNetworkFactory.class ).toInstance( factory ) ; // NOTE: Other than when using a provider, this uses the same factory instance over all iterations, re-configuring // it in every iteration via the initializeFactory(...) method. kai, mar'16 } }); controler.run(); }
@Test public void testOverrideAgentFactory() { Config config = ConfigUtils.createConfig(); config.controler().setOverwriteFileSetting(OverwriteFileSetting.deleteDirectoryIfExists); config.controler().setLastIteration(0); Scenario scenario = ScenarioUtils.loadScenario(config); Person person = scenario.getPopulation().getFactory().createPerson(Id.createPersonId("person")); person.addPlan(scenario.getPopulation().getFactory().createPlan()); scenario.getPopulation().addPerson(person); AtomicLong value = new AtomicLong(0); Controler controler = new Controler(scenario); controler.addOverridingQSimModule(new TestQSimModule(value)); controler.run(); Assert.assertTrue(value.get() > 0); }
public static void run(String netFile, boolean otfvis) { OTFVisConfigGroup otfvisConfig = new OTFVisConfigGroup(); otfvisConfig.setColoringScheme(ColoringScheme.byId); otfvisConfig.setDrawNonMovingItems(true); Config config = ConfigUtils.createConfig(otfvisConfig); config.qsim().setSimStarttimeInterpretation(StarttimeInterpretation.onlyUseStarttime); config.qsim().setSnapshotStyle(SnapshotStyle.queue); config.network().setInputFile(netFile); config.controler().setOutputDirectory("./test/output/"); config.controler().setOverwriteFileSetting(OverwriteFileSetting.deleteDirectoryIfExists); config.controler().setLastIteration(0); config.addConfigConsistencyChecker(new DynQSimConfigConsistencyChecker()); config.checkConsistency(); Scenario scenario = ScenarioUtils.loadScenario(config); Controler controler = new Controler(scenario); controler.addOverridingQSimModule(new DynQSimModule(RandomDynAgentSource.class)); controler.configureQSimComponents(DynQSimModule::configureComponents); if (otfvis) { controler.addOverridingModule(new OTFVisLiveModule()); } controler.run(); }
@Test public void testAddEngine() { Config config = ConfigUtils.createConfig(); config.controler().setOverwriteFileSetting(OverwriteFileSetting.deleteDirectoryIfExists); config.controler().setLastIteration(0); Scenario scenario = ScenarioUtils.loadScenario(config); TestEngine engine = new TestEngine(); Controler controler = new Controler(scenario); controler.addOverridingQSimModule(new AbstractQSimModule() { @Override protected void configureQSim() { addQSimComponentBinding("MyEngine").toInstance(engine); } }); controler.configureQSimComponents(components -> { components.addNamedComponent("MyEngine"); }); controler.run(); Assert.assertTrue(engine.called); }
controller.addOverridingQSimModule( new AbstractQSimModule() { @Override protected void configureQSim() { this.bind(Replanner.class).in( Singleton.class ) ;