From 7a901b5db8e0aef630cdf1bebf0442efc1d66fb9 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sun, 18 Jun 2023 20:32:43 -0400 Subject: [PATCH] only:at least some progress with float numbers --- .../src/main/java/com/opensr5/ini/field/ScalarIniField.java | 3 ++- .../inifile/src/main/java/com/rusefi/config/Field.java | 4 +++- .../src/test/java/com/opensr5/ini/test/TuneWriterTest.java | 2 +- .../src/test/java/com/rusefi/tune/TuneReadWriteTest.java | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/java_console/inifile/src/main/java/com/opensr5/ini/field/ScalarIniField.java b/java_console/inifile/src/main/java/com/opensr5/ini/field/ScalarIniField.java index b588c1c3bc..4db5371950 100644 --- a/java_console/inifile/src/main/java/com/opensr5/ini/field/ScalarIniField.java +++ b/java_console/inifile/src/main/java/com/opensr5/ini/field/ScalarIniField.java @@ -49,7 +49,8 @@ public class ScalarIniField extends IniField { public String getValue(ConfigurationImage image) { Field f = new Field(getName(), getOffset(), getType()); try { - return f.getValue(image, multiplier).toString(); + Double value = f.getValue(image, multiplier); + return Field.niceToString(value, Field.FIELD_PRECISION); } catch (Throwable e) { throw new IllegalStateException("While getting " + getName(), e); } diff --git a/java_console/inifile/src/main/java/com/rusefi/config/Field.java b/java_console/inifile/src/main/java/com/rusefi/config/Field.java index c6f0055f99..3be6353fa1 100644 --- a/java_console/inifile/src/main/java/com/rusefi/config/Field.java +++ b/java_console/inifile/src/main/java/com/rusefi/config/Field.java @@ -18,7 +18,7 @@ import static com.rusefi.config.FieldType.*; public class Field { public static final int NO_BIT_OFFSET = -1; - private static final int FIELD_PRECISION = 3; + public static final int FIELD_PRECISION = 7; private final String name; private final int offset; @@ -100,6 +100,8 @@ public class Field { Number number = value; if (number instanceof Float) return niceToString(number.floatValue(), precision); + if (number instanceof Double) + return niceToString(number.doubleValue(), precision); return number.toString(); } diff --git a/java_console/models/src/test/java/com/opensr5/ini/test/TuneWriterTest.java b/java_console/models/src/test/java/com/opensr5/ini/test/TuneWriterTest.java index 3fdfe44505..5dc458dd4b 100644 --- a/java_console/models/src/test/java/com/opensr5/ini/test/TuneWriterTest.java +++ b/java_console/models/src/test/java/com/opensr5/ini/test/TuneWriterTest.java @@ -18,6 +18,6 @@ public class TuneWriterTest { double value = 0.9; floatField.setValue(image, new Constant("x", "y", Double.toString(value), "2")); - assertEquals("0.8999999761581421", floatField.getValue(image)); + assertEquals("0.89999998", floatField.getValue(image)); } } diff --git a/java_tools/tune-tools/src/test/java/com/rusefi/tune/TuneReadWriteTest.java b/java_tools/tune-tools/src/test/java/com/rusefi/tune/TuneReadWriteTest.java index fb503f0f0b..271f9a29e4 100644 --- a/java_tools/tune-tools/src/test/java/com/rusefi/tune/TuneReadWriteTest.java +++ b/java_tools/tune-tools/src/test/java/com/rusefi/tune/TuneReadWriteTest.java @@ -192,7 +192,7 @@ public class TuneReadWriteTest { ConfigurationImage binaryDataFromXml = tuneFromFile.asImage(model, LEGACY_TOTAL_CONFIG_SIZE); - assertEquals(0, compareImages(binaryDataFromXml, fileBinaryData, model)); + assertEquals("Binary match expected", 0, compareImages(binaryDataFromXml, fileBinaryData, model)); // todo: looks like this is not removing the temporary file? Files.delete(path); }