MCPcopy Create free account
hub / github.com/apache/arrow / TEST

Function TEST

cpp/src/parquet/level_conversion_test.cc:47–74  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45}
46
47TEST(TestColumnReader, DefLevelsToBitmap) {
48 // Bugs in this function were exposed in ARROW-3930
49 std::vector<int16_t> def_levels = {3, 3, 3, 2, 3, 3, 3, 3, 3};
50
51 std::vector<uint8_t> valid_bits(2, 0);
52
53 LevelInfo level_info;
54 level_info.def_level = 3;
55 level_info.rep_level = 1;
56
57 ValidityBitmapInputOutput io;
58 io.values_read_upper_bound = def_levels.size();
59 io.values_read = -1;
60 io.valid_bits = valid_bits.data();
61
62 internal::DefLevelsToBitmap(def_levels.data(), 9, level_info, &io);
63 ASSERT_EQ(9, io.values_read);
64 ASSERT_EQ(1, io.null_count);
65
66 // Call again with 0 definition levels, make sure that valid_bits is unmodified
67 const uint8_t current_byte = valid_bits[1];
68 io.null_count = 0;
69 internal::DefLevelsToBitmap(def_levels.data(), 0, level_info, &io);
70
71 ASSERT_EQ(0, io.values_read);
72 ASSERT_EQ(0, io.null_count);
73 ASSERT_EQ(current_byte, valid_bits[1]);
74}
75
76TEST(TestColumnReader, DefLevelsToBitmapPowerOfTwo) {
77 // PARQUET-1623: Invalid memory access when decoding a valid bits vector that has a

Callers

nothing calls this directly

Calls 7

DefLevelsToBitmapFunction · 0.85
GreaterThanBitmapFunction · 0.85
BitmapToStringFunction · 0.70
checkFunction · 0.50
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected