Nothing
test_that("setupCMTFdata works with N blocks", {
I = 108
J = 100
K = 10
df = array(rnorm(I*J*K), c(I,J,K))
datasets = list(df, df, df, df, df)
modes = list(c(1,2,3), c(1,4,5), c(1,6,7), c(1,8,9), c(1,10,11))
expect_no_error(setupCMTFdata(datasets, modes))
})
test_that("setupCMTFdata throws errors if you don't supply modes", {
I = 108
J = 100
K = 10
df = array(rnorm(I*J*K), c(I,J,K))
datasets = list(df, df)
expect_error(setupCMTFdata(datasets))
})
test_that("setupCMTFdata identifies the sizes of the datasets correctly", {
set.seed(123)
A = array(rnorm(108*2), c(108, 2))
B = array(rnorm(100*2), c(100, 2))
C = array(rnorm(10*2), c(10, 2))
D = array(rnorm(100*2), c(100, 2))
E = array(rnorm(10*2), c(10, 2))
df1 = reinflateTensor(A, B, C)
df2 = reinflateTensor(A, D, E)
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4,5))
Z = setupCMTFdata(datasets, modes, normalize=FALSE)
expect_equal(Z$sizes, c(108,100,10,100,10))
})
test_that("setupCMTFdata creates a correct missing tensor", {
set.seed(123)
A = array(rnorm(108*2), c(108, 2))
B = array(rnorm(100*2), c(100, 2))
C = array(rnorm(10*2), c(10, 2))
D = array(rnorm(100*2), c(100, 2))
E = array(rnorm(10*2), c(10, 2))
df1 = reinflateTensor(A, B, C)
df2 = reinflateTensor(A, D, E)
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4,5))
dfMissing = df2
dfMissing[1,1,1] = NA
datasets = list(df1, dfMissing)
modes = list(c(1,2,3), c(1,4,5))
Z = setupCMTFdata(datasets, modes)
expect_equal(Z$missing[[2]]@data[1,1,1], 0)
})
test_that("setupCMTFdata sets missing values to zero", {
set.seed(123)
A = array(rnorm(108*2), c(108, 2))
B = array(rnorm(100*2), c(100, 2))
C = array(rnorm(10*2), c(10, 2))
D = array(rnorm(100*2), c(100, 2))
E = array(rnorm(10*2), c(10, 2))
df1 = reinflateTensor(A, B, C)
df2 = reinflateTensor(A, D, E)
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4,5))
dfMissing = df2
dfMissing[1,1,1] = NA
datasets = list(df1, dfMissing)
modes = list(c(1,2,3), c(1,4,5))
Z = setupCMTFdata(datasets, modes)
expect_equal(Z$object[[2]]@data[1,1,1], 0)
})
test_that("setupCMTFdata normalizes correctly when requested", {
set.seed(123)
A = array(rnorm(108*2), c(108, 2))
B = array(rnorm(100*2), c(100, 2))
C = array(rnorm(10*2), c(10, 2))
D = array(rnorm(100*2), c(100, 2))
E = array(rnorm(10*2), c(10, 2))
df1 = reinflateTensor(A, B, C)
df2 = reinflateTensor(A, D, E)
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4,5))
Z = setupCMTFdata(datasets, modes, normalize=TRUE)
expect_equal(rTensor::fnorm(Z$object[[1]]), 1)
})
test_that("setupCMTFdata does not normalize when requested", {
set.seed(123)
A = array(rnorm(108*2), c(108, 2))
B = array(rnorm(100*2), c(100, 2))
C = array(rnorm(10*2), c(10, 2))
D = array(rnorm(100*2), c(100, 2))
E = array(rnorm(10*2), c(10, 2))
df1 = reinflateTensor(A, B, C)
df2 = reinflateTensor(A, D, E)
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4,5))
Z = setupCMTFdata(datasets, modes, normalize=FALSE)
expect_equal(rTensor::fnorm(Z$object[[1]]), Z$norms[1])
})
test_that("setupCMTFdata when not normalizing does not change the original data", {
set.seed(123)
A = array(rnorm(108*2), c(108, 2))
B = array(rnorm(100*2), c(100, 2))
C = array(rnorm(10*2), c(10, 2))
D = array(rnorm(100*2), c(100, 2))
E = array(rnorm(10*2), c(10, 2))
df1 = reinflateTensor(A, B, C)
df2 = reinflateTensor(A, D, E)
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4,5))
Z = setupCMTFdata(datasets, modes, normalize=FALSE)
expect_equal(df1[1,1,1], Z$object[[1]]@data[1,1,1])
})
test_that("setupCMTFdata works with a tensor-matrix combination", {
set.seed(123)
A = array(rnorm(108*2), c(108, 2))
B = array(rnorm(100*2), c(100, 2))
C = array(rnorm(10*2), c(10, 2))
D = array(rnorm(100*2), c(100, 2))
df1 = reinflateTensor(A, B, C)
df2 = reinflateMatrix(A, D)
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4))
expect_no_error(setupCMTFdata(datasets, modes, normalize=FALSE))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.