# test-blanks.R
test_that("blanks accessor works", {
quiet(expect_snapshot(blanks(sea)))
})
test_that("blanks assignment format", {
expect_warning(
`blanks<-`(sea, "remove", value = 1),
"Replacement values provided but ignored"
) |>
expect_message("Moving these blank wells to outliers")
expect_error(
`blanks<-`(sea, "add", value = 1),
"'value' must be a list or data.frame"
)
expect_error(
`blanks<-`(sea, "add", value = data.frame(a = 1, b = 1)),
"Blanks data.frames must contain 'rate' and 'well' columns"
)
expect_error(
`blanks<-`(sea, "add", value = data.frame(rate = 1, well = 1, c = 1)),
"Blanks data.frames must contain 'rate' and 'well' columns"
)
expect_error(
`blanks<-`(sea, "add", value = data.frame(rate = "x", well = 1)),
"Blanks data.frame rate column must contain only 'OCR' or 'ECAR'"
)
expect_error(
`blanks<-`(sea, "add", value = data.frame(rate = "OCR", well = 1)),
"Blanks values must match the pattern 'A01'"
)
expect_error(
`blanks<-`(sea, "add", value = list(a = 1, b = 1)),
"Blanks list vectors must be named 'OCR' or 'ECAR'"
)
expect_error(
`blanks<-`(sea, "add", value = list(OCR = 1)),
"Blanks values must match the pattern 'A01'"
)
})
test_that("blanks assignment", {
rate1 <- factor(character(), levels = c("OCR", "ECAR"))
suppressMessages(
blanks(sea, "remove") <- NA
)
expect_identical(
quiet(blanks(sea)),
tibble::tibble(rate = rate1, well = character())
)
expect_identical(
blanks(`blanks<-`(sea, "reset")),
init_blanks(sea@wells)
) |>
expect_message("Moving these outlier values to blanks") |>
quiet()
df1 <-
tibble::tibble(
rate = factor("OCR", levels = c("OCR", "ECAR")),
well = "A02"
)
expect_identical(blanks(`blanks<-`(sea, "replace", value = df1)), df1) |>
quiet()
blanks(sea, "add") <- df1
expect_identical(blanks(sea), df1) |>
quiet()
expect_identical(
blanks(`blanks<-`(sea, "subtract", value = df1)),
tibble::tibble(rate = rate1, well = character())
) |>
expect_message("Moving these blank wells to outliers") |>
quiet()
})
test_that("blanks assignment errors", {
rate1 <- c("OCR", "OCR")
well1 <- c("A01", "A02")
expect_message(
`blanks<-`(sea, "add", value = tibble::tibble(rate = rate1, well = well1)),
"These wells are currently blanks"
)
expect_message(
`blanks<-`(sea, "subtract", value = tibble::tibble(rate = rate1, well = well1)),
"These wells are not currently blanks:"
) |>
expect_message("Moving these blank wells to outliers")
expect_warning(`blanks<-`(sea, "reset"), "Blanks unchanged")
})
test_that("blanks assignment triggers recalculation", {
suppressMessages({
sea1 <- `blanks<-`(sea, "remove")
sea2 <- `blanks<-`(sea1, "replace", value = list(OCR = "A01"))
})
expect_equal(nrow(dplyr::intersect(sea1@OCR, sea2@OCR)), 0)
expect_equal(sea1@ECAR, sea2@ECAR)
suppressMessages(
sea3 <- `blanks<-`(sea1, "replace", value = list(ECAR = "A01"))
)
expect_equal(nrow(dplyr::intersect(sea1@ECAR, sea3@ECAR)), 0)
expect_equal(sea1@OCR, sea3@OCR)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.