context("ego") test_that("ego works", { library(igraph) neig <- function(graph, order, vertices) { sp <- distances(graph) v <- unique(unlist(lapply(vertices, function(x) { w <- which(sp[x,] <= order) }))) induced_subgraph(graph, c(v,vertices)) } g <- sample_gnp(50, 5/50) v <- sample(vcount(g), 1) g1 <- make_ego_graph(g, 2, v)[[1]] g2 <- neig(g, 2, v) expect_true(graph.isomorphic(g1, g2)) ######### nei <- function(graph, order, vertices) { sp <- distances(graph) v <- unique(unlist(lapply(vertices, function(x) { w <- which(sp[x,] <= order) }))) v } v1 <- ego(g, 2, v)[[1]] v2 <- nei(g, 2, v) expect_that(as.vector(sort(v1)), equals(sort(v2))) ######### s <- ego_size(g, 2, v)[[1]] expect_that(s, equals(length(v1))) }) test_that("mindist works", { library(igraph) g <- make_ring(10) expect_that(ego_size(g, order=2, mindist=0), equals(rep(5, 10))) expect_that(ego_size(g, order=2, mindist=1), equals(rep(4, 10))) expect_that(ego_size(g, order=2, mindist=2), equals(rep(2, 10))) unvs <- function(x) lapply(x, as.vector) n0 <- unvs(ego(g, order=2, 5:6, mindist=0)) n1 <- unvs(ego(g, order=2, 5:6, mindist=1)) n2 <- unvs(ego(g, order=2, 5:6, mindist=2)) expect_that(lapply(n0, sort), equals(list(3:7, 4:8))) expect_that(lapply(n1, sort), equals(list(c(3,4,6,7), c(4,5,7,8)))) expect_that(lapply(n2, sort), equals(list(c(3,7), c(4,8)))) ng0 <- make_ego_graph(g, order=2, 5:6, mindist=0) ng1 <- make_ego_graph(g, order=2, 5:6, mindist=1) ng2 <- make_ego_graph(g, order=2, 5:6, mindist=2) expect_that(sapply(ng0, vcount), equals(c(5,5))) expect_that(sapply(ng1, vcount), equals(c(4,4))) expect_that(sapply(ng2, vcount), equals(c(2,2))) expect_that(sapply(ng0, ecount), equals(c(4,4))) expect_that(sapply(ng1, ecount), equals(c(2,2))) expect_that(sapply(ng2, ecount), equals(c(0,0))) })
Generated by dwww version 1.15 on Thu May 23 20:57:21 CEST 2024.