@Override protected final void prepareForSim() { this.prepareForSim.run(); }
private static QSim createQSim(Fixture f, EventsManager events) { // vehicles are moved to prepareForSim, thus, this must be explicitly called before qsim. Amit May'17 PrepareForSimUtils.createDefaultPrepareForSim(f.scenario).run(); return new QSimBuilder(f.scenario.getConfig()) // .useDefaults() // .build(f.scenario, events); }
public static void playScenario(Scenario scenario){ EventsManager events = EventsUtils.createEventsManager(); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); QSim qSim = new QSimBuilder(scenario.getConfig()) // .useDefaults() // .build(scenario, events); OnTheFlyServer server = startServerAndRegisterWithQSim(scenario.getConfig(),scenario, events, qSim); OTFClientLive.run(scenario.getConfig(), server); qSim.run(); }
private static QSim createQSim(MutableScenario scenario, EventsManager events) { // vehicles are moved to prepareForSim, thus, this must be explicitly called before qsim. Amit May'17 PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); return new QSimBuilder(scenario.getConfig()) // .useDefaults() // .build(scenario, events); }
events.addHandler(new EventTestHandler(agentTravelTimes)); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); new QSimBuilder(scenario.getConfig()) //
private void vehiclesLeavingSameTime(String travelMode, double linkCapacity){ PseudoInputs net = new PseudoInputs(travelMode); net.createNetwork(linkCapacity); net.createPopulation(); Map<Id<Vehicle>, Map<Id<Link>, double[]>> vehicleLinkTravelTimes = new HashMap<>(); EventsManager manager = EventsUtils.createEventsManager(); manager.addHandler(new VehicleLinkTravelTimeEventHandler(vehicleLinkTravelTimes)); PrepareForSimUtils.createDefaultPrepareForSim(net.scenario).run(); new QSimBuilder(net.scenario.getConfig()) // .useDefaults() // .build(net.scenario, manager) // .run(); Map<Id<Link>, double[]> times1 = vehicleLinkTravelTimes.get(Id.create("1", Vehicle.class)); Map<Id<Link>, double[]> times2 = vehicleLinkTravelTimes.get(Id.create("2", Vehicle.class)); int linkEnterTime1 = (int)times1.get(Id.create("2", Link.class))[0]; int linkEnterTime2 = (int)times2.get(Id.create("2", Link.class))[0]; int linkLeaveTime1 = (int)times1.get(Id.create("2", Link.class))[1]; int linkLeaveTime2 = (int)times2.get(Id.create("2", Link.class))[1]; Assert.assertEquals(travelMode+ " entered at different time", 0, linkEnterTime1-linkEnterTime2); Assert.assertEquals(travelMode +" entered at same time but not leaving the link at the same time.", 0, linkLeaveTime1-linkLeaveTime2); }
@Test public void testToCheckTravelTime () { // 2 cars depart on same time, central (bottleneck) link allow only 1 agent / 10 sec. PseudoInputs net = new PseudoInputs(); net.createNetwork(360); net.createPopulation(); Map<Id<Vehicle>, Double> vehicleLinkTravelTime = new HashMap<>(); EventsManager manager = EventsUtils.createEventsManager(); manager.addHandler(new VehicleLinkTravelTimeEventHandler(vehicleLinkTravelTime)); PrepareForSimUtils.createDefaultPrepareForSim(net.scenario).run(); new QSimBuilder(net.scenario.getConfig()) // .useDefaults() // .build(net.scenario, manager) // .run(); //agent 2 is departed first so will have free speed time = 1000/25 +1 = 41 sec Assert.assertEquals( "Wrong travel time for on link 2 for vehicle 2" , 41.0 , vehicleLinkTravelTime.get(Id.createVehicleId(2)) , MatsimTestUtils.EPSILON); // agent 1 should have 1000/25 +1 + 10 = 51 but, it may be 52 sec sometimes due to rounding errors in java. Rounding errors is eliminated at the moment if accumulating flow to zero instead of one. Assert.assertEquals( "Wrong travel time for on link 2 for vehicle 1" , 51.0 , vehicleLinkTravelTime.get(Id.createVehicleId(1)) , MatsimTestUtils.EPSILON); Logger.getLogger(JavaRoundingErrorInQsimTest.class).warn("Although the test is passing instead of failing for vehicle 1. This is done intentionally in order to keep this in mind for future."); }
@Test public void testEquilOneAgent() { Map<Id<Vehicle>, Map<Id<Link>, Double>> agentTravelTimes = new HashMap<>(); Config config = ConfigUtils.loadConfig("test/scenarios/equil/config.xml"); MatsimRandom.reset(config.global().getRandomSeed()); Scenario scenario = ScenarioUtils.createScenario(config); String popFileName = "plans1.xml"; config.plans().setInputFile(popFileName); ScenarioUtils.loadScenario(scenario); EventsManager events = EventsUtils.createEventsManager(); events.addHandler(new EventTestHandler(agentTravelTimes)); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); new QSimBuilder(scenario.getConfig()) // .useDefaults() // .build(scenario, events) // .run(); Map<Id<Link>, Double> travelTimes = agentTravelTimes.get(Id.create("1", Vehicle.class)); Assert.assertEquals(360.0, travelTimes.get(Id.create(6, Link.class)).intValue(), MatsimTestUtils.EPSILON); Assert.assertEquals(180.0, travelTimes.get(Id.create(15, Link.class)).intValue(), MatsimTestUtils.EPSILON); // this one is NOT a travel time (it includes two activities and a zero-length trip) Assert.assertEquals(13561.0, travelTimes.get(Id.create(20, Link.class)).intValue(), MatsimTestUtils.EPSILON); Assert.assertEquals(360.0, travelTimes.get(Id.create(21, Link.class)).intValue(), MatsimTestUtils.EPSILON); Assert.assertEquals(1260.0, travelTimes.get(Id.create(22, Link.class)).intValue(), MatsimTestUtils.EPSILON); Assert.assertEquals(360.0, travelTimes.get(Id.create(23, Link.class)).intValue(), MatsimTestUtils.EPSILON); }
PrepareForSimUtils.createDefaultPrepareForSim(inputs.scenario).run(); new QSimBuilder(inputs.scenario.getConfig()) //
public void testRunsAtAll() { Scenario scenario = ScenarioUtils.createScenario(ConfigUtils.createConfig()); EventsManager eventsManager = EventsUtils.createEventsManager(scenario.getConfig()); eventsManager.initProcessing(); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); QSim qsim = prepareQSim(scenario, eventsManager); qsim.run(); }
public void testRunsEquil() { Scenario scenario = ScenarioUtils.loadScenario(loadConfig("test/scenarios/equil/config.xml")); EventsManager eventsManager = EventsUtils.createEventsManager(scenario.getConfig()); eventsManager.initProcessing(); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); QSim qsim = prepareQSim(scenario, eventsManager); qsim.run(); }
@Test public void testIntegration_Default() { Fixture f = new Fixture(); EventsCollector collector = new EventsCollector(); f.events.addHandler(collector); f.events.addHandler(new EventsLogger()); PrepareForSimUtils.createDefaultPrepareForSim(f.scenario).run(); new QSimBuilder(f.scenario.getConfig()) // .useDefaults() // .build(f.scenario, f.events) // .run(); List<Event> events = collector.getEvents(); Assert.assertTrue(events.get(5) instanceof LinkEnterEvent); LinkEnterEvent lee = (LinkEnterEvent) events.get(5); Assert.assertEquals("1", lee.getVehicleId().toString()); Assert.assertEquals("2", lee.getLinkId().toString()); Assert.assertTrue(events.get(6) instanceof LinkLeaveEvent); LinkLeaveEvent lle = (LinkLeaveEvent) events.get(6); Assert.assertEquals("1", lle.getVehicleId().toString()); Assert.assertEquals("2", lle.getLinkId().toString()); // by default, the link takes 10 seconds to travel along, plus 1 second in the buffer, makes total of 11 seconds Assert.assertEquals(11, lle.getTime() - lee.getTime(), 1e-8); }
builder.addOverridingQSimModule( overrides ) ; PrepareForSimUtils.createDefaultPrepareForSim(f.scenario).run();
eventsManager.addHandler(new EventsLogger()); PrepareForSimUtils.createDefaultPrepareForSim(f.scenario).run();
PrepareForSimUtils.createDefaultPrepareForSim(sc).run(); new QSimBuilder(sc.getConfig()) //
events.addHandler(ttcalc); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); new QSimBuilder(scenario.getConfig()) //
public void testCapacityWoLanes() { Config config = ConfigUtils.createConfig(); MutableScenario scenario = (MutableScenario) ScenarioUtils.createScenario(config); initNetwork(scenario.getNetwork()); EventsManager eventsManager = EventsUtils.createEventsManager(); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); QSim queueSim = new QSimBuilder(scenario.getConfig()) // .useDefaults() // .build(scenario, eventsManager); NetsimNetwork queueNetwork = queueSim.getNetsimNetwork(); QLinkImpl ql = (QLinkImpl) queueNetwork.getNetsimLink(Id.create(1, Link.class)); assertEquals(0.5, ql.getSimulatedFlowCapacityPerTimeStep()); assertEquals(268.0, ql.getSpaceCap()); }
@Test public void testInitializationDeparture() { Config config = ConfigUtils.createConfig(); config.transit().setUseTransit(true); Scenario scenario = ScenarioUtils.createScenario(config); EventsManager eventsManager = EventsUtils.createEventsManager(); TransitStopAgentTracker tracker = new TransitStopAgentTracker(eventsManager); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); QSim tqsim = new QSimBuilder(scenario.getConfig()) // .useDefaults() // .build(scenario, eventsManager); TransitQSimEngine trEngine = new TransitQSimEngine(tqsim) ; tqsim.addMobsimEngine(trEngine); TransitScheduleFactory builder = scenario.getTransitSchedule().getFactory(); TransitLine tLine = builder.createTransitLine(Id.create("L", TransitLine.class)); NetworkRoute route = RouteUtils.createLinkNetworkRouteImpl(null, null); TransitRoute tRoute = builder.createTransitRoute(Id.create("L1", TransitRoute.class), route, Collections.<TransitRouteStop>emptyList(), "bus"); double depTime = 9876.5; Departure dep = builder.createDeparture(Id.create("L1.1", Departure.class), depTime); tRoute.addDeparture(dep); tLine.addRoute(tRoute); AbstractTransitDriverAgent driver = new TransitDriverAgentImpl(new SingletonUmlaufBuilderImpl(Collections.singleton(tLine)).build().get(0), TransportMode.car, tracker, trEngine.getInternalInterface()); assertEquals(depTime, driver.getActivityEndTime(), MatsimTestCase.EPSILON); }
PrepareForSimUtils.createDefaultPrepareForSim(net.scenario).run();
net.scenario.getVehicles().addVehicleType(car); PrepareForSimUtils.createDefaultPrepareForSim(net.scenario).run(); new QSimBuilder(net.scenario.getConfig()) //