tests/testthat/test-fmapg.R

test_that("fmapg applies function to grouped data", {
  df <- data.frame(
    id = rep(1:3, each = 2),
    value = c(10, 20, 30, 40, 50, 60)
  )

  out <- fmapg(df, function(group) sum(group$value), by = "id")

  expect_length(out, 3)
  expect_true(all(sapply(out, is.numeric)))
})

test_that("fmapg supports parallel execution with progress", {
  skip_on_cran()
  df <- data.frame(
    g = rep(letters[1:4], each = 5),
    x = rnorm(20)
  )

  out <- fmapg(df, function(gr) mean(gr$x), by = "g", ncores = 2, pb = TRUE)

  expect_equal(length(out), 4)
  expect_true(all(sapply(out, is.numeric)))
})

test_that("fmapg errors with missing group variables", {
  df <- data.frame(a = 1:3)
  expect_error(fmapg(df, identity, by = "missing_column"))
})

Try the functionals package in your browser

Any scripts or data that you put into this service are public.

functionals documentation built on Aug. 8, 2025, 7:32 p.m.