| // 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. |
| |
| #include <gtest/gtest.h> |
| |
| #include "olap/byte_buffer.h" |
| #include "olap/in_stream.h" |
| #include "olap/out_stream.h" |
| #include "olap/rowset/run_length_integer_reader.h" |
| #include "olap/rowset/run_length_integer_writer.h" |
| #include "olap/stream_index_reader.h" |
| #include "olap/stream_index_writer.h" |
| #include "util/logging.h" |
| |
| namespace doris { |
| |
| class TestRunLengthUnsignInteger : public testing::Test { |
| public: |
| TestRunLengthUnsignInteger() {} |
| |
| virtual ~TestRunLengthUnsignInteger() {} |
| |
| virtual void SetUp() { |
| system("mkdir -p ./ut_dir"); |
| system("rm -rf ./ut_dir/tmp_file"); |
| _out_stream = new (std::nothrow) OutStream(OLAP_DEFAULT_COLUMN_STREAM_BUFFER_SIZE, NULL); |
| ASSERT_TRUE(_out_stream != NULL); |
| _writer = new (std::nothrow) RunLengthIntegerWriter(_out_stream, false); |
| ASSERT_TRUE(_writer != NULL); |
| } |
| |
| virtual void TearDown() { |
| SAFE_DELETE(_reader); |
| SAFE_DELETE(_out_stream); |
| SAFE_DELETE(_writer); |
| SAFE_DELETE(_shared_buffer); |
| SAFE_DELETE(_stream); |
| } |
| |
| void CreateReader() { |
| ASSERT_EQ(OLAP_SUCCESS, |
| helper.open_with_mode(_file_path.c_str(), O_CREAT | O_EXCL | O_WRONLY, |
| S_IRUSR | S_IWUSR)); |
| _out_stream->write_to_file(&helper, 0); |
| helper.close(); |
| |
| ASSERT_EQ(OLAP_SUCCESS, |
| helper.open_with_mode(_file_path.c_str(), O_RDONLY, S_IRUSR | S_IWUSR)); |
| |
| _shared_buffer = StorageByteBuffer::create(OLAP_DEFAULT_COLUMN_STREAM_BUFFER_SIZE + |
| sizeof(StreamHead)); |
| ASSERT_TRUE(_shared_buffer != NULL); |
| |
| _stream = new (std::nothrow) |
| ReadOnlyFileStream(&helper, &_shared_buffer, 0, helper.length(), NULL, |
| OLAP_DEFAULT_COLUMN_STREAM_BUFFER_SIZE, &_stats); |
| ASSERT_EQ(OLAP_SUCCESS, _stream->init()); |
| |
| _reader = new (std::nothrow) RunLengthIntegerReader(_stream, false); |
| ASSERT_TRUE(_reader != NULL); |
| } |
| |
| RunLengthIntegerReader* _reader; |
| OutStream* _out_stream; |
| RunLengthIntegerWriter* _writer; |
| FileHandler helper; |
| StorageByteBuffer* _shared_buffer; |
| ReadOnlyFileStream* _stream; |
| OlapReaderStatistics _stats; |
| |
| std::string _file_path = "./ut_dir/tmp_file"; |
| }; |
| |
| TEST_F(TestRunLengthUnsignInteger, ReadWriteOneInteger) { |
| // write data |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(100)); |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 100); |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, ReadWriteMultiInteger) { |
| // write data |
| int64_t write_data[] = {100, 102, 105, 106}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, seek) { |
| // write data |
| int64_t write_data[] = {100, 102, 105, 106}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| |
| PositionEntryWriter index_entry; |
| _writer->get_position(&index_entry, false); |
| _writer->write(107); |
| |
| _writer->write(108); |
| _writer->write(109); |
| _writer->write(110); |
| |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| PositionEntryReader entry; |
| entry._positions = index_entry._positions; |
| entry._positions_count = index_entry._positions_count; |
| entry._statistics.init(OLAP_FIELD_TYPE_INT, false); |
| |
| PositionProvider position(&entry); |
| _reader->seek(&position); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 107); |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 108); |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 109); |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 110); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, skip) { |
| // write data |
| int64_t write_data[] = {100, 102, 105, 106}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| _reader->skip(2); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 105); |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 106); |
| ASSERT_NE(OLAP_SUCCESS, _reader->next(&value)); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, ShortRepeatEncoding) { |
| // write data |
| int64_t write_data[] = {100, 100, 100, 100}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, ShortRepeatEncoding2) { |
| // write data |
| int64_t write_data[] = {876012345678912, 876012345678912, 876012345678912, 876012345678912}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, ShortRepeatEncoding3) { |
| // write data |
| int64_t write_data[] = {876012345678912}; |
| for (int32_t i = 0; i < 1; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 1; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, DirectEncoding) { |
| // write data |
| int64_t write_data[] = {1703, 6054, 8760, 902}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, DirectEncoding2) { |
| // write data |
| int64_t write_data[] = {1703, 6054, 876012345678912, 902, 9292, 184932, 873624, 827364, 999, 8}; |
| for (int32_t i = 0; i < 10; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 10; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, PatchedBaseEncoding1) { |
| // write data |
| int64_t write_data[] = { |
| 1703, 6054, 876012345678912, 902, 9292, 184932, 873624, 827364, 999, 8, |
| 1, 3323, 432232523, 90982, 9, 223234, 5, 44, 5, 3}; |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, PatchedBaseEncoding2) { |
| // write data |
| int64_t write_data[] = { |
| 1703, 6054, 902, 9292, 184932, 873624, 827364, 999, 8, 1, |
| 3323, 432232523, 90982, 9, 223234, 5, 876012345678912, 44, 5, 3}; |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| class TestRunLengthSignInteger : public testing::Test { |
| public: |
| TestRunLengthSignInteger() {} |
| |
| virtual ~TestRunLengthSignInteger() {} |
| |
| virtual void SetUp() { |
| system("mkdir -p ./ut_dir"); |
| system("rm ./ut_dir/tmp_file"); |
| _out_stream = new (std::nothrow) OutStream(OLAP_DEFAULT_COLUMN_STREAM_BUFFER_SIZE, NULL); |
| ASSERT_TRUE(_out_stream != NULL); |
| _writer = new (std::nothrow) RunLengthIntegerWriter(_out_stream, true); |
| ASSERT_TRUE(_writer != NULL); |
| } |
| |
| virtual void TearDown() { |
| SAFE_DELETE(_reader); |
| SAFE_DELETE(_out_stream); |
| SAFE_DELETE(_writer); |
| SAFE_DELETE(_shared_buffer); |
| SAFE_DELETE(_stream); |
| } |
| |
| void CreateReader() { |
| ASSERT_EQ(OLAP_SUCCESS, |
| helper.open_with_mode(_file_path.c_str(), O_CREAT | O_EXCL | O_WRONLY, |
| S_IRUSR | S_IWUSR)); |
| _out_stream->write_to_file(&helper, 0); |
| helper.close(); |
| |
| ASSERT_EQ(OLAP_SUCCESS, |
| helper.open_with_mode(_file_path.c_str(), O_RDONLY, S_IRUSR | S_IWUSR)); |
| |
| _shared_buffer = StorageByteBuffer::create(OLAP_DEFAULT_COLUMN_STREAM_BUFFER_SIZE + |
| sizeof(StreamHead)); |
| ASSERT_TRUE(_shared_buffer != NULL); |
| |
| _stream = new (std::nothrow) |
| ReadOnlyFileStream(&helper, &_shared_buffer, 0, helper.length(), NULL, |
| OLAP_DEFAULT_COLUMN_STREAM_BUFFER_SIZE, &_stats); |
| ASSERT_EQ(OLAP_SUCCESS, _stream->init()); |
| |
| _reader = new (std::nothrow) RunLengthIntegerReader(_stream, true); |
| ASSERT_TRUE(_reader != NULL); |
| } |
| |
| RunLengthIntegerReader* _reader; |
| OutStream* _out_stream; |
| RunLengthIntegerWriter* _writer; |
| FileHandler helper; |
| StorageByteBuffer* _shared_buffer; |
| ReadOnlyFileStream* _stream; |
| OlapReaderStatistics _stats; |
| std::string _file_path = "./ut_dir/tmp_file"; |
| }; |
| |
| TEST_F(TestRunLengthSignInteger, ReadWriteOneInteger) { |
| // write data |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(100)); |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 100); |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, ReadWriteOneInteger2) { |
| // write data |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(1234567800)); |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 1234567800); |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, ReadWriteMultiInteger) { |
| // write data |
| int64_t write_data[] = {100, 101, 104, 107}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, seek) { |
| // write data |
| int64_t write_data[] = {100, 102, 105, 106}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| |
| PositionEntryWriter index_entry; |
| _writer->get_position(&index_entry, false); |
| _writer->write(107); |
| |
| _writer->write(108); |
| _writer->write(109); |
| _writer->write(110); |
| |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| PositionEntryReader entry; |
| entry._positions = index_entry._positions; |
| entry._positions_count = index_entry._positions_count; |
| entry._statistics.init(OLAP_FIELD_TYPE_INT, false); |
| |
| PositionProvider position(&entry); |
| _reader->seek(&position); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 107); |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 108); |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 109); |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 110); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, skip) { |
| // write data |
| int64_t write_data[] = {100, 102, 105, 106}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| _reader->skip(2); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 105); |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, 106); |
| ASSERT_NE(OLAP_SUCCESS, _reader->next(&value)); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, ShortRepeatEncoding) { |
| // write data |
| int64_t write_data[] = {-100, -100, -100, -100}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, DirectEncoding) { |
| // write data |
| int64_t write_data[] = {-1703, -6054, -8760, -902}; |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 4; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthUnsignInteger, ReadWriteMassInteger) { |
| // write data |
| for (int64_t i = 0; i < 100000; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(i)); |
| } |
| |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int64_t i = 0; i < 100000; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, i); |
| } |
| } |
| |
| TEST_F(TestRunLengthSignInteger, PatchedBaseEncoding1) { |
| // write data |
| int64_t write_data[] = { |
| 1703, 6054, -876012345678912, 902, 9292, 184932, 873624, 827364, 999, 8, |
| 1, 3323, 432232523, -90982, 9, 223234, 5, 44, 5, 3}; |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, PatchedBaseEncoding2) { |
| // write data |
| int64_t write_data[] = { |
| -1703, -6054, -876012345678912, -902, -9292, -184932, -873624, -827364, -999, -8, |
| -1, -3323, -432232523, -90982, -9, -223234, -5, -44, -5, -3}; |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| // case for T in [if ((base & mask) != 0)] |
| TEST_F(TestRunLengthSignInteger, PatchedBaseEncoding3) { |
| // write data |
| int64_t write_data[] = { |
| 1703, 6054, 876012345678912, 902, 9292, 184932, 873624, 827364, 999, 888, |
| -300, 3323, 432232523, -90982, 450, 223234, 690, 444, 555, 333}; |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 20; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| // test fo gap > 255 |
| TEST_F(TestRunLengthSignInteger, PatchedBaseEncoding4) { |
| // write data |
| int64_t write_data[] = {300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 300, |
| 6054, |
| 902, |
| 9292, |
| 184932, |
| 873624, |
| 827364, |
| 999, |
| 888, |
| 1703, |
| 3323, |
| 432232523, |
| 90982, |
| 450, |
| 223234, |
| 690, |
| 444, |
| 555, |
| 333, |
| 232, |
| 876012345678912}; |
| |
| for (int32_t i = 0; i < 281; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 281; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| // test for [if (max_gap == 511)] |
| TEST_F(TestRunLengthSignInteger, PatchedBaseEncoding5) { |
| // write data |
| int64_t write_data[] = { |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 432232523, 90982, 450, 223234, 690, 444, 555, 333, 232, |
| 300, 6054, 902, 9292, 184932, 873624, 827364, 999, 888, 1703, |
| 3323, 876012345678912}; |
| |
| for (int32_t i = 0; i < 512; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 512; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| // this case use to test large negative number. |
| // The minimum of data sequence is -84742859065569280, |
| // the positive form is 84742859065569280. |
| // It is a 57 bit width integer and used 8 byte to encoding it. |
| // The byte number is encoding as (8-1) = 7, in 111 binary form. |
| TEST_F(TestRunLengthSignInteger, PatchedBaseEncoding6) { |
| // write data |
| int64_t write_data[] = { |
| -17887939293638656, -15605417571528704, -15605417571528704, -13322895849418752, |
| -13322895849418752, -84742859065569280, -15605417571528704, -13322895849418752, |
| -13322895849418752, -15605417571528704, -13322895849418752, -13322895849418752, |
| -15605417571528704, -15605417571528704, -13322895849418752, -13322895849418752, |
| -15605417571528704, -15605417571528704, -13322895849418752, -13322895849418752, |
| -11040374127308800, -15605417571528704, -13322895849418752, -13322895849418752, |
| -15605417571528704, -15605417571528704, -13322895849418752, -13322895849418752, |
| -15605417571528704, -13322895849418752}; |
| for (int32_t i = 0; i < 30; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 30; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, DirectEncodingForDeltaOverflows1) { |
| // write data |
| int64_t write_data[] = {4513343538618202711, 2911390882471569739, -9181829309989854913}; |
| for (int32_t i = 0; i < 3; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 3; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| TEST_F(TestRunLengthSignInteger, DirectEncodingForDeltaOverflows2) { |
| // write data |
| int64_t write_data[388] = {-10655366027330, |
| -8, |
| -8, |
| 17062988027150, |
| 33791751739027, |
| 11226586316144, |
| 28085455533984, |
| 3809037113342, |
| 4519464927340, |
| 7057442420685, |
| 14594401530747, |
| 51297588056932, |
| 22756638885750, |
| 33503880074496, |
| 37462526094279, |
| 2768357503914, |
| 10013218679000, |
| 9782540355504, |
| 14191567385952, |
| 7500449144168, |
| 52986427404273, |
| 34061223404544, |
| 41158355187480, |
| 30231130071318, |
| 59156080720623, |
| 5229947056790, |
| 15537038856150, |
| 63126198469920, |
| 3285383272432, |
| 35686846610326, |
| 1408668367602, |
| 3506863240250, |
| 38486027140122, |
| 74694461322614, |
| 5631517623023, |
| 1071278551640, |
| 60280539267507, |
| 55998488499421, |
| 15148183576420, |
| 9345266527488, |
| 92610339730326, |
| 4760991023496, |
| 5809785829925, |
| 4727943945615, |
| 45024286170204, |
| 9430751906642, |
| 9104898240000, |
| 1310787469233, |
| 19485266345637, |
| 5211360444059, |
| 13671501255270, |
| 29025205412982, |
| 16589693255688, |
| 5550737611815, |
| 55740247673420, |
| 4416290119582, |
| 5285248047529, |
| 36719742782763, |
| 25526635256587, |
| 469124468760, |
| 23302498025820, |
| 15213356460134, |
| 39178120907751, |
| 3663022204884, |
| 12383207229348, |
| 26476189044888, |
| 3016879997537, |
| 40542785494057, |
| 27113842491675, |
| 22895214591884, |
| 10417880862400, |
| 41668786286070, |
| 9444820760988, |
| 4868267611350, |
| 95075547166521, |
| 31102600536052, |
| 3984468754330, |
| 18604973210352, |
| 14995789569131, |
| 31920766994781, |
| 1683419132059, |
| 23882256010288, |
| 31188556951272, |
| 21582097820895, |
| 3392728705744, |
| 49134949965522, |
| 71017521225855, |
| 2954016986940, |
| 39104716002146, |
| 849942233098, |
| 13757131707844, |
| 134503055610, |
| 3609965787162, |
| 5092516507104, |
| 15030981322468, |
| 13161768499404, |
| 21216129648768, |
| 37101803372970, |
| 37101803372970, |
| 2847403596440, |
| 8709398658448, |
| 17409277451720, |
| 1765292210160, |
| 12794111172864, |
| 59395030132284, |
| 25700056122869, |
| 3617518482435, |
| 10096266209660, |
| 603359572452, |
| 14638639926830, |
| 47440669759700, |
| 541260539624, |
| 30978788863282, |
| 696405704526, |
| 18657155830038, |
| 8940665549457, |
| 48888857992884, |
| 61600635324852, |
| 62348216229282, |
| 36737996974800, |
| 23412718588072, |
| 39733566705126, |
| 24349931484564, |
| 8726400511488, |
| 53728914318592, |
| 33230740766440, |
| 5598927206656, |
| 62807536003975, |
| 59361934257815, |
| 12281154081596, |
| 60614594920391, |
| 55896003656892, |
| 12410592819768, |
| 26900986612464, |
| 27212849083404, |
| 4081661384017, |
| 62807128313880, |
| 10390915208885, |
| 19067862634200, |
| 54951638814317, |
| 6813715526592, |
| 55668241923840, |
| 10385258308992, |
| 449478352872, |
| 5773207377695, |
| 7951085473750, |
| 8075739133609, |
| 3474440407650, |
| 12804432172290, |
| 54059206249468, |
| 41060766380882, |
| 32370112924240, |
| 14089711019310, |
| 20756475257231, |
| 12027575432880, |
| 18022828219993, |
| 2876759174844, |
| 3428645976585, |
| 10428044444020, |
| 83396752046512, |
| 53899236887790, |
| 2436412807160, |
| 58240905226752, |
| 49366625937140, |
| 37105861727280, |
| 8612969542385, |
| 73033645852629, |
| 43369958815872, |
| 7261355608605, |
| 39209192629850, |
| 52609810587480, |
| 43476360891080, |
| 5041062521194, |
| 38576540661093, |
| 68017667314375, |
| 13432761019896, |
| 5464942964090, |
| 43050750861745, |
| 19350242905500, |
| 75097467074637, |
| 2556614854921, |
| 37718643408480, |
| 213620237510, |
| 6724311130250, |
| 25457500052952, |
| 489516376431, |
| 11514465298138, |
| 717063515668, |
| 26446350217560, |
| 6756064528605, |
| 33085247961173, |
| 42923416365802, |
| 24304783775635, |
| 38572198977000, |
| 30768510004640, |
| 15169698546850, |
| 11126988953456, |
| 19972411935195, |
| 3128825910344, |
| 41008728739248, |
| 9593284980500, |
| 71039982484735, |
| 32594940903700, |
| 1833067856312, |
| 30457700317302, |
| 1581398691678, |
| 20232754466668, |
| 1176823804850, |
| 15276320639355, |
| 8945917123286, |
| 18919341601824, |
| 21678108350498, |
| 11552006037852, |
| 23919732805330, |
| 11335293921846, |
| 42481509203406, |
| 2122540078032, |
| 12644802041058, |
| 57724114297590, |
| 4260375471943, |
| 22854679188447, |
| 1679805810144, |
| 20920530725100, |
| 79680508970004, |
| 4822078070025, |
| 21021229791528, |
| 51167989737960, |
| 165090524909, |
| 25873285104027, |
| 46513810563360, |
| 3575825256938, |
| 34059047115978, |
| 19806749124512, |
| 78800618138484, |
| 28322771215728, |
| 1706728554744, |
| 3278090395233, |
| 23320617333774, |
| 12703326279678, |
| 2607629313708, |
| 2539395442752, |
| 28015716713200, |
| 10300326647150, |
| 30128043086820, |
| 54595159345500, |
| 13060160042787, |
| 10655366027330, |
| 17062988027150, |
| 57029084625870, |
| 7756250581905, |
| 76771656574558, |
| 4510750676015, |
| 21874347427140, |
| 3200391993042, |
| 44103009370141, |
| 57277463673026, |
| 1018187154816, |
| 46506687921519, |
| 34421816854665, |
| 2676955231764, |
| 47301429307040, |
| 3547510780001, |
| 46639125075628, |
| 17055804956334, |
| 1646477501284, |
| 2478078885625, |
| 54398069002768, |
| 31340183949950, |
| 49221902712600, |
| 36419457248232, |
| 13122452465580, |
| 10185432189606, |
| 74024622661290, |
| 17301062652176, |
| 76970388164508, |
| 62373552781812, |
| 6841468343550, |
| 59793356788000, |
| 19225236462716, |
| 32388898413606, |
| 6187897297975, |
| 6187897297975, |
| 17420000862880, |
| 53547183179125, |
| 28894759120032, |
| 24398977402333, |
| 24813328904455, |
| 28037560402170, |
| 8374290597420, |
| 4350223211799, |
| 17455283786332, |
| 63688413624321, |
| 57562099045760, |
| 33975883005192, |
| 18354742508025, |
| 16639404261926, |
| 58997385417308, |
| 6803575242456, |
| 37764812164226, |
| 84538481394123, |
| 4965525257607, |
| 121662980560, |
| 7029409232880, |
| 31220248346100, |
| 68137270368096, |
| 26037399196380, |
| 44447384771070, |
| 10695793870605, |
| 25448023325214, |
| 92664298126772, |
| 7339073401512, |
| 8807332093230, |
| 10372293259380, |
| 54867075540795, |
| 497219901781, |
| 69741834972537, |
| 18310069153200, |
| 3089795662998, |
| 2555983074092, |
| 27136123982275, |
| 45588802330695, |
| 784447977666, |
| 8592621213364, |
| 16042005794780, |
| 48914398341200, |
| 39352870745600, |
| 13745169930000, |
| 22896230019150, |
| 3674063255112, |
| 6936424673580, |
| 20715482731050, |
| 962371484361, |
| 59719596050289, |
| 24836189653956, |
| 27890432977132, |
| 10416225687015, |
| 37371930733881, |
| 16641855346480, |
| 1243415213082, |
| 7024777702423, |
| 15056326461072, |
| 237522450780, |
| 8654097255216, |
| 1935692634400, |
| 48149720268700, |
| 22018394580560, |
| 4353414553674, |
| 233342798248, |
| 1689195367328, |
| 73349430633813, |
| 16579193709760, |
| 47254775444604, |
| 5751774863052, |
| 4168272591177, |
| 56466991266759, |
| 10403807615696, |
| 30368152985625, |
| 23805779365764, |
| 1751347115141, |
| 686411646452, |
| 10942582463904, |
| 37051912941344, |
| 66573514373520, |
| 5193629914880, |
| 10276936700310, |
| 45333683755358, |
| 5369872937250, |
| 19870592423202, |
| 44901818802729, |
| 1984995522276, |
| 38210789175216, |
| 13140877390832, |
| 36472949862774, |
| 11003144677000, |
| 34026969817136, |
| 68246909413281, |
| 9480783308290, |
| 8927412760982, |
| 44662728145200, |
| 4559499822921, |
| 13378660270086, |
| 50432177305629, |
| 33536986417717, |
| 8548419242610, |
| 43216481118384, |
| 37549778463076, |
| 2, |
| 9223372036854775807}; |
| |
| for (int32_t i = 0; i < 388; i++) { |
| ASSERT_EQ(OLAP_SUCCESS, _writer->write(write_data[i])); |
| } |
| ASSERT_EQ(OLAP_SUCCESS, _writer->flush()); |
| |
| // read data |
| CreateReader(); |
| |
| for (int32_t i = 0; i < 388; i++) { |
| ASSERT_TRUE(_reader->has_next()); |
| int64_t value = 0; |
| ASSERT_EQ(OLAP_SUCCESS, _reader->next(&value)); |
| ASSERT_EQ(value, write_data[i]); |
| } |
| |
| ASSERT_FALSE(_reader->has_next()); |
| } |
| |
| } // namespace doris |
| |
| int main(int argc, char** argv) { |
| int ret = doris::OLAP_SUCCESS; |
| testing::InitGoogleTest(&argc, argv); |
| ret = RUN_ALL_TESTS(); |
| google::protobuf::ShutdownProtobufLibrary(); |
| return ret; |
| } |