From 499c830ee7780e79866eed3b7bb1891378469a72 Mon Sep 17 00:00:00 2001 From: Matthijs Berends Date: Mon, 9 Feb 2026 13:16:36 +0100 Subject: [PATCH] (v3.0.1.9020) unit test fixes --- DESCRIPTION | 4 ++-- NEWS.md | 2 +- R/aa_helper_functions.R | 5 ----- R/interpretive_rules.R | 15 ++++++++++++--- R/key_antimicrobials.R | 4 +++- data/example_isolates.rda | Bin 23388 -> 24364 bytes man/interpretive_rules.Rd | 20 +++++++++++--------- tests/testthat/test-sir.R | 20 ++++++++++++-------- tests/testthat/test-translate.R | 2 +- 9 files changed, 42 insertions(+), 30 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 943f76434..03430d621 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 3.0.1.9019 -Date: 2026-02-08 +Version: 3.0.1.9020 +Date: 2026-02-09 Title: Antimicrobial Resistance Data Analysis Description: Functions to simplify and standardise antimicrobial resistance (AMR) data analysis and to work with microbial and antimicrobial properties by diff --git a/NEWS.md b/NEWS.md index 0d71f378f..0ce89e0e0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# AMR 3.0.1.9019 +# AMR 3.0.1.9020 ### New * Integration with the **tidymodels** framework to allow seamless use of SIR, MIC and disk data in modelling pipelines via `recipes` diff --git a/R/aa_helper_functions.R b/R/aa_helper_functions.R index f32e2f0fd..9c13f8632 100644 --- a/R/aa_helper_functions.R +++ b/R/aa_helper_functions.R @@ -498,11 +498,6 @@ word_wrap <- function(..., url = paste0("ide:help:AMR::", gsub("()", "", parts[cmds & parts %like% "[.]"], fixed = TRUE)), txt = parts[cmds & parts %like% "[.]"] ) - # otherwise, give a 'click to run' popup - parts[cmds & parts %unlike% "[.]"] <- font_url( - url = paste0("ide:run:AMR::", parts[cmds & parts %unlike% "[.]"]), - txt = parts[cmds & parts %unlike% "[.]"] - ) # datasets should give help page as well parts[parts %in% c("antimicrobials", "microorganisms", "microorganisms.codes", "microorganisms.groups")] <- font_url( url = paste0("ide:help:AMR::", gsub("()", "", parts[parts %in% c("antimicrobials", "microorganisms", "microorganisms.codes", "microorganisms.groups")], fixed = TRUE)), diff --git a/R/interpretive_rules.R b/R/interpretive_rules.R index 1e709e066..02b3094ae 100755 --- a/R/interpretive_rules.R +++ b/R/interpretive_rules.R @@ -164,9 +164,9 @@ format_eucast_version_nr <- function(version, markdown = TRUE) { #' eucast_dosage(c("tobra", "genta", "cipro"), "iv", version_breakpoints = 10) interpretive_rules <- function(x, col_mo = NULL, - guideline = getOption("AMR_guideline", "EUCAST"), info = interactive(), rules = getOption("AMR_interpretive_rules", default = c("breakpoints", "expected_phenotypes")), + guideline = getOption("AMR_guideline", "EUCAST"), verbose = FALSE, version_breakpoints = 15.0, version_expected_phenotypes = 1.2, @@ -190,6 +190,11 @@ interpretive_rules <- function(x, meet_criteria(custom_rules, allow_class = "custom_eucast_rules", allow_NULL = TRUE) meet_criteria(overwrite, allow_class = "logical", has_length = 1) + stop_if( + guideline == "CLSI", + "CLSI guideline is not yet supported." + ) + stop_if( !is.na(ampc_cephalosporin_resistance) && !any(c("expert", "all") %in% rules), "For the `ampc_cephalosporin_resistance` argument to work, the `rules` argument must contain `\"expert\"` or `\"all\"`." @@ -1103,20 +1108,24 @@ interpretive_rules <- function(x, #' @rdname interpretive_rules #' @export eucast_rules <- function(x, + col_mo = NULL, + info = interactive(), rules = getOption("AMR_interpretive_rules", default = c("breakpoints", "expected_phenotypes")), ...) { if (!is.null(getOption("AMR_eucastrules", default = NULL))) { warning_("The global option `AMR_eucastrules` that you have set is now invalid was ignored - set `AMR_interpretive_rules` instead. See `?AMR-options`.") } - interpretive_rules(x = x, guideline = "EUCAST", rules = rules, ...) + interpretive_rules(x = x, col_mo = col_mo, info = info, rules = rules, guideline = "EUCAST", ...) } #' @rdname interpretive_rules #' @export clsi_rules <- function(x, + col_mo = NULL, + info = interactive(), rules = getOption("AMR_interpretive_rules", default = c("breakpoints", "expected_phenotypes")), ...) { - interpretive_rules(x = x, guideline = "CLSI", rules = rules, ...) + interpretive_rules(x = x, col_mo = col_mo, info = info, rules = rules, guideline = "CLSI", ...) } # helper function for editing the table ---- diff --git a/R/key_antimicrobials.R b/R/key_antimicrobials.R index 1ead34817..516b527fc 100755 --- a/R/key_antimicrobials.R +++ b/R/key_antimicrobials.R @@ -314,7 +314,9 @@ antimicrobials_equal <- function(y, key2sir <- function(val) { val <- strsplit(val, "", fixed = TRUE)[[1L]] - as.double(as.sir(val)) + val.int <- rep(NA_real_, length(val)) + val.int[val %in% VALID_SIR_LEVELS] <- as.double(as.sir(val[val %in% VALID_SIR_LEVELS])) + val.int } # only run on uniques uniq <- unique(c(y, z)) diff --git a/data/example_isolates.rda b/data/example_isolates.rda index bb1308843df5b336f4c0e771783f05d41ea8c8cf..034e147a4723bd2bdfb613765afa834a720b29d2 100644 GIT binary patch literal 24364 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.125")), mo = "E. coli", ab = "Cipro", guideline = "EUCAST 2025", breakpoint_type = "ECOFF", capped_mic_handling = "conservative") out3 <- as.sir(as.mic(c("0.125", "<0.125", ">0.125")), mo = "E. coli", ab = "Cipro", guideline = "EUCAST 2025", breakpoint_type = "ECOFF", capped_mic_handling = "standard") out4 <- as.sir(as.mic(c("0.125", "<0.125", ">0.125")), mo = "E. coli", ab = "Cipro", guideline = "EUCAST 2025", breakpoint_type = "ECOFF", capped_mic_handling = "lenient") - expect_equal(out1, as.sir(c("R", "R", "R"))) - expect_equal(out2, as.sir(c("R", "NI", "R"))) - expect_equal(out3, as.sir(c("R", "S", "R"))) - expect_equal(out4, as.sir(c("R", "S", "R"))) + expect_equal(out1, as.sir(c("NWT", "NWT", "NWT"))) + expect_equal(out2, as.sir(c("NWT", "NI", "NWT"))) + expect_equal(out3, as.sir(c("NWT", "WT", "NWT"))) + expect_equal(out4, as.sir(c("NWT", "WT", "NWT"))) # Parallel computing ---------------------------------------------------- diff --git a/tests/testthat/test-translate.R b/tests/testthat/test-translate.R index 28dae6721..a22ad14ac 100644 --- a/tests/testthat/test-translate.R +++ b/tests/testthat/test-translate.R @@ -40,7 +40,7 @@ test_that("test-translate.R", { expect_identical(mo_fullname("CoNS", "es"), "Staphylococcus coagulasa negativo (SCN)") expect_identical(mo_fullname("CoNS", "fi"), "Koagulaasinegatiivinen stafylokokki (KNS)") expect_identical(mo_fullname("CoNS", "fr"), "Staphylococcus à coagulase négative (CoNS)") - expect_identical(mo_fullname("CoNS", "it"), "Staphylococcus negativo coagulasi (CoNS)") + expect_identical(mo_fullname("CoNS", "it"), "Stafilococco coagulasi-negativo (CoNS)") expect_identical(mo_fullname("CoNS", "ja"), "コアグラーゼ陰性ブドウ球菌 (グラム陰性)") expect_identical(mo_fullname("CoNS", "nl"), "Coagulase-negatieve Staphylococcus (CNS)") expect_identical(mo_fullname("CoNS", "no"), "Koagulase-negative stafylokokker (KNS)")