This is an automated email from the ASF dual-hosted git repository.
hxd pushed a commit to branch fix_float_precision_test_in_memtable
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to
refs/heads/fix_float_precision_test_in_memtable by this push:
new 55d7a8c fix float precision in PrimitiveMemTableTest
55d7a8c is described below
commit 55d7a8cf29e66993f71a1a2103e9f14990cec440
Author: xiangdong huang <[email protected]>
AuthorDate: Fri Mar 8 22:05:06 2019 +0800
fix float precision in PrimitiveMemTableTest
---
.../db/engine/memtable/PrimitiveMemTableTest.java | 26 +++++++++++++---------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git
a/iotdb/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
b/iotdb/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
index cb2dc5e..01f43bb 100644
---
a/iotdb/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
+++
b/iotdb/src/test/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTableTest.java
@@ -18,7 +18,6 @@
*/
package org.apache.iotdb.db.engine.memtable;
-import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
@@ -36,15 +35,11 @@ import org.junit.Test;
public class PrimitiveMemTableTest {
- DecimalFormat decimalFormat;
+ double delta;
@Before
public void setUp() {
- StringBuilder stringBuilder = new StringBuilder(".");
- for (int i=0; i < TSFileConfig.floatPrecision; i++) {
- stringBuilder.append("0");
- }
- decimalFormat=new DecimalFormat(stringBuilder.toString());
+ delta = Math.pow(0.1, TSFileConfig.floatPrecision);
}
@Test
@@ -119,11 +114,12 @@ public class PrimitiveMemTableTest {
TimeValuePair next = tvPair.next();
Assert.assertEquals(pair.getTimestamp(), next.getTimestamp());
if (dataType == TSDataType.DOUBLE) {
-
Assert.assertEquals(MathUtils.roundWithGivenPrecision(pair.getValue().getDouble()),
- Double.valueOf(decimalFormat.format(next.getValue().getDouble())),
0.0001);
+ Assert.assertEquals(pair.getValue().getDouble(),
+ MathUtils.roundWithGivenPrecision(next.getValue().getDouble()),
delta);
} else if (dataType == TSDataType.FLOAT) {
-
Assert.assertEquals(MathUtils.roundWithGivenPrecision(pair.getValue().getFloat()),
- Float.valueOf(decimalFormat.format(next.getValue().getFloat())),
0.0001);
+ float expected = pair.getValue().getFloat();
+ float actual =
MathUtils.roundWithGivenPrecision(next.getValue().getFloat());
+ Assert.assertEquals(expected, actual, delta+ Float.MIN_NORMAL);
} else {
Assert.assertEquals(pair.getValue(), next.getValue());
}
@@ -131,6 +127,14 @@ public class PrimitiveMemTableTest {
}
@Test
+ public void testFloatType() {
+ IMemTable memTable = new PrimitiveMemTable();
+ String deviceId = "d1";
+ int size = 1000000;
+ write(memTable, deviceId, "s1", TSDataType.FLOAT, size);
+ }
+
+ @Test
public void testAllType() {
IMemTable memTable = new PrimitiveMemTable();
int count = 10;