context("Test of reading mri3d files")
testFile = function(filename){
f = system.file("extdata", filename, package = "Dmri3d")
print(f)
print(file.exists(f))
f
}
checkFileValid = function(filename, specialCheck=NULL){
filename= testFile(filename)
# filename = testFile("rec1.mat")
# Default: no reduction in slice sampling, dwin = NULL
mri = readMri3d(filename)
expect_equal(names(mri),
c("vars","slices","slicearea","sdata",
#"phi3d","x3d","y3d","z3d",
"indices","vertices"))
expect_that(length(mri$vars)>= 42, is_true())
expect_is(mri$vars$FileName,"character")
expect_is(mri$vars$examination.date,"POSIXlt")
expect_is(mri$slices,"data.frame")
expect_is(mri$slicearea,"data.frame")
expect_is(mri$indices,"list")
expect_is(mri$indices[[1]][1,1],"integer")
expect_is(mri$vertices,"list")
expect_is(mri$vertices[[1]][1,1],"numeric")
expect_more_than(nrow(mri$slices),10)
expect_equal(ncol(mri$slicearea),4)
expect_more_than(ncol(mri$indices[[1]]),1000)
expect_more_than(ncol(mri$vertices[[1]]),500)
area = mri$slicearea$area
expect_more_than(length(area),3)
if (!is.null(specialCheck))
specialCheck(mri)
invisible(mri)
}
checkNames = function(mri,expectNames = c("Stomach","Content","Capsule")){
expect_equal(names(mri$indices),expectNames)
expect_equal(names(mri$vertices),expectNames)
}
checkNamesExist = function(mri){
expect_is(names(mri$indices),"character")
expect_is(names(mri$vertices),"character")
}
test_that("Valid files must return standard parameters",{
checkFileValid("rec1.mat")
expect_warning(checkFileValid("vargrouperror.mat",checkNamesExist),"Group 5 has")
expect_warning(checkFileValid("hasemptygroup.mat",checkNames),"Group 4")
expect_warning(checkFileValid("nopill.mat"),"Capsule")
expect_warning(checkFileValid("withcat.mat",checkNamesExist),"Envelope")
checkFileValid("withsdata.mat",checkNamesExist)
expect_warning(checkFileValid("A.mat",checkNamesExist),"Content")
checkFileValid("B.mat",checkNamesExist)
checkFileValid("C.mat",checkNames)
expect_warning(checkFileValid("D.mat",checkNamesExist),"Content")
# uses radical search
#expect_warning(checkFileValid("E.mat",checkNamesExist),"radical")
#expect_warning(checkFileValid("F.mat",checkNamesExist),"radical")
expect_warning(checkFileValid("E.mat",checkNamesExist),"Group 5")
expect_warning(checkFileValid("F.mat",checkNamesExist),"Group 5")
expect_warning(checkFileValid("G.mat",checkNamesExist),"Duplicate")
expect_warning(checkFileValid("H.mat",checkNamesExist),"volume")
expect_warning(checkFileValid("voloutofbounds.mat"),"no volume")
})
test_that("Files with data from slice image stack must return sdata",{
filename = "withsdata.mat"
mri = readMri3d(testFile(filename))
expect_equal(length(mri$sdata),17)
expect_equal(dim(mri$sdata["click.pt",,]$click.pt),c(3,3))
})
test_that("Files without volume data must return NULL for indices and vertices",{
filename = system.file("extdata", "no3d.mat", package = "Dmri3d")
expect_warning(mri <- readMri3d(filename))
expect_equal(names(mri),
c("vars","slices","slicearea","sdata",
#"phi3d","x3d","y3d","z3d",
"indices","vertices"))
expect_true(is.null(mri$vertices))
expect_true(is.null(mri$x3d))
expect_true(is.null(mri$y3d))
expect_true(is.null(mri$z3d))
expect_true(is.null(mri$indices))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.