From 086bb3243d2f034051f3b6296cd23347bf01a590 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Mon, 2 Jan 2012 00:35:15 +0000 Subject: [PATCH] RESULT label for test properties can be NaN. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@4305 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/parser/ast/Property.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/prism/src/parser/ast/Property.java b/prism/src/parser/ast/Property.java index ce8c1c23..56423fce 100644 --- a/prism/src/parser/ast/Property.java +++ b/prism/src/parser/ast/Property.java @@ -229,8 +229,12 @@ public class Property extends ASTElement // Parse expected result double doubleExp; try { + // See if it's NaN + if (strExpected.equals("NaN")) { + doubleExp = Double.NaN; + } // See if it's a fraction - if (strExpected.matches("[0-9]+/[0-9]+")) { + else if (strExpected.matches("[0-9]+/[0-9]+")) { int numer = Integer.parseInt(strExpected.substring(0, strExpected.indexOf('/'))); int denom = Integer.parseInt(strExpected.substring(strExpected.indexOf('/') + 1)); doubleExp = ((double) numer) / denom; @@ -247,8 +251,14 @@ public class Property extends ASTElement if (!(result instanceof Double)) throw new PrismException("Result is wrong type for (double-valued) property"); doubleRes = ((Double) result).doubleValue(); - if (!PrismUtils.doublesAreCloseRel(doubleRes, doubleExp, 1e-5)) - throw new PrismException("Wrong result (expected " + doubleExp + ")"); + // Compare results + if (Double.isNaN(doubleRes)) { + if (!Double.isNaN(doubleExp)) + throw new PrismException("Wrong result (expected " + doubleExp + ")"); + } else { + if (!PrismUtils.doublesAreCloseRel(doubleRes, doubleExp, 1e-5)) + throw new PrismException("Wrong result (expected " + doubleExp + ")"); + } } // Unknown type