package org.jbpm.sim; import org.jbpm.sim.def.JbpmSimulationExperiment; import org.jbpm.sim.exe.ExperimentReader; import org.jbpm.sim.report.ScenarioReport; /** * This test tests if the steady state reset property of an experiment * works correctly. It's purpose is to reset all statistical counters * at one special point in model time, which is seen as the start of the * steady state. * * @author bernd.ruecker@camunda.com */ public class SteadyStateResetTest extends AbstractSimTestCase { private static final String testProcessXml = "<process-definition name='test'>" + " <start-state name='start'>" + " <transition to='end' />" + " </start-state>" + " <end-state name='end'/>" + "</process-definition>" ; private static final String experimentConfiguration = "<experiment name='MySimulationExperiment'" + " run-time='100'" + " reset-time='50' " + " real-start-time='01.01.1970 01:00:00:002'" + " time-unit='minute'>" + " <scenario name='test'>" + " <distribution name='start' sample-type='real' type='constant' value='10' /> " + " <sim-process name='test'>" + " <process-overwrite start-distribution='start' />" + " </sim-process>" + " </scenario>" + " <output path='target' />" + // currently just used as parameter for DESMO-J "</experiment>"; public void testExperimentReader() { ExperimentReader reader = new ExperimentReader(experimentConfiguration); reader.addProcessDefinition("test", testProcessXml ); JbpmSimulationExperiment experiment = reader.readExperiment(); experiment.run(); ScenarioReport report = experiment.getSimulationReportForScenario("test"); assertNotNull(report); assertEquals(100.0, report.getSimulationRunTime(), 0.0001); assertEquals(50.0, report.getResetTime(), 0.0001); assertEquals(5, report.getCycleTimesValueStatistics("test").getNumberOfObservations()); assertEquals(5, report.getProcessStartCount("test").getCount()); assertEquals(5, report.getProcessEndCount("end").getCount()); } }