Skip to content
Snippets Groups Projects
Commit b03817cb authored by Sebastian Krings's avatar Sebastian Krings
Browse files

improve output in model checking dialog

parent cc6ee52b
No related branches found
No related tags found
No related merge requests found
...@@ -63,11 +63,11 @@ public final class ModelCheckingCommand implements IComposableCommand { ...@@ -63,11 +63,11 @@ public final class ModelCheckingCommand implements IComposableCommand {
.getValue().intValue(); .getValue().intValue();
int numStates = ((IntegerPrologTerm) stats.getArgument(1)).getValue() int numStates = ((IntegerPrologTerm) stats.getArgument(1)).getValue()
.intValue(); .intValue();
int workedSoFar = (int) (1000 * Math.pow((double) processedTotal int numTransitions = ((IntegerPrologTerm) stats.getArgument(2))
/ numStates, 5)); .getValue().intValue();
result = new ModelCheckingResult<Result>(Result.class, term, result = new ModelCheckingResult<Result>(Result.class, term,
workedSoFar); processedTotal, numStates, numTransitions);
} }
@Override @Override
......
...@@ -14,15 +14,18 @@ public class ModelCheckingResult<T extends Enum<T>> { ...@@ -14,15 +14,18 @@ public class ModelCheckingResult<T extends Enum<T>> {
private final T result; private final T result;
private final List<PrologTerm> arguments = new ArrayList<PrologTerm>(); private final List<PrologTerm> arguments = new ArrayList<PrologTerm>();
private final int worked; private final int processedTotal, numStates, numTransitions;
public ModelCheckingResult(final Class<T> enumeration, public ModelCheckingResult(final Class<T> enumeration,
final CompoundPrologTerm term, int workDone) { final CompoundPrologTerm term, int total, int numStates,
int numTransitions) {
result = Enum.valueOf(enumeration, term.getFunctor()); result = Enum.valueOf(enumeration, term.getFunctor());
for (int i = 1; i <= term.getArity(); i++) { for (int i = 1; i <= term.getArity(); i++) {
arguments.add(term.getArgument(i)); arguments.add(term.getArgument(i));
} }
worked = workDone; processedTotal = total;
this.numStates = numStates;
this.numTransitions = numTransitions;
} }
public PrologTerm getArgument(final int i) { public PrologTerm getArgument(final int i) {
...@@ -33,7 +36,19 @@ public class ModelCheckingResult<T extends Enum<T>> { ...@@ -33,7 +36,19 @@ public class ModelCheckingResult<T extends Enum<T>> {
return result; return result;
} }
public int getProcessedTotal() {
return processedTotal;
}
public int getNumStates() {
return numStates;
}
public int getNumTransitions() {
return numTransitions;
}
public int getWorked() { public int getWorked() {
return worked; return (int) (1000 * Math.pow((double) processedTotal / numStates, 5));
} }
} }
...@@ -47,12 +47,18 @@ public class ModelCheckingJob extends Job { ...@@ -47,12 +47,18 @@ public class ModelCheckingJob extends Job {
return Status.CANCEL_STATUS; return Status.CANCEL_STATUS;
} }
monitor.beginTask("Model checking", 1000); monitor.beginTask("Model Checking", 1000);
while (!abort) { while (!abort) {
try { try {
modelCheckingResult = doSomeModelchecking(); modelCheckingResult = doSomeModelchecking();
options.remove("inspect_existing_nodes"); options.remove("inspect_existing_nodes");
monitor.setTaskName("Model Checking - States: "
+ modelCheckingResult.getNumStates() + " Transitions: "
+ modelCheckingResult.getNumTransitions()
+ " Processed States: "
+ modelCheckingResult.getProcessedTotal());
int difference = modelCheckingResult.getWorked() - workedSoFar; int difference = modelCheckingResult.getWorked() - workedSoFar;
if (difference > 0) { if (difference > 0) {
monitor.worked(difference); monitor.worked(difference);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment