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

Merge branch 'develop' into rodin3

parents a641e9a9 f2f95f63
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,19 @@ public class ModelCheckingJob extends Job { ...@@ -47,12 +47,19 @@ 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()
+ " (processed "
+ modelCheckingResult.getProcessedTotal()
+ ") - Transitions: "
+ modelCheckingResult.getNumTransitions());
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