MCPcopy Create free account
hub / github.com/bytedance/bolt / testCopyFromAllNulls

Method testCopyFromAllNulls

bolt/vector/tests/VectorTest.cpp:554–600  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

552 }
553
554 void testCopyFromAllNulls(
555 const VectorPtr& vector,
556 const VectorPtr& allNullSource) {
557 SCOPED_TRACE(vector->toString());
558
559 const vector_size_t size = 1'000;
560
561 ASSERT_GE(vector->size(), size);
562
563 // Save a copy of the 'vector' to compare results after copy.
564 auto vectorCopy = BaseVector::copy(*vector);
565
566 // Copy every 3-rd row.
567 SelectivityVector rowsToCopy(size, false);
568 for (auto i = 0; i < size; i += 3) {
569 rowsToCopy.setValid(i, true);
570 }
571 rowsToCopy.updateBounds();
572
573 SelectivityVector rowsToKeep(size);
574 rowsToKeep.deselect(rowsToCopy);
575
576 // Copy from row N to N - 10 for N >= 0 and from row N to N for N < 10;
577 std::vector<vector_size_t> toSourceRow(size);
578 for (auto i = 0; i < size; i += 3) {
579 if (i < 10) {
580 toSourceRow[i] = i;
581 } else {
582 toSourceRow[i] = i - 10;
583 }
584 }
585 for (auto canCopyAll : {false, true}) {
586 vector->copy(
587 allNullSource.get(), rowsToCopy, toSourceRow.data(), canCopyAll);
588
589 rowsToCopy.applyToSelected([&](auto row) {
590 EXPECT_TRUE(vector->isNullAt(row)) << "at " << row;
591 });
592
593 rowsToKeep.applyToSelected([&](vector_size_t row) {
594 EXPECT_FALSE(vector->isNullAt(row));
595 EXPECT_TRUE(vector->equalValueAt(vectorCopy.get(), row, row))
596 << "at " << row << ": " << vector->toString(row) << " vs. "
597 << vectorCopy->toString(row);
598 });
599 }
600 }
601
602 void testCopySingleRangeFromAllNulls(
603 const VectorPtr& vector,

Callers

nothing calls this directly

Calls 12

setValidMethod · 0.80
updateBoundsMethod · 0.80
deselectMethod · 0.80
applyToSelectedMethod · 0.80
equalValueAtMethod · 0.80
copyFunction · 0.50
toStringMethod · 0.45
sizeMethod · 0.45
copyMethod · 0.45
getMethod · 0.45
dataMethod · 0.45
isNullAtMethod · 0.45

Tested by

no test coverage detected