Skip to content

Commit

Permalink
add a minor test
Browse files Browse the repository at this point in the history
  • Loading branch information
mapleFU committed Jun 11, 2024
1 parent 19709e4 commit f313c60
Showing 1 changed file with 38 additions and 9 deletions.
47 changes: 38 additions & 9 deletions cpp/src/parquet/reader_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1077,7 +1077,24 @@ Column 1
ASSERT_EQ(header_output + dump_output, ss_dump.str());
}

TEST(TestJSONWithLocalFile, JSONOutput) {
class TestJSONWithLocalFile : public ::testing::Test {
public:
static std::string readFromLocalFile(std::string_view localFileName) {
std::stringstream ss;
// empty list means print all
std::list<int> columns;

auto reader =
ParquetFileReader::OpenFile(data_file(localFileName.data()), /*memory_map=*/false,
default_reader_properties());
ParquetFilePrinter printer(reader.get());
printer.JSONPrint(ss, columns, localFileName.data());

return ss.str();
}
};

TEST_F(TestJSONWithLocalFile, JSONOutput) {
std::string json_output = R"###({
"FileName": "alltypes_plain.parquet",
"Version": "1.0",
Expand Down Expand Up @@ -1131,16 +1148,28 @@ TEST(TestJSONWithLocalFile, JSONOutput) {
}
)###";

std::stringstream ss;
// empty list means print all
std::list<int> columns;
std::string json_content = readFromLocalFile("alltypes_plain.parquet");
ASSERT_EQ(json_output, json_content);
}

auto reader =
ParquetFileReader::OpenFile(alltypes_plain(), false, default_reader_properties());
ParquetFilePrinter printer(reader.get());
printer.JSONPrint(ss, columns, "alltypes_plain.parquet");
TEST_F(TestJSONWithLocalFile, JSONOutputFLBA) {
// min-max stats for FLBA contains non-utf8 output, so we don't check
// the whole json output.
std::string json_content = readFromLocalFile("fixed_length_byte_array.parquet");

std::string json_contains = R"###({
"FileName": "fixed_length_byte_array.parquet",
"Version": "1.0",
"CreatedBy": "parquet-mr version 1.13.0-SNAPSHOT (build d057b39d93014fe40f5067ee4a33621e65c91552)",
"TotalRows": "1000",
"NumberOfRowGroups": "1",
"NumberOfRealColumns": "1",
"NumberOfColumns": "1",
"Columns": [
{ "Id": "0", "Name": "flba_field", "PhysicalType": "FIXED_LEN_BYTE_ARRAY(4)", "ConvertedType": "NONE", "LogicalType": {"Type": "None"} }
])###";

ASSERT_EQ(json_output, ss.str());
EXPECT_THAT(json_content, testing::HasSubstr(json_contains));
}

TEST(TestFileReader, BufferedReadsWithDictionary) {
Expand Down

0 comments on commit f313c60

Please sign in to comment.