test_that("read_parquet_row_group", { tmp <- tempfile(fileext = ".parquet") on.exit(unlink(tmp), add = TRUE) un <- function(x) { x <- as.data.frame(x) rownames(x) <- NULL x } do <- function(df, encoding = NULL) { write_parquet( df, tmp, row_groups = c(1L, 11L, 21L, 31L) ) expect_snapshot(as.data.frame(read_parquet_metadata(tmp)$row_groups)[-1]) expect_equal(un(read_parquet_row_group(tmp, 0L)), un(df[1:10,])) expect_equal(un(read_parquet_row_group(tmp, 1L)), un(df[11:20,])) expect_equal(un(read_parquet_row_group(tmp, 2L)), un(df[21:30,])) expect_equal(un(read_parquet_row_group(tmp, 3L)), un(df[31:32,])) } do(test_df(), encoding = "PLAIN") do(test_df(missing = TRUE), encoding = "PLAIN") do(test_df(), encoding = c(large = "RLE", "RLE_DICTIONARY")) do(test_df(missing = TRUE), encoding = c(large = "RLE", "RLE_DICTIONARY")) })