You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2019/10/17 12:00:44 UTC
[incubator-iotdb] branch master updated: [IOTDB-165][TsFile] Delete
a current version and add a number version and an exception. (#409)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new a8d283e [IOTDB-165][TsFile] Delete a current version and add a number version and an exception. (#409)
a8d283e is described below
commit a8d283e0778bc8759a70092a4b5a5c83bd55302d
Author: Boris <zh...@gmail.com>
AuthorDate: Thu Oct 17 20:00:35 2019 +0800
[IOTDB-165][TsFile] Delete a current version and add a number version and an exception. (#409)
* change magic string and add version in TsFile
---
pom.xml | 2 +-
tsfile/format-changelist.md | 3 +-
.../iotdb/tsfile/common/conf/TSFileConfig.java | 8 +-
.../tsfile/exception/NotCompatibleException.java | 27 ++++
.../iotdb/tsfile/file/metadata/TsFileMetaData.java | 30 +----
.../iotdb/tsfile/read/TsFileRestorableReader.java | 2 +-
.../iotdb/tsfile/read/TsFileSequenceReader.java | 70 ++++++----
.../write/writer/RestorableTsFileIOWriter.java | 2 +-
.../iotdb/tsfile/write/writer/TsFileIOWriter.java | 6 +-
.../file/metadata/ChunkGroupMetaDataTest.java | 4 +-
.../tsfile/file/metadata/utils/TestHelper.java | 3 +-
.../iotdb/tsfile/file/metadata/utils/Utils.java | 1 -
.../tsfile/read/TsFileRestorableReaderTest.java | 6 +-
.../tsfile/read/TsFileSequenceReaderTest.java | 20 ++-
.../iotdb/tsfile/read/filter/DigestFilterTest.java | 72 +++++-----
.../read/filter/IExpressionOptimizerTest.java | 22 ++-
.../read/filter/MinTimeMaxTimeFilterTest.java | 150 ++++++++++-----------
.../iotdb/tsfile/read/filter/OperatorTest.java | 102 +++++++-------
.../iotdb/tsfile/write/TsFileIOWriterTest.java | 5 +-
19 files changed, 279 insertions(+), 256 deletions(-)
diff --git a/pom.xml b/pom.xml
index 4df42de..b67e0be 100644
--- a/pom.xml
+++ b/pom.xml
@@ -355,7 +355,7 @@
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
- <version>1.0.5-M1</version>
+ <version>1.1.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
diff --git a/tsfile/format-changelist.md b/tsfile/format-changelist.md
index bc76116..f853ead 100644
--- a/tsfile/format-changelist.md
+++ b/tsfile/format-changelist.md
@@ -20,5 +20,6 @@
-->
## 0.8.0 (version-0) -> version-1
-
+format: #PR ID change
+#409 Genius_pig Delete a current version and add a number version.
*
\ No newline at end of file
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
index 53ce4cc..9350576 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
@@ -50,11 +50,9 @@ public class TSFileConfig {
public static final String STRING_ENCODING = "UTF-8";
public static final Charset STRING_CHARSET = Charset.forName(STRING_ENCODING);
public static final String CONFIG_FILE_NAME = "tsfile-format.properties";
- public static final String MAGIC_STRING = "TsFilev0.8.0";
- /**
- * Current version is 3.
- */
- public static final int CURRENT_VERSION = 3;
+ public static final String MAGIC_STRING = "TsFile";
+ public static final String VERSION_NUMBER = "000001";
+
/**
* The default grow size of class BatchData.
*/
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/NotCompatibleException.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/NotCompatibleException.java
new file mode 100644
index 0000000..7fc78e6
--- /dev/null
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/NotCompatibleException.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.tsfile.exception;
+
+public class NotCompatibleException extends TsFileRuntimeException {
+
+ private static final long serialVersionUID = -3765109817887078265L;
+ public NotCompatibleException(String message) {
+ super(message);
+ }
+}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TsFileMetaData.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TsFileMetaData.java
index 199e736..04d58d5 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TsFileMetaData.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TsFileMetaData.java
@@ -43,12 +43,7 @@ public class TsFileMetaData {
* TSFile schema for this file. This schema contains metadata for all the measurements.
*/
private Map<String, MeasurementSchema> measurementSchema = new HashMap<>();
-
- /**
- * Version of this file.
- */
- private int currentVersion;
-
+
/**
* String for application that wrote this file. This should be in the format [Application] version
* [App Version](build [App Build Hash]). e.g. impala version 1.0 (build SHA-1_hash_code)
@@ -69,13 +64,11 @@ public class TsFileMetaData {
* construct function for TsFileMetaData.
*
* @param measurementSchema - time series info list
- * @param currentVersion - current version
*/
public TsFileMetaData(Map<String, TsDeviceMetadataIndex> deviceMap,
- Map<String, MeasurementSchema> measurementSchema, int currentVersion) {
+ Map<String, MeasurementSchema> measurementSchema) {
this.deviceIndexMap = deviceMap;
this.measurementSchema = measurementSchema;
- this.currentVersion = currentVersion;
}
/**
@@ -112,8 +105,6 @@ public class TsFileMetaData {
}
}
- fileMetaData.currentVersion = ReadWriteIOUtils.readInt(inputStream);
-
if (ReadWriteIOUtils.readIsNull(inputStream)) {
fileMetaData.createdBy = ReadWriteIOUtils.readString(inputStream);
}
@@ -157,8 +148,6 @@ public class TsFileMetaData {
}
}
- fileMetaData.currentVersion = ReadWriteIOUtils.readInt(buffer);
-
if (ReadWriteIOUtils.readIsNull(buffer)) {
fileMetaData.createdBy = ReadWriteIOUtils.readString(buffer);
}
@@ -180,16 +169,7 @@ public class TsFileMetaData {
@Override
public String toString() {
return "TsFileMetaData{" + "deviceIndexMap=" + deviceIndexMap + ", measurementSchema="
- + measurementSchema
- + ", CURRENT_VERSION=" + currentVersion + ", createdBy='" + createdBy + '\'' + '}';
- }
-
- public int getCurrentVersion() {
- return currentVersion;
- }
-
- public void setCurrentVersion(int currentVersion) {
- this.currentVersion = currentVersion;
+ + measurementSchema + ", createdBy='" + createdBy + '\'' + '}';
}
public String getCreatedBy() {
@@ -259,8 +239,6 @@ public class TsFileMetaData {
byteLen += entry.getValue().serializeTo(outputStream);
}
- byteLen += ReadWriteIOUtils.write(currentVersion, outputStream);
-
byteLen += ReadWriteIOUtils.writeIsNull(createdBy, outputStream);
if (createdBy != null) {
byteLen += ReadWriteIOUtils.write(createdBy, outputStream);
@@ -293,8 +271,6 @@ public class TsFileMetaData {
byteLen += entry.getValue().serializeTo(buffer);
}
- byteLen += ReadWriteIOUtils.write(currentVersion, buffer);
-
byteLen += ReadWriteIOUtils.writeIsNull(createdBy, buffer);
if (createdBy != null) {
byteLen += ReadWriteIOUtils.write(createdBy, buffer);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileRestorableReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileRestorableReader.java
index 3efa599..309b3b9 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileRestorableReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileRestorableReader.java
@@ -1,4 +1,4 @@
-/**
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 88d636d..4f8654e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -1,4 +1,4 @@
-/**
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
@@ -18,9 +18,21 @@
*/
package org.apache.iotdb.tsfile.read;
+import static org.apache.iotdb.tsfile.write.writer.TsFileIOWriter.magicStringBytes;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.compress.IUnCompressor;
+import org.apache.iotdb.tsfile.exception.NotCompatibleException;
import org.apache.iotdb.tsfile.file.MetaMarker;
import org.apache.iotdb.tsfile.file.footer.ChunkGroupFooter;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
@@ -40,14 +52,6 @@ import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.file.Paths;
-import java.util.*;
-
-import static org.apache.iotdb.tsfile.write.writer.TsFileIOWriter.magicStringBytes;
-
public class TsFileSequenceReader implements AutoCloseable {
private static final Logger logger = LoggerFactory.getLogger(TsFileSequenceReader.class);
@@ -66,8 +70,8 @@ public class TsFileSequenceReader implements AutoCloseable {
/**
* Create a file reader of the given file. The reader will read the tail of the file to get the
- * file metadata size.Then the reader will skip the first TSFileConfig.MAGIC_STRING.length() bytes
- * of the file for preparing reading real data.
+ * file metadata size.Then the reader will skip the first TSFileConfig.MAGIC_STRING.getBytes().length +
+ * TSFileConfig.NUMBER_VERSION.getBytes().length bytes of the file for preparing reading real data.
*
* @param file the data file
* @throws IOException If some I/O error occurs
@@ -80,7 +84,7 @@ public class TsFileSequenceReader implements AutoCloseable {
* construct function for TsFileSequenceReader.
*
* @param file -given file name
- * @param loadMetadataSize -load meta data size
+ * @param loadMetadataSize -whether load meta data size
*/
public TsFileSequenceReader(String file, boolean loadMetadataSize) throws IOException {
this.file = file;
@@ -106,8 +110,8 @@ public class TsFileSequenceReader implements AutoCloseable {
/**
* Create a file reader of the given file. The reader will read the tail of the file to get the
- * file metadata size.Then the reader will skip the first TSFileConfig.MAGIC_STRING.length() bytes
- * of the file for preparing reading real data.
+ * file metadata size.Then the reader will skip the first TSFileConfig.MAGIC_STRING.getBytes().length +
+ * TSFileConfig.NUMBER_VERSION.getBytes().length bytes of the file for preparing reading real data.
*
* @param input given input
*/
@@ -152,14 +156,12 @@ public class TsFileSequenceReader implements AutoCloseable {
public void loadMetadataSize() throws IOException {
ByteBuffer metadataSize = ByteBuffer.allocate(Integer.BYTES);
tsFileInput.read(metadataSize,
- tsFileInput.size() - TSFileConfig.MAGIC_STRING.length() - Integer.BYTES);
+ tsFileInput.size() - TSFileConfig.MAGIC_STRING.getBytes().length - Integer.BYTES);
metadataSize.flip();
// read file metadata size and position
fileMetadataSize = ReadWriteIOUtils.readInt(metadataSize);
fileMetadataPos =
- tsFileInput.size() - TSFileConfig.MAGIC_STRING.length() - Integer.BYTES - fileMetadataSize;
- // skip the magic header
- tsFileInput.position(TSFileConfig.MAGIC_STRING.length());
+ tsFileInput.size() - TSFileConfig.MAGIC_STRING.getBytes().length - Integer.BYTES - fileMetadataSize;
}
public long getFileMetadataPos() {
@@ -176,8 +178,8 @@ public class TsFileSequenceReader implements AutoCloseable {
public String readTailMagic() throws IOException {
long totalSize = tsFileInput.size();
- ByteBuffer magicStringBytes = ByteBuffer.allocate(TSFileConfig.MAGIC_STRING.length());
- tsFileInput.read(magicStringBytes, totalSize - TSFileConfig.MAGIC_STRING.length());
+ ByteBuffer magicStringBytes = ByteBuffer.allocate(TSFileConfig.MAGIC_STRING.getBytes().length);
+ tsFileInput.read(magicStringBytes, totalSize - TSFileConfig.MAGIC_STRING.getBytes().length);
magicStringBytes.flip();
return new String(magicStringBytes.array());
}
@@ -186,8 +188,8 @@ public class TsFileSequenceReader implements AutoCloseable {
* whether the file is a complete TsFile: only if the head magic and tail magic string exists.
*/
public boolean isComplete() throws IOException {
- return tsFileInput.size() >= TSFileConfig.MAGIC_STRING.length() * 2 && readTailMagic()
- .equals(readHeadMagic());
+ return tsFileInput.size() >= TSFileConfig.MAGIC_STRING.getBytes().length * 2 + TSFileConfig.VERSION_NUMBER.getBytes().length &&
+ readTailMagic().equals(readHeadMagic());
}
/**
@@ -204,7 +206,7 @@ public class TsFileSequenceReader implements AutoCloseable {
* to the end of the magic head string.
*/
public String readHeadMagic(boolean movePosition) throws IOException {
- ByteBuffer magicStringBytes = ByteBuffer.allocate(TSFileConfig.MAGIC_STRING.length());
+ ByteBuffer magicStringBytes = ByteBuffer.allocate(TSFileConfig.MAGIC_STRING.getBytes().length);
if (movePosition) {
tsFileInput.position(0);
tsFileInput.read(magicStringBytes);
@@ -216,6 +218,21 @@ public class TsFileSequenceReader implements AutoCloseable {
}
/**
+ * this function reads version number and checks compatibility of TsFile.
+ */
+ public String readVersionNumber() throws IOException, NotCompatibleException {
+ ByteBuffer versionNumberBytes = ByteBuffer.allocate(TSFileConfig.VERSION_NUMBER.getBytes().length);
+ tsFileInput.read(versionNumberBytes, TSFileConfig.MAGIC_STRING.getBytes().length);
+ versionNumberBytes.flip();
+ String versionNumberString = new String(versionNumberBytes.array());
+ if(!versionNumberString.equals(TSFileConfig.VERSION_NUMBER)) {
+ throw new NotCompatibleException("TsFile isn't compatible. " + TSFileConfig.MAGIC_STRING +
+ TSFileConfig.VERSION_NUMBER + " is expected.");
+ }
+ return versionNumberString;
+ }
+
+ /**
* this function does not modify the position of the file reader.
*/
public TsFileMetaData readFileMetadata() throws IOException {
@@ -237,7 +254,7 @@ public class TsFileSequenceReader implements AutoCloseable {
return data.get();
} else {
//no real data
- return TSFileConfig.MAGIC_STRING.length();
+ return TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER.getBytes().length;
}
}
@@ -521,15 +538,16 @@ public class TsFileSequenceReader implements AutoCloseable {
long endOffsetOfChunkGroup;
long versionOfChunkGroup = 0;
- if (fileSize < TSFileConfig.MAGIC_STRING.length()) {
+ if (fileSize < TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER.getBytes().length) {
return TsFileCheckStatus.INCOMPATIBLE_FILE;
}
String magic = readHeadMagic(true);
+ tsFileInput.position(TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER.getBytes().length);
if (!magic.equals(TSFileConfig.MAGIC_STRING)) {
return TsFileCheckStatus.INCOMPATIBLE_FILE;
}
- if (fileSize == TSFileConfig.MAGIC_STRING.length()) {
+ if (fileSize == TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER.getBytes().length) {
return TsFileCheckStatus.ONLY_MAGIC_HEAD;
} else if (readTailMagic().equals(magic)) {
loadMetadataSize();
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
index b988f12..b09a133 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
@@ -100,7 +100,7 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
String.format("%s is not in TsFile format.", file.getAbsolutePath()));
} else if (truncatedPosition == TsFileCheckStatus.ONLY_MAGIC_HEAD) {
crashed = true;
- out.truncate(TSFileConfig.MAGIC_STRING.length());
+ out.truncate(TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER.getBytes().length);
} else {
crashed = true;
//remove broken data
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
index ce13f16..95d2794 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
@@ -63,11 +63,13 @@ import org.slf4j.LoggerFactory;
public class TsFileIOWriter {
public static final byte[] magicStringBytes;
+ public static final byte[] versionNumberBytes;
private static final Logger logger = LoggerFactory.getLogger(TsFileIOWriter.class);
protected static final TSFileConfig config = TSFileDescriptor.getInstance().getConfig();
static {
magicStringBytes = BytesUtils.stringToBytes(TSFileConfig.MAGIC_STRING);
+ versionNumberBytes = TSFileConfig.VERSION_NUMBER.getBytes();
}
protected TsFileOutput out;
@@ -141,6 +143,7 @@ public class TsFileIOWriter {
protected void startFile() throws IOException {
out.write(magicStringBytes);
+ out.write(versionNumberBytes);
}
/**
@@ -263,8 +266,7 @@ public class TsFileIOWriter {
Map<String, TsDeviceMetadataIndex> tsDeviceMetadataIndexMap = flushTsDeviceMetaDataAndGetIndex(
this.chunkGroupMetaDataList);
- TsFileMetaData tsFileMetaData = new TsFileMetaData(tsDeviceMetadataIndexMap, schemaDescriptors,
- TSFileConfig.CURRENT_VERSION);
+ TsFileMetaData tsFileMetaData = new TsFileMetaData(tsDeviceMetadataIndexMap, schemaDescriptors);
tsFileMetaData.setTotalChunkNum(totalChunkNum);
tsFileMetaData.setInvalidChunkNum(invalidChunkNum);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaDataTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaDataTest.java
index 6439120..afa93fb 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaDataTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaDataTest.java
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
+import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
import org.apache.iotdb.tsfile.file.MetaMarker;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
@@ -41,7 +42,7 @@ import org.junit.Test;
public class ChunkGroupMetaDataTest {
public static final String DELTA_OBJECT_UID = "delta-3312";
- final static String PATH = "target/outputChunkGroup.tsfile";
+ private final static String PATH = "target/outputChunkGroup.tsfile";
private static String testDataFile;
@BeforeClass
@@ -64,6 +65,7 @@ public class ChunkGroupMetaDataTest {
@Test
public void testOffset() throws IOException {
TsFileSequenceReader reader = new TsFileSequenceReader(testDataFile);
+ reader.position(TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER.getBytes().length);
TsFileMetaData metaData = reader.readFileMetadata();
List<Pair<Long, Long>> offsetList = new ArrayList<>();
long startOffset = reader.position();
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/TestHelper.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/TestHelper.java
index 1f5954f..80a3002 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/TestHelper.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/TestHelper.java
@@ -53,8 +53,7 @@ public class TestHelper {
private static final String LAST_VALUE = "222";
public static TsFileMetaData createSimpleFileMetaData() {
- TsFileMetaData metaData = new TsFileMetaData(generateDeviceIndexMetadataMap(), new HashMap<>(),
- TsFileMetaDataTest.VERSION);
+ TsFileMetaData metaData = new TsFileMetaData(generateDeviceIndexMetadataMap(), new HashMap<>());
metaData.addMeasurementSchema(TestHelper.createSimpleMeasurementSchema());
metaData.addMeasurementSchema(TestHelper.createSimpleMeasurementSchema());
metaData.setCreatedBy(TsFileMetaDataTest.CREATED_BY);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/Utils.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/Utils.java
index 4f16b7f..a2d5813 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/Utils.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/Utils.java
@@ -198,7 +198,6 @@ public class Utils {
}
}
- assertEquals(metadata1.getCurrentVersion(), metadata2.getCurrentVersion());
assertEquals(metadata1.getCreatedBy(), metadata2.getCreatedBy());
}
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileRestorableReaderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileRestorableReaderTest.java
index 5ab53f7..f480994 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileRestorableReaderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileRestorableReaderTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
@@ -20,6 +20,7 @@
package org.apache.iotdb.tsfile.read;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
@@ -48,12 +49,13 @@ public class TsFileRestorableReaderTest {
assertTrue(file.delete());
}
- @Test(expected = IllegalArgumentException.class)
+ @Test
public void testToReadDamagedFileNoRepair() throws IOException {
File file = TSFileFactory.INSTANCE.getFile(FILE_PATH);
TsFileGeneratorForTest.writeFileWithOneIncompleteChunkHeader(file);
// This should throw an Illegal Argument Exception
TsFileSequenceReader reader = new TsFileRestorableReader(FILE_PATH, false);
+ assertFalse(reader.isComplete());
}
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileSequenceReaderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileSequenceReaderTest.java
index c8e9678..c149aaa 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileSequenceReaderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileSequenceReaderTest.java
@@ -1,4 +1,4 @@
-/**
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
@@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
+import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
import org.apache.iotdb.tsfile.file.MetaMarker;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
@@ -32,39 +33,36 @@ import org.apache.iotdb.tsfile.file.metadata.ChunkGroupMetaData;
import org.apache.iotdb.tsfile.file.metadata.TsDeviceMetadata;
import org.apache.iotdb.tsfile.file.metadata.TsDeviceMetadataIndex;
import org.apache.iotdb.tsfile.file.metadata.TsFileMetaData;
+import org.apache.iotdb.tsfile.utils.FileGenerator;
import org.apache.iotdb.tsfile.utils.Pair;
-import org.apache.iotdb.tsfile.utils.TsFileGeneratorForTest;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
public class TsFileSequenceReaderTest {
- private static final String FILE_PATH = TsFileGeneratorForTest.outputDataFile;
- private TsFileSequenceReader fileReader;
- private int rowCount = 1000;
+ private static final String FILE_PATH = FileGenerator.outputDataFile;
private ReadOnlyTsFile tsFile;
@Before
public void before() throws InterruptedException, WriteProcessException, IOException {
- TsFileGeneratorForTest.generateFile(rowCount, 16 * 1024 * 1024, 10000);
- fileReader = new TsFileSequenceReader(FILE_PATH);
+ int rowCount = 1000;
+ FileGenerator.generateFile(rowCount, 10000);
+ TsFileSequenceReader fileReader = new TsFileSequenceReader(FILE_PATH);
tsFile = new ReadOnlyTsFile(fileReader);
}
@After
public void after() throws IOException {
tsFile.close();
- TsFileGeneratorForTest.after();
+ FileGenerator.after();
}
@Test
public void testReadTsFileSequently() throws IOException {
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_PATH);
+ reader.position(TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER.getBytes().length);
TsFileMetaData metaData = reader.readFileMetadata();
List<Pair<Long, Long>> offsetList = new ArrayList<>();
long startOffset = reader.position();
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/DigestFilterTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/DigestFilterTest.java
index 8811a34..68b0f0e 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/DigestFilterTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/DigestFilterTest.java
@@ -38,79 +38,79 @@ public class DigestFilterTest {
@Test
public void testEq() {
Filter timeEq = TimeFilter.eq(10L);
- Assert.assertEquals(true, timeEq.satisfy(digest1));
- Assert.assertEquals(false, timeEq.satisfy(digest2));
- Assert.assertEquals(false, timeEq.satisfy(digest3));
+ Assert.assertTrue(timeEq.satisfy(digest1));
+ Assert.assertFalse(timeEq.satisfy(digest2));
+ Assert.assertFalse(timeEq.satisfy(digest3));
Filter valueEq = ValueFilter.eq(100);
- Assert.assertEquals(true, valueEq.satisfy(digest1));
- Assert.assertEquals(false, valueEq.satisfy(digest2));
- Assert.assertEquals(true, valueEq.satisfy(digest3));
+ Assert.assertTrue(valueEq.satisfy(digest1));
+ Assert.assertFalse(valueEq.satisfy(digest2));
+ Assert.assertTrue(valueEq.satisfy(digest3));
}
@Test
public void testGt() {
Filter timeGt = TimeFilter.gt(100L);
- Assert.assertEquals(false, timeGt.satisfy(digest1));
- Assert.assertEquals(true, timeGt.satisfy(digest2));
- Assert.assertEquals(true, timeGt.satisfy(digest3));
+ Assert.assertFalse(timeGt.satisfy(digest1));
+ Assert.assertTrue(timeGt.satisfy(digest2));
+ Assert.assertTrue(timeGt.satisfy(digest3));
Filter valueGt = ValueFilter.gt(100);
- Assert.assertEquals(false, valueGt.satisfy(digest1));
- Assert.assertEquals(true, valueGt.satisfy(digest2));
- Assert.assertEquals(true, valueGt.satisfy(digest3));
+ Assert.assertFalse(valueGt.satisfy(digest1));
+ Assert.assertTrue(valueGt.satisfy(digest2));
+ Assert.assertTrue(valueGt.satisfy(digest3));
}
@Test
public void testGtEq() {
Filter timeGtEq = TimeFilter.gtEq(100L);
- Assert.assertEquals(true, timeGtEq.satisfy(digest1));
- Assert.assertEquals(true, timeGtEq.satisfy(digest2));
- Assert.assertEquals(true, timeGtEq.satisfy(digest3));
+ Assert.assertTrue(timeGtEq.satisfy(digest1));
+ Assert.assertTrue(timeGtEq.satisfy(digest2));
+ Assert.assertTrue(timeGtEq.satisfy(digest3));
Filter valueGtEq = ValueFilter.gtEq(100);
- Assert.assertEquals(true, valueGtEq.satisfy(digest1));
- Assert.assertEquals(true, valueGtEq.satisfy(digest3));
- Assert.assertEquals(true, valueGtEq.satisfy(digest3));
+ Assert.assertTrue(valueGtEq.satisfy(digest1));
+ Assert.assertTrue(valueGtEq.satisfy(digest3));
+ Assert.assertTrue(valueGtEq.satisfy(digest3));
}
@Test
public void testLt() {
Filter timeLt = TimeFilter.lt(101L);
- Assert.assertEquals(true, timeLt.satisfy(digest1));
- Assert.assertEquals(false, timeLt.satisfy(digest2));
- Assert.assertEquals(false, timeLt.satisfy(digest3));
+ Assert.assertTrue(timeLt.satisfy(digest1));
+ Assert.assertFalse(timeLt.satisfy(digest2));
+ Assert.assertFalse(timeLt.satisfy(digest3));
Filter valueLt = ValueFilter.lt(101);
- Assert.assertEquals(true, valueLt.satisfy(digest1));
- Assert.assertEquals(false, valueLt.satisfy(digest2));
- Assert.assertEquals(true, valueLt.satisfy(digest3));
+ Assert.assertTrue(valueLt.satisfy(digest1));
+ Assert.assertFalse(valueLt.satisfy(digest2));
+ Assert.assertTrue(valueLt.satisfy(digest3));
}
@Test
public void testLtEq() {
Filter timeLtEq = TimeFilter.ltEq(101L);
- Assert.assertEquals(true, timeLtEq.satisfy(digest1));
- Assert.assertEquals(true, timeLtEq.satisfy(digest2));
- Assert.assertEquals(true, timeLtEq.satisfy(digest3));
+ Assert.assertTrue(timeLtEq.satisfy(digest1));
+ Assert.assertTrue(timeLtEq.satisfy(digest2));
+ Assert.assertTrue(timeLtEq.satisfy(digest3));
Filter valueLtEq = ValueFilter.ltEq(101);
- Assert.assertEquals(true, valueLtEq.satisfy(digest1));
- Assert.assertEquals(true, valueLtEq.satisfy(digest2));
- Assert.assertEquals(true, valueLtEq.satisfy(digest3));
+ Assert.assertTrue(valueLtEq.satisfy(digest1));
+ Assert.assertTrue(valueLtEq.satisfy(digest2));
+ Assert.assertTrue(valueLtEq.satisfy(digest3));
}
@Test
public void testAndOr() {
Filter andFilter = FilterFactory.and(TimeFilter.gt(10L), ValueFilter.lt(50));
- Assert.assertEquals(true, andFilter.satisfy(digest1));
- Assert.assertEquals(false, andFilter.satisfy(digest2));
- Assert.assertEquals(true, andFilter.satisfy(digest3));
+ Assert.assertTrue(andFilter.satisfy(digest1));
+ Assert.assertFalse(andFilter.satisfy(digest2));
+ Assert.assertTrue(andFilter.satisfy(digest3));
Filter orFilter = FilterFactory.or(andFilter, TimeFilter.eq(200L));
- Assert.assertEquals(true, orFilter.satisfy(digest1));
- Assert.assertEquals(true, orFilter.satisfy(digest2));
- Assert.assertEquals(true, orFilter.satisfy(digest3));
+ Assert.assertTrue(orFilter.satisfy(digest1));
+ Assert.assertTrue(orFilter.satisfy(digest2));
+ Assert.assertTrue(orFilter.satisfy(digest3));
}
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/IExpressionOptimizerTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/IExpressionOptimizerTest.java
index 3cdee57..8bf416d 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/IExpressionOptimizerTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/IExpressionOptimizerTest.java
@@ -27,7 +27,6 @@ import org.apache.iotdb.tsfile.read.expression.impl.BinaryExpression;
import org.apache.iotdb.tsfile.read.expression.impl.GlobalTimeExpression;
import org.apache.iotdb.tsfile.read.expression.impl.SingleSeriesExpression;
import org.apache.iotdb.tsfile.read.expression.util.ExpressionOptimizer;
-import org.apache.iotdb.tsfile.read.expression.util.ExpressionPrinter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterFactory;
import org.junit.After;
@@ -67,7 +66,7 @@ public class IExpressionOptimizerTest {
new GlobalTimeExpression(TimeFilter.gt(200L)));
} catch (QueryFilterOptimizationException e) {
- e.printStackTrace();
+ Assert.fail();
}
}
@@ -96,12 +95,11 @@ public class IExpressionOptimizerTest {
IExpression expression = BinaryExpression
.and(BinaryExpression.or(singleSeriesExp1, singleSeriesExp2),
singleSeriesExp3);
- Assert.assertEquals(true,
- expression.toString()
- .equals(expressionOptimizer.optimize(expression, selectedSeries).toString()));
+ Assert.assertEquals(expression.toString(),
+ expressionOptimizer.optimize(expression, selectedSeries).toString());
} catch (QueryFilterOptimizationException e) {
- e.printStackTrace();
+ Assert.fail();
}
}
@@ -123,7 +121,7 @@ public class IExpressionOptimizerTest {
try {
String rightRet = "[[d2.s1:((value > 100 || value < 50) && time < 14001234)] || [d1.s2:((value > 100.5 || value < 50.6) && time < 14001234)]]";
IExpression regularFilter = expressionOptimizer.optimize(expression, selectedSeries);
- Assert.assertEquals(true, rightRet.equals(regularFilter.toString()));
+ Assert.assertEquals(rightRet, regularFilter.toString());
} catch (QueryFilterOptimizationException e) {
Assert.fail();
}
@@ -147,7 +145,7 @@ public class IExpressionOptimizerTest {
try {
String rightRet = "[[[[[d1.s1:time > 1] || [d2.s1:time > 1]] || [d1.s2:time > 1]] || [d2.s2:time > 1]] || [d2.s1:((value > 100 || value < 50) && time < 14001234)]]";
IExpression regularFilter = expressionOptimizer.optimize(expression, selectedSeries);
- Assert.assertEquals(true, rightRet.equals(regularFilter.toString()));
+ Assert.assertEquals(rightRet, regularFilter.toString());
} catch (QueryFilterOptimizationException e) {
Assert.fail();
}
@@ -167,7 +165,7 @@ public class IExpressionOptimizerTest {
try {
String rightRet = "[d2.s1:((value > 100 || value < 50) && time < 14001234)]";
IExpression regularFilter = expressionOptimizer.optimize(expression, selectedSeries);
- Assert.assertEquals(true, rightRet.equals(regularFilter.toString()));
+ Assert.assertEquals(rightRet, regularFilter.toString());
} catch (QueryFilterOptimizationException e) {
Assert.fail();
}
@@ -194,7 +192,7 @@ public class IExpressionOptimizerTest {
"[[[[[d1.s1:time < 14001234] || [d2.s1:time < 14001234]] || [d1.s2:time < 14001234]] "
+ "|| [d2.s2:time < 14001234]] || [[d2.s1:(value > 100 || value < 50)] || [d1.s2:(value > 100.5 || value < 50.6)]]]";
IExpression regularFilter = expressionOptimizer.optimize(expression, selectedSeries);
- Assert.assertEquals(true, rightRet.equals(regularFilter.toString()));
+ Assert.assertEquals(rightRet, regularFilter.toString());
} catch (QueryFilterOptimizationException e) {
Assert.fail();
}
@@ -222,7 +220,7 @@ public class IExpressionOptimizerTest {
+ "&& time > 14001000)]] || [d1.s2:(time < 14001234 && time > 14001000)]] || [d2.s2:(time < 14001234 "
+ "&& time > 14001000)]] || [[d2.s1:(value > 100 || value < 50)] || [d1.s2:(value > 100.5 || value < 50.6)]]]";
IExpression regularFilter = expressionOptimizer.optimize(expression, selectedSeries);
- Assert.assertEquals(true, rightRet.equals(regularFilter.toString()));
+ Assert.assertEquals(rightRet, regularFilter.toString());
} catch (QueryFilterOptimizationException e) {
Assert.fail();
}
@@ -236,7 +234,7 @@ public class IExpressionOptimizerTest {
"[[d2.s1:((value > 100 || value < 50) && (time < 14001234 && time > 14001000))] || "
+ "[d1.s2:((value > 100.5 || value < 50.6) && (time < 14001234 && time > 14001000))]]";
IExpression regularFilter2 = expressionOptimizer.optimize(expression2, selectedSeries);
- Assert.assertEquals(true, rightRet2.equals(regularFilter2.toString()));
+ Assert.assertEquals(rightRet2, regularFilter2.toString());
} catch (QueryFilterOptimizationException e) {
Assert.fail();
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/MinTimeMaxTimeFilterTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/MinTimeMaxTimeFilterTest.java
index c829146..5a16c85 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/MinTimeMaxTimeFilterTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/MinTimeMaxTimeFilterTest.java
@@ -31,179 +31,179 @@ public class MinTimeMaxTimeFilterTest {
@Test
public void testEq() {
Filter timeEq = TimeFilter.eq(10L);
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.eq(100L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, timeEq.containStartEndTime(minTime, minTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.containStartEndTime(minTime, minTime));
timeEq = TimeFilter.eq(150L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.eq(200L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.eq(300L);
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
Filter valueEq = ValueFilter.eq(100);
- Assert.assertEquals(true, valueEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, valueEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.satisfyStartEndTime(minTime, maxTime));
}
@Test
public void testGt() {
Filter timeEq = TimeFilter.gt(10L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.gt(100L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.gt(200L);
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.gt(300L);
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
Filter valueEq = ValueFilter.gt(100);
- Assert.assertEquals(true, valueEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, valueEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.containStartEndTime(minTime, maxTime));
}
@Test
public void testGtEq() {
Filter timeEq = TimeFilter.gtEq(10L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.gtEq(100L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.gtEq(200L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.gtEq(300L);
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
Filter valueEq = ValueFilter.gtEq(100);
- Assert.assertEquals(true, valueEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, valueEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.containStartEndTime(minTime, maxTime));
valueEq = ValueFilter.gtEq(150);
- Assert.assertEquals(true, valueEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, valueEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.containStartEndTime(minTime, maxTime));
}
@Test
public void testLt() {
Filter timeEq = TimeFilter.lt(10L);
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.lt(100L);
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.lt(200L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.lt(300L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.containStartEndTime(minTime, maxTime));
Filter valueEq = ValueFilter.lt(100);
- Assert.assertEquals(true, valueEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, valueEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.containStartEndTime(minTime, maxTime));
}
@Test
public void testLtEq() {
Filter timeEq = TimeFilter.ltEq(10L);
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.ltEq(100L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.ltEq(200L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.containStartEndTime(minTime, maxTime));
timeEq = TimeFilter.ltEq(300L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, timeEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.containStartEndTime(minTime, maxTime));
Filter valueEq = ValueFilter.ltEq(100);
- Assert.assertEquals(true, valueEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, valueEq.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(valueEq.containStartEndTime(minTime, maxTime));
}
@Test
public void testAnd() {
Filter andFilter = FilterFactory.and(TimeFilter.gt(10L), TimeFilter.lt(50));
- Assert.assertEquals(false, andFilter.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, andFilter.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(andFilter.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(andFilter.containStartEndTime(minTime, maxTime));
andFilter = FilterFactory.and(TimeFilter.gt(100L), TimeFilter.lt(200));
- Assert.assertEquals(true, andFilter.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, andFilter.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(andFilter.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(andFilter.containStartEndTime(minTime, maxTime));
andFilter = FilterFactory.and(TimeFilter.gt(99L), TimeFilter.lt(201));
- Assert.assertEquals(true, andFilter.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, andFilter.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(andFilter.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(andFilter.containStartEndTime(minTime, maxTime));
}
@Test
public void testOr() {
Filter orFilter = FilterFactory.or(TimeFilter.gt(10L), TimeFilter.lt(50));
- Assert.assertEquals(true, orFilter.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, orFilter.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(orFilter.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(orFilter.containStartEndTime(minTime, maxTime));
}
@Test
public void testNotEq() {
Filter timeEq = TimeFilter.notEq(10L);
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(timeEq.satisfyStartEndTime(minTime, maxTime));
long startTime = 10, endTime = 10;
- Assert.assertEquals(false, timeEq.satisfyStartEndTime(startTime, endTime));
- Assert.assertEquals(false, timeEq.containStartEndTime(5, 50));
+ Assert.assertFalse(timeEq.satisfyStartEndTime(startTime, endTime));
+ Assert.assertFalse(timeEq.containStartEndTime(5, 50));
}
@Test
public void testNot() {
Filter not = FilterFactory.not(TimeFilter.ltEq(10L));
- Assert.assertEquals(true, not.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(true, not.containStartEndTime(minTime, maxTime));
+ Assert.assertTrue(not.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertTrue(not.containStartEndTime(minTime, maxTime));
not = FilterFactory.not(TimeFilter.ltEq(100L));
- Assert.assertEquals(false, not.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, not.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(not.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(not.containStartEndTime(minTime, maxTime));
not = FilterFactory.not(TimeFilter.ltEq(200L));
- Assert.assertEquals(false, not.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, not.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(not.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(not.containStartEndTime(minTime, maxTime));
not = FilterFactory.not(TimeFilter.ltEq(300L));
- Assert.assertEquals(false, not.satisfyStartEndTime(minTime, maxTime));
- Assert.assertEquals(false, not.containStartEndTime(minTime, maxTime));
+ Assert.assertFalse(not.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(not.containStartEndTime(minTime, maxTime));
not = FilterFactory.not(ValueFilter.ltEq(100));
- Assert.assertEquals(false, not.satisfyStartEndTime(minTime, maxTime));
+ Assert.assertFalse(not.satisfyStartEndTime(minTime, maxTime));
}
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/OperatorTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/OperatorTest.java
index d1458e4..6ef85d0 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/OperatorTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/OperatorTest.java
@@ -32,115 +32,115 @@ public class OperatorTest {
@Test
public void testEq() {
Filter timeEq = TimeFilter.eq(100L);
- Assert.assertEquals(true, timeEq.satisfy(100, 100));
- Assert.assertEquals(false, timeEq.satisfy(101, 100));
+ Assert.assertTrue(timeEq.satisfy(100, 100));
+ Assert.assertFalse(timeEq.satisfy(101, 100));
Filter filter2 = FilterFactory.and(TimeFilter.eq(100L), ValueFilter.eq(50));
- Assert.assertEquals(true, filter2.satisfy(100, 50));
- Assert.assertEquals(false, filter2.satisfy(100, 51));
+ Assert.assertTrue(filter2.satisfy(100, 50));
+ Assert.assertFalse(filter2.satisfy(100, 51));
Filter filter3 = ValueFilter.eq(true);
- Assert.assertEquals(true, filter3.satisfy(100, true));
- Assert.assertEquals(false, filter3.satisfy(100, false));
+ Assert.assertTrue(filter3.satisfy(100, true));
+ Assert.assertFalse(filter3.satisfy(100, false));
}
@Test
public void testGt() {
Filter timeGt = TimeFilter.gt(TESTED_TIMESTAMP);
- Assert.assertEquals(true, timeGt.satisfy(TESTED_TIMESTAMP + 1, 100));
- Assert.assertEquals(false, timeGt.satisfy(TESTED_TIMESTAMP, 100));
- Assert.assertEquals(false, timeGt.satisfy(TESTED_TIMESTAMP - 1, 100));
+ Assert.assertTrue(timeGt.satisfy(TESTED_TIMESTAMP + 1, 100));
+ Assert.assertFalse(timeGt.satisfy(TESTED_TIMESTAMP, 100));
+ Assert.assertFalse(timeGt.satisfy(TESTED_TIMESTAMP - 1, 100));
Filter valueGt = ValueFilter.gt(0.01f);
- Assert.assertEquals(true, valueGt.satisfy(TESTED_TIMESTAMP, 0.02f));
- Assert.assertEquals(false, valueGt.satisfy(TESTED_TIMESTAMP, 0.01f));
- Assert.assertEquals(false, valueGt.satisfy(TESTED_TIMESTAMP, -0.01f));
+ Assert.assertTrue(valueGt.satisfy(TESTED_TIMESTAMP, 0.02f));
+ Assert.assertFalse(valueGt.satisfy(TESTED_TIMESTAMP, 0.01f));
+ Assert.assertFalse(valueGt.satisfy(TESTED_TIMESTAMP, -0.01f));
Filter binaryFilter = ValueFilter.gt(new Binary("test1"));
- Assert.assertEquals(true, binaryFilter.satisfy(TESTED_TIMESTAMP, new Binary("test2")));
- Assert.assertEquals(false, binaryFilter.satisfy(TESTED_TIMESTAMP, new Binary("test0")));
+ Assert.assertTrue(binaryFilter.satisfy(TESTED_TIMESTAMP, new Binary("test2")));
+ Assert.assertFalse(binaryFilter.satisfy(TESTED_TIMESTAMP, new Binary("test0")));
}
@Test
public void testGtEq() {
Filter timeGtEq = TimeFilter.gtEq(TESTED_TIMESTAMP);
- Assert.assertEquals(true, timeGtEq.satisfy(TESTED_TIMESTAMP + 1, 100));
- Assert.assertEquals(true, timeGtEq.satisfy(TESTED_TIMESTAMP, 100));
- Assert.assertEquals(false, timeGtEq.satisfy(TESTED_TIMESTAMP - 1, 100));
+ Assert.assertTrue(timeGtEq.satisfy(TESTED_TIMESTAMP + 1, 100));
+ Assert.assertTrue(timeGtEq.satisfy(TESTED_TIMESTAMP, 100));
+ Assert.assertFalse(timeGtEq.satisfy(TESTED_TIMESTAMP - 1, 100));
Filter valueGtEq = ValueFilter.gtEq(0.01);
- Assert.assertEquals(true, valueGtEq.satisfy(TESTED_TIMESTAMP, 0.02));
- Assert.assertEquals(true, valueGtEq.satisfy(TESTED_TIMESTAMP, 0.01));
- Assert.assertEquals(false, valueGtEq.satisfy(TESTED_TIMESTAMP, -0.01));
+ Assert.assertTrue(valueGtEq.satisfy(TESTED_TIMESTAMP, 0.02));
+ Assert.assertTrue(valueGtEq.satisfy(TESTED_TIMESTAMP, 0.01));
+ Assert.assertFalse(valueGtEq.satisfy(TESTED_TIMESTAMP, -0.01));
}
@Test
public void testLt() {
Filter timeLt = TimeFilter.lt(TESTED_TIMESTAMP);
- Assert.assertEquals(true, timeLt.satisfy(TESTED_TIMESTAMP - 1, 100));
- Assert.assertEquals(false, timeLt.satisfy(TESTED_TIMESTAMP, 100));
- Assert.assertEquals(false, timeLt.satisfy(TESTED_TIMESTAMP + 1, 100));
+ Assert.assertTrue(timeLt.satisfy(TESTED_TIMESTAMP - 1, 100));
+ Assert.assertFalse(timeLt.satisfy(TESTED_TIMESTAMP, 100));
+ Assert.assertFalse(timeLt.satisfy(TESTED_TIMESTAMP + 1, 100));
Filter valueLt = ValueFilter.lt(100L);
- Assert.assertEquals(true, valueLt.satisfy(TESTED_TIMESTAMP, 99L));
- Assert.assertEquals(false, valueLt.satisfy(TESTED_TIMESTAMP, 100L));
- Assert.assertEquals(false, valueLt.satisfy(TESTED_TIMESTAMP, 101L));
+ Assert.assertTrue(valueLt.satisfy(TESTED_TIMESTAMP, 99L));
+ Assert.assertFalse(valueLt.satisfy(TESTED_TIMESTAMP, 100L));
+ Assert.assertFalse(valueLt.satisfy(TESTED_TIMESTAMP, 101L));
}
@Test
public void testLtEq() {
Filter timeLtEq = TimeFilter.ltEq(TESTED_TIMESTAMP);
- Assert.assertEquals(true, timeLtEq.satisfy(TESTED_TIMESTAMP - 1, 100));
- Assert.assertEquals(true, timeLtEq.satisfy(TESTED_TIMESTAMP, 100));
- Assert.assertEquals(false, timeLtEq.satisfy(TESTED_TIMESTAMP + 1, 100));
+ Assert.assertTrue(timeLtEq.satisfy(TESTED_TIMESTAMP - 1, 100));
+ Assert.assertTrue(timeLtEq.satisfy(TESTED_TIMESTAMP, 100));
+ Assert.assertFalse(timeLtEq.satisfy(TESTED_TIMESTAMP + 1, 100));
Filter valueLtEq = ValueFilter.ltEq(100L);
- Assert.assertEquals(true, valueLtEq.satisfy(TESTED_TIMESTAMP, 99L));
- Assert.assertEquals(true, valueLtEq.satisfy(TESTED_TIMESTAMP, 100L));
- Assert.assertEquals(false, valueLtEq.satisfy(TESTED_TIMESTAMP, 101L));
+ Assert.assertTrue(valueLtEq.satisfy(TESTED_TIMESTAMP, 99L));
+ Assert.assertTrue(valueLtEq.satisfy(TESTED_TIMESTAMP, 100L));
+ Assert.assertFalse(valueLtEq.satisfy(TESTED_TIMESTAMP, 101L));
}
@Test
public void testNot() {
Filter timeLt = TimeFilter.not(TimeFilter.lt(TESTED_TIMESTAMP));
- Assert.assertEquals(false, timeLt.satisfy(TESTED_TIMESTAMP - 1, 100));
- Assert.assertEquals(true, timeLt.satisfy(TESTED_TIMESTAMP, 100));
- Assert.assertEquals(true, timeLt.satisfy(TESTED_TIMESTAMP + 1, 100));
+ Assert.assertFalse(timeLt.satisfy(TESTED_TIMESTAMP - 1, 100));
+ Assert.assertTrue(timeLt.satisfy(TESTED_TIMESTAMP, 100));
+ Assert.assertTrue(timeLt.satisfy(TESTED_TIMESTAMP + 1, 100));
Filter valueLt = ValueFilter.not(ValueFilter.lt(100L));
- Assert.assertEquals(false, valueLt.satisfy(TESTED_TIMESTAMP, 99L));
- Assert.assertEquals(true, valueLt.satisfy(TESTED_TIMESTAMP, 100L));
- Assert.assertEquals(true, valueLt.satisfy(TESTED_TIMESTAMP, 101L));
+ Assert.assertFalse(valueLt.satisfy(TESTED_TIMESTAMP, 99L));
+ Assert.assertTrue(valueLt.satisfy(TESTED_TIMESTAMP, 100L));
+ Assert.assertTrue(valueLt.satisfy(TESTED_TIMESTAMP, 101L));
}
@Test
public void testNotEq() {
Filter timeNotEq = TimeFilter.notEq(100L);
- Assert.assertEquals(false, timeNotEq.satisfy(100, 100));
- Assert.assertEquals(true, timeNotEq.satisfy(101, 100));
+ Assert.assertFalse(timeNotEq.satisfy(100, 100));
+ Assert.assertTrue(timeNotEq.satisfy(101, 100));
Filter valueNotEq = ValueFilter.notEq(50);
- Assert.assertEquals(false, valueNotEq.satisfy(100, 50));
- Assert.assertEquals(true, valueNotEq.satisfy(100, 51));
+ Assert.assertFalse(valueNotEq.satisfy(100, 50));
+ Assert.assertTrue(valueNotEq.satisfy(100, 51));
}
@Test
public void testAndOr() {
Filter andFilter = FilterFactory.and(TimeFilter.gt(100L), ValueFilter.lt(50.9));
- Assert.assertEquals(true, andFilter.satisfy(101L, 50d));
- Assert.assertEquals(false, andFilter.satisfy(101L, 60d));
- Assert.assertEquals(false, andFilter.satisfy(99L, 50d));
+ Assert.assertTrue(andFilter.satisfy(101L, 50d));
+ Assert.assertFalse(andFilter.satisfy(101L, 60d));
+ Assert.assertFalse(andFilter.satisfy(99L, 50d));
Filter orFilter = FilterFactory.or(andFilter, TimeFilter.eq(1000L));
- Assert.assertEquals(true, orFilter.satisfy(101L, 50d));
- Assert.assertEquals(false, orFilter.satisfy(101L, 60d));
- Assert.assertEquals(true, orFilter.satisfy(1000L, 50d));
+ Assert.assertTrue(orFilter.satisfy(101L, 50d));
+ Assert.assertFalse(orFilter.satisfy(101L, 60d));
+ Assert.assertTrue(orFilter.satisfy(1000L, 50d));
Filter andFilter2 = FilterFactory.and(orFilter, ValueFilter.notEq(50.0));
- Assert.assertEquals(false, andFilter2.satisfy(101L, 50d));
- Assert.assertEquals(false, andFilter2.satisfy(101L, 60d));
- Assert.assertEquals(true, andFilter2.satisfy(1000L, 51d));
+ Assert.assertFalse(andFilter2.satisfy(101L, 50d));
+ Assert.assertFalse(andFilter2.satisfy(101L, 60d));
+ Assert.assertTrue(andFilter2.satisfy(1000L, 51d));
}
@Test
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileIOWriterTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileIOWriterTest.java
index b065733..6875e8d 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileIOWriterTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileIOWriterTest.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.tsfile.write;
import java.io.File;
import java.io.IOException;
import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
+import org.apache.iotdb.tsfile.exception.NotCompatibleException;
import org.apache.iotdb.tsfile.file.MetaMarker;
import org.apache.iotdb.tsfile.file.footer.ChunkGroupFooter;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
@@ -75,14 +76,16 @@ public class TsFileIOWriterTest {
}
@Test
- public void endFileTest() throws IOException {
+ public void endFileTest() throws IOException, NotCompatibleException {
TsFileSequenceReader reader = new TsFileSequenceReader(tsfile);
// magic_string
Assert.assertEquals(TSFileConfig.MAGIC_STRING, reader.readHeadMagic());
+ Assert.assertEquals(TSFileConfig.VERSION_NUMBER, reader.readVersionNumber());
Assert.assertEquals(TSFileConfig.MAGIC_STRING, reader.readTailMagic());
// chunk header
+ reader.position(TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER.getBytes().length);
Assert.assertEquals(MetaMarker.CHUNK_HEADER, reader.readMarker());
ChunkHeader header = reader.readChunkHeader();
Assert.assertEquals(TimeSeriesMetadataTest.measurementUID, header.getMeasurementID());