tests/testthat/test_sim_network.R

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)
          }
)
jonotuke/graphResiduals documentation built on May 19, 2019, 8:37 p.m.