tests/testthat/test-reverse-map-seq.R

# Define example data -----------------------------------------------------

df_schlim <- tibble::tibble(y = 16:100, n = 3:87)
df_grim <- pigs1
df_debit <- pigs3


# Create a mock `*_seq()` function ----------------------------------------

schlim_scalar <- function(y, n) {
  y <- as.numeric(y)
  n <- as.numeric(n)
  y / 3 > n
}

schlim_map <- function(data) {
  y <- data$y
  n <- data$n
  consistency <- purrr::map2_lgl(y, n, schlim_scalar)
  out <- tibble::tibble(y, n, consistency)
  out <- add_class(out, "scr_schlim_map")  # See section "S3 classes" below
  out
}

schlim_map_seq <- function_map_seq(
  .fun = schlim_map,
  .reported = c("y", "n"),
  .name_test = "SCHLIM",
  .name_class = "scr_schlim_map_seq"
)


# Apply the reversal ------------------------------------------------------

df_schlim_rec <- df_schlim %>%
  schlim_map_seq(include_consistent = TRUE) %>%
  reverse_map_seq()

df_grim_rec <- df_grim %>%
  grim_map_seq(include_consistent = TRUE) %>%
  reverse_map_seq()

df_debit_rec <- df_debit %>%
  debit_map_seq(include_consistent = TRUE) %>%
  reverse_map_seq()


# Test for equality with the original -------------------------------------

test_that("It works with SCHLIM (toy test)", {
  df_schlim %>% expect_equal(df_schlim_rec)
})

test_that("It works with GRIM", {
  df_grim %>% expect_equal(df_grim_rec)
})

test_that("It works with DEBIT", {
  df_debit %>% expect_equal(df_debit_rec)
})

Try the scrutiny package in your browser

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

scrutiny documentation built on Sept. 22, 2024, 9:06 a.m.