package com.plectix.simulator.events; import static org.junit.Assert.assertTrue; import java.io.File; import java.util.Collection; import org.apache.commons.cli.ParseException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import com.plectix.simulator.FileNameCollectionGenerator; import com.plectix.simulator.Initializator; import com.plectix.simulator.OperationModeCollectionGenerator; import com.plectix.simulator.controller.SimulatorInputData; import com.plectix.simulator.io.SimulationDataReader; import com.plectix.simulator.simulator.SimulationArguments; import com.plectix.simulator.simulator.SimulationData; import com.plectix.simulator.simulator.Simulator; import com.plectix.simulator.util.Info.InfoType; @RunWith(value = Parameterized.class) public final class TestEvents { private static final String SEPARATOR = File.separator; private static final String TEST_DIRECTORY = "test.data" + SEPARATOR + "events" + SEPARATOR; private final String prefixFileName; private Simulator simulator; private final Integer[] eventsNumbers = { 0, 1, 10, 100, 500, 1000, 1001, 1002 }; private final Integer operationMode; @Parameters public static Collection<Object[]> data() { Collection<Object[]> allFileNames = FileNameCollectionGenerator .getAllFileNames(TEST_DIRECTORY); return OperationModeCollectionGenerator.generate(allFileNames,true); } public TestEvents(String filename, Integer opMode) { prefixFileName = filename; operationMode = opMode; } @Test public void test() throws Exception { for (int i = 0; i < eventsNumbers.length; i++) { setup(eventsNumbers[i]); assertTrue(eventsNumbers[i] == simulator.getSimulationData() .getSimulationArguments().getMaxNumberOfEvents()); } } public void setup(Integer eventNumber) throws Exception { init(TEST_DIRECTORY + prefixFileName, eventNumber); try { simulator.run(new SimulatorInputData(simulator.getSimulationData() .getSimulationArguments())); } catch (Exception e) { e.printStackTrace(); junit.framework.Assert.fail(e.getMessage()); } } public void init(String filePath, Integer eventNumber) throws Exception { simulator = null; simulator = new Simulator(); SimulationData simulationData = simulator.getSimulationData(); SimulationArguments args = null; try { args = Initializator.prepareEventNumberArguments(filePath, eventNumber, operationMode); } catch (ParseException e) { e.printStackTrace(); throw new IllegalArgumentException(e); } simulationData.setSimulationArguments(InfoType.OUTPUT, args); (new SimulationDataReader(simulationData)).readAndCompile(); simulationData.getKappaSystem().initialize(); } }