From 8fb1355de3cd5e889e897f06acb1847311f9c7e3 Mon Sep 17 00:00:00 2001 From: Christopher LaChance Date: Thu, 8 Jun 2017 12:09:39 -0500 Subject: [PATCH] +-NaN and +-Infinity are now correctly represented in Trick View. (#437) * Values that return "-nan" will now properly show in the Trick View variable table. * +-NaN and +-Infinity are now correctly represented in Trick View. This solution now handles +- infinity and +-nan instead of just -nan. * Lifted fix logic into a protected function in the super class. Removed author/date information. Put duplicate code from VSFLoat and VSDouble into VSValue. Added support for -NaN. --- .../java/src/trick/common/utils/vs/VSDouble.java | 2 +- .../java/src/trick/common/utils/vs/VSFloat.java | 3 +-- .../java/src/trick/common/utils/vs/VSValue.java | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/trick_source/java/src/trick/common/utils/vs/VSDouble.java b/trick_source/java/src/trick/common/utils/vs/VSDouble.java index dc8e78b0..3ef14759 100644 --- a/trick_source/java/src/trick/common/utils/vs/VSDouble.java +++ b/trick_source/java/src/trick/common/utils/vs/VSDouble.java @@ -12,7 +12,7 @@ public class VSDouble extends VSValue { @Override public void fromVariableServer(String string) { - setValue(Double.parseDouble(string.trim())); + setValue(Double.parseDouble(handleUndefinedValues(string).trim())); } @Override diff --git a/trick_source/java/src/trick/common/utils/vs/VSFloat.java b/trick_source/java/src/trick/common/utils/vs/VSFloat.java index a1bf9759..0250293b 100644 --- a/trick_source/java/src/trick/common/utils/vs/VSFloat.java +++ b/trick_source/java/src/trick/common/utils/vs/VSFloat.java @@ -12,7 +12,6 @@ public class VSFloat extends VSValue { @Override public void fromVariableServer(String string) { - setValue(Float.parseFloat(string.trim())); + setValue(Float.parseFloat(handleUndefinedValues(string).trim())); } - } diff --git a/trick_source/java/src/trick/common/utils/vs/VSValue.java b/trick_source/java/src/trick/common/utils/vs/VSValue.java index bf05da7c..725a6f64 100644 --- a/trick_source/java/src/trick/common/utils/vs/VSValue.java +++ b/trick_source/java/src/trick/common/utils/vs/VSValue.java @@ -44,4 +44,19 @@ public abstract class VSValue implements VariableServerFluent, Cloneable { } } + protected String handleUndefinedValues(String input) { + if(input.equals("inf")) { + input = "Infinity"; + } + else if(input.equals("-inf")) { + input = "-Infinity"; + } + else if(input.equals("nan")) { + input = "NaN"; + } + else if(input.equals("-nan")) { + input = "-NaN"; + } + return input; + } }