1
2context("as.directed")
3
4test_that("as.directed works", {
5  library(igraph)
6
7  g <- sample_gnp(100, 2/100)
8  g2 <- as.directed(g, mode="mutual")
9  g3 <- as.directed(g, mode="arbitrary")
10
11  expect_that(degree(g), equals(degree(g3)))
12  expect_that(degree(g), equals(degree(g2) / 2))
13
14  expect_true(graph.isomorphic(g, as.undirected(g2)))
15  expect_true(graph.isomorphic(g, as.undirected(g3)))
16})
17
18test_that("as.directed keeps attributes", {
19  library(igraph)
20  g <- graph_from_literal( A-B-C, D-A, E )
21  g$name <- "Small graph"
22  g2 <- as.directed(g, mode="mutual")
23  g3 <- as.directed(g, mode="arbitrary")
24  expect_that(g2$name, equals(g$name))
25  expect_that(V(g2)$name, equals(V(g)$name))
26  expect_that(g3$name, equals(g$name))
27  expect_that(V(g3)$name, equals(V(g)$name))
28
29  E(g)$weight <- seq_len(ecount(g))
30  g4 <- as.directed(g, "mutual") ; df4 <- as_data_frame(g4)
31  g5 <- as.directed(g, "arbitrary") ; df5 <- as_data_frame(g5)
32  expect_that(df4[order(df4[,1], df4[,2]),]$weight, equals(c(1,2,1,3,3,2)))
33  expect_that(df5[order(df5[,1], df5[,2]),]$weight, equals(1:3))
34})
35
36