From 707b67bf7c11f67c25d65945d7e14aafefef57fc Mon Sep 17 00:00:00 2001 From: Panchen Xue Date: Tue, 23 Jan 2018 13:53:08 -0500 Subject: [PATCH] ARROW-1712: [C++] Fix lint errors --- cpp/src/arrow/array-test.cc | 30 +++++++++++++++++------------- cpp/src/arrow/builder.cc | 6 +++--- cpp/src/arrow/builder.h | 2 +- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/cpp/src/arrow/array-test.cc b/cpp/src/arrow/array-test.cc index a2be323a13385..c53da8591e94e 100644 --- a/cpp/src/arrow/array-test.cc +++ b/cpp/src/arrow/array-test.cc @@ -1154,40 +1154,44 @@ TEST_F(TestBinaryBuilder, TestScalarAppend) { } } } - + TEST_F(TestBinaryBuilder, TestCapacityReserve) { - vector strings = {"aaaaa", "bbbbbbbbbb", "ccccccccccccccc", "dddddddddddddddddddd", "eeeeeeeeee"}; + vector strings = {"aaaaa", "bbbbbbbbbb", "ccccccccccccccc", "dddddddddd"}; int N = static_cast(strings.size()); - int reps = 10; + int reps = 15; int64_t length = 0; int64_t capacity = 1000; - + int64_t expected_capacity = BitUtil::RoundUpToMultipleOf64(capacity); + ASSERT_OK(builder_->ReserveData(capacity)); - + ASSERT_EQ(length, builder_->value_data_length()); - ASSERT_EQ(BitUtil::RoundUpToMultipleOf64(capacity), builder_->value_data_capacity()); - + ASSERT_EQ(expected_capacity, builder_->value_data_capacity()); + for (int j = 0; j < reps; ++j) { for (int i = 0; i < N; ++i) { ASSERT_OK(builder_->Append(strings[i])); length += static_cast(strings[i].size()); - + ASSERT_EQ(length, builder_->value_data_length()); - ASSERT_EQ(BitUtil::RoundUpToMultipleOf64(capacity), builder_->value_data_capacity()); + ASSERT_EQ(expected_capacity, builder_->value_data_capacity()); } } - + int extra_capacity = 500; + expected_capacity = BitUtil::RoundUpToMultipleOf64(length + extra_capacity); + ASSERT_OK(builder_->ReserveData(extra_capacity)); ASSERT_EQ(length, builder_->value_data_length()); - ASSERT_EQ(BitUtil::RoundUpToMultipleOf64(length + extra_capacity), builder_->value_data_capacity()); + ASSERT_EQ(expected_capacity, builder_->value_data_capacity()); Done(); + ASSERT_EQ(reps * N, result_->length()); ASSERT_EQ(0, result_->null_count()); - ASSERT_EQ(reps * 60, result_->value_data()->size()); - ASSERT_EQ(BitUtil::RoundUpToMultipleOf64(length + extra_capacity), result_->value_data()->capacity()); + ASSERT_EQ(reps * 40, result_->value_data()->size()); + ASSERT_EQ(expected_capacity, result_->value_data()->capacity()); } TEST_F(TestBinaryBuilder, TestZeroLength) { diff --git a/cpp/src/arrow/builder.cc b/cpp/src/arrow/builder.cc index e5765a028ad5a..db901526fc2ee 100644 --- a/cpp/src/arrow/builder.cc +++ b/cpp/src/arrow/builder.cc @@ -1225,14 +1225,14 @@ Status BinaryBuilder::Resize(int64_t capacity) { RETURN_NOT_OK(offsets_builder_.Resize((capacity + 1) * sizeof(int32_t))); return ArrayBuilder::Resize(capacity); } - + Status BinaryBuilder::ReserveData(int64_t elements) { if (value_data_length() + elements > value_data_capacity()) { if (value_data_length() + elements > std::numeric_limits::max()) { - return Status::Invalid("Cannot reserve capacity larger than 2^31 - 1 in length for binary data"); + return Status::Invalid("Cannot reserve capacity larger than 2^31 - 1 for binary"); } RETURN_NOT_OK(value_data_builder_.Reserve(elements)); - } + } return Status::OK(); } diff --git a/cpp/src/arrow/builder.h b/cpp/src/arrow/builder.h index 49c43b27ef6a4..d1611f60cd924 100644 --- a/cpp/src/arrow/builder.h +++ b/cpp/src/arrow/builder.h @@ -682,7 +682,7 @@ class ARROW_EXPORT BinaryBuilder : public ArrayBuilder { Status Init(int64_t elements) override; Status Resize(int64_t capacity) override; - /// \brief Ensures there is enough allocated capacity to append the indicated + /// \brief Ensures there is enough allocated capacity to append the indicated /// number of bytes to the value data buffer without additional allocations Status ReserveData(int64_t elements); Status FinishInternal(std::shared_ptr* out) override;