Nothing
# Generate dot syntax from graph objects
# helper functions
node <- function(id, label = NA) {
if (all(is.na(label))) {
paste0("'", id, "'")
} else {
paste0("'", id, "' \\[label = '", label, "'\\]")
}
}
edge <- function(from, to) paste0("'", from, "'->'", to, "'")
attrib_block <- "\\[[[:alnum:]'=.,[:space:]]*\\]"
expect_dot <- function(graph, pattern) {
expect_match(
object = generate_dot(graph),
regexp = paste0(pattern, collapse = "[[:space:]]*"))
}
test_that("Simple graph translates into specific form", {
# Create simple graph
nodes <- create_node_df(n = 10)
edges <-
create_edge_df(
from = 1:9,
to = 2:10)
graph <-
create_graph(
nodes_df = nodes,
edges_df = edges)
expect_dot(
graph,
c("^digraph", "\\{",
"graph", attrib_block,
"node", attrib_block,
"edge", attrib_block,
node(1:10),
edge(1:9, 2:10),
"\\}$")
)
})
# test_that("Graph with clustered nodes create subgraph", {
#
# # Create node clusters
#
# nodes <-
# create_node_df(
# n = 6,
# cluster = c(NA, 'foo', 'foo', 'bar', NA, 'bar'))
#
# edges <-
# create_edge_df(
# from = 1:5,
# to = 2:6)
#
# graph <-
# create_graph(
# nodes_df = nodes,
# edges_df = edges)
#
# expect_dot(
# graph,
# c("^digraph", "\\{",
# "graph", attrib_block,
# "node", attrib_block,
# "edge", attrib_block,
# node(c(1,5)),
# "subgraph cluster2\\{\nlabel='bar'",
# node(c(4,6)), "\\}",
# "subgraph cluster3\\{\nlabel='foo'",
# node(c(2,3)), "\\}",
# edge(1:5, 2:6),
# "\\}$")
# )
#
# # Example from @Enchufa2
#
# nodes = data.frame(id = c(1,2,3),
# label = c("a","b","c"),
# cluster = c(NA,"data","data"))
# edges = data.frame(from = c(1,2),
# to = c(3,3))
#
# graph <- create_graph() %>%
# add_nodes_from_table(nodes, label_col = label) %>%
# add_edges_from_table(edges, from, to, id_external) %>%
# add_global_graph_attrs("layout", "dot", "graph")
#
# expect_dot(
# graph,
# c("^digraph", "\\{",
# "graph", attrib_block,
# "node", attrib_block,
# "edge", attrib_block,
# node(1, 'a'),
# "subgraph cluster2\\{\nlabel='data'",
# node(c(2,3), c('b', 'c')), "\\}",
# edge(c(1, 2), c(3, 3)),
# "\\}$")
# )
# })
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.