more unit tests

This commit is contained in:
dr. M.S. (Matthijs) Berends 2018-10-09 15:41:44 +02:00
parent 95c9fdc552
commit 67521394f6
4 changed files with 23 additions and 13 deletions

2
R/mo.R
View File

@ -182,7 +182,7 @@ exec_as.mo <- function(x, Becker = FALSE, Lancefield = FALSE, allow_uncertain =
# defined df to check for
if (!is.null(reference_df)) {
if (!is.data.frame(reference_df) | NCOL(reference_df) < 2) {
stop('`reference_df` must be a data.frame with at least two columns.')
stop('`reference_df` must be a data.frame with at least two columns.', call. = FALSE)
}
# remove factors, just keep characters
suppressWarnings(

View File

@ -231,16 +231,7 @@ mo_property <- function(x, property = 'fullname', language = NULL, ...) {
stop("invalid property: '", property, "' - use a column name of the `microorganisms` data set")
}
# this will give a warning if x cannot be coerced
res <- exec_as.mo(x = x, Becker = Becker, Lancefield = Lancefield, property = property)
if (property != "tsn") {
res[x %in% c("", NA) | res %in% c("", NA, "(no MO)")] <- ""
if (property %in% c("fullname", "shortname", "genus", "species", "subspecies", "type", "gramstain")) {
res <- mo_translate(res, language = language)
}
}
res
mo_translate(mo_validate(x = x, property = property, ...), language = language)
}
#' @rdname mo_property

View File

@ -165,7 +165,15 @@ test_that("as.mo works", {
expect_equal(as.character(as.mo(c("TestingOwnID", "E. coli"),
reference_df = data.frame(a = "TestingOwnID", b = "B_ESCHR_COL"))),
c("B_ESCHR_COL", "B_ESCHR_COL"))
expect_warning(as.character(as.mo("TestingOwnID",
reference_df = NULL)))
expect_warning(as.mo("TestingOwnID", reference_df = NULL))
expect_error(as.mo("E. coli", reference_df = data.frame(a = "TestingOwnID")))
# combination of existing mo and certe
expect_identical(as.character(as.mo(c("B_ESCHR_COL", "ESCCOL"))),
c("B_ESCHR_COL", "B_ESCHR_COL"))
# TSN of prevalent and non prevalent ones
expect_equal(mo_TSN(c("Gomphosphaeria aponina delicatula", "Escherichia coli")),
c(717, 285))
})

View File

@ -12,6 +12,7 @@ test_that("mo_property works", {
expect_equal(mo_fullname("E. coli"), "Escherichia coli")
expect_equal(mo_type("E. coli", language = "en"), "Bacteria")
expect_equal(mo_gramstain("E. coli", language = "en"), "Gram negative")
expect_equal(mo_TSN("E. coli"), 285)
expect_equal(class(mo_taxonomy("E. coli")), "list")
expect_equal(names(mo_taxonomy("E. coli")), c("subkingdom", "phylum", "class", "order",
"family", "genus", "species", "subspecies"))
@ -42,4 +43,14 @@ test_that("mo_property works", {
expect_error(mo_gramstain("E. coli", language = "UNKNOWN"))
# manual property function
expect_error(mo_property("E. coli", property = c("tsn", "fullname")))
expect_error(mo_property("E. coli", property = "UNKNOWN"))
expect_identical(mo_property("E. coli", property = "fullname"),
mo_fullname("E. coli"))
expect_identical(mo_property("E. coli", property = "genus"),
mo_genus("E. coli"))
expect_identical(mo_property("E. coli", property = "species"),
mo_species("E. coli"))
})