library(cpr)
A <- matrix(1:4, nrow = 10, ncol = 20)
B <- matrix(1:6, nrow = 10, ncol = 6)
# verify that passing in one matrix returns that matrix
x <- tryCatch(build_tensor(A, 1:10), error = function(e) e)
stopifnot(inherits(x, "error"))
stopifnot(identical(x$message, "All arguments passed to build_tensor need to be matrices."))
# verify that passing in one matrix returns that matrix
tA <- build_tensor(A)
stopifnot(identical(tA, A))
# Two ways of building the same tensor product
tAB <- build_tensor(A, B)
tAB2 <- do.call(build_tensor,list(A, B))
stopifnot(all.equal(tAB, tAB2))
# direction matters
tBA <- build_tensor(B, A)
stopifnot(!isTRUE(all.equal(tBA, tAB)))
# three and four matrix tensor product
tABA <- build_tensor(A, B, A)
tABAA <- build_tensor(A, B, A, A)
# verify to established matrices
rdsAB <- readRDS("tensorAB.rds")
rdsBA <- readRDS("tensorBA.rds")
rdsABA <- readRDS("tensorABA.rds")
rdsABAA <- readRDS("tensorABAA.rds")
stopifnot(identical(tAB, rdsAB))
stopifnot(identical(tBA, rdsBA))
stopifnot(identical(tABA, rdsABA))
stopifnot(identical(tABAA, rdsABAA))
################################################################################
# End of File #
################################################################################
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.