tests/testthat/test-expect_datacomp.R

test_that("expect_valmatch", {
  df1 <- data.frame(key = 1:10, a = rep(1:5, 2), b = rep(0:1, 5), c = rep(c("c", "C"), 5), d = 1:10)
  df2 <- data.frame(key = 1:10, a = rep(1:5, 2), b = rep(0:4, 2), c = rep(c("c", "C"), 5))

  expect_success(expect_valmatch(df2, c(a, c), by = "key", data = df1))
  expect_failure(expect_valmatch(df2, c(a, b), by = "key", data = df1))
  expect_error(expect_valmatch(df2, c(a, d), by = "key", data = df1), "specifies variables that are not common to both data frames")
})


test_that("expect_subset", {
  df <- data.frame(
    k1 = c(1:8, 1),
    k2 = c(rep("a", 3), rep("b", 3), rep("c", 3)),
    x = runif(9)
  )
  df_subset <- df[df$k1 < 4, ]
  df_nonsubset <- rbind(
    df_subset,
    data.frame(k1 = 99, k2 = "z", x = 0)
  )

  expect_success(expect_subset(data = df_subset, data2 = df, by = c("k1", "k2")))
  names(df_subset) <- c("key1", "key2", "x")
  expect_success(expect_subset(data = df_subset, data2 = df, by = c("key1" = "k1", "key2" = "k2")))

  expect_failure(expect_subset(data = df_nonsubset, data2 = df, by = c("k1", "k2")))
  names(df_nonsubset) <- c("key1", "key2", "x")
  expect_failure(expect_subset(data = df_nonsubset, data2 = df, by = c("key1" = "k1", "key2" = "k2")))
})

Try the testdat package in your browser

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

testdat documentation built on Sept. 4, 2023, 1:06 a.m.