package com.plectix.simulator.harness;
import java.io.File;
import java.io.PrintStream;
import com.plectix.simulator.SimulatorTestOptions;
import com.plectix.simulator.io.SimulationDataReader;
import com.plectix.simulator.io.xml.SimulationDataXMLWriter;
import com.plectix.simulator.simulator.SimulationData;
import com.plectix.simulator.simulator.Simulator;
import com.plectix.simulator.simulator.SimulatorCommandLine;
import com.plectix.simulator.util.Info.InfoType;
public class SimulatorTest extends Thread {
private static Simulator simulator;
private final String currentFile;
private final String pathForResults;
private final String fileName;
private static final String EXTENSION_RESULT_FILE = ".txt";
public SimulatorTest(String _path, String _resultPath, String _fileName) {
currentFile = _path;
pathForResults = _resultPath;
fileName = _fileName;
setDaemon(true);
}
private void init() throws Exception {
simulator = new Simulator();
SimulationData simulationData = simulator.getSimulationData();
SimulatorCommandLine commandLine = SimulatorTestOptions
.defaultContactMapCommandLine(currentFile, null);
printSeparator();
printNameFile();
simulationData.setSimulationArguments(InfoType.OUTPUT, commandLine
.getSimulationArguments());
(new SimulationDataReader(simulationData)).readAndCompile();
simulationData.getKappaSystem().initialize();
simulator.runSimulation();
new SimulationDataXMLWriter(simulationData).outputXMLData();
}
private void printSeparator() {
System.out
.println("========================================================================");
System.out
.println("========================================================================");
}
private void printSeparatorText() {
System.out
.println("------------------------------------------------------------------------");
}
private void printNameFile() {
printSeparatorText();
// System.out.println("RUN File = " + currentFile);
printSeparatorText();
}
@Override
public void run() {
try {
PrintStream out = new PrintStream(new File(pathForResults + "error_"
+ fileName + EXTENSION_RESULT_FILE));
System.setOut(out);
System.setErr(out);
init();
} catch(Exception e) {
e.printStackTrace();
junit.framework.Assert.fail(e.getMessage());
}
}
}