| 2728 | |
| 2729 | template <typename ExpectedType> |
| 2730 | void TestAppendValues() { |
| 2731 | using CType = typename TypeTraits<ExpectedType>::CType; |
| 2732 | auto type = TypeTraits<ExpectedType>::type_singleton(); |
| 2733 | |
| 2734 | std::vector<int64_t> values( |
| 2735 | {0, std::numeric_limits<CType>::min(), std::numeric_limits<CType>::max()}); |
| 2736 | std::vector<CType> expected_values( |
| 2737 | {0, std::numeric_limits<CType>::min(), std::numeric_limits<CType>::max()}); |
| 2738 | ArrayFromVector<ExpectedType, CType>(expected_values, &expected_); |
| 2739 | |
| 2740 | SetUp(); |
| 2741 | ASSERT_OK(builder_->AppendValues(values.data(), values.size())); |
| 2742 | AssertTypeEqual(*builder_->type(), *type); |
| 2743 | ASSERT_EQ(builder_->length(), static_cast<int64_t>(values.size())); |
| 2744 | Done(); |
| 2745 | ASSERT_EQ(builder_->length(), 0); |
| 2746 | AssertArraysEqual(*expected_, *result_); |
| 2747 | |
| 2748 | // Reuse builder |
| 2749 | builder_->Reset(); |
| 2750 | AssertTypeEqual(*builder_->type(), *int8()); |
| 2751 | ASSERT_OK(builder_->AppendValues(values.data(), values.size())); |
| 2752 | AssertTypeEqual(*builder_->type(), *type); |
| 2753 | ASSERT_EQ(builder_->length(), static_cast<int64_t>(values.size())); |
| 2754 | Done(); |
| 2755 | ASSERT_EQ(builder_->length(), 0); |
| 2756 | AssertArraysEqual(*expected_, *result_); |
| 2757 | } |
| 2758 | |
| 2759 | protected: |
| 2760 | std::shared_ptr<AdaptiveIntBuilder> builder_; |
nothing calls this directly
no test coverage detected