| 540 | |
| 541 | template <typename DType, typename c_type = typename DType::c_type> |
| 542 | void AssertColumnIndex(const std::shared_ptr<ColumnIndex>& column_index, |
| 543 | const std::vector<int64_t>& expected_null_counts, |
| 544 | const std::vector<c_type>& expected_min_values, |
| 545 | const std::vector<c_type>& expected_max_values) { |
| 546 | auto typed_column_index = |
| 547 | std::dynamic_pointer_cast<TypedColumnIndex<DType>>(column_index); |
| 548 | ASSERT_NE(typed_column_index, nullptr); |
| 549 | ASSERT_EQ(typed_column_index->null_counts(), expected_null_counts); |
| 550 | if constexpr (std::is_same_v<FLBAType, DType>) { |
| 551 | ASSERT_EQ(typed_column_index->min_values().size(), expected_min_values.size()); |
| 552 | ASSERT_EQ(typed_column_index->max_values().size(), expected_max_values.size()); |
| 553 | for (size_t i = 0; i < expected_min_values.size(); ++i) { |
| 554 | ASSERT_EQ( |
| 555 | FixedLenByteArrayToString(typed_column_index->min_values()[i], kFixedLength), |
| 556 | FixedLenByteArrayToString(expected_min_values[i], kFixedLength)); |
| 557 | } |
| 558 | for (size_t i = 0; i < expected_max_values.size(); ++i) { |
| 559 | ASSERT_EQ( |
| 560 | FixedLenByteArrayToString(typed_column_index->max_values()[i], kFixedLength), |
| 561 | FixedLenByteArrayToString(expected_max_values[i], kFixedLength)); |
| 562 | } |
| 563 | } else { |
| 564 | ASSERT_EQ(typed_column_index->min_values(), expected_min_values); |
| 565 | ASSERT_EQ(typed_column_index->max_values(), expected_max_values); |
| 566 | } |
| 567 | } |
| 568 | |
| 569 | void FileDecryptor::CheckPageIndex( |
| 570 | parquet::ParquetFileReader* file_reader, |
nothing calls this directly
no test coverage detected