@Test public void testPlansDump_Interval() { Config config = this.util.loadConfig("test/scenarios/equil/config_plans1.xml"); config.controler().setLastIteration(10); config.controler().setWritePlansInterval(3); Controler c = new Controler(config); c.getConfig().controler().setWriteEventsInterval(0); c.getConfig().controler().setCreateGraphs(false); c.run(); assertTrue(new File(c.getControlerIO().getIterationFilename(0, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(1, "plans.xml.gz")).exists()); // it.1 is always written assertFalse(new File(c.getControlerIO().getIterationFilename(2, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(3, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(4, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(5, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(6, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(7, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(8, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(9, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(10, "plans.xml.gz")).exists()); }
@Test public void testPlansDump_Never() { Config config = this.util.loadConfig("test/scenarios/equil/config_plans1.xml"); config.controler().setLastIteration(10); config.controler().setWritePlansInterval(0); Controler c = new Controler(config); c.getConfig().controler().setWriteEventsInterval(0); c.getConfig().controler().setCreateGraphs(false); c.run(); assertFalse(new File(c.getControlerIO().getIterationFilename(0, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(1, "plans.xml.gz")).exists()); // it.1 is deactivated when interval = 0 assertFalse(new File(c.getControlerIO().getIterationFilename(2, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(3, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(4, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(5, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(6, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(7, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(8, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(9, "plans.xml.gz")).exists()); assertFalse(new File(c.getControlerIO().getIterationFilename(10, "plans.xml.gz")).exists()); }
@Test public void testPlansDump_Always() { Config config = this.util.loadConfig("test/scenarios/equil/config_plans1.xml"); config.controler().setLastIteration(10); config.controler().setWritePlansInterval(1); Controler c = new Controler(config); c.getConfig().controler().setWriteEventsInterval(0); c.getConfig().controler().setCreateGraphs(false); c.run(); assertTrue(new File(c.getControlerIO().getIterationFilename(0, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(1, "plans.xml.gz")).exists()); // it.1 is always written assertTrue(new File(c.getControlerIO().getIterationFilename(2, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(3, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(4, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(5, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(6, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(7, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(8, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(9, "plans.xml.gz")).exists()); assertTrue(new File(c.getControlerIO().getIterationFilename(10, "plans.xml.gz")).exists()); } }
@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 TestControler(final Scenario scenario, final StrategyManager manager) { controler = new Controler( scenario ) ; controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setWriteEventsInterval(1); controler.getConfig().controler().setDumpDataAtEnd(false); this.manager = manager ; controler.addOverridingModule(new AbstractModule() { @Override public void install() { bind(StrategyManager.class).toProvider(new com.google.inject.Provider<StrategyManager>() { @Override public StrategyManager get() { return new Provider<StrategyManager>() { @Override public StrategyManager get() { return myLoadStrategyManager(); } }.get(); } }).in(Singleton.class); } }); }
@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()); }
/** * @author mrieser */ @Test public void testSetWriteEventsAlways() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(1); config.controler().setWritePlansInterval(0); final Controler controler = new Controler(config); controler.getConfig().controler().setWriteEventsInterval(1); assertEquals(1, controler.getConfig().controler().getWriteEventsInterval()); controler.getConfig().controler().setCreateGraphs(false); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bindMobsim().toProvider(new Provider<Mobsim>() { @Override public Mobsim get() { return new FakeMobsim(); } }); } }); controler.getConfig().controler().setDumpDataAtEnd(false); controler.run(); assertTrue(new File(controler.getControlerIO().getIterationFilename(0, Controler.FILENAME_EVENTS_XML)).exists()); assertTrue(new File(controler.getControlerIO().getIterationFilename(1, Controler.FILENAME_EVENTS_XML)).exists()); }
/** * @author mrieser */ @Test public void testSetDumpDataAtEnd_false() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(0); config.controler().setWritePlansInterval(0); final Controler controler = new Controler(config); controler.getConfig().controler().setWriteEventsInterval(0); controler.getConfig().controler().setCreateGraphs(false); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bindMobsim().toProvider(new Provider<Mobsim>() { @Override public Mobsim get() { return new FakeMobsim(); } }); } }); controler.getConfig().controler().setDumpDataAtEnd(false); controler.run(); assertFalse(new File(controler.getControlerIO().getOutputFilename(Controler.OUTPUT_PREFIX + Controler.FILENAME_POPULATION)).exists()); }
@Test public void testIntegration() { final Config cfg = this.util.loadConfig("test/scenarios/pt-tutorial/0.config.xml"); cfg.controler().setLastIteration(0); final Scenario s = ScenarioUtils.loadScenario(cfg); final Controler c = new Controler(s); final TransitLoad transitload = new TransitLoad(); c.addControlerListener(new StartupListener() { @Override public void notifyStartup(StartupEvent event) { c.getEvents().addHandler(transitload); } }); cfg.controler().setWritePlansInterval(0); c.getConfig().controler().setCreateGraphs(false); c.getConfig().controler().setWriteEventsInterval(0); c.getConfig().controler().setDumpDataAtEnd(false); c.run(); TransitLine line = s.getTransitSchedule().getTransitLines().get(Id.create("Blue Line", TransitLine.class)); TransitRoute route = line.getRoutes().get(Id.create("1to3", TransitRoute.class)); TransitStopFacility stopFacility = s.getTransitSchedule().getFacilities().get(Id.create("2a", TransitStopFacility.class)); Departure departure = route.getDepartures().get(Id.create("07", Departure.class)); int load = transitload.getLoadAtDeparture(line, route, stopFacility, departure); Assert.assertEquals("wrong number of passengers.", 4, load); } }
/** * @author mrieser */ @Test public void testSetDumpDataAtEnd_true() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(0); config.controler().setWritePlansInterval(0); final Controler controler = new Controler(config); controler.getConfig().controler().setWriteEventsInterval(0); controler.getConfig().controler().setCreateGraphs(false); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bindMobsim().toProvider(new Provider<Mobsim>() { @Override public Mobsim get() { return new FakeMobsim(); } }); } }); controler.getConfig().controler().setDumpDataAtEnd(true); controler.run(); assertTrue(new File(controler.getControlerIO().getOutputFilename(Controler.OUTPUT_PREFIX + Controler.FILENAME_POPULATION)).exists()); }
/** * @author mrieser */ @Test public void testSetWriteEventsXml() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(0); config.controler().setWritePlansInterval(0); config.controler().setEventsFileFormats(EnumSet.of(EventsFileFormat.xml)); final Controler controler = new Controler(config); controler.getConfig().controler().setWriteEventsInterval(1); assertEquals(1, controler.getConfig().controler().getWriteEventsInterval()); controler.getConfig().controler().setCreateGraphs(false); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bindMobsim().toProvider(new Provider<Mobsim>() { @Override public Mobsim get() { return new FakeMobsim(); } }); } }); controler.getConfig().controler().setDumpDataAtEnd(false); controler.run(); assertTrue(new File(controler.getControlerIO().getIterationFilename(0, Controler.FILENAME_EVENTS_XML)).exists()); }
/** * @author mrieser */ @Test public void testSetWriteEventsNever() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config_plans1.xml")); config.controler().setLastIteration(1); config.controler().setWritePlansInterval(0); final Controler controler = new Controler(config); assertFalse("Default for Controler.writeEventsInterval should be different from the interval we plan to use, otherwise it's hard to decide if it works correctly.", 0 == controler.getConfig().controler().getWriteEventsInterval()); controler.getConfig().controler().setWriteEventsInterval(0); assertEquals(0, controler.getConfig().controler().getWriteEventsInterval()); controler.getConfig().controler().setCreateGraphs(false); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bindMobsim().toProvider(new Provider<Mobsim>() { @Override public Mobsim get() { return new FakeMobsim(); } }); } }); controler.getConfig().controler().setDumpDataAtEnd(false); controler.run(); assertFalse(new File(controler.getControlerIO().getIterationFilename(0, Controler.FILENAME_EVENTS_XML)).exists()); assertFalse(new File(controler.getControlerIO().getIterationFilename(1, Controler.FILENAME_EVENTS_XML)).exists()); }
@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(); }
private void createAndRunControler(Config config) { final Controler controler = new Controler(ScenarioUtils.loadScenario(config)); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bind(Mobsim.class).to(DummyMobsim2.class); } }); controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setDumpDataAtEnd(false); controler.getConfig().controler().setOverwriteFileSetting(OutputDirectoryHierarchy.OverwriteFileSetting.overwriteExistingFiles); controler.getConfig().controler().setWriteEventsInterval(0); config.controler().setWritePlansInterval(0); controler.run(); }
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.network().setInputFile("dummy/non-existing/network.xml");
@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 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); }
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(); }