tests/testthat/test-sbm-MAR_bernoulli-with-covariates.R

set.seed(1234)
library(sbm)
library(aricode)

N_cov   <- 100
Q <- 2
M <- 1
source("utils_test.R", local = TRUE)

test_that("SimpleSBM_fit 'Bernoulli' model, undirected, one covariate, dyad sampling, MAR", {

  sampler_undirected_cov$rNetwork(store = TRUE)

  adjMatrix  <- missSBM::observeNetwork(sampler_undirected_cov$networkData, "dyad", 0.8)
  net <- missSBM:::partlyObservedNetwork$new(adjMatrix, covariates = covarList_undirected)
  cls <- net$clustering(1:(2*Q))
  cl <- cls[[Q]]

  mySBM <- missSBM:::SimpleSBM_fit_withCov$new(net, cl, covarList_undirected)
  mySBM$doVEM()

  ## correctness
  expect_lt(rmse(mySBM$connectParam$mean, sampler_undirected_cov$connectParam$mean), 0.075)
  expect_gt(ARI(mySBM$memberships       , sampler_undirected_cov$memberships), 0.95)

})

test_that("SimpleSBM_fit 'Bernoulli' model, directed, one covariate, dyad sampling, MAR", {

  sampler_directed_cov$rNetwork(store = TRUE)

  adjMatrix  <- missSBM::observeNetwork(sampler_directed_cov$networkData, "dyad", 0.8, covariates = covarList_directed)
  net <- missSBM:::partlyObservedNetwork$new(adjMatrix, covariates = covarList_directed)
  cls <- net$clustering(1:(2*Q))
  cl <- cls[[Q]]

  mySBM <- missSBM:::SimpleSBM_fit_withCov$new(adjMatrix, cl, covarList_directed)
  mySBM$doVEM()

  ## correctness
  expect_lt(rmse(mySBM$connectParam$mean, sampler_directed_cov$connectParam$mean), 0.075)
  expect_gt(ARI(mySBM$memberships       , sampler_directed_cov$memberships), 0.95)

})
jchiquet/missSBM documentation built on Oct. 25, 2023, 5:30 a.m.