1
2context("motifs")
3
4test_that("motif finding works", {
5
6  library(igraph)
7  set.seed(123)
8
9  b <- sample_gnp(10000, 4/10000, directed=TRUE)
10
11  mno <- count_motifs(b)
12
13  mno0 <- count_motifs(b, cut.prob=c(1/3, 0, 0))
14  mno1 <- count_motifs(b, cut.prob=c(0, 0, 1/3))
15  mno2 <- count_motifs(b, cut.prob=c(0, 1/3, 0))
16  expect_that(c(mno0/mno, mno1/mno, mno2/mno),
17              equals(c(0.654821903845065, 0.666289144345659,
18                       0.668393831285275)))
19
20  mno3 <- count_motifs(b, cut.prob=c(0, 1/3, 1/3))
21  mno4 <- count_motifs(b, cut.prob=c(1/3, 0, 1/3))
22  mno5 <- count_motifs(b, cut.prob=c(1/3, 1/3, 0))
23  expect_that(c(mno3/mno, mno4/mno, mno5/mno),
24              equals(c(0.443959957465819, 0.441952797125797,
25                       0.446004870037941) ))
26
27######################
28
29  set.seed(123)
30  b <- sample_gnp(10000, 4/10000, directed=TRUE)
31
32  m <- motifs(b)
33
34  m0 <- motifs(b, cut.prob=c(1/3, 0, 0))
35  m1 <- motifs(b, cut.prob=c(0, 1/3, 0))
36  m2 <- motifs(b, cut.prob=c(0, 0, 1/3))
37  expect_that(m0/m, equals(c(NA, NA, 0.653972107372707, NA,
38                             0.653993015279859, 0.612244897959184,
39                             0.657514670174019, 0.63013698630137, NaN,
40                             0.538461538461538, NaN,
41                             0.565217391304348, NaN, NaN, NaN, NaN)))
42  expect_that(m1/m, equals(c(NA, NA, 0.669562138856225, NA,
43                             0.66808158454082, 0.73469387755102,
44                             0.670819000404694, 0.657534246575342,
45                             NaN, 0.769230769230769, NaN,
46                             0.739130434782609, NaN, NaN, NaN, NaN) ))
47  expect_that(m2/m, equals(c(NA, NA, 0.666451718949538, NA,
48                             0.665291458452201, 0.591836734693878,
49                             0.666683528935654, 0.671232876712329,
50                             NaN, 0.753846153846154, NaN,
51                             0.565217391304348, NaN, NaN, NaN, NaN) ))
52
53  m3 <- motifs(b, cut.prob=c(0, 1/3, 1/3))
54  m4 <- motifs(b, cut.prob=c(1/3, 1/3, 0))
55  m5 <- motifs(b, cut.prob=c(1/3, 1/3, 0))
56  expect_that(m3/m, equals(c(NA, NA, 0.445611905574732, NA,
57                             0.442789875290769, 0.448979591836735,
58                             0.444695973290166, 0.424657534246575,
59                             NaN, 0.369230769230769, NaN,
60                             0.608695652173913, NaN, NaN, NaN, NaN)))
61
62  expect_that(m4/m, equals(c(NA, NA, 0.439251981944392, NA,
63                             0.439284975327761, 0.73469387755102,
64                             0.445088021044112, 0.465753424657534,
65                             NaN, 0.630769230769231, NaN,
66                             0.565217391304348, NaN, NaN, NaN, NaN) ))
67
68  expect_that(m5/m, equals(c(NA, NA, 0.439985332979302, NA,
69                             0.440288166730411, 0.346938775510204,
70                             0.44159753136382, 0.452054794520548, NaN,
71                             0.323076923076923, NaN,
72                             0.347826086956522, NaN, NaN, NaN, NaN) ))
73})
74