# ==================================================================== # # TITLE # # Antimicrobial Resistance (AMR) Analysis # # # # AUTHORS # # Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl) # # # # LICENCE # # This package is free software; you can redistribute it and/or modify # # it under the terms of the GNU General Public License version 2.0, # # as published by the Free Software Foundation. # # # # This R package is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License version 2.0 for more details. # # ==================================================================== # context("eucast_rules.R") test_that("EUCAST rules work", { expect_error(suppressWarnings(eucast_rules(septic_patients, col_mo = "Non-existing"))) expect_identical(colnames(septic_patients), colnames(suppressWarnings(eucast_rules(septic_patients)))) a <- data.frame(mo = c("KLEPNE", # Klebsiella pneumoniae "PSEAER", # Pseudomonas aeruginosa "ENTAER"), # Enterobacter aerogenes amox = "-", # Amoxicillin stringsAsFactors = FALSE) b <- data.frame(mo = c("KLEPNE", # Klebsiella pneumoniae "PSEAER", # Pseudomonas aeruginosa "ENTAER"), # Enterobacter aerogenes amox = "R", # Amoxicillin stringsAsFactors = FALSE) expect_identical(suppressWarnings(eucast_rules(a, "mo", info = FALSE)), b) expect_identical(suppressWarnings(eucast_rules(a, "mo", info = TRUE)), b) expect_identical(suppressWarnings(interpretive_reading(a, "mo", info = TRUE)), b) a <- data.frame(mo = c("STAAUR", # Staphylococcus aureus "STCGRA"), # Streptococcus pyognenes (Lancefield Group A) coli = "-", # Colistin stringsAsFactors = FALSE) b <- data.frame(mo = c("STAAUR", # Staphylococcus aureus "STCGRA"), # Streptococcus pyognenes (Lancefield Group A) coli = "R", # Colistin stringsAsFactors = FALSE) expect_equal(suppressWarnings(eucast_rules(a, "mo", info = FALSE)), b) # piperacillin must be R in Enterobacteriaceae when tica is R library(dplyr) expect_equal(suppressWarnings( septic_patients %>% mutate(tica = as.rsi("R"), pipe = as.rsi("S")) %>% eucast_rules(col_mo = "mo") %>% left_join_microorganisms() %>% filter(family == "Enterobacteriaceae") %>% pull(pipe) %>% unique() %>% as.character()), "R") # azit and clar must be equal to eryt a <- suppressWarnings( septic_patients %>% transmute(mo, eryt, azit = as.rsi("R"), clar = as.rsi("R")) %>% eucast_rules(col_mo = "mo") %>% pull(clar)) b <- suppressWarnings( septic_patients %>% select(mo, eryt) %>% eucast_rules(col_mo = "mo") %>% pull(eryt)) expect_identical(a[!is.na(b)], b[!is.na(b)]) # amox is inferred by benzylpenicillin in Kingella kingae expect_equal( as.list(eucast_rules( data.frame(mo = as.mo("Kingella kingae"), peni = "S", amox = "-", stringsAsFactors = FALSE) , info = FALSE))$amox, "S") # also test norf expect_output(suppressWarnings(eucast_rules(septic_patients %>% mutate(norf = "S", nali = "S")))) # check verbose output expect_output(suppressWarnings(eucast_rules(septic_patients, verbose = TRUE))) })