test_that("errors are given for improper input",{
# Matrix does not have two columns
expect_error( as_sparse6(matrix(1, 1, 1)), regexp="handles edgelists with 2 columns")
# Matrix has more than two columns
expect_error( as_sparse6(matrix(1, 3, 3)), regexp="handles edgelists with 2 columns")
# Bad class
expect_error( as_sparse6(1), regexp="handle class")
})
test_that("works for simple matrices", {
m <- matrix(c(1,2,1,3), 2, 2,byrow = T)
expect_silent(as_sparse6(m, 3))
})
test_that("works for ':Fa@x^' from format documentation", {
s6 <- ":Fa@x^"
elist <- matrix(c(1,2, 1,3, 2,3, 6,7), ncol=2, byrow=TRUE)
expect_equivalent(
edgelist_from_sparse6(s6)[[1]],
elist
)
expect_true(igraph::identical_graphs(
igraph_from_sparse6(s6)[[1]],
igraph::graph_from_edgelist(elist, directed=FALSE)
))
})
test_that("works on lists of edgelists representing graphs of varying size (#27)", {
l <- list(
matrix(c(1,2, 2,3, 3,4), ncol=2, byrow=TRUE),
matrix(c(1,2, 2,3), ncol=2, byrow=TRUE)
)
expect_silent(
r <- as_sparse6(l)
)
s6 <- c(":Cdv", ":Bd")
expect_identical(r, s6)
expect_equivalent(edgelist_from_sparse6(s6), l)
})
test_that("behaves correctly for edgelists with different maximums (#28)", {
requireNamespace("igraph")
# 1
g <- igraph::make_graph(~ A, B, C, D, E -- F)
elm <- igraph::as_edgelist(g, names=FALSE) # [5, 6]
expect_identical(
as_sparse6(g),
as_sparse6(elm)
)
# 2
g <- igraph::make_graph(~ A -- B, C, D, E, F)
elm <- igraph::as_edgelist(g, names=FALSE) # [1, 2]
expect_identical(
as_sparse6(g),
as_sparse6(elm, n = 6)
)
expect_identical(as_sparse6(elm), ":An")
# 3
g <- igraph::make_graph(~ A, B -- C, D, E, F)
elm <- igraph::as_edgelist(g, names=FALSE) # [2, 3]
expect_identical(
as_sparse6(g),
as_sparse6(elm, n = 6)
)
expect_identical(as_sparse6(elm), ":Bp")
#4
expect_equivalent(as_sparse6(igraph::graph.full(2)),
as_sparse6(edgelist_from_sparse6(":An")))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.