/** * @param args the path to your config file */ public static void main(String[] args) { Config config; if (args.length==0 || args.length>1) { // --- create a config for the example scenario config = ConfigUtils.loadConfig("./examples/tutorial/example90TrafficLights/useSignalInput/withLanes/config.xml"); config.controler().setOverwriteFileSetting(OverwriteFileSetting.deleteDirectoryIfExists); config.controler().setLastIteration(0); config.controler().setOutputDirectory("output/runSignalSystemsExample/"); } else { // --- create a config from the arguments you provided config = ConfigUtils.loadConfig(args[0]); } run(config, true); // The run method is extracted so that a test can operate on it. }
/** * Test method for {@link org.matsim.core.mobsim.qsim.qnetsimengine.RunConfigurableQNetworkFactoryExample#main(java.lang.String[])}. */ @SuppressWarnings("static-method") @Test public final void testMain() { try { Config config = ConfigUtils.createConfig() ; config.controler().setOverwriteFileSetting( OverwriteFileSetting.deleteDirectoryIfExists ); config.controler().setLastIteration(5); RunConfigurableQNetworkFactoryExample.run(config); } catch ( Exception ee ) { throw new RuntimeException("something went wrong") ; } }
@Test public void testRun() { Config config = utils.loadConfig("test/scenarios/equil/config.xml"); config.controler().setLastIteration(1); Controler controler = new Controler(config); ExampleWithinDayController.configure(controler); controler.run(); }
public static void main(String[] args) { final Config config = ConfigUtils.createConfig(); config.controler().setLastIteration(1); config.controler().setOverwriteFileSetting(OutputDirectoryHierarchy.OverwriteFileSetting.overwriteExistingFiles); Controler controler = new Controler(ScenarioUtils.createScenario(config)); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bindCarTravelDisutilityFactory().to(InterestingTravelDisutilityFactory.class); bindNetworkTravelTime().to(InterestingTravelTime.class); addControlerListenerBinding().to(InterestingControlerListener.class); } }); controler.run(); }
@Test public void testTransimsSnapshotWriterOnQSim() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(2); config.controler().setWriteEventsInterval(0); config.controler().setWritePlansInterval(0); config.controler().setMobsim("qsim"); config.controler().setSnapshotFormat(Arrays.asList("transims")); config.qsim().setSnapshotPeriod(600); config.qsim().setSnapshotStyle( SnapshotStyle.equiDist ) ;; final Controler controler = new Controler(config); controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setDumpDataAtEnd(false); controler.run(); assertTrue(new File(controler.getControlerIO().getIterationFilename(0, "T.veh.gz")).exists()); assertTrue(new File(controler.getControlerIO().getIterationFilename(1, "T.veh.gz")).exists()); assertTrue(new File(controler.getControlerIO().getIterationFilename(2, "T.veh.gz")).exists()); }
@Test public void testKMLSnapshotWriterOnQSim() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(2); config.controler().setWriteEventsInterval(0); config.controler().setWritePlansInterval(0); config.controler().setMobsim("qsim"); config.controler().setSnapshotFormat(Arrays.asList("googleearth")); config.qsim().setSnapshotPeriod(600); config.qsim().setSnapshotStyle( SnapshotStyle.equiDist ) ; final Controler controler = new Controler(config); controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setDumpDataAtEnd(false); controler.run(); assertTrue(new File(controler.getControlerIO().getIterationFilename(0, "googleearth.kmz")).exists()); assertTrue(new File(controler.getControlerIO().getIterationFilename(1, "googleearth.kmz")).exists()); assertTrue(new File(controler.getControlerIO().getIterationFilename(2, "googleearth.kmz")).exists()); }
public static void run(boolean otfvis, int lastIteration) { // load config Config config = ConfigUtils.loadConfig(CONFIG_FILE, new DvrpConfigGroup(), new OTFVisConfigGroup()); config.controler().setLastIteration(lastIteration); config.addConfigConsistencyChecker(new DvrpConfigConsistencyChecker()); config.checkConsistency(); // load scenario Scenario scenario = ScenarioUtils.loadScenario(config); // setup controler Controler controler = new Controler(scenario); controler.addOverridingModule(new DvrpModule()); controler.addOverridingModule(new OneTruckModule(TRUCKS_FILE)); controler.configureQSimComponents(DvrpQSimComponents.activateModes(TransportMode.truck)); if (otfvis) { controler.addOverridingModule(new OTFVisLiveModule()); // OTFVis visualisation } // run simulation controler.run(); }
public static void run(boolean otfvis, int lastIteration) { // load config Config config = ConfigUtils.loadConfig(CONFIG_FILE, new DvrpConfigGroup(), new OTFVisConfigGroup()); config.controler().setLastIteration(lastIteration); config.addConfigConsistencyChecker(new DvrpConfigConsistencyChecker()); config.checkConsistency(); // load scenario Scenario scenario = ScenarioUtils.loadScenario(config); // setup controler Controler controler = new Controler(scenario); controler.addOverridingModule(new DvrpModule()); controler.addOverridingModule(new OneTaxiModule(TAXIS_FILE)); controler.configureQSimComponents(DvrpQSimComponents.activateModes(TransportMode.taxi)); if (otfvis) { controler.addOverridingModule(new OTFVisLiveModule()); // OTFVis visualisation } // run simulation controler.run(); }
@Test public void testScoreStats() { Config config = utils.loadConfig("test/scenarios/equil/config.xml"); config.qsim().setUsingFastCapacityUpdate(this.isUsingFastCapacityUpdate); config.plansCalcRoute().setInsertingAccessEgressWalk(this.isInsertingAccessEgressWalk); config.controler().setLastIteration(1); Controler controler = new Controler(config); controler.addOverridingModule(new AbstractModule() { @Override public void install() { addControlerListenerBinding().to(MyControlerListener.class); } }); controler.run(); }
public static void run(boolean otfvis, int lastIteration) { // load config Config config = ConfigUtils.loadConfig(CONFIG_FILE, new DvrpConfigGroup(), new OTFVisConfigGroup()); config.controler().setLastIteration(lastIteration); config.addConfigConsistencyChecker(new DvrpConfigConsistencyChecker()); config.checkConsistency(); // load scenario Scenario scenario = ScenarioUtils.loadScenario(config); // setup controler Controler controler = new Controler(scenario); controler.addOverridingModule(new OneTaxiModule(TAXIS_FILE)); controler.addOverridingModule(new OneTruckModule(TRUCKS_FILE)); controler.addOverridingModule(new DvrpModule()); controler.configureQSimComponents(DvrpQSimComponents.activateModes(TransportMode.taxi, TransportMode.truck)); if (otfvis) { controler.addOverridingModule(new OTFVisLiveModule()); // OTFVis visualisation } // run simulation controler.run(); }
@Test public void testScenarioLoading() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config.xml")); Controler controler = new Controler( config ); // need to run the controler to get Scenario initilized controler.getConfig().controler().setLastIteration( 0 ); controler.run(); assertNotNull(controler.getScenario().getNetwork()); // is required, e.g. for changing the factories assertNotNull(controler.getScenario().getPopulation()); assertEquals(23, controler.getScenario().getNetwork().getLinks().size()); assertEquals(15, controler.getScenario().getNetwork().getNodes().size()); assertEquals(100, controler.getScenario().getPopulation().getPersons().size()); assertNotNull(controler.getEvents()); }
@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); }
@Test public void testOneSnapshotWriterInConfig() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(0); config.controler().setWriteEventsInterval(0); config.controler().setWritePlansInterval(0); config.qsim().setSnapshotPeriod(10); config.qsim().setSnapshotStyle(SnapshotStyle.equiDist) ;; final Controler controler = new Controler(config); controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setDumpDataAtEnd(false); controler.run(); assertTrue(new File(controler.getControlerIO().getIterationFilename(0, "T.veh.gz")).exists()); }
@Test(expected = RuntimeException.class) public void testPtInteractionParams() { Config config = ConfigUtils.createConfig(); config.controler().setOutputDirectory(utils.getOutputDirectory()); PlanCalcScoreConfigGroup.ActivityParams params = new PlanCalcScoreConfigGroup.ActivityParams(PtConstants.TRANSIT_ACTIVITY_TYPE); params.setScoringThisActivityAtAll(true); params.setTypicalDuration(60.0); config.planCalcScore().addActivityParams(params); // --- config.controler().setLastIteration(0); // in case the exception is _not_ thrown, we don't need 100 iterations to find that out ... // --- Controler controler = new Controler(config); controler.run(); }
@Test(expected = RuntimeException.class) public void testShutdown_UncaughtException() throws InterruptedException { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(1); Controler controler = new Controler(config); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bindMobsim().to(CrashingMobsim.class); } }); controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setDumpDataAtEnd(false); controler.run(); }
public void testScenarioRun() { // load config and use ParallelQSim with 2 Threads Config config = loadConfig("test/scenarios/equil/config.xml"); QSimConfigGroup qSimConfig = config.qsim(); qSimConfig.setNumberOfThreads(2); qSimConfig.setFlowCapFactor(100.0); // ensure that agents don't have to wait at an intersection qSimConfig.setStorageCapFactor(100.0); // ensure that agents don't have to wait at an intersection config.controler().setMobsim("qsim"); config.controler().setLastIteration(0); Controler controler = new Controler(config); controler.addOverridingModule(new WithinDayModule()); controler.addOverridingModule(new AbstractModule() { @Override public void install() { addMobsimListenerBinding().to(MobsimListenerForTests.class); } }); controler.run(); }
@Test(expected = RuntimeException.class) public void testRunMobsim_missingMobsimFactory() { Config cfg = this.utils.loadConfig("test/scenarios/equil/config_plans1.xml"); cfg.controler().setLastIteration(0); cfg.controler().setMobsim("counting"); cfg.controler().setWritePlansInterval(0); Controler c = new Controler(cfg); c.getConfig().controler().setCreateGraphs(false); c.getConfig().controler().setDumpDataAtEnd(false); c.getConfig().controler().setWriteEventsInterval(0); c.run(); }
@Test public void testRunMobsim_listenerTransient() { Config cfg = this.utils.loadConfig("test/scenarios/equil/config_plans1.xml"); cfg.controler().setLastIteration(1); cfg.controler().setWritePlansInterval(0); final Controler c = new Controler(cfg); c.addOverridingModule(new AbstractModule() { @Override public void install() { addMobsimListenerBinding().to(CountingMobsimListener.class); } }); c.getConfig().controler().setCreateGraphs(false); c.getConfig().controler().setDumpDataAtEnd(false); c.getConfig().controler().setWriteEventsInterval(0); c.run(); }
@Test(expected = RuntimeException.class) public void testRunMobsim_listenerSingleton() { Config cfg = this.utils.loadConfig("test/scenarios/equil/config_plans1.xml"); cfg.controler().setLastIteration(1); cfg.controler().setWritePlansInterval(0); final Controler c = new Controler(cfg); c.addOverridingModule(new AbstractModule() { @Override public void install() { addMobsimListenerBinding().to(SingletonCountingMobsimListener.class); } }); c.getConfig().controler().setCreateGraphs(false); c.getConfig().controler().setDumpDataAtEnd(false); c.getConfig().controler().setWriteEventsInterval(0); c.run(); }
@Test(expected = RuntimeException.class) public void testSubpopulationParams() { Config config = ConfigUtils.createConfig(); config.controler().setOutputDirectory(utils.getOutputDirectory()); PlanCalcScoreConfigGroup.ActivityParams params = new PlanCalcScoreConfigGroup.ActivityParams("home"); params.setScoringThisActivityAtAll(true); params.setTypicalDuration(60.0); ScoringParameterSet sps = config.planCalcScore().getOrCreateScoringParameters("one"); sps.addActivityParams(params); ScoringParameterSet sps2 = config.planCalcScore().getOrCreateScoringParameters("two"); sps2.addActivityParams(params); // --- config.controler().setLastIteration(0); // in case the exception is _not_ thrown, we don't need 100 iterations to find that out ... config.checkConsistency(); Controler controler = new Controler(config); controler.run(); }