1
2context("closeness")
3
4test_that("closeness works", {
5  library(igraph)
6
7  kite <- graph_from_literal(Andre    - Beverly:Carol:Diane:Fernando,
8                    Beverly  - Andre:Diane:Ed:Garth,
9                    Carol    - Andre:Diane:Fernando,
10                    Diane    - Andre:Beverly:Carol:Ed:Fernando:Garth,
11                    Ed       - Beverly:Diane:Garth,
12                    Fernando - Andre:Carol:Diane:Garth:Heather,
13                    Garth    - Beverly:Diane:Ed:Fernando:Heather,
14                    Heather  - Fernando:Garth:Ike,
15                    Ike      - Heather:Jane,
16                    Jane     - Ike)
17
18  clo <- closeness(kite) * (vcount(kite)-1)
19  expect_that(round(sort(clo, decreasing=TRUE), 3),
20              equals(c(Fernando=0.643, Garth=0.643, Diane=0.600,
21                       Heather=0.600, Andre=0.529, Beverly=0.529,
22                       Carol=0.500, Ed=0.500, Ike=0.429, Jane=0.310)))
23
24  clo2 <- closeness(kite, normalized=TRUE)
25  expect_that(clo, equals(clo2))
26})
27
28## TODO: weighted closeness
29
30test_that("closeness centralization works", {
31
32  library(igraph)
33  kite <- graph_from_literal(Andre    - Beverly:Carol:Diane:Fernando,
34                    Beverly  - Andre:Diane:Ed:Garth,
35                    Carol    - Andre:Diane:Fernando,
36                    Diane    - Andre:Beverly:Carol:Ed:Fernando:Garth,
37                    Ed       - Beverly:Diane:Garth,
38                    Fernando - Andre:Carol:Diane:Garth:Heather,
39                    Garth    - Beverly:Diane:Ed:Fernando:Heather,
40                    Heather  - Fernando:Garth:Ike,
41                    Ike      - Heather:Jane,
42                    Jane     - Ike)
43
44  c1 <- closeness(kite, normalized=TRUE)
45  c2 <- centr_clo(kite)
46  expect_that(unname(c1), equals(c2$res))
47  expect_that(c2$centralization, equals(0.270374931581828))
48  expect_that(c2$theoretical_max, equals(4.23529411764706))
49
50})
51