1
0
mirror of https://github.com/msberends/AMR.git synced 2024-12-26 06:46:11 +01:00

more unit tests

This commit is contained in:
dr. M.S. (Matthijs) Berends 2018-07-30 00:57:49 +02:00
parent d0a115d995
commit 510e8f22aa
6 changed files with 52 additions and 4 deletions

View File

@ -1,4 +1,6 @@
# 0.2.0.90xx (development version)
**Published on CRAN: (unpublished)**
#### New
* **BREAKING**: `rsi_df` was removed in favour of new functions `R`, `IR`, `SI` and `S` to selectively calculate resistance or susceptibility. These functions use **hybrid evaluation**, which means that calculations are not done in R directly but rather in C++ using the `Rcpp` package, making them 20 to 30 times faster. The function `rsi` still works, but is deprecated.
* **BREAKING**: the methodology for determining first weighted isolates was changed. The antibiotics that are compared between isolates (call *key antibiotics*) to include more first isolates (afterwards called first *weighted* isolates) are now as follows:
@ -53,6 +55,8 @@
* Unit testing for R 3.0 and the latest available release: https://travis-ci.org/msberends/AMR
# 0.2.0 (latest stable version)
**Published on CRAN: 2018-05-03**
#### New
* Full support for Windows, Linux and macOS
* Full support for old R versions, only R-3.0.0 (April 2013) or later is needed (needed packages may have other dependencies)
@ -88,6 +92,8 @@
* Added line coverage checking using CodeCov (https://codecov.io/gh/msberends/AMR/tree/master/R)
# 0.1.1
**Published on CRAN: 2018-03-14**
* `EUCAST_rules` applies for amoxicillin even if ampicillin is missing
* Edited column names to comply with GLIMS, the laboratory information system
* Added more valid MIC values
@ -95,4 +101,6 @@
* Added barplots for `rsi` and `mic` classes
# 0.1.0
**Published on CRAN: 2018-02-22**
* First submission to CRAN.

View File

@ -275,7 +275,7 @@ EUCAST_rules <- function(tbl,
# join to microorganisms data set
if (!tbl %>% pull(col_bactid) %>% is.bactid()) {
# warning("Improve integrity of the `", col_bactid, "` column by transforming it with 'as.bactid'.")
warning("Improve integrity of the `", col_bactid, "` column by transforming it with 'as.bactid'.")
}
tbl <- tbl %>% left_join_microorganisms(by = col_bactid, suffix = c("_tempmicroorganisms", ""))

View File

@ -171,7 +171,7 @@ first_isolate <- function(tbl,
if (!is.na(col_bactid)) {
if (!tbl %>% pull(col_bactid) %>% is.bactid()) {
# warning("Improve integrity of the `", col_bactid, "` column by transforming it with 'as.bactid'.")
warning("Improve integrity of the `", col_bactid, "` column by transforming it with 'as.bactid'.")
}
# join to microorganisms data set
tbl <- tbl %>% left_join_microorganisms(by = col_bactid)

View File

@ -16,7 +16,8 @@ test_that("EUCAST rules work", {
"ENTAER"), # Enterobacter aerogenes
amox = "R", # Amoxicillin
stringsAsFactors = FALSE)
expect_identical(EUCAST_rules(a, info = FALSE), b)
expect_warning(EUCAST_rules(a, info = FALSE))
expect_identical(suppressWarnings(EUCAST_rules(a, info = FALSE)), b)
expect_identical(suppressWarnings(interpretive_reading(a, info = TRUE)), b)
a <- data.frame(bactid =
@ -29,7 +30,7 @@ test_that("EUCAST rules work", {
"STCGRA"), # Streptococcus pyognenes (Lancefield Group A)
coli = "R", # Colistin
stringsAsFactors = FALSE)
expect_equal(EUCAST_rules(a, info = FALSE), b)
expect_equal(suppressWarnings(EUCAST_rules(a, info = FALSE)), b)
})
test_that("MO properties work", {

View File

@ -66,5 +66,20 @@ test_that("frequency table works", {
pull(age) %>%
sort())
# check format
expect_identical(septic_patients %>%
freq(age) %>%
format() %>%
apply(2, class) %>%
unname(),
rep("character", 5))
# check tibble
expect_identical(septic_patients %>%
freq(age) %>%
as_tibble() %>%
class() %>%
.[1],
"tbl_df")
})

View File

@ -43,6 +43,25 @@ test_that("resistance works", {
expect_warning(susceptibility(as.character(septic_patients$amcl,
septic_patients$gent)))
# check for errors
expect_error(IR(septic_patients %>% select(amox, amcl)))
expect_error(IR("test", minimum = "test"))
expect_error(IR("test", as_percent = "test"))
expect_error(S("test", minimum = "test"))
expect_error(S("test", as_percent = "test"))
expect_error(S(septic_patients %>% select(amox, amcl)))
expect_error(S("R", septic_patients %>% select(amox, amcl)))
# check too low amount of isolates
expect_identical(IR(septic_patients$amox, minimum = nrow(septic_patients) + 1),
NA)
expect_identical(S(septic_patients$amox, minimum = nrow(septic_patients) + 1),
NA)
# warning for speed loss
expect_warning(S(septic_patients$amcl, as.character(septic_patients$gent)))
})
test_that("old rsi works", {
@ -129,4 +148,9 @@ test_that("prediction of rsi works", {
col_ab = "amox",
col_date = "NOT EXISTING COLUMN",
info = TRUE))
# almost all E. coli are mero S in the Netherlands :)
expect_error(resistance_predict(tbl = filter(septic_patients, bactid == "ESCCOL"),
col_ab = "mero",
col_date = "date",
info = TRUE))
})