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

Method testCopyRangesFromAllNulls

bolt/vector/tests/VectorTest.cpp:628–673  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

626 }
627
628 void testCopyRangesFromAllNulls(
629 const VectorPtr& vector,
630 const VectorPtr& allNullSource) {
631 SCOPED_TRACE(vector->toString());
632
633 const vector_size_t size = 1'000;
634
635 ASSERT_GE(vector->size(), size);
636
637 // Save a copy of the 'vector' to compare results after copy.
638 auto vectorCopy = BaseVector::copy(*vector);
639
640 std::vector<BaseVector::CopyRange> rangesToCopy = {
641 {0, 0, 7},
642 {10, 12, 5},
643 {100, 500, 79},
644 {200, 601, 1},
645 {990, 950, 10},
646 };
647
648 std::vector<BaseVector::CopyRange> rangesToKeep = {
649 {0, 7, 5},
650 {0, 17, 500 - 17},
651 {0, 579, 601 - 579},
652 {0, 602, 950 - 602},
653 {0, 960, 40},
654 };
655
656 vector->copyRanges(allNullSource.get(), rangesToCopy);
657
658 for (const auto& range : rangesToCopy) {
659 for (auto i = 0; i < range.count; ++i) {
660 EXPECT_TRUE(vector->isNullAt(range.targetIndex + i));
661 }
662 }
663
664 for (const auto& range : rangesToKeep) {
665 for (auto i = 0; i < range.count; ++i) {
666 auto index = range.targetIndex + i;
667 EXPECT_FALSE(vector->isNullAt(index));
668 EXPECT_TRUE(vector->equalValueAt(vectorCopy.get(), index, index))
669 << "at " << index << ": " << vector->toString(index) << " vs. "
670 << vectorCopy->toString(index);
671 }
672 }
673 }
674
675 static void testSlice(
676 const VectorPtr& vec,

Callers

nothing calls this directly

Calls 7

equalValueAtMethod · 0.80
copyFunction · 0.50
toStringMethod · 0.45
sizeMethod · 0.45
copyRangesMethod · 0.45
getMethod · 0.45
isNullAtMethod · 0.45

Tested by

no test coverage detected