library(GGIR)
context("Chainof5parts")
test_that("chainof5parts", {
skip_on_cran()
Ndays = 3
create_test_acc_csv(Nmin = Ndays*1440, start_time = "09:00:00")
fn = "123A_testaccfile.csv"
desiredtz = "Europe/London"
dn = "output_test"
do.parallel = FALSE
if (file.exists(dn)) unlink(dn, recursive = TRUE)
minimumFileSizeMB = 0
#--------------------------------------------
# create study dates file
studydates = data.frame(ID = "123A",
start = "24-06-2016", # intentional wrong format (hyphen) to force tests on check_log
end = "25/06/2016")
studydates = expect_warning(check_log(studydates, dateformat = "%d/%m/%Y", colid = 1, datecols = 2:3,
logPath = "study_dates_file.csv", logtype = "study dates log"),
regexp = "You may be mixing slash and hyphen")
write.csv(studydates, "study_dates_file.csv", row.names = FALSE)
# PART 1 ------------------------------------------------------------------
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 1, verbose = FALSE,
overwrite = TRUE,
idloc = 2, desiredtz = desiredtz)
# PART 2 (tests) ----------------------------------------------------------
# Strategy 1 ----
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 1, hrs.del.start = 0,hrs.del.end = 0)
# load data
load(dir("output_test/meta/ms2.out/",full.names = TRUE)[1])
# removed time before 24/06/2016 and after 25/06/2016
expect_equal(rle(IMP$rout$r4)$lengths[1], 60)
expect_equal(rle(IMP$rout$r4)$lengths[3], 36)
# check the total time included is exactly 2 days (= 192 long epochs)
first_epoch_in_protocol = rle(IMP$rout$r4)$lengths[1] + 1
last_epoch_in_protocol = max(which(IMP$rout$r4 == 0))
expect_equal(last_epoch_in_protocol - first_epoch_in_protocol + 1, 192)
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 1, hrs.del.start = 4, hrs.del.end = 4)
# load data
load(dir("output_test/meta/basic/",full.names = TRUE)[1])
load(dir("output_test/meta/ms2.out/",full.names = TRUE)[1])
# first epoch in protocol 24/06/2016 04:00:00
first_epoch_in_protocol = rle(IMP$rout$r4)$lengths[1] + 1
expect_equal(M$metalong$timestamp[first_epoch_in_protocol], "2016-06-24T04:00:00+0100")
# last epoch in protocol 25/06/2016 19:45:00
last_epoch_in_protocol = max(which(IMP$rout$r4 == 0))
expect_equal(M$metalong$timestamp[last_epoch_in_protocol], "2016-06-25T19:45:00+0100")
# Strategy 2 ----
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 2, hrs.del.start = 0,hrs.del.end = 0)
# load data
load(dir("output_test/meta/basic/",full.names = TRUE)[1])
load(dir("output_test/meta/ms2.out/",full.names = TRUE)[1])
# first epoch in protocol 24/06/2016 00:00:00
first_epoch_in_protocol = rle(IMP$rout$r4)$lengths[1] + 1
expect_equal(M$metalong$timestamp[first_epoch_in_protocol], "2016-06-24T00:00:00+0100")
# last epoch in protocol 25/06/2016 23:45:00
last_epoch_in_protocol = max(which(IMP$rout$r4 == 0))
expect_equal(M$metalong$timestamp[last_epoch_in_protocol], "2016-06-25T23:45:00+0100")
# Strategy 3 ----
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 3, ndayswindow = 1,
hrs.del.start = 0,hrs.del.end = 0)
# load data
load(dir("output_test/meta/basic/",full.names = TRUE)[1])
load(dir("output_test/meta/ms2.out/",full.names = TRUE)[1])
# first and last epochs are within 24/06/2016 and 25/06/2016
first_epoch_in_protocol = rle(IMP$rout$r4)$lengths[1] + 1
t0 = iso8601chartime2POSIX(M$metalong$timestamp[first_epoch_in_protocol], tz = "Europe/London")
last_epoch_in_protocol = max(which(IMP$rout$r4 == 0))
t1 = iso8601chartime2POSIX(M$metalong$timestamp[last_epoch_in_protocol], tz = "Europe/London")
expect_true(t0 >= as.POSIXct("2016-06-24 00:00:00", tz = "Europe/London"))
expect_true(t1 < as.POSIXct("2016-06-26 00:00:00", tz = "Europe/London"))
# check the total time included is exactly 1 day (= 96 long epochs)
expect_equal(last_epoch_in_protocol - first_epoch_in_protocol + 1, 96)
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 3, ndayswindow = 1,
hrs.del.start = 6,hrs.del.end = 6)
# load data
load(dir("output_test/meta/basic/",full.names = TRUE)[1])
load(dir("output_test/meta/ms2.out/",full.names = TRUE)[1])
# first and last epochs are within 24/06/2016 and 25/06/2016
first_epoch_in_protocol = rle(IMP$rout$r4)$lengths[1] + 1
t0 = iso8601chartime2POSIX(M$metalong$timestamp[first_epoch_in_protocol], tz = "Europe/London")
last_epoch_in_protocol = max(which(IMP$rout$r4 == 0))
t1 = iso8601chartime2POSIX(M$metalong$timestamp[last_epoch_in_protocol], tz = "Europe/London")
expect_true(t0 >= as.POSIXct("2016-06-24 00:00:00", tz = "Europe/London"))
expect_true(t1 < as.POSIXct("2016-06-26 00:00:00", tz = "Europe/London"))
# check the total time included is exactly 0.5 days (= 48 long epochs)
expect_equal(last_epoch_in_protocol - first_epoch_in_protocol + 1, 48)
# Strategy 4 ----
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 4, ndayswindow = 7,
hrs.del.start = 0,hrs.del.end = 0)
# load data
load(dir("output_test/meta/basic/",full.names = TRUE)[1])
load(dir("output_test/meta/ms2.out/",full.names = TRUE)[1])
# first epoch in protocol 24/06/2016 00:00:00
first_epoch_in_protocol = rle(IMP$rout$r4)$lengths[1] + 1
expect_equal(M$metalong$timestamp[first_epoch_in_protocol], "2016-06-24T00:00:00+0100")
# last epoch in protocol 25/06/2016 23:45:00
last_epoch_in_protocol = max(which(IMP$rout$r4 == 0))
expect_equal(M$metalong$timestamp[last_epoch_in_protocol], "2016-06-25T23:45:00+0100")
# Strategy 5 -----
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 5, ndayswindow = 1,
hrs.del.start = 0,hrs.del.end = 0)
# load data
load(dir("output_test/meta/basic/",full.names = TRUE)[1])
load(dir("output_test/meta/ms2.out/",full.names = TRUE)[1])
# the day most active in this recording is 25/06/2016
first_epoch_in_protocol = rle(IMP$rout$r4)$lengths[1] + 1
t0 = iso8601chartime2POSIX(M$metalong$timestamp[first_epoch_in_protocol], tz = "Europe/London")
last_epoch_in_protocol = max(which(IMP$rout$r4 == 0))
t1 = iso8601chartime2POSIX(M$metalong$timestamp[last_epoch_in_protocol], tz = "Europe/London")
expect_true(t0 == as.POSIXct("2016-06-25 00:00:00", tz = "Europe/London"))
expect_true(t1 == as.POSIXct("2016-06-25 23:45:00", tz = "Europe/London"))
# check the total time included is exactly 1 day (= 96 long epochs)
expect_equal(last_epoch_in_protocol - first_epoch_in_protocol + 1, 96)
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 5, ndayswindow = 1,
hrs.del.start = 5,hrs.del.end = 5)
# load data
load(dir("output_test/meta/basic/",full.names = TRUE)[1])
load(dir("output_test/meta/ms2.out/",full.names = TRUE)[1])
# the day most active in this recording is 25/06/2016
first_epoch_in_protocol = rle(IMP$rout$r4)$lengths[1] + 1
t0 = iso8601chartime2POSIX(M$metalong$timestamp[first_epoch_in_protocol], tz = "Europe/London")
last_epoch_in_protocol = max(which(IMP$rout$r4 == 0))
t1 = iso8601chartime2POSIX(M$metalong$timestamp[last_epoch_in_protocol], tz = "Europe/London")
expect_true(t0 == as.POSIXct("2016-06-25 05:00:00", tz = "Europe/London"))
expect_true(t1 == as.POSIXct("2016-06-25 18:45:00", tz = "Europe/London"))
# start date out of recorded dates (warning and do not trim) -----
# studydates = data.frame(ID = "123A",
# start = "18/06/2016", # intentional wrong format (hyphen) to force tests on check_log
# end = "25/06/2016")
# write.csv(studydates, "study_dates_file.csv", row.names = FALSE)
# expect_warning(
# GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# # study dates file
# study_dates_file = "study_dates_file.csv",
# study_dates_dateformat = "%d/%m/%Y",
# # strategy
# data_masking_strategy = 1, ndayswindow = 7,
# hrs.del.start = 0,hrs.del.end = 0),
# regexp = "The start date")
# end date out of recorded dates (warning and do not trim) -----
# studydates = data.frame(ID = "123A",
# start = "24/06/2016", # intentional wrong format (hyphen) to force tests on check_log
# end = "26/06/2016")
# write.csv(studydates, "study_dates_file.csv", row.names = FALSE)
# expect_warning(
# GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# # study dates file
# study_dates_file = "study_dates_file.csv",
# study_dates_dateformat = "%d/%m/%Y",
# # strategy
# data_masking_strategy = 1, ndayswindow = 7,
# hrs.del.start = 0,hrs.del.end = 0),
# regexp = "The end date")
# ID not in study dates file (warning and do not trim) -----
studydates = data.frame(ID = "dummyID",
start = "24/06/2016", # intentional wrong format (hyphen) to force tests on check_log
end = "25/06/2016")
write.csv(studydates, "study_dates_file.csv", row.names = FALSE)
expect_warning(
GGIR(datadir = fn, outputdir = getwd(), studyname = "test", mode = 2, verbose = FALSE,
# study dates file
study_dates_file = "study_dates_file.csv",
study_dates_dateformat = "%d/%m/%Y",
# strategy
data_masking_strategy = 1, ndayswindow = 7,
hrs.del.start = 0,hrs.del.end = 0),
regexp = "The ID 123A does not appear")
if (file.exists("study_dates_file.csv")) file.remove("study_dates_file.csv")
if (dir.exists(dn)) unlink(dn, recursive = TRUE)
if (file.exists(fn)) unlink(fn)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.