library(graphResiduals)
context("Simulation functions")
test_that("get_dist",
{
expect_equivalent(get_dist(c(0,0),c(1,1)), sqrt(2))
expect_equivalent(get_dist(c(-1,-1), c(1,1)),sqrt(8))
expect_equivalent(get_dist(c(-1,-1), c(-1,-1)),0)
}
)
test_that("get_pij",
{
expect_equivalent(get_pij(1,1,1), exp(-1))
expect_equivalent(get_pij(10,1,1), exp(-10))
expect_equivalent(get_pij(1,0,1), 0)
expect_equivalent(get_pij(1,1,0), 1)
expect_equivalent(get_pij(1,0.5,0), 0.5)
}
)
test_that("sim_dist",
{
x <- sim_dist(10)
expect_equivalent(x,t(x))
expect_lte(max(abs(x)),sqrt(2))
}
)
test_that("sim_barabasi_cpp",
{
g <- igraph::barabasi.game(n = 100,m = 10, directed = FALSE)
plot(g)
g2 <- sim_barabasi_cpp(100, igraph::as_edgelist(g))
g2 < 0
expect_equivalent((g2<0)*1, as.matrix(igraph::as_adjacency_matrix(g)))
}
)
test_that("sim_barabasi",
{
set.seed(1000)
g1 <- igraph::barabasi.game(n = 100,m = 10,directed = FALSE)
set.seed(1000)
g2 <- sim_barabasi(100,10)
expect_equivalent((g2<0)*1, as.matrix(igraph::as_adjacency_matrix(g1)))
}
)
test_that("sim_erdos",
{
erdos <- sim_erdos(100,0.5)
D <- erdos[upper.tri(erdos)]
expect_gte(prop.test(sum(D<0), length(D), p = 0.5)$p.value, 0.05)
erdos <- sim_erdos(100,0.1)
D <- erdos[upper.tri(erdos)]
expect_gte(prop.test(sum(D<0), length(D), p = 0.1)$p.value, 0.05)
}
)
test_that("sim_waxman",
{
expect_equal(sum(sim_waxman(10,1,0) <= 0),100)
expect_equal(sum(sim_waxman(10,0,0) <= 0),10)
M <- sim_waxman(10,0.5,0)
df <- data.frame(D = M[upper.tri(M)])
df <- df %>% dplyr::mutate(edge = ifelse(D < 0, "edge", "no edge"), D = abs(D))
expect_gte(t.test(D~edge, data = df)$p.value,0.05)
M <- sim_waxman(100,0.5,1)
df <- data.frame(D = M[upper.tri(M)])
df <- df %>% dplyr::mutate(edge = ifelse(D < 0, "edge", "no edge"), D = abs(D))
df
expect_lte(t.test(D~edge, data = df)$p.value,0.05)
}
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.