| 3001 | |
| 3002 | template <typename ExpectedType> |
| 3003 | void TestAppendValues() { |
| 3004 | using CType = typename TypeTraits<ExpectedType>::CType; |
| 3005 | auto type = TypeTraits<ExpectedType>::type_singleton(); |
| 3006 | |
| 3007 | std::vector<uint64_t> values( |
| 3008 | {0, std::numeric_limits<CType>::min(), std::numeric_limits<CType>::max()}); |
| 3009 | std::vector<CType> expected_values( |
| 3010 | {0, std::numeric_limits<CType>::min(), std::numeric_limits<CType>::max()}); |
| 3011 | ArrayFromVector<ExpectedType, CType>(expected_values, &expected_); |
| 3012 | |
| 3013 | SetUp(); |
| 3014 | ASSERT_OK(builder_->AppendValues(values.data(), values.size())); |
| 3015 | AssertTypeEqual(*builder_->type(), *type); |
| 3016 | ASSERT_EQ(builder_->length(), static_cast<int64_t>(values.size())); |
| 3017 | Done(); |
| 3018 | ASSERT_EQ(builder_->length(), 0); |
| 3019 | AssertArraysEqual(*expected_, *result_); |
| 3020 | |
| 3021 | // Reuse builder |
| 3022 | builder_->Reset(); |
| 3023 | AssertTypeEqual(*builder_->type(), *uint8()); |
| 3024 | ASSERT_OK(builder_->AppendValues(values.data(), values.size())); |
| 3025 | AssertTypeEqual(*builder_->type(), *type); |
| 3026 | ASSERT_EQ(builder_->length(), static_cast<int64_t>(values.size())); |
| 3027 | Done(); |
| 3028 | ASSERT_EQ(builder_->length(), 0); |
| 3029 | AssertArraysEqual(*expected_, *result_); |
| 3030 | } |
| 3031 | |
| 3032 | protected: |
| 3033 | std::shared_ptr<AdaptiveUIntBuilder> builder_; |
nothing calls this directly
no test coverage detected