Browse Source

Bug fix: out of range reward indices in explicit engine.

Also expand previously created bugfix regression test to multiple engines.
accumulation-v4.7
Dave Parker 7 years ago
parent
commit
507f78783e
  1. 3
      prism-tests/bugfixes/invalidrewardindexsim.sm.props.args
  2. 3
      prism/src/parser/ast/ExpressionReward.java

3
prism-tests/bugfixes/invalidrewardindexsim.sm.props.args

@ -1 +1,4 @@
# Originally a simulation bug, but now test on all engines
-sim
-ex
-h

3
prism/src/parser/ast/ExpressionReward.java

@ -140,7 +140,8 @@ public class ExpressionReward extends ExpressionQuant
else if (rsi instanceof Expression) {
int i = ((Expression) rsi).evaluateInt(constantValues);
rsi = new Integer(i); // (for better error reporting below)
rewStruct = i - 1;
// Check in range (set to -1 if not) and convert to zero-indexed
rewStruct = (i < 1 || i > modelInfo.getNumRewardStructs()) ? -1 : i - 1;
}
// String - name of reward structure
else if (rsi instanceof String) {

Loading…
Cancel
Save