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))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.