Nothing
test_that("number works", {
set.seed(1)
img <- system.file("extdata", "50.tif", package = "nandb")
number <- suppressMessages(
number(img, "n", thresh = "Huang", filt = "median", detrend = TRUE)
)
expect_equal(median(number, na.rm = TRUE), 0, tolerance = 40)
number <- suppressMessages(
number(img, "N", thresh = "Huang", filt = "mean")
)
expect_equal(mean(number, na.rm = TRUE), 17.4, tolerance = 0.01)
img <- ijtiff::read_tif(img, msg = FALSE)
number <- number(img, "n", filt = "median", detrend = FALSE)
skip_if_not_installed("abind")
two_channel_img <- abind::abind(img, img, along = 3)
number_2ch <- number(two_channel_img, "n", filt = "median", detrend = FALSE)
expect_equal(number_2ch %>% {
list(dim(.), as.vector(.))
},
abind::abind(number, number, along = 3) %>% {
list(dim(.), as.vector(.))
},
ignore_attr = TRUE
)
expect_error(
number(img, def = "rory"),
paste0(
"`def` must be one of 'N' or 'n.+You have used `def =\\s?",
"'rory'`."
)
)
})
test_that("number_folder works", {
set.seed(1)
img <- ijtiff::read_tif(system.file("extdata", "50.tif", package = "nandb"))
cwd <- setwd(tempdir())
on.exit(setwd(cwd))
ijtiff::write_tif(img, "50.tif", msg = FALSE)
ijtiff::write_tif(img, "50again.tif", msg = FALSE)
ijtiff::write_tif(array(4, dim = rep(3, 4)), "const.tif", msg = FALSE)
expect_error(
number_folder(def = "rory", detrend = FALSE),
paste0(
"`def` must be one of 'N' or 'n.+You have used `def =\\s?",
"'rory'`."
)
)
number_folder(def = "N", detrend = FALSE)
expect_true(
all(c(
"50_number_N_swaps=NA_thresh=NA_filt=NA.tif",
"50again_number_N_swaps=NA_thresh=NA_filt=NA.tif",
paste0(
"const_number_N_swaps=NA,NA,NA_",
"thresh=NA,NA,NA_filt=NA,NA,NA.tif"
)
) %in%
list.files("number"))
)
filesstrings::create_dir("tempwithintemp")
ijtiff::write_tif(img, "tempwithintemp/50.tif", msg = FALSE)
expect_error(
number_file("tempwithintemp/50.tif", def = "rory"),
paste0(
"`def` must be one of 'N' or 'n.+You have used `def =\\s?",
"'rory'`."
)
)
number_file("tempwithintemp/50.tif", def = "n")
expect_true(stringr::str_detect(
dir("tempwithintemp/number"),
"^50_number_n.*tif$"
))
filesstrings::dir.remove("tempwithintemp", "number")
suppressWarnings(file.remove(list.files()))
setwd(cwd)
})
test_that("number_timeseries works", {
set.seed(1)
img <- system.file("extdata", "50.tif", package = "nandb")
n <- number(img, "N")
expect_error(
number_timeseries(img, def = "rory", 10),
paste0(
"`def` must be one of 'N' or 'n.+You have used `def =\\s?",
"'rory'`."
)
)
nts <- number_timeseries(img, "N", 20, thresh = "Huang")
expect_equal(mean(nts, na.rm = TRUE), 18, tolerance = 2)
nts_overlapped <- number_timeseries(img, "N", 20,
overlap = TRUE,
thresh = "Huang", detrend = FALSE
)
img %<>% ijtiff::read_tif()
common_frames <- which(seq_len(dim(img)[4]) %% 20 == 0) - 20 + 1
expect_equal(
nts_overlapped[, , , common_frames, drop = FALSE] %>% {
list(dim(.), as.vector(.))
},
nts %>% {
list(dim(.), as.vector(.))
}
)
nts_overlapped <- number_timeseries(img, "N", dim(img)[4],
overlap = TRUE
)
expect_equal(
nts_overlapped %>% {
list(dim(.), as.vector(.))
},
n %>% {
list(dim(.), as.vector(.))
}
)
expect_equal(median(nts, na.rm = TRUE), median(nts_overlapped, na.rm = TRUE),
tolerance = min(abs(c(
median(nts, na.rm = TRUE),
median(nts_overlapped, na.rm = TRUE)
))) / 10
)
nts <- number_timeseries(img, "n", 30,
detrend = FALSE,
thresh = "tri", filt = "median"
)
expect_equal(median(nts, na.rm = TRUE), -2, tolerance = 2)
expect_error(
number_timeseries(img, "n", 51),
paste0(
"You have selected 51 frames per set, but there are only\\s?",
"50,.+frames in total.+Please select less than 50 frames per\\s?",
"set"
)
)
nts <- number_timeseries(img, "N", 10, detrend = FALSE)
skip_if_not_installed("abind")
two_channel_img <- abind::abind(img, img, along = 3)
nts_2ch <- number_timeseries(two_channel_img, "N", 10, detrend = FALSE)
expect_equal(
nts_2ch %>% {
list(dim(.), as.vector(.))
},
abind::abind(nts, nts, along = 3) %>% {
list(dim(.), as.vector(.))
}
)
n <- number(two_channel_img, "n")
nts_2ch <- number_timeseries(two_channel_img, "n",
dim(two_channel_img)[4],
detrend = FALSE
)
expect_equal(
nts_2ch %>% {
list(dim(.), as.vector(.))
},
n %>% {
list(dim(.), as.vector(.))
}
)
expect_error(
number_timeseries(matrix(1:4, nrow = 2)),
"argument.*def.*is missing, with no default"
)
cwd <- setwd(tempdir())
on.exit(setwd(cwd))
ijtiff::write_tif(img, "50.tif", msg = FALSE)
ijtiff::write_tif(img, "50again.tif", msg = FALSE)
filesstrings::create_dir("tempwithintemp")
ijtiff::write_tif(img, "tempwithintemp/50.tif", msg = FALSE)
expect_error(
number_timeseries_file("tempwithintemp/50.tif",
def = "rory",
frames_per_set = 10
),
paste0(
"`def` must be one of 'N' or 'n.+You have used `def =\\s?",
"'rory'`."
)
)
number_timeseries_file("tempwithintemp/50.tif",
def = "n",
frames_per_set = 10
)
expect_true(stringr::str_detect(
dir("tempwithintemp/number_timeseries"),
"^50_number_n_contiguous_timeseries.*tif$"
))
filesstrings::dir.remove("tempwithintemp")
expect_error(
number_timeseries_folder(
def = "rory", thresh = "tri", frames_per_set = 20,
detrend = TRUE
),
paste0(
"`def` must be one of 'N' or 'n.+You have used `def =\\s?",
"'rory'`."
)
)
number_timeseries_folder(
def = "n", thresh = "tri", frames_per_set = 20,
detrend = TRUE
)
suppressWarnings(file.remove(list.files(pattern = "\\.tiff*"))) # cleanup
filesstrings::dir.remove("number_timeseries", "tempwithintemp")
})
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.