tests/testthat/test_save1D.R

library(LNCDR)
context("save1D")
# test with
# cd ../; Rscript testthat.R

# example data
d<-data.frame(onsets=1:12, dur=1:2, block=1:3)
d<-d[sample(1:12), ]

test_that("no block column stops", {
 blockcolidx <- grep('block',names(d))
 expect_error(save1D(d[,-blockcolidx],'onsets'),'save1D needs input dataframe to have a column named "block"')
})

test_that("bad onset column", {
 expect_error(save1D(d,'notonsets'),"cannot find notonsets in dataframe")
})

test_that("data is sorted", {
 res <- capture.output(x<-save1D(d,'onsets'))
 nums <- strsplit(res,' ')
 lineissorted <- sapply(nums, function(x){ !is.unsorted(as.numeric(x))}) 
 expect_true(all(lineissorted))
})

test_that("emptydf all *", {
 dn <- d[d$block>Inf, ] # empyt df but with correct names
 res <- capture.output(x<-save1D(dn, "onsets", nblocks=3))
 nums <- strsplit(res, "\n")
 expect_equal(length(nums), 3)
 expect_true(all(sapply(res, grepl, pattern="^\\*$")))
})
test_that("emptydf dur -1:0", {
 dn <- d[d$block>Inf, ] # empyt df but with correct names
 res <- capture.output(x<-save1D(dn, "onsets",dur="dur", nblocks=3))

 nums <- strsplit(res, "\n")
 expect_equal(length(nums), 3)
 expect_true(all(sapply(res, grepl, pattern="^-1:0$")))
})
test_that("emptydf amp -1*0", {
 dn <- d[d$block>Inf, ] # empyt df but with correct names
 res <- capture.output(x<-save1D(dn, "onsets", amp="dur", nblocks=3))
 nums <- strsplit(res, "\n")
 expect_equal(length(nums), 3)
 expect_true(all(sapply(res, grepl, pattern="^-1\\*0$")))
})
test_that("emptydf amp+dur -1:0*0", {
 dn <- d[d$block>Inf, ] # empyt df but with correct names
 res <- capture.output(x<-save1D(dn, "onsets", dur="dur", amp="dur", nblocks=3))
 nums <- strsplit(res, "\n")
 expect_equal(length(nums), 3)
 expect_true(all(sapply(res, grepl, pattern="^-1:0\\*0$")))
})

# TODO: test middle '*' if remove block 2
# TODO: test end '*' if nblocks=4
# TODO: test amp, dur, and :dur*amp
LabNeuroCogDevel/LNCDR documentation built on Oct. 13, 2023, 4:31 a.m.