tests/testthat/test-class_inheritance.R

context("Class Inheritance")


test_that("inherit() returns NAs when expected", {
  expect_equal(inherit(c(20, NA, NA, 10, NA)),
               c(20, 20, 20, 10, 10))
  expect_equal(inherit(c(NA, 20, NA, 10, NA)),
               c(NA, 20, 20, 10, 10))
  expect_equal(inherit(c(NA, NA, NA, 10, NA)),
               c(NA, NA, NA, 10, 10))
  expect_equal(inherit(c(NA, NA, NA, NA, NA)),
               c(NA, NA, NA, NA, NA))
})


#' class_variants(c("A", "B"), c("", "(T)", "(TS)"))
#' class_variants(c("A", "B"), c("", "(T)"))
#' class_variants(c("A", "B"), c(""))

test_that("class_variants() returns expected vectors", {
  class.vec <- c("D", "C", "B", "A")

  expect_equal(class_variants(class.vec, ""), class.vec)
  expect_equal(class_variants(class.vec, c("", "(T)")),
               c("D", "D(T)", "C", "C(T)", "B", "B(T)",
                 "A", "A(T)"))
  expect_equal(class_variants(class.vec, c("", "(T)", "(TS)")),
               c("D", "D(T)", "D(TS)",
                 "C", "C(T)", "C(TS)",
                 "B", "B(T)", "B(TS)",
                 "A", "A(T)", "A(TS)"))
  expect_equal(class_variants(class.vec, c(NULL, "T")), class.vec)

})

test_that("class_variants() returns errors for presence of NA and duplicates in vectors", {
  expect_error(class_variants(c("D", NA), ""))
  expect_error(class_variants("D", c("", "(T)", NA)))
  expect_error(class_variants(c("D", "D"), c("", "(T)", "(TS)")))
  expect_error(class_variants(c("D", "C", "D"), c("", "(T)", "(TS)")))
  expect_error(class_variants(c("D", "C"), c("", "(T)", "(T)")))
  expect_error(class_variants(c("D", "C"), c("", "(T)", "")))
})


test_that("class_inheritance() returns warning", {

  test.df <- tibble::tibble(
    param = c("TP"),
    class_col = factor(c("D", "C", "A-Special", "AA")),
    threshold = list(20, 10, 5, 10)
  )
  expect_warning(class_inheritance(test.df, class_col))
})

test_that("class_inheritance() returns expected data frame", {

  test.df <- tibble::tibble(
    param = c("TP"),
    class_col = factor(c("D", "C", "A-Special", "AA")),
    threshold = c(20)
  )

  answer_test.df <- tibble::tibble(
    param = c("TP"),
    class_col = factor(c("D", "C", "A-Special", "AA")),
    threshold = c(20, 10, 5, 10)
  )
  expect_equal(class_inheritance(test.df, class_col))
})
BWAM/wqs documentation built on March 24, 2020, 5:26 p.m.