/** * Tests that only the known param-names are accepted, and no others. * * @author mrieser */ @Test public void testParamNames() { StrategyConfigGroup configGroup = new StrategyConfigGroup(); configGroup.addParam("maxAgentPlanMemorySize", "3"); configGroup.addParam("Module_1", "ReRoute"); configGroup.addParam("ModuleProbability_1", "0.5"); configGroup.addParam("ModuleDisableAfterIteration_1", "20"); try { configGroup.addParam("ModuleWrong_1", "should fail"); fail("Expected to get an IllegalArgumentException, but got none."); } catch (IllegalArgumentException e) { log.info("Catched IllegalArgumentException, as expected: " + e.getMessage()); } assertEquals("unexpected number of strategy settings", 1, configGroup .getStrategySettings().size()); }
configGroup.addParam("maxAgentPlanMemorySize", "3"); configGroup.addParam("Module_1", "ReRoute"); configGroup.addParam("ModuleProbability_1", "0.5"); configGroup.addParam("ModuleDisableAfterIteration_1", "20"); configGroup.checkConsistency(ConfigUtils.createConfig()); configGroup.addParam("Module_2", "TimeAllocationMutator"); configGroup.addParam("ModuleProbability_2", "0.4"); configGroup.checkConsistency(ConfigUtils.createConfig()); configGroup.addParam("Module_3", "KeepLastSelected"); configGroup.addParam("ModuleProbability_3", "0.2"); configGroup.checkConsistency(ConfigUtils.createConfig()); configGroup.addParam("Module_5", "SelectBest"); try { configGroup.checkConsistency(ConfigUtils.createConfig()); configGroup.addParam("ModuleProbability_5", "0.0"); configGroup.checkConsistency(ConfigUtils.createConfig()); configGroup.addParam("ModuleProbability_6", "0.1"); try { configGroup.checkConsistency(ConfigUtils.createConfig()); configGroup.addParam("Module_6", "SelectExpBeta"); configGroup.checkConsistency(ConfigUtils.createConfig());
@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 }