| 3051 | |
| 3052 | template <typename ExpectedType> |
| 3053 | void TestAppendValues() { |
| 3054 | using CType = typename TypeTraits<ExpectedType>::CType; |
| 3055 | auto type = TypeTraits<ExpectedType>::type_singleton(); |
| 3056 | |
| 3057 | std::vector<uint64_t> values( |
| 3058 | {0, std::numeric_limits<CType>::min(), std::numeric_limits<CType>::max()}); |
| 3059 | std::vector<CType> expected_values( |
| 3060 | {0, std::numeric_limits<CType>::min(), std::numeric_limits<CType>::max()}); |
| 3061 | ArrayFromVector<ExpectedType, CType>(expected_values, &expected_); |
| 3062 | |
| 3063 | SetUp(); |
| 3064 | ASSERT_OK(builder_->AppendValues(values.data(), values.size())); |
| 3065 | AssertTypeEqual(*builder_->type(), *type); |
| 3066 | ASSERT_EQ(builder_->length(), static_cast<int64_t>(values.size())); |
| 3067 | Done(); |
| 3068 | ASSERT_EQ(builder_->length(), 0); |
| 3069 | AssertArraysEqual(*expected_, *result_); |
| 3070 | |
| 3071 | // Reuse builder |
| 3072 | builder_->Reset(); |
| 3073 | AssertTypeEqual(*builder_->type(), *uint8()); |
| 3074 | ASSERT_OK(builder_->AppendValues(values.data(), values.size())); |
| 3075 | AssertTypeEqual(*builder_->type(), *type); |
| 3076 | ASSERT_EQ(builder_->length(), static_cast<int64_t>(values.size())); |
| 3077 | Done(); |
| 3078 | ASSERT_EQ(builder_->length(), 0); |
| 3079 | AssertArraysEqual(*expected_, *result_); |
| 3080 | } |
| 3081 | |
| 3082 | protected: |
| 3083 | std::shared_ptr<AdaptiveUIntBuilder> builder_; |
nothing calls this directly
no test coverage detected