| 987 | } |
| 988 | |
| 989 | void VerifyParquetStats() { |
| 990 | ASSERT_OK_AND_ASSIGN(auto pbuffer, parquet_sink_->Finish()); |
| 991 | |
| 992 | // Create a ParquetReader instance |
| 993 | std::unique_ptr<parquet::ParquetFileReader> parquet_reader = |
| 994 | parquet::ParquetFileReader::Open( |
| 995 | std::make_shared<::arrow::io::BufferReader>(pbuffer)); |
| 996 | |
| 997 | // Get the File MetaData |
| 998 | std::shared_ptr<parquet::FileMetaData> file_metadata = parquet_reader->metadata(); |
| 999 | std::shared_ptr<parquet::RowGroupMetaData> rg_metadata = file_metadata->RowGroup(0); |
| 1000 | for (int i = 0; i < static_cast<int>(fields_.size()); i++) { |
| 1001 | ARROW_SCOPED_TRACE("Statistics for field #", i); |
| 1002 | std::shared_ptr<parquet::ColumnChunkMetaData> cc_metadata = |
| 1003 | rg_metadata->ColumnChunk(i); |
| 1004 | EXPECT_EQ(stats_[i].min(), cc_metadata->statistics()->EncodeMin()); |
| 1005 | EXPECT_EQ(stats_[i].max(), cc_metadata->statistics()->EncodeMax()); |
| 1006 | EXPECT_EQ(stats_[i].is_max_value_exact, std::make_optional(true)); |
| 1007 | EXPECT_EQ(stats_[i].is_min_value_exact, std::make_optional(true)); |
| 1008 | } |
| 1009 | } |
| 1010 | |
| 1011 | protected: |
| 1012 | std::vector<c_type> values_; |
no test coverage detected