Nothing
library(Racmacs)
library(testthat)
context("Merging titers")
# Setup merge tests
titer_merge_tests <- tibble::tribble(
~titers, ~conservative, ~likelihood, ~lispmds, ~conservativesd1, ~likelihoodsd1,
c("*"), "*", "*", "*", "*", "*", # * unchanged
c("10"), "10", "10", "10", "10", "10", # numeric unchanged
c("<10"), "<10", "<10", "<10", "<10", "<10", # less than unchanged
c(">80"), ">80", ">80", ">80", ">80", ">80", # greater than unchanged
c("."), ".", ".", ".", ".", ".", # . unchanged
c(10, 10), "10", "10", "10", "10", "10", # two same numeric, merges same
c("*", "10", "10", "*"), "10", "10", "10", "10", "10", # two same numeric, two *, merges same
c("<10", "<40", "<20", "*"), "<10", "<10", "<10", "<10", "<10", # all less than go to min
c(">10", ">40", ">20", "*"), ">40", ">40", ">40", ">40", ">40", # all greater than to to max
c("10", "160", "2560", "*"), "160", "160", "*", "*", "*", # very variable not set to . (default sd_limit=NA), including *
c("<10", "20", "*", "*"), "<40", "10", "<40", "*", "*", # mix of numeric & less than
c("<10", "20", "*", "."), "<40", "10", "<40", "*", "*", # mix of numeric & less than
c("*", "*", "*", "*"), "*", "*", "*", "*", "*", # all * merge to *
c(".", "."), ".", ".", ".", ".", ".", # all . merge to .
c(".", "*"), "*", "*", "*", "*", "*", # mix of . & * merge to *
c("<20", "20", ">20"), "*", "*", "*", "*", "*", # mix of numeric, less than, and greater than, becomes *
c("<20", "40", ">10", "."), "*", "*", "*", "*", "*", # mix of numeric, less than, greater than and ., becomes *
c("<10", "320"), "<640", "40", "*", "*", "*", # variable mix of < and numeric
)
test_that("Test log titer conversion", {
expect_equal(NaN, log_titers(".", 1))
expect_equal(NaN, log_titers("*", 1))
expect_equal(-1, log_titers("<10", 1))
expect_equal(0, log_titers("10", 1))
expect_equal(0, log_titers("<20", 1))
expect_equal(1, log_titers("20", 1))
expect_equal(2, log_titers(">20", 1))
})
test_that("Test titer merging", {
for (x in seq_len(nrow(titer_merge_tests))) {
# Default "conservative" result
expect_equal(
suppressWarnings(ac_merge_titers(titer_merge_tests$titers[[x]], options = RacMerge.options())),
titer_merge_tests$conservative[x]
)
# Explicitly set conservative result
expect_equal(
ac_merge_titers(titer_merge_tests$titers[[x]], options = RacMerge.options(method = "conservative")),
titer_merge_tests$conservative[x]
)
# Likelihood result
expect_equal(
ac_merge_titers(titer_merge_tests$titers[[x]], options = RacMerge.options(method = "likelihood")),
titer_merge_tests$likelihood[x]
)
# Lisp result
expect_equal(
ac_merge_titers(titer_merge_tests$titers[[x]], options = RacMerge.options(method = "lispmds")),
titer_merge_tests$lispmds[x]
)
# Conservative result with sd limit
expect_equal(
ac_merge_titers(titer_merge_tests$titers[[x]], options = RacMerge.options(method = "conservative", sd_limit = 1)),
titer_merge_tests$conservativesd1[x]
)
# Likelihood result with sd limit
expect_equal(
ac_merge_titers(titer_merge_tests$titers[[x]], options = RacMerge.options(method = "likelihood", sd_limit = 1)),
titer_merge_tests$likelihoodsd1[x]
)
}
})
test_that("User supplied function working", {
expect_error(
ac_merge_titers(
titers = c("<10", "40"),
options = RacMerge.options(
method = function(x) {
stop("I messed up...")
return("20")
}
)
)
)
expect_error(
ac_merge_titers(
titers = c("<10", "40"),
options = RacMerge.options(
method = function(x) {
return(12.5)
}
)
)
)
expect_equal(
ac_merge_titers(
titers = c("80", "160"),
options = RacMerge.options(
method = function(x) {
return("<30")
}
)
),
"<30"
)
expect_equal(
ac_merge_titers(
titers = "80",
options = RacMerge.options(
method = function(x) {
return("<10")
}
)
),
"<10"
)
})
test_that("Merge sd_lim working", {
expect_equal(
"<40",
ac_merge_titers(c("<10", "20"), options = RacMerge.options(sd_limit = NULL))
)
expect_equal(
"*",
ac_merge_titers(c("<10", "20"), options = RacMerge.options(sd_limit = 0.9))
)
expect_equal(
"<40",
ac_merge_titers(c("<10", "20"), options = RacMerge.options(sd_limit = NA))
)
expect_equal(
"*",
ac_merge_titers(c(rep("<10",50), rep("20",50), "40"), options = RacMerge.options(sd_limit = 1, method = "likelihood"))
)
expect_equal(
"10",
ac_merge_titers(c("<10", "20"), options = RacMerge.options(method = "likelihood"))
)
expect_equal(
"*",
ac_merge_titers(c("<10", "20"), options = RacMerge.options(sd_limit = 0.8, method = "likelihood"))
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.