| 1599 | }; |
| 1600 | |
| 1601 | TEST_P(TestCodec, SmallFileMetadataAndValues) { |
| 1602 | std::unique_ptr<ParquetFileReader> reader_ = |
| 1603 | ParquetFileReader::OpenFile(GetSmallDataFile()); |
| 1604 | std::shared_ptr<RowGroupReader> group = reader_->RowGroup(0); |
| 1605 | const auto rg_metadata = group->metadata(); |
| 1606 | |
| 1607 | // This file only has 4 rows |
| 1608 | ASSERT_EQ(4, reader_->metadata()->num_rows()); |
| 1609 | // This file only has 3 columns |
| 1610 | ASSERT_EQ(3, reader_->metadata()->num_columns()); |
| 1611 | // This file only has 1 row group |
| 1612 | ASSERT_EQ(1, reader_->metadata()->num_row_groups()); |
| 1613 | |
| 1614 | // This row group must have 4 rows |
| 1615 | ASSERT_EQ(4, rg_metadata->num_rows()); |
| 1616 | |
| 1617 | // Some parquet-cpp versions are susceptible to PARQUET-2008 |
| 1618 | const auto& app_ver = reader_->metadata()->writer_version(); |
| 1619 | const bool allow_uncompressed_mismatch = |
| 1620 | (app_ver.application_ == "parquet-cpp" && app_ver.version.major == 1 && |
| 1621 | app_ver.version.minor == 5 && app_ver.version.patch == 1); |
| 1622 | |
| 1623 | CheckRowGroupMetadata(rg_metadata, allow_uncompressed_mismatch); |
| 1624 | |
| 1625 | // column 0, c0 |
| 1626 | auto col0 = checked_pointer_cast<Int64Reader>(group->Column(0)); |
| 1627 | std::vector<int64_t> expected_values = {1593604800, 1593604800, 1593604801, 1593604801}; |
| 1628 | AssertColumnValues(col0, 4, 4, expected_values, 4); |
| 1629 | |
| 1630 | // column 1, c1 |
| 1631 | std::vector<ByteArray> expected_byte_arrays = {ByteArray("abc"), ByteArray("def"), |
| 1632 | ByteArray("abc"), ByteArray("def")}; |
| 1633 | auto col1 = checked_pointer_cast<ByteArrayReader>(group->Column(1)); |
| 1634 | AssertColumnValues(col1, 4, 4, expected_byte_arrays, 4); |
| 1635 | |
| 1636 | // column 2, v11 |
| 1637 | std::vector<double> expected_double_values = {42.0, 7.7, 42.125, 7.7}; |
| 1638 | auto col2 = checked_pointer_cast<DoubleReader>(group->Column(2)); |
| 1639 | AssertColumnValues(col2, 4, 4, expected_double_values, 4); |
| 1640 | } |
| 1641 | |
| 1642 | TEST_P(TestCodec, LargeFileValues) { |
| 1643 | // Test codec with a larger data file such data may have been compressed |
nothing calls this directly
no test coverage detected