| 1283 | } |
| 1284 | |
| 1285 | void Check(const std::unique_ptr<BuilderType>& builder, bool nullable) { |
| 1286 | int64_t size = builder->length(); |
| 1287 | auto ex_data = Buffer::Wrap(draws_.data(), size); |
| 1288 | |
| 1289 | std::shared_ptr<Buffer> ex_null_bitmap; |
| 1290 | int64_t ex_null_count = 0; |
| 1291 | |
| 1292 | if (nullable) { |
| 1293 | ASSERT_OK_AND_ASSIGN(ex_null_bitmap, internal::BytesToBits(valid_bytes_)); |
| 1294 | ex_null_count = CountNulls(valid_bytes_); |
| 1295 | } else { |
| 1296 | ex_null_bitmap = nullptr; |
| 1297 | } |
| 1298 | |
| 1299 | auto expected = |
| 1300 | std::make_shared<ArrayType>(size, ex_data, ex_null_bitmap, ex_null_count); |
| 1301 | |
| 1302 | std::shared_ptr<Array> out; |
| 1303 | FinishAndCheckPadding(builder.get(), &out); |
| 1304 | |
| 1305 | std::shared_ptr<ArrayType> result = checked_pointer_cast<ArrayType>(out); |
| 1306 | |
| 1307 | // Builder is now reset |
| 1308 | ASSERT_EQ(0, builder->length()); |
| 1309 | ASSERT_EQ(0, builder->capacity()); |
| 1310 | ASSERT_EQ(0, builder->null_count()); |
| 1311 | |
| 1312 | ASSERT_EQ(ex_null_count, result->null_count()); |
| 1313 | ASSERT_TRUE(result->Equals(*expected)); |
| 1314 | } |
| 1315 | |
| 1316 | void FlipValue(CType* ptr) { |
| 1317 | auto byteptr = reinterpret_cast<uint8_t*>(ptr); |
no test coverage detected