context("Graph objects")
test_that("Checking that -graph- argument correctly passes", {
# From the adjmat.R file -----------------------------------------------------
# expect_error(edgelist_to_adjmat(1), "No method for")
# expect_error(edgelist_to_adjmat("a"), "No method for")
expect_error(adjmat_to_edgelist(1), "No method for")
expect_error(adjmat_to_edgelist("a"), "No method for")
})
# ------------------------------------------------------------------------------
test_that("Graph class analysis", {
# Generic error
expect_error(classify_graph(1), "Not an object")
# Static graphs
expect_error(classify_graph(matrix(nrow = 0, ncol=0)), "Empty")
expect_error(classify_graph(matrix(nrow = 2, ncol=1)), "square")
expect_error(classify_graph(matrix(TRUE,nrow = 2, ncol=2)), "numeric")
expect_output( print(classify_graph(matrix(1,nrow = 1, ncol=1))) , "static")
# Dynamic graphs (simple)
expect_error(classify_graph(array(dim = c(1,0,3))), "square")
expect_error(classify_graph(array(dim = c(1,0,0))), "length 2")
expect_error(classify_graph(array(TRUE,dim = c(1,1,2))), "numeric")
# Dynamic graphs (complex)
graph <- sapply(3:6,rgraph_ba)
expect_error(classify_graph(graph), "dimensions .* slices .* equal")
graph <- sapply(1:3,function(x) rgraph_ba())
expect_output( print(classify_graph(graph)) , "dynamic")
graph <- array(unlist(lapply(graph, as.matrix)), dim=c(11,11,3))
expect_output( print(classify_graph(graph)) , "dynamic")
}
)
# ------------------------------------------------------------------------------
test_that("As generic graph", {
g <- rgraph_ba(t=19)
# igraph case
ig <- igraph::graph_from_adjacency_matrix(g)
ans0 <- netdiffuseR:::as_generic_graph.igraph(ig)
expect_equal(igraph::as_adj(ig), ans0$graph[[1]])
# network case
nw <- network::network(as.matrix(g), loops=TRUE)
ans1 <- netdiffuseR:::as_generic_graph.network(nw)
# ans1 <- as.matrix(ans1$graph[[1]])
expect_equivalent(as.matrix(nw), as.matrix(ans1$graph[[1]]))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.