context("build_query")
test_that("build query works when time is supplied", {
dir <- paste0(scopr_example_dir(), "/ethoscope_results/")
query <- data.frame(machine_name = c("E_014", "E_014","E_029"),
date = c("2016-01-25", "2016-02-17","2016-01-25"),
time = c("21:36:04", NA, NA),
test=c(1,2,3)
)
out <- scopr:::build_query(dir, query)
expect_equal(nrow(out), 3)
query <- data.frame(machine_name = c("E_014"),
date = c("2016-01-25"),
time = c("21:46:14"),
region_id=c(1,2,3,4)
)
out <- scopr:::build_query(dir, query)
expect_equal(nrow(out), 4)
})
test_that("build_query with date, machine name, and ROIs, and two experiments on the same date, but different times!", {
dir <- paste0(scopr_example_dir(), "/ethoscope_results/")
query <- data.frame(machine_name = c("E_014", "E_014","E_029"),
date = c("2016-01-25", "2016-01-25","2016-01-25"),
time = c("21:46:14", "21:36:04", NA),
test=c(1,2,3)
)
query <- data.table::as.data.table(query)
query <- query[,.(region_id=1:5),by=c(colnames(query))]
out <- scopr:::build_query(dir, query)
expect_equal(nrow(out), 3*5)
expect_equal(nrow(na.omit(out)), 3*5)
})
test_that("build query works when only date supplied", {
dir <- paste0(scopr_example_dir(), "/ethoscope_results/")
query <- data.frame(machine_name = c("E_014", "E_014","E_029", "E_029"),
date = c("2016-01-25", "2016-02-17","2016-01-25","2016-01-25"))
expect_warning(out <- scopr:::build_query(dir, query), "Several files")
expect_equal(nrow(out), 4)
expect_equal(nrow(out[as.character(datetime)=="2016-02-17 15:42:46"]), 1)
})
test_that("build query works when only date supplied and ROIs", {
dir <- paste0(scopr_example_dir(), "/ethoscope_results/")
query <- data.frame(machine_name = c("E_014", "E_014","E_029"),
date = c("2016-01-25", "2016-02-17","2016-01-25"))
query <- data.table::as.data.table(query)
query <- query[,.(region_id=1:5),by=c(colnames(query))]
expect_warning(out <- scopr:::build_query(dir, query), "Several files")
expect_equal(nrow(out), nrow(query))
expect_equal(nrow(out[as.character(datetime)=="2016-02-17 15:42:46"]), 5)
})
test_that("missing results!", {
dir <- paste0(scopr_example_dir(), "/ethoscope_results/")
query <- data.frame(machine_name = c("E_014", "E_0XXX","E_029"),
date = c("2016-01-25", "2016-02-17","2016-01-25"),
time = c("21:46:14", NA, NA),
test=c(1,2,3)
)
expect_warning(out <- scopr:::build_query(dir, query), "No result for machine_name == E_0XXX")
expect_equal(nrow(out), 2)
# same with wrong time "2016-02-28"
query <- data.frame(machine_name = c("E_014", "E_014","E_029"),
date = c("2016-01-25", "2016-02-28","2016-01-25"),
time = c("21:46:14", NA, NA),
test=c(1,2,3)
)
expect_warning(out <- scopr:::build_query(dir, query), "No result for machine_name == E_014, date == 2016-02-28")
expect_equal(nrow(out), 2)
})
test_that("build query works datetime is a datetime, not a string (https://github.com/rethomics/scopr/issues/16)", {
dir <- paste0(scopr_example_dir(), "/ethoscope_results/")
query <- data.frame(machine_name = c("E_014", "E_014","E_029"),
date = as.Date(c("2016-01-25", "2016-02-17","2016-01-25")),
time = c("21:36:04", NA, NA),
test=c(1,2,3)
)
print(query)
out <- scopr:::build_query(dir, query)
expect_equal(nrow(out), 3)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.