context("Random graphs")
# ------------------------------------------------------------------------------
test_that("Bernoulli model", {
set.seed(123)
graph <- rgraph_er(n=3e2, p=.3)
expect_equal(sum(graph)/length(graph), .3, tolerance=5e-3, scale=1)
set.seed(1); ans0 <- rgraph_er(100, p=.3)
set.seed(1); ans1 <- rgraph_er(100, p=.3, as.edgelist = TRUE)
ans1<-edgelist_to_adjmat(ans1[,1:2])
expect_equivalent(ans0,ans1)
# Dynamic
ans0 <- vector("list", 2)
set.seed(1)
ans0[[1]] <- rgraph_er(10)
ans0[[2]] <- rgraph_er(10)
set.seed(1)
ans1 <- rgraph_er(10, 2)
expect_equivalent(ans0,ans1)
})
# Barabasi-albert (need more sophisticated test) -------------------------------
test_that("Barabasi-Albert model: generic test", {
set.seed(8123)
graph <- rgraph_ba(m0=1, t = 10)
graph_big <- rgraph_ba(t = 3, graph = graph)
expect_is(graph, "dgCMatrix")
expect_equivalent(graph, graph_big[1:11, 1:11], info="Groing graph")
})
test_that("Barabasi-Albert model: methods", {
set.seed(651)
# Creating dyngraph
graph <- vector("list", 3)
graph[[1]] <- rgraph_ba(m0=1, t = 9)
graph[[2]] <- rewire_graph(graph[[1]], .3)
graph[[3]] <- rewire_graph(graph[[2]], .3)
# Diffnet
toa <- sample(c(1:3,NA),10, TRUE)
diffnet <- new_diffnet(graph, toa, t0=1, t1=3)
# Array
graphar <- lapply(graph, as.matrix)
graphar <- array(unlist(graphar), dim=c(10,10,3))
set.seed(123); x_dn <- rgraph_ba(t=2, graph=diffnet)$graph
set.seed(123); x_ar <- rgraph_ba(t=2, graph=graphar)
set.seed(123); x_ls <- rgraph_ba(t=2, graph=diffnet$graph)
expect_equivalent(x_dn, x_ar)
expect_equivalent(x_dn, x_ls)
})
# De Almeida et al. ------------------------------------------------------------
test_that("De Almeida model: Generic test", {
set.seed(8123)
eta <- sample(1:2, 11, TRUE)
graph <- rgraph_ba(m0=1, t = 10, eta=eta)
graph_big <- rgraph_ba(t = 3, graph = graph, eta=c(eta, eta[1:3]))
expect_is(graph, "dgCMatrix")
expect_equivalent(graph, graph_big[1:11, 1:11], info="Groing graph")
# Checking error
expect_error(rgraph_ba(t=10, eta=as.character(eta)), "vector")
eta[1] <- NA
expect_error(rgraph_ba(t=10, eta=eta), "cases")
})
test_that("De Almeida model: methods", {
set.seed(651)
eta <- sample(c(1,30), 10, TRUE)
# Creating dyngraph
graph <- vector("list", 3)
graph[[1]] <- rgraph_ba(m0=1, t = 9, eta=eta)
graph[[2]] <- rewire_graph(graph[[1]], .3)
graph[[3]] <- rewire_graph(graph[[2]], .3)
# Diffnet
toa <- sample(c(1:3,NA),10, TRUE)
diffnet <- new_diffnet(graph, toa, t0=1, t1=3)
# Array
graphar <- lapply(graph, as.matrix)
graphar <- array(unlist(graphar), dim=c(10,10,3))
set.seed(123); x_dn <- rgraph_ba(t=2, graph=diffnet, eta=c(eta, 1:2))$graph
set.seed(123); x_ar <- rgraph_ba(t=2, graph=graphar, eta=c(eta, 1:2))
set.seed(123); x_ls <- rgraph_ba(t=2, graph=diffnet$graph, eta=c(eta, 1:2))
expect_equivalent(x_dn, x_ar)
expect_equivalent(x_dn, x_ls)
})
# Watts-Strogatz model ---------------------------------------------------------
test_that("Watts-Strogatz model: Rewiring shouldn't change the # of elements", {
# Generating the data
set.seed(123)
test1 <- NULL
test2 <- NULL
test3 <- NULL
for (i in 1:50) {
graph0 <- rgraph_ws(10,2,.1, undirected = TRUE)
graph1 <- rgraph_ws(10,2,.5, undirected = TRUE)
graph2 <- rgraph_ws(10,2,.5, undirected = TRUE)
graph3 <- rgraph_ws(10,2,.8, undirected = TRUE)
test1 <- c(test1, sum(graph0) == sum(graph1))
test2 <- c(test2, sum(graph1) == sum(graph2))
test3 <- c(test3, sum(graph2) == sum(graph3))
}
expect_true(all(test1))
expect_true(all(test2))
expect_true(all(test3))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.