tests/testthat/test-collect.R

context("test-collect")

setup({
  df = as.disk.frame(disk.frame:::gen_datatable_synthetic(1e5+11), file.path(tempdir(),"tmp_col_delete"), overwrite=T)
})

test_that("collect works on simple data", {
  df = disk.frame(file.path(tempdir(),"tmp_col_delete"))
  dff = dplyr::collect(df)
  expect_equal(nrow(dff), 1e5+11)
  expect_s3_class(dff, "data.frame")
  expect_s3_class(dff, "data.table")
})

test_that("collect works on lazy stream", {
  df = disk.frame(file.path(tempdir(),"tmp_col_delete"))
  df = cmap(df, lazy = T, ~{
    .x[1:10, ]
  })
  dff = dplyr::collect(df)
  expect_equal(nrow(dff), nchunks(df)*10)
  expect_s3_class(dff, "data.frame")
  expect_s3_class(dff, "data.table")
})

test_that("collect works on lazy stream followed by dplyr", {
  df = disk.frame(file.path(tempdir(),"tmp_col_delete"))
  df = cmap(df, lazy = T, ~{
    .x[1:10, ]
  }) %>% select(id1, id4)
  
  dff = dplyr::collect(df)
  expect_equal(nrow(dff), nchunks(df)*10)
  expect_equal(ncol(dff), 2)
  expect_s3_class(dff, "data.frame")
  expect_s3_class(dff, "data.table")
})


test_that("collect works on dplyr::select followed by lazy", {
  df = disk.frame(file.path(tempdir(),"tmp_col_delete"))
  df = df %>% select(id1, id4) %>%
    cmap.disk.frame(lazy = T, ~{
      .x[1:10, ]
    })
  
  dff = dplyr::collect(df)
  expect_equal(nrow(dff), nchunks(df)*10)
  expect_equal(ncol(dff), 2)
  expect_s3_class(dff, "data.frame")
  expect_s3_class(dff, "data.table")
})


teardown({
  fs::dir_delete(file.path(tempdir(),"tmp_col_delete"))
})
xiaodaigh/disk.frame documentation built on Feb. 3, 2023, 10:04 p.m.