| 522 | } |
| 523 | |
| 524 | void TestScalarAppend() { |
| 525 | std::vector<std::string> strings = {"", "bb", "a", "", "ccc"}; |
| 526 | std::vector<uint8_t> is_valid = {1, 1, 1, 0, 1}; |
| 527 | |
| 528 | int N = static_cast<int>(strings.size()); |
| 529 | int reps = 10; |
| 530 | |
| 531 | for (int j = 0; j < reps; ++j) { |
| 532 | for (int i = 0; i < N; ++i) { |
| 533 | if (!is_valid[i]) { |
| 534 | ASSERT_OK(builder_->AppendNull()); |
| 535 | } else { |
| 536 | ASSERT_OK(builder_->Append(strings[i])); |
| 537 | } |
| 538 | } |
| 539 | } |
| 540 | Done(); |
| 541 | |
| 542 | ASSERT_EQ(reps * N, result_->length()); |
| 543 | ASSERT_EQ(reps, result_->null_count()); |
| 544 | ASSERT_EQ(reps * 6, result_->value_data()->size()); |
| 545 | |
| 546 | CheckStringArray(*result_, strings, is_valid, reps); |
| 547 | } |
| 548 | |
| 549 | void TestScalarAppendUnsafe() { |
| 550 | std::vector<std::string> strings = {"", "bb", "a", "", "ccc"}; |
no test coverage detected