tests/testthat/test-TOP-LEVEL-estimate.R

context("test-test-top-level-function-misssbm")

N_nocov <- 80
source("utils_test.R", local = TRUE)
sampler_undirected_nocov$rNetwork(store = TRUE)
A  <- sampler_undirected_nocov$networkData
cl <- sampler_undirected_nocov$memberships

l_psi <- list(
  "dyad" = c(.7),
  "node" = c(.7),
  "double-standard" = c(0.4, 0.8),
  "block-node" = c(.3, .8, .5),
  "block-dyad" = sampler_undirected_nocov$connectParam$mean#,
  #    "degree" = c(.01, .01)
)

test_that("missSBM and class missSBM-fit are coherent", {

  for (k in seq_along(l_psi)) {

    sampling <- names(l_psi)[k]
    adjMatrix <- missSBM::observeNetwork(A, sampling, l_psi[[k]], clusters = cl)
    partlyObservedNet <- missSBM:::partlyObservedNetwork$new(adjMatrix)
    cl0 <- partlyObservedNet$clustering(1:Q)[[Q]]

    ## control parameter for the VEM
    control <- list(threshold = 1e-3, maxIter = 100, fixPointIter = 5, trace = 0, exploration = "none")

    ## Perform inference with internal classes
    missSBM <- missSBM:::missSBM_fit$new(partlyObservedNet, sampling, cl0, TRUE)
    out_missSBM <- missSBM$doVEM(control)

    ## Perform inference with the top level function
    collection <- estimateMissSBM(
      adjacencyMatrix = adjMatrix,
      vBlocks     = 1:3,
      sampling    = sampling,
      control     = control
    )

    expect_is(collection, "missSBM_collection")
    expect_gte(aricode::ARI(collection$models[[Q]]$fittedSBM$memberships, missSBM$fittedSBM$memberships), 1)

  }

})

Try the missSBM package in your browser

Any scripts or data that you put into this service are public.

missSBM documentation built on Oct. 24, 2023, 5:08 p.m.