This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch iotdb-2434 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit ba830876466e8b95bb4c4db95026c83885a1b149 Author: Steve Yurong Su <[email protected]> AuthorDate: Tue Jan 18 17:36:49 2022 +0800 [IOTDB-2434] IT fails on IoTDBContinuousQueryIT caused by double precision loss --- .../db/integration/IoTDBContinuousQueryIT.java | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBContinuousQueryIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBContinuousQueryIT.java index 9dcc99e..ee11e89 100644 --- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBContinuousQueryIT.java +++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBContinuousQueryIT.java @@ -404,7 +404,7 @@ public class IoTDBContinuousQueryIT { } long waitMillSeconds = 0; - List<Pair<Long, String>> actualResult; + List<Pair<Long, Double>> actualResult; do { Thread.sleep(waitMillSeconds); waitMillSeconds += 100; @@ -419,18 +419,25 @@ public class IoTDBContinuousQueryIT { String.format( "select avg(temperature) from root.ln.wf01.*.* GROUP BY ([%d, %d), %dms), level=1,2 without null all", actualWindowBegin, actualWindowEnd + groupByInterval, groupByInterval)); - List<Pair<Long, String>> expectedResult = collectQueryResult(); - - assertEquals(expectedResult, actualResult); + List<Pair<Long, Double>> expectedResult = collectQueryResult(); + + assertEquals(expectedResult.size(), actualResult.size()); + final int size = expectedResult.size(); + for (int i = 0; i < size; ++i) { + Pair<Long, Double> expected = expectedResult.get(i); + Pair<Long, Double> actual = actualResult.get(i); + assertEquals(expected.left, actual.left); + assertEquals(expected.right, actual.right, 10e-6); + } } - private List<Pair<Long, String>> collectQueryResult() { - List<Pair<Long, String>> result = new ArrayList<>(); + private List<Pair<Long, Double>> collectQueryResult() { + List<Pair<Long, Double>> result = new ArrayList<>(); try (ResultSet resultSet = statement.getResultSet()) { while (resultSet.next()) { String timestamp = resultSet.getString(1); String value = resultSet.getString(2); - result.add(new Pair<>(Long.parseLong(timestamp), value)); + result.add(new Pair<>(Long.parseLong(timestamp), Double.parseDouble(value))); } } catch (SQLException throwable) { fail(throwable.getMessage());
