context("symmetrize function")
test_that("function works for integer inputs", {
# integers
x = matrix(sample.int(100, 25), nrow = 5)
x_old = x
x_sym = symmetrize(x)
expect_identical(x, x_old)
for (i in 1:5) {
for (j in 1:5) {
expect_identical(x_sym[i,j], x_sym[j,i])
if (i > j)
expect_identical(x_sym[i, j], x[j, i])
}
}
x_sym_lo = symmetrize(x, FALSE)
expect_identical(x, x_old)
for (i in 1:5) {
for (j in 1:5) {
if (i > j)
expect_identical(x_sym_lo[j, i], x[i, j])
}
}
})
test_that("function works for numeric inputs", {
x = matrix(rnorm(25), nrow = 5)
x_old = x
x_sym = symmetrize(x)
expect_identical(x, x_old)
for (i in 1:5) {
for (j in 1:5) {
expect_identical(x_sym[i,j], x_sym[j,i])
if (i > j)
expect_identical(x_sym[i, j], x[j, i])
}
}
x_sym_lo = symmetrize(x, FALSE)
expect_identical(x, x_old)
for (i in 1:5) {
for (j in 1:5) {
if (i > j)
expect_identical(x_sym_lo[j, i], x[i, j])
}
}
})
test_that("function works for logical input", {
x = matrix(sample(c(F, T), 25, replace = T), nrow = 5)
x_old = x
x_sym = symmetrize(x)
expect_identical(x, x_old)
for (i in 1:5) {
for (j in 1:5) {
expect_identical(x_sym[i,j], x_sym[j,i])
if (i > j)
expect_identical(x_sym[i, j], x[j, i])
}
}
x_sym_lo = symmetrize(x, FALSE)
expect_identical(x, x_old)
for (i in 1:5) {
for (j in 1:5) {
if (i > j)
expect_identical(x_sym_lo[j, i], x[i, j])
}
}
})
test_that("function works for character input", {
x = matrix(sample(letters[1:25], 25, replace = T), nrow = 5)
x_old = x
x_sym = symmetrize(x)
expect_identical(x, x_old)
for (i in 1:5) {
for (j in 1:5) {
expect_identical(x_sym[i,j], x_sym[j,i])
if (i > j)
expect_identical(x_sym[i, j], x[j, i])
}
}
x_sym_lo = symmetrize(x, FALSE)
expect_identical(x, x_old)
for (i in 1:5) {
for (j in 1:5) {
if (i > j)
expect_identical(x_sym_lo[j, i], x[i, j])
}
}
})
test_that("function throws appropriate errors", {
expect_error(symmetrize(c(x)))
expect_error(symmetrize(matrix(sample.int(100, 20), nrow = 5)))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.