2018-12-16 22:45:12 +01:00
|
|
|
# ==================================================================== #
|
|
|
|
# TITLE #
|
2021-02-02 23:57:35 +01:00
|
|
|
# Antimicrobial Resistance (AMR) Data Analysis for R #
|
2018-12-16 22:45:12 +01:00
|
|
|
# #
|
2019-01-02 23:24:07 +01:00
|
|
|
# SOURCE #
|
2020-07-08 14:48:06 +02:00
|
|
|
# https://github.com/msberends/AMR #
|
2018-12-16 22:45:12 +01:00
|
|
|
# #
|
|
|
|
# LICENCE #
|
2020-12-27 00:30:28 +01:00
|
|
|
# (c) 2018-2021 Berends MS, Luz CF et al. #
|
2020-10-08 11:16:03 +02:00
|
|
|
# Developed at the University of Groningen, the Netherlands, in #
|
|
|
|
# collaboration with non-profit organisations Certe Medical #
|
|
|
|
# Diagnostics & Advice, and University Medical Center Groningen. #
|
2018-12-16 22:45:12 +01:00
|
|
|
# #
|
2019-01-02 23:24:07 +01:00
|
|
|
# This R package is free software; you can freely use and distribute #
|
|
|
|
# it for both personal and commercial purposes under the terms of the #
|
|
|
|
# GNU General Public License version 2.0 (GNU GPL-2), as published by #
|
|
|
|
# the Free Software Foundation. #
|
2020-01-05 17:22:09 +01:00
|
|
|
# We created this package for both routine data analysis and academic #
|
|
|
|
# research and it was publicly released in the hope that it will be #
|
|
|
|
# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. #
|
2020-10-08 11:16:03 +02:00
|
|
|
# #
|
|
|
|
# Visit our website for the full manual and a complete tutorial about #
|
2021-02-02 23:57:35 +01:00
|
|
|
# how to conduct AMR data analysis: https://msberends.github.io/AMR/ #
|
2018-12-16 22:45:12 +01:00
|
|
|
# ==================================================================== #
|
|
|
|
|
2018-08-25 22:01:14 +02:00
|
|
|
context("mic.R")
|
2018-03-27 17:43:42 +02:00
|
|
|
|
|
|
|
test_that("mic works", {
|
2020-07-31 10:50:08 +02:00
|
|
|
skip_on_cran()
|
2018-03-27 17:43:42 +02:00
|
|
|
expect_true(as.mic(8) == as.mic("8"))
|
|
|
|
expect_true(as.mic("1") > as.mic("<=0.0625"))
|
|
|
|
expect_true(as.mic("1") < as.mic(">=32"))
|
|
|
|
expect_true(is.mic(as.mic(8)))
|
2021-03-07 13:52:39 +01:00
|
|
|
|
2018-03-27 17:43:42 +02:00
|
|
|
expect_equal(as.double(as.mic(">=32")), 32)
|
2018-08-24 11:08:20 +02:00
|
|
|
expect_equal(as.numeric(as.mic(">=32")), 32)
|
2018-03-27 17:43:42 +02:00
|
|
|
expect_equal(as.integer(as.mic(">=32")), 32)
|
|
|
|
expect_equal(suppressWarnings(as.logical(as.mic("INVALID VALUE"))), NA)
|
2021-03-07 13:52:39 +01:00
|
|
|
|
2018-08-24 11:08:20 +02:00
|
|
|
# all levels should be valid MICs
|
2020-09-25 14:44:50 +02:00
|
|
|
x <- as.mic(c(2, 4))
|
|
|
|
expect_s3_class(x[1], "mic")
|
|
|
|
expect_s3_class(x[[1]], "mic")
|
|
|
|
expect_s3_class(c(x[1], x[9]), "mic")
|
|
|
|
expect_s3_class(unique(x[1], x[9]), "mic")
|
2020-12-13 20:44:32 +01:00
|
|
|
expect_s3_class(droplevels(c(x[1], x[9])), "mic")
|
|
|
|
x[2] <- 32
|
|
|
|
expect_s3_class(x, "mic")
|
2018-08-24 11:08:20 +02:00
|
|
|
expect_warning(as.mic("INVALID VALUE"))
|
2020-09-30 10:24:53 +02:00
|
|
|
|
2020-09-19 15:15:57 +02:00
|
|
|
pdf(NULL) # prevent Rplots.pdf being created
|
|
|
|
expect_silent(barplot(as.mic(c(1, 2, 4, 8))))
|
|
|
|
expect_silent(plot(as.mic(c(1, 2, 4, 8))))
|
2021-02-25 10:33:08 +01:00
|
|
|
expect_silent(plot(as.mic(c(1, 2, 4, 8)), expand = FALSE))
|
|
|
|
expect_silent(plot(as.mic(c(1, 2, 4, 8)), mo = "esco", ab = "cipr"))
|
|
|
|
if (require("ggplot2")) {
|
|
|
|
expect_s3_class(ggplot(as.mic(c(1, 2, 4, 8))), "gg")
|
|
|
|
expect_s3_class(ggplot(as.mic(c(1, 2, 4, 8)), expand = FALSE), "gg")
|
|
|
|
expect_s3_class(ggplot(as.mic(c(1, 2, 4, 8, 32)), mo = "esco", ab = "cipr"), "gg")
|
|
|
|
}
|
2020-09-19 15:15:57 +02:00
|
|
|
expect_output(print(as.mic(c(1, 2, 4, 8))))
|
2020-09-18 16:05:53 +02:00
|
|
|
|
2021-03-07 13:52:39 +01:00
|
|
|
expect_s3_class(summary(as.mic(c(2, 8))), c("summaryDefault", "table"))
|
2020-12-13 20:44:32 +01:00
|
|
|
|
2021-05-13 19:31:47 +02:00
|
|
|
if (require("dplyr")) {
|
|
|
|
expect_output(print(tibble(m = as.mic(2:4))))
|
|
|
|
}
|
2018-03-27 17:43:42 +02:00
|
|
|
})
|
2021-03-07 13:52:39 +01:00
|
|
|
|
|
|
|
test_that("mathematical functions on mic work", {
|
|
|
|
skip_on_cran()
|
|
|
|
x <- random_mic(50)
|
|
|
|
x_double <- as.double(gsub("[<=>]+", "", as.character(x)))
|
|
|
|
suppressWarnings(expect_identical(mean(x), mean(x_double)))
|
|
|
|
suppressWarnings(expect_identical(median(x), median(x_double)))
|
|
|
|
suppressWarnings(expect_identical(quantile(x), quantile(x_double)))
|
|
|
|
suppressWarnings(expect_identical(abs(x), abs(x_double)))
|
|
|
|
suppressWarnings(expect_identical(sign(x), sign(x_double)))
|
|
|
|
suppressWarnings(expect_identical(sqrt(x), sqrt(x_double)))
|
|
|
|
suppressWarnings(expect_identical(floor(x), floor(x_double)))
|
|
|
|
suppressWarnings(expect_identical(ceiling(x), ceiling(x_double)))
|
|
|
|
suppressWarnings(expect_identical(trunc(x), trunc(x_double)))
|
|
|
|
suppressWarnings(expect_identical(round(x), round(x_double)))
|
|
|
|
suppressWarnings(expect_identical(signif(x), signif(x_double)))
|
|
|
|
suppressWarnings(expect_identical(exp(x), exp(x_double)))
|
|
|
|
suppressWarnings(expect_identical(log(x), log(x_double)))
|
|
|
|
suppressWarnings(expect_identical(log10(x), log10(x_double)))
|
|
|
|
suppressWarnings(expect_identical(log2(x), log2(x_double)))
|
|
|
|
suppressWarnings(expect_identical(expm1(x), expm1(x_double)))
|
|
|
|
suppressWarnings(expect_identical(log1p(x), log1p(x_double)))
|
|
|
|
suppressWarnings(expect_identical(cos(x), cos(x_double)))
|
|
|
|
suppressWarnings(expect_identical(sin(x), sin(x_double)))
|
|
|
|
suppressWarnings(expect_identical(tan(x), tan(x_double)))
|
|
|
|
suppressWarnings(expect_identical(cospi(x), cospi(x_double)))
|
|
|
|
suppressWarnings(expect_identical(sinpi(x), sinpi(x_double)))
|
|
|
|
suppressWarnings(expect_identical(tanpi(x), tanpi(x_double)))
|
|
|
|
suppressWarnings(expect_identical(acos(x), acos(x_double)))
|
|
|
|
suppressWarnings(expect_identical(asin(x), asin(x_double)))
|
|
|
|
suppressWarnings(expect_identical(atan(x), atan(x_double)))
|
|
|
|
suppressWarnings(expect_identical(cosh(x), cosh(x_double)))
|
|
|
|
suppressWarnings(expect_identical(sinh(x), sinh(x_double)))
|
|
|
|
suppressWarnings(expect_identical(tanh(x), tanh(x_double)))
|
|
|
|
suppressWarnings(expect_identical(acosh(x), acosh(x_double)))
|
|
|
|
suppressWarnings(expect_identical(asinh(x), asinh(x_double)))
|
|
|
|
suppressWarnings(expect_identical(atanh(x), atanh(x_double)))
|
|
|
|
suppressWarnings(expect_identical(lgamma(x), lgamma(x_double)))
|
|
|
|
suppressWarnings(expect_identical(gamma(x), gamma(x_double)))
|
|
|
|
suppressWarnings(expect_identical(digamma(x), digamma(x_double)))
|
|
|
|
suppressWarnings(expect_identical(trigamma(x), trigamma(x_double)))
|
|
|
|
suppressWarnings(expect_identical(cumsum(x), cumsum(x_double)))
|
|
|
|
suppressWarnings(expect_identical(cumprod(x), cumprod(x_double)))
|
|
|
|
suppressWarnings(expect_identical(cummax(x), cummax(x_double)))
|
|
|
|
suppressWarnings(expect_identical(cummin(x), cummin(x_double)))
|
|
|
|
suppressWarnings(expect_identical(!x, !(x_double)))
|
|
|
|
|
|
|
|
suppressWarnings(expect_identical(all(x), all(x_double)))
|
|
|
|
suppressWarnings(expect_identical(any(x), any(x_double)))
|
|
|
|
suppressWarnings(expect_identical(sum(x), sum(x_double)))
|
|
|
|
suppressWarnings(expect_identical(prod(x), prod(x_double)))
|
|
|
|
suppressWarnings(expect_identical(min(x), min(x_double)))
|
|
|
|
suppressWarnings(expect_identical(max(x), max(x_double)))
|
|
|
|
suppressWarnings(expect_identical(range(x), range(x_double)))
|
|
|
|
|
|
|
|
el1 <- random_mic(50)
|
|
|
|
el1_double <- as.double(gsub("[<=>]+", "", as.character(el1)))
|
|
|
|
el2 <- random_mic(50)
|
|
|
|
el2_double <- as.double(gsub("[<=>]+", "", as.character(el2)))
|
|
|
|
suppressWarnings(expect_identical(el1 + el2, el1_double + el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 - el2, el1_double - el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 * el2, el1_double * el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 / el2, el1_double / el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 ^ el2, el1_double ^ el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 %% el2, el1_double %% el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 %/% el2, el1_double %/% el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 & el2, el1_double & el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 | el2, el1_double | el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 == el2, el1_double == el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 != el2, el1_double != el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 < el2, el1_double < el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 <= el2, el1_double <= el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 >= el2, el1_double >= el2_double))
|
|
|
|
suppressWarnings(expect_identical(el1 > el2, el1_double > el2_double))
|
|
|
|
})
|