mirror of
https://github.com/msberends/AMR.git
synced 2024-12-24 19:26:12 +01:00
fortify code with more tests
This commit is contained in:
parent
972e923484
commit
4a47e59e6f
5
NEWS
5
NEWS
@ -12,8 +12,9 @@
|
||||
- For parameters of functions `first_isolate`, `EUCAST_rules` the column names are now case-insensitive
|
||||
- Functions `as.rsi` and `as.mic` now add the package name and version as attribute
|
||||
- Expanded README.md
|
||||
- Added unit testing with Travis CI (https://travis-ci.org/msberends/AMR)
|
||||
- Added code coverage checking with Codecov (https://codecov.io/gh/msberends/AMR/tree/master/R)
|
||||
- Added unit testing with the `testthat` package
|
||||
- Added build tests for Linux and macOS using Travis CI (https://travis-ci.org/msberends/AMR)
|
||||
- Added Line coverage checking using CodeCov (https://codecov.io/gh/msberends/AMR/tree/master/R)
|
||||
|
||||
## 0.1.1
|
||||
- `EUCAST_rules` applies for amoxicillin even if ampicillin is missing
|
||||
|
@ -14,18 +14,18 @@ test_that("guess_bactid works", {
|
||||
|
||||
test_that("first isolates work", {
|
||||
# septic_patients contains 1960 out of 2000 first isolates
|
||||
septic_ptns <- septic_patients
|
||||
expect_equal(sum(first_isolate(tbl = septic_ptns,
|
||||
#septic_ptns <- septic_patients
|
||||
expect_equal(sum(first_isolate(tbl = septic_patients,
|
||||
col_date = "date",
|
||||
col_patient_id = "patient_id",
|
||||
col_bactid = "bactid",
|
||||
info = FALSE)), 1960)
|
||||
|
||||
# septic_patients contains 1962 out of 2000 first weighted isolates
|
||||
septic_ptns$keyab <- suppressWarnings(key_antibiotics(septic_ptns))
|
||||
# septic_patients contains 1962 out of 2000 first *weighted* isolates
|
||||
#septic_ptns$keyab <- suppressWarnings(key_antibiotics(septic_ptns))
|
||||
expect_equal(
|
||||
suppressWarnings(sum(
|
||||
first_isolate(tbl = septic_ptns,
|
||||
first_isolate(tbl = septic_patients %>% mutate(keyab = key_antibiotics(.)),
|
||||
col_date = "date",
|
||||
col_patient_id = "patient_id",
|
||||
col_bactid = "bactid",
|
||||
@ -33,4 +33,20 @@ test_that("first isolates work", {
|
||||
type = "keyantibiotics",
|
||||
info = TRUE))),
|
||||
1962)
|
||||
|
||||
# set 1500 random observations to be of specimen type 'Urine'
|
||||
random_rows <- sample(x = 1:2000, size = 1500, replace = FALSE)
|
||||
expect_lt(sum(
|
||||
first_isolate(tbl = mutate(septic_patients,
|
||||
specimen = if_else(row_number() %in% random_rows,
|
||||
"Urine",
|
||||
"Unknown")),
|
||||
col_date = "date",
|
||||
col_patient_id = "patient_id",
|
||||
col_bactid = "bactid",
|
||||
col_specimen = "specimen",
|
||||
filter_specimen = "Urine",
|
||||
info = TRUE)),
|
||||
1501)
|
||||
|
||||
})
|
||||
|
@ -4,15 +4,24 @@ test_that("joins work", {
|
||||
unjoined <- septic_patients
|
||||
inner <- septic_patients %>% inner_join_microorganisms()
|
||||
left <- septic_patients %>% left_join_microorganisms()
|
||||
semi <- septic_patients %>% semi_join_microorganisms()
|
||||
anti <- septic_patients %>% anti_join_microorganisms()
|
||||
suppressWarnings(right <- septic_patients %>% right_join_microorganisms())
|
||||
suppressWarnings(full <- septic_patients %>% full_join_microorganisms())
|
||||
|
||||
|
||||
expect_true(ncol(unjoined) < ncol(inner))
|
||||
expect_true(nrow(unjoined) == nrow(inner))
|
||||
|
||||
|
||||
expect_true(ncol(unjoined) < ncol(left))
|
||||
expect_true(nrow(unjoined) == nrow(left))
|
||||
|
||||
|
||||
expect_true(ncol(semi) == ncol(semi))
|
||||
expect_true(nrow(semi) == nrow(semi))
|
||||
|
||||
expect_true(nrow(anti) == 0)
|
||||
|
||||
expect_true(nrow(unjoined) < nrow(right))
|
||||
expect_true(nrow(unjoined) < nrow(full))
|
||||
|
||||
expect_equal(nrow(left_join_microorganisms("ESCCOL")), 1)
|
||||
})
|
||||
|
@ -2,36 +2,71 @@ context("rsi_analysis.R")
|
||||
|
||||
test_that("rsi works", {
|
||||
# amox resistance in `septic_patients` should be around 53.86%
|
||||
amox_R <- septic_patients %>% summarise(amox = rsi(amox)) %>% pull(amox)
|
||||
expect_equal(amox_R, 0.5386, tolerance = 0.0001)
|
||||
expect_equal(rsi_df(septic_patients,
|
||||
ab = "amox",
|
||||
info = FALSE), 0.5386, tolerance = 0.0001)
|
||||
# and pita+genta susceptibility around 98.09%
|
||||
expect_equal(rsi(septic_patients$amox), 0.5386, tolerance = 0.0001)
|
||||
expect_equal(rsi(septic_patients$amox), 0.5386, tolerance = 0.0001)
|
||||
expect_equal(rsi_df(septic_patients,
|
||||
ab = c("pita", "gent"),
|
||||
interpretation = "S",
|
||||
info = FALSE), 0.9809, tolerance = 0.0001)
|
||||
ab = "amox",
|
||||
info = FALSE),
|
||||
0.5386,
|
||||
tolerance = 0.0001)
|
||||
# pita+genta susceptibility around 98.09%
|
||||
expect_equal(rsi(septic_patients$pita,
|
||||
septic_patients$gent,
|
||||
interpretation = "S",
|
||||
info = TRUE),
|
||||
0.9809,
|
||||
tolerance = 0.0001)
|
||||
expect_equal(rsi_df(septic_patients,
|
||||
ab = c("pita", "gent"),
|
||||
interpretation = "S",
|
||||
info = FALSE),
|
||||
0.9809,
|
||||
tolerance = 0.0001)
|
||||
# mero+pita+genta susceptibility around 98.58%
|
||||
expect_equal(rsi_df(septic_patients,
|
||||
ab = c("mero", "pita", "gent"),
|
||||
interpretation = "IS",
|
||||
info = FALSE),
|
||||
0.9858,
|
||||
tolerance = 0.0001)
|
||||
})
|
||||
|
||||
test_that("prediction of rsi works", {
|
||||
amox_R <- rsi_predict(tbl = septic_patients[which(septic_patients$bactid == "ESCCOL"),],
|
||||
col_ab = "amox",
|
||||
col_date = "date",
|
||||
info = FALSE)
|
||||
amox_R <- amox_R %>% pull("probR")
|
||||
# amox resistance will decrease according to `septic_patients`
|
||||
amox_R <- septic_patients %>%
|
||||
filter(bactid == "ESCCOL") %>%
|
||||
rsi_predict(col_ab = "amox",
|
||||
col_date = "date",
|
||||
info = FALSE) %>%
|
||||
pull("probR")
|
||||
# amox resistance will decrease using dataset `septic_patients`
|
||||
expect_true(amox_R[2] > amox_R[20])
|
||||
expect_error(rsi_predict(tbl = septic_patients[which(septic_patients$bactid == "ESCCOL"),],
|
||||
|
||||
expect_output(rsi_predict(tbl = filter(septic_patients, bactid == "ESCCOL"),
|
||||
model = "binomial",
|
||||
col_ab = "amox",
|
||||
col_date = "date",
|
||||
info = TRUE))
|
||||
expect_output(rsi_predict(tbl = filter(septic_patients, bactid == "ESCCOL"),
|
||||
model = "loglin",
|
||||
col_ab = "amox",
|
||||
col_date = "date",
|
||||
info = TRUE))
|
||||
expect_output(rsi_predict(tbl = filter(septic_patients, bactid == "ESCCOL"),
|
||||
model = "lin",
|
||||
col_ab = "amox",
|
||||
col_date = "date",
|
||||
info = TRUE))
|
||||
|
||||
expect_error(rsi_predict(tbl = filter(septic_patients, bactid == "ESCCOL"),
|
||||
model = "INVALID MODEL",
|
||||
col_ab = "amox",
|
||||
col_date = "date",
|
||||
info = FALSE))
|
||||
expect_error(rsi_predict(tbl = septic_patients[which(septic_patients$bactid == "ESCCOL"),],
|
||||
expect_error(rsi_predict(tbl = filter(septic_patients, bactid == "ESCCOL"),
|
||||
col_ab = "NOT EXISTING COLUMN",
|
||||
col_date = "date",
|
||||
info = FALSE))
|
||||
expect_error(rsi_predict(tbl = septic_patients[which(septic_patients$bactid == "ESCCOL"),],
|
||||
expect_error(rsi_predict(tbl = filter(septic_patients, bactid == "ESCCOL"),
|
||||
col_ab = "amox",
|
||||
col_date = "NOT EXISTING COLUMN",
|
||||
info = FALSE))
|
||||
|
Loading…
Reference in New Issue
Block a user