context("amiramesh-io")
test_that("check basic reading of AmiraMesh header",{
am='testdata/neuron/EBT7R.am'
expect_is(read.amiramesh.header(am),'list')
})
test_that("check basic reading of AmiraMesh file (neuron)",{
am='testdata/neuron/EBT7R.am'
expect_is(n1 <- read.amiramesh(am),'list')
am2='testdata/neuron/EBT7R_nans.am'
expect_equal(read.amiramesh(am2)[1], n1[1])
})
test_that("check reading AmiraMesh in zlib and rle formats",{
rleam='testdata/amira/LHMask.Labels.rle.am'
zipam='testdata/amira/LHMask.zip.am'
expect_is(rle<-read.amiramesh(rleam), 'array')
expect_that(dim(rle), is_equivalent_to(c(50, 50, 50)))
expect_is(zip<-read.amiramesh(zipam), 'array')
expect_that(dim(zip), is_equivalent_to(c(50, 50, 50)))
expect_equivalent(rle,zip)
})
test_that("we can avoid reading data sections",{
zipam='testdata/amira/LHMask.zip.am'
expect_is(d<-read.amiramesh(zipam), 'array')
expect_equal(attr(d,'BoundingBox'), c(95.7, 164.3, 60.7, 129.3, 0.7, 69.3))
})
test_that("read.zlib works in memory",{
set.seed(42)
raw_data=as.raw(sample(1:5,250,replace=T))
zlib_data=memCompress(from=raw_data,type='gzip')
expect_equal(read.zlib(zlib_data),raw_data)
})
test_that("read.amiramesh can read an 8 bit Amira file",{
amfile="testdata/amira/AL-a_M.am"
x=read.amiramesh(amfile)
# count non-zero elements
counts=c(6623L, 3304L, 2046L, 1529L, 1257L, 1054L, 907L, 706L, 657L,
557L, 458L, 444L, 399L, 325L, 307L, 247L, 269L, 224L, 185L, 196L,
186L, 147L, 150L, 146L, 120L, 138L, 122L, 105L, 94L, 95L, 90L,
86L, 88L, 81L, 88L, 66L, 63L, 78L, 53L, 76L, 53L, 43L, 47L, 49L,
54L, 46L, 42L, 43L, 33L, 38L, 37L, 28L, 26L, 19L, 29L, 33L, 21L,
30L, 21L, 25L, 12L, 19L, 20L, 19L, 8L, 14L, 14L, 15L, 10L, 16L,
14L, 15L, 9L, 9L, 13L, 10L, 8L, 9L, 12L, 6L, 6L, 8L, 7L, 9L,
9L, 7L, 7L, 3L, 6L, 9L, 9L, 5L, 7L, 6L, 6L, 3L, 6L, 5L, 7L, 10L,
8L, 4L, 5L, 2L, 3L, 4L, 4L, 6L, 1L, 6L, 4L, 1L, 6L, 0L, 6L, 10L,
0L, 6L, 2L, 4L, 3L, 4L, 4L, 4L, 3L, 6L, 1L, 3L, 2L, 3L, 9L, 2L,
1L, 3L, 3L, 1L, 2L, 4L, 2L, 3L, 6L, 2L, 4L, 2L, 2L, 4L, 0L, 1L,
4L, 3L, 1L, 3L, 2L, 1L, 5L, 2L, 3L, 1L, 4L, 3L, 1L, 3L, 0L, 0L,
1L, 0L, 2L, 1L, 2L, 3L, 2L, 3L, 2L, 1L, 2L, 4L, 1L, 0L, 0L, 2L,
1L, 5L, 2L, 7L, 1L, 2L, 5L, 3L, 2L, 0L, 0L, 1L, 1L, 1L, 1L, 3L,
0L, 1L, 0L, 1L, 1L, 0L, 1L, 2L, 0L, 3L, 2L, 2L, 0L, 3L, 1L, 1L,
2L, 1L, 2L, 0L, 2L, 2L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 2L, 0L, 0L,
2L, 3L, 0L, 0L, 0L, 0L, 2L, 0L, 3L, 0L, 1L, 0L, 2L, 0L, 0L, 2L,
2L, 2L, 1L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 1L)
# nb 255 bins because 0 is ignored
expect_equal(counts,tabulate(x,nbins=255))
})
test_that("is.amiramesh and amiratype",{
amfiles=dir("testdata/amira", pattern = '\\.am$', full.names = T)
expect_true(all(is.amiramesh(amfiles)))
# not enough to have a file ending
tf=tempfile(fileext='.am')
writeLines("#somethingelse",tf)
on.exit(unlink(tf))
expect_false(is.amiramesh(tf))
expect_equal(amiratype("testdata/amira/AL-a_M.am"), 'uniform.field')
expect_equal(amiratype("testdata/neuron/testneuron_fclineset.am.gz"),'HxLineSet')
expect_equal(amiratype("testdata/amira/tetrahedron.surf"), 'HxSurface')
expect_equal(amiratype("testdata/neuron/Neurites.am"), 'SkeletonGraph')
expect_equal(amiratype("testdata/amira/landmarks.am"), 'LandmarkSet')
expect_equal(amiratype("testdata/neuron/EBT7R.CNG.swc"), NA_character_)
expect_true(all(is.amiramesh.im3d("testdata/amira/AL-a_M.am")))
expect_false(is.amiramesh.im3d("testdata/amira/landmarks.am"))
expect_false(is.amiramesh.im3d(tf))
})
test_that("getformatreader chooses appropriate class", {
expect_equal(getformatreader("testdata/neuron/EBT7R.am")$class, "neuron")
expect_equal(getformatreader("testdata/amira/AL-a_M.am")$class, "im3d")
expect_equal(getformatreader("testdata/amira/landmarks.am")$class, "landmarks")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.