public void run() { if ( config==null ) { this.prepareConfig() ; } Scenario scenario = ScenarioUtils.loadScenario(config); EventsManager eventsManager = EventsUtils.createEventsManager(); AbstractModule module = new AbstractModule(){ @Override public void install(){ bind( Scenario.class ).toInstance( scenario ); bind( EventsManager.class ).toInstance( eventsManager ); bind( EmissionModule.class ) ; } };; com.google.inject.Injector injector = Injector.createInjector(config, module ); EmissionModule emissionModule = injector.getInstance(EmissionModule.class); EventWriterXML emissionEventWriter = new EventWriterXML(emissionEventOutputFile); emissionModule.getEmissionEventsManager().addHandler(emissionEventWriter); MatsimEventsReader matsimEventsReader = new MatsimEventsReader(eventsManager); matsimEventsReader.readFile(eventsFile); emissionEventWriter.closeFile(); } }
public void run() { if ( config==null ) { this.prepareConfig() ; } Scenario scenario = ScenarioUtils.loadScenario(config); EventsManager eventsManager = EventsUtils.createEventsManager(); AbstractModule module = new AbstractModule(){ @Override public void install(){ bind( Scenario.class ).toInstance( scenario ); bind( EventsManager.class ).toInstance( eventsManager ); bind( EmissionModule.class ) ; } };; com.google.inject.Injector injector = Injector.createInjector(config, module ); EmissionModule emissionModule = injector.getInstance(EmissionModule.class); EventWriterXML emissionEventWriter = new EventWriterXML(emissionEventOutputFile); emissionModule.getEmissionEventsManager().addHandler(emissionEventWriter); MatsimEventsReader matsimEventsReader = new MatsimEventsReader(eventsManager); matsimEventsReader.readFile(eventsFile); emissionEventWriter.closeFile(); } }
/** * Writes out the given event to the specified file in the XML format, * then reads the file again and makes sure the freshly read in event * has the same attributes as the original event. * * @param <T> the type/class of the event * @param eventsFile filename where to write the event into * @param event the event to test * @return the read-in event */ public static <T extends Event> T testWriteReadXml(final String eventsFile, final T event) { EventWriterXML writer = new EventWriterXML(eventsFile); writer.handleEvent(event); writer.closeFile(); assertTrue(new File(eventsFile).exists()); EventsManager events = EventsUtils.createEventsManager(); EventsCollector collector = new EventsCollector(); events.addHandler(collector); new MatsimEventsReader(events).readFile(eventsFile); assertEquals("there must be 1 event.", 1, collector.getEvents().size()); Event readEvent = collector.getEvents().iterator().next(); assertEquals("event has wrong class.", event.getClass(), readEvent.getClass()); Map<String, String> writtenAttributes = event.getAttributes(); Map<String, String> readAttributes = readEvent.getAttributes(); for (Map.Entry<String, String> attribute : writtenAttributes.entrySet()) { assertEquals("attribute '" + attribute.getKey() + "' is different after reading the event.", attribute.getValue(), readAttributes.get(attribute.getKey())); } return (T) readEvent; }
@Test public void testNullAttribute() { String filename = this.utils.getOutputDirectory() + "testEvents.xml"; EventWriterXML writer = new EventWriterXML(filename); GenericEvent event = new GenericEvent("TEST", 3600.0); event.getAttributes().put("dummy", null); writer.handleEvent(event); writer.closeFile(); Assert.assertTrue(new File(filename).exists()); EventsManager events = EventsUtils.createEventsManager(); EventsCollector collector = new EventsCollector(); events.addHandler(collector); // this is already a test: is the XML valid so it can be parsed again? new MatsimEventsReader(events).readFile(filename); Assert.assertEquals("there must be 1 event.", 1, collector.getEvents().size()); } }
eventsManager1.addHandler(handler); eventsManager1.processEvent(new RainOnPersonEvent(0, Id.createPersonId("wurst"))); handler.closeFile(); byte[] buf = baos.toByteArray(); final ArrayList<Event> oneEvent = new ArrayList<>();
/** * Some people use the ids as names, including special characters in there... so make sure attribute * values are correctly encoded when written to a file. */ @Test public void testSpecialCharacters() { String filename = this.utils.getOutputDirectory() + "testEvents.xml"; EventWriterXML writer = new EventWriterXML(filename); writer.handleEvent(new LinkLeaveEvent(3600.0, Id.create("vehicle>3", Vehicle.class), Id.create("link<2", Link.class))); writer.handleEvent(new LinkLeaveEvent(3601.0, Id.create("vehicle\"4", Vehicle.class), Id.create("link'3", Link.class))); writer.closeFile(); Assert.assertTrue(new File(filename).exists()); EventsManager events = EventsUtils.createEventsManager(); EventsCollector collector = new EventsCollector(); events.addHandler(collector); // this is already a test: is the XML valid so it can be parsed again? new MatsimEventsReader(events).readFile(filename); Assert.assertEquals("there must be 2 events.", 2, collector.getEvents().size()); LinkLeaveEvent event1 = (LinkLeaveEvent) collector.getEvents().get(0); LinkLeaveEvent event2 = (LinkLeaveEvent) collector.getEvents().get(1); Assert.assertEquals("link<2", event1.getLinkId().toString()); Assert.assertEquals("vehicle>3", event1.getVehicleId().toString()); Assert.assertEquals("link'3", event2.getLinkId().toString()); Assert.assertEquals("vehicle\"4", event2.getVehicleId().toString()); }
eventWriter.closeFile();
writeEvents.processEvent(event2); writer.closeFile();
log.info("STOP testOnePercent10s SIM"); writer.closeFile();
writer.closeFile();
log.info("STOP testOnePercent10s SIM"); writer.closeFile();