context("Egonets")
test_that("Simple extraction throught clases", {
set.seed(1931)
# Generating data ----------
n <- 50
t <- 10
diffnet <- rdiffnet(50,10, seed.graph = "small-world")
# Adding attributes
# Dynamic
diffnet[["unif"]] <- runif(n*t)
diffnet[["bool"]] <- runif(n*t) > .5
# Static
diffnet[["d"]] <- rowMeans(dgr(diffnet))
diffnet[["threshold"]] <- threshold(diffnet)
# Computing egonets
en_diffnet_dn <- egonet_attrs(diffnet, fun=function(x) {
sum(x[,"threshold"] * x[,"d"], na.rm=TRUE)/sum(x[,"d"], na.rm=TRUE)
})
en_diffnet_ar <- egonet_attrs(as.array(diffnet), attrs=diffnet.attrs(diffnet), fun=function(x) {
sum(x[,"threshold"] * x[,"d"], na.rm=TRUE)/sum(x[,"d"], na.rm=TRUE)
})
en_list <- egonet_attrs(diffnet$graph, diffnet.attrs(diffnet), fun=function(x) {
sum(x[,"threshold"] * x[,"d"], na.rm=TRUE)/sum(x[,"d"], na.rm=TRUE)
})
expect_equal(en_diffnet_dn, en_diffnet_ar)
expect_equal(en_diffnet_dn, en_list)
en_dgCMatrix <- egonet_attrs(
diffnet$graph[[1]],
diffnet.attrs(diffnet)[[1]],
fun=function(x) {
sum(x[,"threshold"] * x[,"d"], na.rm=TRUE)/sum(x[,"d"], na.rm=TRUE)
})
en_matrix <- egonet_attrs(
as.matrix(diffnet$graph[[1]]),
diffnet.attrs(diffnet)[[1]],
fun=function(x) {
sum(x[,"threshold"] * x[,"d"], na.rm=TRUE)/sum(x[,"d"], na.rm=TRUE)
})
expect_equal(en_dgCMatrix, en_matrix)
})
test_that("Error messages", {
set.seed(1313131312)
graph <- rdiffnet(100, 20)
expect_error(egonet_attrs(graph, attrs=1), "must be a list")
expect_error(egonet_attrs(graph, attrs=vector("list",18)), "as many elements as")
expect_error(egonet_attrs(graph, attrs=vector("list", 20), V = -1), "out of range")
expect_error(egonet_attrs(graph, attrs=vector("list", 20), V = NA), "is empty")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.