#-------------------------------------------------------------------------------
# Copyright (c) 2014 OBiBa,
# 2019-2022 University of Newcastle upon Tyne. All rights reserved.
#
# This program and the accompanying materials
# are made available under the terms of the GNU Public License v3.0.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#-------------------------------------------------------------------------------
#
# Set up
#
context("ds.tapply.assign::smk::setup")
connect.studies.dataset.cnsim(list("LAB_TSC", "GENDER"))
test_that("setup", {
ds_expect_variables(c("D"))
})
#
# Tests
#
ds.assign('D$LAB_TSC', 'LAB_TSC')
ds.assign('D$GENDER', 'GENDER')
context("ds.tapply.assign::smk::fun=mean")
test_that("simplest 'ds.tapply.assign', fun=mean", {
list <- ds.tapply.assign('LAB_TSC', INDEX.names=c('GENDER'), FUN.name='mean', newobj="fun_mean.newobj")
expect_length(list, 2)
expect_equal(list$is.object.created, "A data object has been created in all specified data sources", fixed=TRUE)
expect_equal(list$validity.check, " appears valid in all sources", fixed=TRUE)
res.length <- ds.length("fun_mean.newobj")
expect_length(res.length, 4)
expect_equal(res.length$`length of fun_mean.newobj in sim1`, 2)
expect_equal(res.length$`length of fun_mean.newobj in sim2`, 2)
expect_equal(res.length$`length of fun_mean.newobj in sim3`, 2)
expect_equal(res.length$`total length of fun_mean.newobj in all studies combined`, 6)
})
context("ds.tapply.assign::smk::fun=sd")
test_that("simplest 'ds.tapply.assign', fun=sd", {
list <- ds.tapply.assign('LAB_TSC', INDEX.names=c('GENDER'), FUN.name='sd', newobj="fun_sd.newobj")
expect_length(list, 2)
expect_equal(list$is.object.created, "A data object has been created in all specified data sources", fixed=TRUE)
expect_equal(list$validity.check, " appears valid in all sources", fixed=TRUE)
res.length <- ds.length("fun_sd.newobj")
expect_length(res.length, 4)
expect_equal(res.length$`length of fun_sd.newobj in sim1`, 2)
expect_equal(res.length$`length of fun_sd.newobj in sim2`, 2)
expect_equal(res.length$`length of fun_sd.newobj in sim3`, 2)
expect_equal(res.length$`total length of fun_sd.newobj in all studies combined`, 6)
})
context("ds.tapply.assign::smk::fun=sum")
test_that("simplest 'ds.tapply.assign', fun=sum", {
list <- ds.tapply.assign('LAB_TSC', INDEX.names=c('GENDER'), FUN.name='sum', newobj="fun_sum.newobj")
expect_length(list, 2)
expect_equal(list$is.object.created, "A data object has been created in all specified data sources", fixed=TRUE)
expect_equal(list$validity.check, " appears valid in all sources", fixed=TRUE)
res.length <- ds.length("fun_sum.newobj")
expect_length(res.length, 4)
expect_equal(res.length$`length of fun_sum.newobj in sim1`, 2)
expect_equal(res.length$`length of fun_sum.newobj in sim2`, 2)
expect_equal(res.length$`length of fun_sum.newobj in sim3`, 2)
expect_equal(res.length$`total length of fun_sum.newobj in all studies combined`, 6)
})
context("ds.tapply.assign::smk::fun=quantile")
test_that("simplest 'ds.tapply.assign', fun=quantile", {
list <- ds.tapply.assign('LAB_TSC', INDEX.names=c('GENDER'), FUN.name='quantile', newobj="fun_quantile.newobj")
expect_length(list, 2)
expect_equal(list$is.object.created, "A data object has been created in all specified data sources", fixed=TRUE)
expect_equal(list$validity.check, " appears valid in all sources", fixed=TRUE)
res.length <- ds.length("fun_quantile.newobj")
expect_length(res.length, 4)
expect_equal(res.length$`length of fun_quantile.newobj in sim1`, 2)
expect_equal(res.length$`length of fun_quantile.newobj in sim2`, 2)
expect_equal(res.length$`length of fun_quantile.newobj in sim3`, 2)
expect_equal(res.length$`total length of fun_quantile.newobj in all studies combined`, 6)
})
#
# Tear down
#
context("ds.tapply.assign::smk::shutdown")
test_that("shutdown", {
ds_expect_variables(c("D", "GENDER", "LAB_TSC", "fun_mean.newobj", "fun_sd.newobj", "fun_sum.newobj", "fun_quantile.newobj"))
})
disconnect.studies.dataset.cnsim()
#
# Done
#
context("ds.tapply.assign::smk::done")