data(efc) test_that("data_group attributes", { x <- data_group(efc, "c172code") expect_identical( attributes(x)$groups, structure( list( c172code = c(1, 2, 3, NA), .rows = list( c(3L, 14L, 30L, 32L, 36L, 77L, 91L, 99L), c( 1L, 2L, 4L, 5L, 6L, 7L, 8L, 10L, 11L, 12L, 16L, 17L, 18L, 21L, 22L, 23L, 24L, 25L, 26L, 28L, 29L, 31L, 33L, 34L, 35L, 37L, 38L, 39L, 40L, 42L, 44L, 45L, 46L, 47L, 50L, 51L, 52L, 53L, 54L, 56L, 57L, 59L, 60L, 62L, 65L, 68L, 69L, 71L, 72L, 73L, 76L, 78L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 88L, 90L, 92L, 93L, 96L, 100L ), c( 13L, 15L, 19L, 20L, 27L, 41L, 43L, 55L, 58L, 64L, 66L, 67L, 74L, 75L, 79L, 89L ), c(9L, 48L, 49L, 61L, 63L, 70L, 94L, 95L, 97L, 98L) ) ), row.names = c(2L, 1L, 4L, 3L), class = "data.frame", .drop = TRUE ) ) expect_s3_class(x, "grouped_df") }) test_that("data_group attributes", { skip_if_not_installed("poorman") x <- data_group(efc, "c172code") out <- poorman::summarise(x, mw = mean(c12hour, na.rm = TRUE)) expect_equal(out$mw, c(87.125, 94.046875, 75), tolerance = 1e-3) }) # select helpers ------------------------------ test_that("data_group regex", { expect_identical( attributes(data_group(mtcars, select = "yl", regex = TRUE))$groups[[1]], sort(unique(mtcars$cyl)) ) }) test_that("data_ungroup works", { x <- data_group(efc, "c172code") attr(x, "foo") <- TRUE ungrouped <- data_ungroup(x) expect_false(inherits(ungrouped, "grouped_df")) expect_true(attributes(x)$foo) })