| 2778 | |
| 2779 | template <typename ExpectedType> |
| 2780 | void TestAppendValues() { |
| 2781 | using CType = typename TypeTraits<ExpectedType>::CType; |
| 2782 | auto type = TypeTraits<ExpectedType>::type_singleton(); |
| 2783 | |
| 2784 | std::vector<int64_t> values( |
| 2785 | {0, std::numeric_limits<CType>::min(), std::numeric_limits<CType>::max()}); |
| 2786 | std::vector<CType> expected_values( |
| 2787 | {0, std::numeric_limits<CType>::min(), std::numeric_limits<CType>::max()}); |
| 2788 | ArrayFromVector<ExpectedType, CType>(expected_values, &expected_); |
| 2789 | |
| 2790 | SetUp(); |
| 2791 | ASSERT_OK(builder_->AppendValues(values.data(), values.size())); |
| 2792 | AssertTypeEqual(*builder_->type(), *type); |
| 2793 | ASSERT_EQ(builder_->length(), static_cast<int64_t>(values.size())); |
| 2794 | Done(); |
| 2795 | ASSERT_EQ(builder_->length(), 0); |
| 2796 | AssertArraysEqual(*expected_, *result_); |
| 2797 | |
| 2798 | // Reuse builder |
| 2799 | builder_->Reset(); |
| 2800 | AssertTypeEqual(*builder_->type(), *int8()); |
| 2801 | ASSERT_OK(builder_->AppendValues(values.data(), values.size())); |
| 2802 | AssertTypeEqual(*builder_->type(), *type); |
| 2803 | ASSERT_EQ(builder_->length(), static_cast<int64_t>(values.size())); |
| 2804 | Done(); |
| 2805 | ASSERT_EQ(builder_->length(), 0); |
| 2806 | AssertArraysEqual(*expected_, *result_); |
| 2807 | } |
| 2808 | |
| 2809 | protected: |
| 2810 | std::shared_ptr<AdaptiveIntBuilder> builder_; |
nothing calls this directly
no test coverage detected