@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()); }
config.controler().setMobsim("dummy"); config.controler().setFirstIteration(0); config.controler().setLastIteration(7);
@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()); }
@Test public void testReset_CorrectlyExecuted() throws IOException { Config config = this.util.loadConfig((String) null); config.controler().setMobsim("dummy"); config.controler().setFirstIteration(0); config.controler().setLastIteration(7);
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(); }
/** * Ensure that the mobsim-selector is correctly stored * and returned with the different setters and getters. * * @author mrieser */ @Test public void testMobsim() { ControlerConfigGroup cg = new ControlerConfigGroup(); // test initial value Assert.assertEquals("qsim", cg.getMobsim()); Assert.assertEquals("qsim", cg.getValue(ControlerConfigGroup.MOBSIM)); // test setting to null cg.setMobsim(null); Assert.assertNull(cg.getMobsim()); Assert.assertNull(cg.getValue(ControlerConfigGroup.MOBSIM)); // test setting with addParam cg.addParam(ControlerConfigGroup.MOBSIM, "queueSimulation"); Assert.assertEquals("queueSimulation", cg.getMobsim()); Assert.assertEquals("queueSimulation", cg.getValue(ControlerConfigGroup.MOBSIM)); }
config.controler().setLinkToLinkRoutingEnabled(true); config.travelTimeCalculator().setCalculateLinkToLinkTravelTimes(true); config.controler().setMobsim("qsim"); config.global().setNumberOfThreads(1); config.qsim().setRemoveStuckVehicles(false);
@Test public void testRunMobsim_customMobsim() { Config cfg = this.utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); cfg.controler().setLastIteration(0); cfg.controler().setMobsim("counting"); cfg.controler().setWritePlansInterval(0); final Controler c = new Controler(cfg); final CountingMobsimFactory mf = new CountingMobsimFactory(); c.addOverridingModule(new AbstractModule() { @Override public void install() { if (getConfig().controler().getMobsim().equals("counting")) { bind(Mobsim.class).toProvider(new Provider<Mobsim>() { @Override public Mobsim get() { return mf.createMobsim(c.getScenario(), c.getEvents()); } }); } } }); c.getConfig().controler().setCreateGraphs(false); c.getConfig().controler().setDumpDataAtEnd(false); c.getConfig().controler().setWriteEventsInterval(0); c.run(); Assert.assertEquals(1, mf.callCount); }
@Test public void test_Controler_QSim_Routechoice_acts() { Config config = this.utils.loadConfig("test/scenarios/equil/config.xml"); config.controler().setMobsim("qsim"); config.controler().setLastIteration(10); config.strategy().addParam("Module_2", "ReRoute"); config.strategy().addParam("ModuleProbability_2", "1.0"); config.transit().setUseTransit(true); // a scenario is created to take only network from config file; rest inputs are ignored; // facility file is provided in config and facilitySource is 'fromFile', the facilitySource must be changed. Amit Jan'18 config.facilities().setFacilitiesSource(FacilitiesConfigGroup.FacilitiesSource.none); Scenario scenario = ScenarioUtils.createScenario(config); new MatsimNetworkReader(scenario.getNetwork()).readFile("test/scenarios/equil/network.xml"); addSimpleTransitServices(scenario); Plan plan = createPlanWithConsecutiveActivitiesForEquilNet(scenario); Person person = scenario.getPopulation().getFactory().createPerson(Id.create(1, Person.class)); person.addPlan(plan); scenario.getPopulation().addPerson(person); Controler controler = new Controler(scenario); controler.getConfig().controler().setDumpDataAtEnd(false); controler.getConfig().controler().setCreateGraphs(false); controler.run(); Assert.assertTrue(person.getPlans().size() > 1); // ensure there was some replanning }
@Test public void test_Controler_QSim_Routechoice_legs() { Config config = this.utils.loadConfig("test/scenarios/equil/config.xml"); config.controler().setMobsim("qsim"); config.controler().setLastIteration(10); config.strategy().addParam("Module_2", "ReRoute"); config.strategy().addParam("ModuleProbability_2", "1.0"); config.transit().setUseTransit(true); // a scenario is created to take only network from config file; rest inputs are ignored; // facility file is provided in config and facilitySource is 'fromFile', the facilitySource must be changed. Amit Jan'18 config.facilities().setFacilitiesSource(FacilitiesConfigGroup.FacilitiesSource.none); Scenario scenario = ScenarioUtils.createScenario(config); new MatsimNetworkReader(scenario.getNetwork()).readFile("test/scenarios/equil/network.xml"); addSimpleTransitServices(scenario); Plan plan = createPlanWithConsecutiveLegsForEquilNet(scenario); Person person = scenario.getPopulation().getFactory().createPerson(Id.create(1, Person.class)); person.addPlan(plan); scenario.getPopulation().addPerson(person); Controler controler = new Controler(scenario); controler.getConfig().controler().setDumpDataAtEnd(false); controler.getConfig().controler().setCreateGraphs(false); controler.run(); Assert.assertTrue(person.getPlans().size() > 1); // ensure there was some replanning }
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); config.controler().setMobsim("qsim"); config.controler().setLastIteration(0); config.qsim().setStartTime(0.0); config.qsim().setSimStarttimeInterpretation(QSimConfigGroup.StarttimeInterpretation.onlyUseStarttime); Controler controler = new Controler(config); controler.addOverridingModule(new WithinDayModule()); controler.addOverridingModule(new AbstractModule() { @Override public void install() { addMobsimListenerBinding().to(MobsimListenerForTests.class); } }); controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setDumpDataAtEnd(false); controler.getConfig().controler().setWriteEventsInterval(0); controler.getConfig().controler().setWritePlansInterval(0); controler.run(); }
cConfig.setInputFile("counts.xml"); // just any file to activate the counts feature config.controler().setMobsim("dummy"); config.controler().setFirstIteration(0); config.controler().setLastIteration(3);