v1 = (c(1,1,1,0))
v2 = c(0,0,0,1)
v3 = c(1,1,1,0)
v4 = c(0,0,0,1)
w = matrix(data = c(v1,v2,v3,v4), ncol = 4, nrow = 4)
w = Matrix::Matrix(w, sparse = TRUE)
rownames = c("A", "B", "C", "D")
seed_proteins = c("A", "C")
seed = 1
p <- sparseRWR(seed, w, norm = TRUE)
test_that("sparseRWR returns a list of 3 ouputs of the correct types and lengths", {
expect_true(is.double(p[[1]]))
expect_equal(length(p[[1]]), 4)
expect_true(is.double(p[[2]]))
expect_equal(length(p[[2]]), 1)
expect_equal(length(p[[3]]), 1)
expect_true(is.integer(p[[3]]))
})
test_that("sparseRWR completes in < 1000 iterations", {
expect_lt(p[[3]], 1000)
})
test_that("sparseRWR output equals expected", {
expect_equal(sparseRWR(1,w, norm = TRUE)[[1]], c(0.709, 0, 0.109, 0), tolerance = 0.001)
expect_equal(sparseRWR(2,w, norm = TRUE)[[1]], c(0.1090909, 0.6, 0.1090909, 0), tolerance = 0.001)
expect_equal(sparseRWR(3,w, norm = TRUE)[[1]], c(0.1090909, 0, 0.7090909, 0), tolerance = 0.001)
expect_equal(sparseRWR(4,w, norm = TRUE)[[1]], c(0.07272, 0.4, 0.07272, 1), tolerance = 0.001)
expect_equal(sparseRWR(c(1,2), w, norm = TRUE)[[1]], c(0.40909, 0.3, 0.10909, 0), tolerance = 0.001)
expect_lte(sum(sparseRWR(c(1,3), w, norm = TRUE)[[1]]), 1)
})
test_that("sparseRWR doesn't break if you give seeds that don't exist in the data", {
expect_equal(sparseRWR(c(1,6),w, norm = TRUE)[[1]], c(0.709, 0, 0.109, 0), tolerance = 0.001)
})
g <- igraph::sample_gnp(n = 1000, p = 0/1000)
w <- igraph::as_adjacency_matrix(g)
test_that("sparseRWR breaks for really sparse graphs", {
expect_error(sparseRWR(c(1,2,3,4), w = w))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.