context("subset")
test_that("get", {
skip_if_no_sympy()
A <- matrix(c("a", 0, 0, 0, "a", "a", "a", 0, 0), 3, 3)
B <- as_sym(A)
expect_equal(as.character(B[1:2, ]), as.character(as_sym(A[1:2, ])))
expect_equal(as.character(B[1, ]), as.character(as_sym(A[1, ])))
expect_equal(as.character(B[-1, ]), as.character(as_sym(A[-1, ])))
expect_equal(as.character(B[, 1:2]), as.character(as_sym(A[, 1:2])))
expect_equal(as.character(B[1, , drop = FALSE]), as.character(as_sym(A[1, , drop = FALSE])))
b <- B[1, ]
a <- A[1, ]
expect_equal(as.character(b[3]), as.character(as_sym(a[3])))
expect_equal(as.character(b[c(1, 3)]), as.character(as_sym(a[c(1, 3)])))
expect_equal(as.character(b[-c(1, 3)]), as.character(as_sym(a[-c(1, 3)])))
b <- B[, 1]
a <- A[, 1]
expect_equal(as.character(b[3]), as.character(as_sym(a[3])))
expect_equal(as.character(b[c(1, 3)]), as.character(as_sym(a[c(1, 3)])))
expect_equal(as.character(b[-c(1, 3)]), as.character(as_sym(a[-c(1, 3)])))
})
test_that("set", {
skip_if_no_sympy()
A <- matrix(c("a", 0, 0, 0, "a", "a", "a", 0, 0), 3, 3)
B <- as_sym(A)
Amod <- A
Amod[2, 2] <- "x"
Bmod <- B
Bmod[2, 2] <- "x"
expect_equal(as.character(Bmod), as.character(as_sym(Amod)))
Amod <- A
Amod[, 2] <- "x"
Bmod <- B
Bmod[, 2] <- "x"
expect_equal(as.character(Bmod), as.character(as_sym(Amod)))
b <- B[1, ]
b[1] <- "x"
a <- A[1, ]
a[1] <- "x"
expect_equal(as.character(b), as.character(as_sym(a)))
})
test_that("diag", {
skip_if_no_sympy()
A <- matrix(c("a", 0, 0, 0, "a", "a", "a", 0, 0), 3, 3)
x <- as_sym(A)
diag(x) <- "b"
expect_equal(as.character(x),
"Matrix([[b, 0, a], [0, b, 0], [0, a, b]])")
Ve1 <- as_sym(matrix(
c(1, 0, 0, 0, 0,
0, "v2", 0, 0, 0,
0, 0, "v2", 0, 0,
0, 0, 0, "v2", 0,
0, 0, 0, 0, "v2"), nrow=5, byrow = TRUE))
Ve2 <- as_sym(diag(5))
diag(Ve2) <- c("1", rep("v2", 4))
expect_equal(as.character(Ve1),
as.character(Ve2))
})
test_that("diag subassignment", {
skip_if_no_sympy()
Aorg <- diag(5)
B <- as_sym(Aorg)
expect_equal(as.character(diag(B)), "Matrix([[1, 1, 1, 1, 1]])")
diag(B)[2:4] <- 4
expect_equal(as.character(diag(B)), "Matrix([[1, 4, 4, 4, 1]])")
expect_equal(as.character(B), "Matrix([[1, 0, 0, 0, 0], [0, 4, 0, 0, 0], [0, 0, 4, 0, 0], [0, 0, 0, 4, 0], [0, 0, 0, 0, 1]])")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.