Browse Source

Bugfix in simulator trace export to file.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@58 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 20 years ago
parent
commit
50d1d0f570
  1. 30
      prism/src/simulator/SimulatorEngine.java

30
prism/src/simulator/SimulatorEngine.java

@ -983,6 +983,7 @@ public class SimulatorEngine
{ {
try try
{ {
int i, j, n, m;
PrintWriter pw = new PrintWriter(new FileWriter(f), false); PrintWriter pw = new PrintWriter(new FileWriter(f), false);
if(modulesFile == null) if(modulesFile == null)
@ -993,40 +994,45 @@ public class SimulatorEngine
} }
//Write headers //Write headers
pw.print("step "); pw.print("step ");
for(int i = 0; i < getNumVariables(); i++)
m = getNumVariables();
for(j = 0; j < m; j++)
{ {
pw.print(varNames[i]+" ");
if (j>0) pw.print(" ");
pw.print(varNames[j]);
} }
if(modulesFile.getType() == ModulesFile.STOCHASTIC) if(modulesFile.getType() == ModulesFile.STOCHASTIC)
{ {
pw.print("time_in_state ");
pw.print(" time_in_state");
} }
pw.print("state_reward transition_reward");
pw.print(" state_reward transition_reward");
pw.println(); pw.println();
//Write path //Write path
for(int i = 0; i < getPathSize(); i++)
n = getPathSize();
m = getNumVariables();
for(i = 0; i < n; i++)
{ {
pw.print(i+" "); pw.print(i+" ");
for(int j = 0; j < getNumVariables(); j++)
for(j = 0; j < m; j++)
{ {
if (j>0) pw.print(" ");
if(varTypes[j] == Expression.BOOLEAN) if(varTypes[j] == Expression.BOOLEAN)
{ {
if(getPathData(j, i) == 0) pw.print("false ");
else pw.print("true ");
if(getPathData(j, i) == 0) pw.print("false");
else pw.print("true");
} }
else else
{ {
pw.print(getPathData(j, i)+" ");
pw.print(getPathData(j, i));
} }
} }
if(modulesFile.getType() == ModulesFile.STOCHASTIC) if(modulesFile.getType() == ModulesFile.STOCHASTIC)
{ {
pw.print(getTimeSpentInPathState(i)+" ");
pw.print(" "+((i<m-1)?getTimeSpentInPathState(i):0.0));
} }
pw.print(getStateRewardOfPathState(i)+" ");
pw.println(getTransitionRewardOfPathState(i));
pw.print(" "+((i<m-1)?getStateRewardOfPathState(i):0.0));
pw.println(" "+((i<m-1)?getTransitionRewardOfPathState(i):0.0));
} }
pw.println(); pw.println();

Loading…
Cancel
Save