tests/testthat/test_check.R

context("Checking values with a white-list")

# data for tests ---------------------------------------------

data(explorer_wl)
data_to_check <- data.frame(
  targ = c("13C-Propionyl", "14C-Propionyl"), # not permitted values
  isotope = c("13C", "14C"), # not permitted values
  curve_plot = c("Propionyl", "Propionyl"),
  media = c("LGLI", "RPMI"),
  donor = c("Aja", "TJ"),
  tx_challenge_abstract = c("13C-ILE", "13C-KIVA")
)

# check_names() --------------------------------------------------

test_that("check_names() works", {
  expect_true(check_names(data_to_check, explorer_wl))
  expect_false(check_names(data_to_check[-1], explorer_wl))
})

# check_values() --------------------------------------------------

test_that("check_values() works", {
  expect_false(check_values(data_to_check, explorer_wl))
  expect_true(check_values(data_to_check[-(1:2)], explorer_wl))
  expect_type(
    check_values(data_to_check, explorer_wl, return_bad = T),
    "list"
  )
})

# closest_matches() --------------------------------------------------

test_that("closest_matches() works", {
  expect_equivalent(
    closest_matches("LGLI+", explorer_wl$media),
    "LGLI"
  )
  expect_equivalent(
    closest_matches("LGLI+", explorer_wl$media, margin = 5),
    c("LGLI", "RPMI")
  )
})

test_that("closest_match() plays nice with multi-alias targets, eg CXCL1/GROa, CHIT3/YKL40", {
  expect_identical(
    closest_matches("GROa", c("CXCL1/GROa", "CXCL4", "GROb")),
    c("CXCL1/GROa", "GROb")
  )
  expect_identical(
    closest_matches("CXCL1", c("CXCL1/GROa", "CXCL4", "GROb")),
    c("CXCL1/GROa", "CXCL4")
  )
  expect_identical(
    closest_matches("YKL-40", c("IL-40", "CHI3L1/YKL40", "MCP1")),
    c("CHI3L1/YKL40", "IL-40")
  )
})

# check_and_match() --------------------------------------------------
# hard to test directly, due to interactivity
test_that("check_and_match() works", {
  expect_error(check_and_match(data_to_check))
})
hemoshear/assayr2 documentation built on Nov. 8, 2019, 6:13 p.m.