CRAN Package Check Results for Package sbm

Last updated on 2026-11-13 17:51:58 CET.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 1.0.0 41.87 571.33 613.20 OK
r-devel-linux-x86_64-debian-gcc 1.0.0 27.91 418.02 445.93 OK
r-devel-linux-x86_64-fedora-clang 1.0.0 31.00 381.46 412.46 OK
r-devel-linux-x86_64-fedora-gcc 1.0.0 29.00 370.92 399.92 OK
r-devel-windows-x86_64 0.4.7 70.00 325.00 395.00 OK
r-patched-linux-x86_64 1.0.0 37.31 540.60 577.91 OK
r-release-linux-x86_64 0.4.7 37.67 401.25 438.92 OK
r-release-macos-arm64 1.0.0 9.00 99.00 108.00 OK
r-release-macos-x86_64 1.0.0 28.00 1092.00 1120.00 OK
r-release-windows-x86_64 1.0.0 44.00 360.00 404.00 OK
r-oldrel-macos-arm64 1.0.0 ERROR
r-oldrel-macos-x86_64 1.0.0 30.00 1085.00 1115.00 OK
r-oldrel-windows-x86_64 1.0.0 58.00 443.00 501.00 OK

Check Details

Version: 1.0.0
Check: tests
Result: ERROR Running ‘spelling.R’ [0s/0s] Running ‘testthat.R’ [69s/51s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(sbm) > library(aricode) > > test_check("sbm") *** caught segfault *** address 0x110, cause 'invalid permissions' *** caught segfault *** address 0x110, cause 'invalid permissions' Traceback: 1: FUN(X[[i]], ...) 2: lapply(X = X, FUN = FUN, ...) 3: sapply(1:cardE, function(e) { gr = matE[e, 1] gc = matE[e, 2] don = list_Mat[[e]] maskNA = list_MaskNA[[e]] if (v_distrib[e] == "bernoulli") { Unmdon = (1 - don) * maskNA } if (v_distrib[e] %in% c("laplace", "poisson", "gaussian", Traceback: "ZIgaussian")) { 1: Unit <- maskNA }FUN(X[[i]], ...) if (v_distrib[e] == "ZIgaussian") { NonZerosdon <- (don != 0) 2: Zerosdon <- (don == 0) * maskNAlapply(X = X, FUN = FUN, ...) } facteur = 1 3: if (gc < 1) {sapply(1:cardE, function(e) { if (gc == 0) gr = matE[e, 1] facteur = 1/2 gc = matE[e, 2] gc = gr } don = list_Mat[[e]] if (v_distrib[e] == "bernoulli") { maskNA = list_MaskNA[[e]] prov = (tau[[gr]]) %*% log(list_theta[[e]]) %*% t(tau[[gc]]) prov1m = (tau[[gr]]) %*% log(1 - list_theta[[e]]) %*% if (v_distrib[e] == "bernoulli") { t(tau[[gc]]) Unmdon = (1 - don) * maskNA return((sum(don * prov) + sum((Unmdon) * prov1m)) * facteur) } } if (v_distrib[e] == "poisson") { if (v_distrib[e] %in% c("laplace", "poisson", "gaussian", prov = (tau[[gr]]) %*% log(list_theta[[e]]) %*% t(tau[[gc]]) "ZIgaussian")) { prov2 = (tau[[gr]]) %*% list_theta[[e]] %*% t(tau[[gc]]) return((sum(don * prov) - sum(Unit * prov2)) * facteur) Unit <- maskNA } if (v_distrib[e] == "laplace") { } prov = (tau[[gr]]) %*% log(2 * list_theta[[e]]) %*% t(tau[[gc]]) if (v_distrib[e] == "ZIgaussian") { NonZerosdon <- (don != 0) prov2 = (tau[[gr]]) %*% (1/list_theta[[e]]) %*% t(tau[[gc]]) return((-sum(Unit * prov) - sum(don * prov2)) * facteur) Zerosdon <- (don == 0) * maskNA } } facteur = 1 if (v_distrib[e] == "gaussian") { prov = 0.5 * (tau[[gr]]) %*% (log(2 * pi * list_theta[[e]]$var) + if (gc < 1) { list_theta[[e]]$mean^2/list_theta[[e]]$var) %*% t(tau[[gc]]) prov2 = 0.5 * (tau[[gr]]) %*% (1/list_theta[[e]]$var) %*% if (gc == 0) t(tau[[gc]]) facteur = 1/2 prov3 = (tau[[gr]]) %*% (list_theta[[e]]$mean/list_theta[[e]]$var) %*% gc = gr t(tau[[gc]]) } if (v_distrib[e] == "bernoulli") { return((-sum(Unit * prov) - sum(don^2 * prov2) + sum(don * prov3)) * facteur) prov = (tau[[gr]]) %*% log(list_theta[[e]]) %*% t(tau[[gc]]) } if (v_distrib[e] == "ZIgaussian") { prov1m = (tau[[gr]]) %*% log(1 - list_theta[[e]]) %*% prov = 0.5 * (tau[[gr]]) %*% (log(2 * pi * list_theta[[e]]$var) + t(tau[[gc]]) list_theta[[e]]$mean^2/list_theta[[e]]$var) %*% t(tau[[gc]]) return((sum(don * prov) + sum((Unmdon) * prov1m)) * facteur) } prov2 = 0.5 * (tau[[gr]]) %*% (1/list_theta[[e]]$var) %*% t(tau[[gc]]) if (v_distrib[e] == "poisson") { prov3 = (tau[[gr]]) %*% (list_theta[[e]]$mean/list_theta[[e]]$var) %*% prov = (tau[[gr]]) %*% log(list_theta[[e]]) %*% t(tau[[gc]]) t(tau[[gc]]) prov2 = (tau[[gr]]) %*% list_theta[[e]] %*% t(tau[[gc]]) P1 <- sum((-Unit * prov - don^2 * prov2 + don * prov3) * return((sum(don * prov) - sum(Unit * prov2)) * facteur) (1 - Zerosdon)) } if (v_distrib[e] == "laplace") { prov4 = (tau[[gr]]) %*% log(list_theta[[e]]$p0 + (list_theta[[e]]$p0 == prov = (tau[[gr]]) %*% log(2 * list_theta[[e]]) %*% t(tau[[gc]]) 0)) %*% t(tau[[gc]]) prov2 = (tau[[gr]]) %*% (1/list_theta[[e]]) %*% t(tau[[gc]]) return((-sum(Unit * prov) - sum(don * prov2)) * facteur) } prov4m = (tau[[gr]]) %*% log(1 - list_theta[[e]]$p0 + if (v_distrib[e] == "gaussian") { (list_theta[[e]]$p0 == 1)) %*% t(tau[[gc]]) P2 <- sum(Zerosdon * prov4) + sum((1 - Zerosdon) * prov4m) prov = 0.5 * (tau[[gr]]) %*% (log(2 * pi * list_theta[[e]]$var) + return((P1 + P2) * facteur) list_theta[[e]]$mean^2/list_theta[[e]]$var) %*% t(tau[[gc]]) } prov2 = 0.5 * (tau[[gr]]) %*% (1/list_theta[[e]]$var) %*% }) t(tau[[gc]]) prov3 = (tau[[gr]]) %*% (list_theta[[e]]$mean/list_theta[[e]]$var) %*% 4: t(tau[[gc]])compLikICLInt(tau, list_theta, list_pi, matE, list_Mat, list_MaskNA, return((-sum(Unit * prov) - sum(don^2 * prov2) + sum(don * n_q, v_K, v_distrib) prov3)) * facteur) } 5: if (v_distrib[e] == "ZIgaussian") {varEMMBM(self, classif, tau = tau, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) prov = 0.5 * (tau[[gr]]) %*% (log(2 * pi * list_theta[[e]]$var) + list_theta[[e]]$mean^2/list_theta[[e]]$var) %*% t(tau[[gc]]) 6: prov2 = 0.5 * (tau[[gr]]) %*% (1/list_theta[[e]]$var) %*% dataR6$estime(list_classif_init[[l]], maxiterVE = maxiterVE, t(tau[[gc]]) maxiterVEM = maxiterVEM) prov3 = (tau[[gr]]) %*% (list_theta[[e]]$mean/list_theta[[e]]$var) %*% t(tau[[gc]]) 7: FUN(X[[i]], ...) P1 <- sum((-Unit * prov - don^2 * prov2 + don * prov3) * (1 - Zerosdon)) 8: prov4 = (tau[[gr]]) %*% log(list_theta[[e]]$p0 + (list_theta[[e]]$p0 == lapply(X = S, FUN = FUN, ...) 0)) %*% t(tau[[gc]]) prov4m = (tau[[gr]]) %*% log(1 - list_theta[[e]]$p0 + 9: (list_theta[[e]]$p0 == 1)) %*% t(tau[[gc]])doTryCatch(return(expr), name, parentenv, handler) P2 <- sum(Zerosdon * prov4) + sum((1 - Zerosdon) * prov4m) return((P1 + P2) * facteur)10: }tryCatchOne(expr, names, parentenv, handlers[[1L]])}) 11: 4: tryCatchList(expr, classes, parentenv, handlers)compLikICLInt(tau, list_theta, list_pi, matE, list_Mat, list_MaskNA, n_q, v_K, v_distrib)12: tryCatch(expr, error = function(e) { 5: call <- conditionCall(e) if (!is.null(call)) {varEMMBM(self, classif, tau = tau, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) if (identical(call[[1L]], quote(doTryCatch))) 6: call <- sys.call(-4L)dataR6$estime(list_classif_init[[l]], maxiterVE = maxiterVE, dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") maxiterVEM = maxiterVEM) LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) 7: FUN(X[[i]], ...) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") 8: if (w > LONG) lapply(X = S, FUN = FUN, ...) prefix <- paste0(prefix, "\n ") } 9: else prefix <- "Error : "doTryCatch(return(expr), name, parentenv, handler) msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L]))10: if (!silent && isTRUE(getOption("show.error.messages"))) {tryCatchOne(expr, names, parentenv, handlers[[1L]]) cat(msg, file = outFile) .Internal(printDeferredWarnings()) }11: tryCatchList(expr, classes, parentenv, handlers) invisible(structure(msg, class = "try-error", condition = e))}) 12: tryCatch(expr, error = function(e) {13: call <- conditionCall(e)try(lapply(X = S, FUN = FUN, ...), silent = TRUE) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) 14: call <- sys.call(-4L)sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L15: sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w")FUN(X[[i]], ...) if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b")16: if (w > LONG) lapply(seq_len(cores), inner.do) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : "17: msg <- paste0(prefix, conditionMessage(e), "\n")mclapply(1:L, function(l) { .Internal(seterrmessage(msg[1L])) estim.c.l <- dataR6$estime(list_classif_init[[l]], maxiterVE = maxiterVE, if (!silent && isTRUE(getOption("show.error.messages"))) { maxiterVEM = maxiterVEM) cat(msg, file = outFile)}, mc.cores = nbCores) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))18: })searchKQ(dataR6 = self, classifInit = classifInit, pastICL = pastICL, Kmin = Kmin, Kmax = Kmax, nbCores = nbCores, verbose = verbose, 13: maxiterVE = maxiterVE, maxiterVEM = maxiterVEM)try(lapply(X = S, FUN = FUN, ...), silent = TRUE) 14: 19: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE))dataR6$searchNbClusters(classifInit, Kmin = v_Kmin, Kmax = v_Kmax, pastICL = c(), verbose = verbose, nbCores = nbCores, maxiterVE = maxiterVE, 15: maxiterVEM = maxiterVEM)FUN(X[[i]], ...) 20: 16: GREMLINS::multipartiteBM(list_Net = listNetG, v_distrib = vdistrib, lapply(seq_len(cores), inner.do) namesFG = namesFG, v_Kmin = v_Kmin, v_Kmax = v_Kmax, v_Kinit = NULL, initBM = initBM, keep = TRUE, verbose = verbose, nbCores = nbCores, 17: maxiterVE = maxiterVE, maxiterVEM = maxiterVEM)mclapply(1:L, function(l) { estim.c.l <- dataR6$estime(list_classif_init[[l]], maxiterVE = maxiterVE, 21: maxiterVEM = maxiterVEM)myMBM$optimize(estimOptions)}, mc.cores = nbCores) 22: 18: eval(code, test_env)searchKQ(dataR6 = self, classifInit = classifInit, pastICL = pastICL, Kmin = Kmin, Kmax = Kmax, nbCores = nbCores, verbose = verbose, 23: maxiterVE = maxiterVE, maxiterVEM = maxiterVEM)eval(code, test_env) 19: 24: dataR6$searchNbClusters(classifInit, Kmin = v_Kmin, Kmax = v_Kmax, withCallingHandlers({ pastICL = c(), verbose = verbose, nbCores = nbCores, maxiterVE = maxiterVE, eval(code, test_env) maxiterVEM = maxiterVEM) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) {20: skip("On CRAN")GREMLINS::multipartiteBM(list_Net = listNetG, v_distrib = vdistrib, } namesFG = namesFG, v_Kmin = v_Kmin, v_Kmax = v_Kmax, v_Kinit = NULL, else if (!new_expectations && skip_on_empty) { initBM = initBM, keep = TRUE, verbose = verbose, nbCores = nbCores, skip_empty() maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) } }, expectation = handle_expectation, packageNotFoundError = function(e) {21: if (on_cran()) {myMBM$optimize(estimOptions) skip(paste0("{", e$package, "} is not installed.")) }22: }, snapshot_on_cran = function(cnd) {eval(code, test_env) snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")23: }, skip = handle_skip, warning = handle_warning, message = handle_message, eval(code, test_env) error = handle_error, interrupt = handle_interrupt) 24: withCallingHandlers({25: eval(code, test_env) new_expectations <- the$test_expectations > starting_expectationsdoTryCatch(return(expr), name, parentenv, handler) if (snapshot_skipped) { skip("On CRAN")26: }tryCatchOne(expr, names, parentenv, handlers[[1L]]) else if (!new_expectations && skip_on_empty) { skip_empty() }27: }, expectation = handle_expectation, packageNotFoundError = function(e) {tryCatchList(expr, classes, parentenv, handlers) if (on_cran()) { skip(paste0("{", e$package, "} is not installed."))28: }tryCatch(withCallingHandlers({}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE eval(code, test_env) invokeRestart("muffle_cran_snapshot") new_expectations <- the$test_expectations > starting_expectations}, skip = handle_skip, warning = handle_warning, message = handle_message, if (snapshot_skipped) { error = handle_error, interrupt = handle_interrupt) skip("On CRAN") }25: else if (!new_expectations && skip_on_empty) {doTryCatch(return(expr), name, parentenv, handler) skip_empty() }26: tryCatchOne(expr, names, parentenv, handlers[[1L]])}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) {27: skip(paste0("{", e$package, "} is not installed."))tryCatchList(expr, classes, parentenv, handlers) } }, snapshot_on_cran = function(cnd) {28: tryCatch(withCallingHandlers({ snapshot_skipped <<- TRUE eval(code, test_env) invokeRestart("muffle_cran_snapshot") new_expectations <- the$test_expectations > starting_expectations}, skip = handle_skip, warning = handle_warning, message = handle_message, if (snapshot_skipped) { error = handle_error, interrupt = handle_interrupt), error = handle_fatal) skip("On CRAN") } 29: else if (!new_expectations && skip_on_empty) {doWithOneRestart(return(expr), restart) skip_empty() }30: }, expectation = handle_expectation, packageNotFoundError = function(e) {withOneRestart(expr, restarts[[1L]]) if (on_cran()) { skip(paste0("{", e$package, "} is not installed."))31: }}, snapshot_on_cran = function(cnd) {withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) snapshot_skipped <<- TRUE new_expectations <- the$test_expectations > starting_expectations invokeRestart("muffle_cran_snapshot") if (snapshot_skipped) {}, skip = handle_skip, warning = handle_warning, message = handle_message, skip("On CRAN") error = handle_error, interrupt = handle_interrupt), error = handle_fatal) } else if (!new_expectations && skip_on_empty) {29: skip_empty() }doWithOneRestart(return(expr), restart)}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) {30: skip(paste0("{", e$package, "} is not installed."))withOneRestart(expr, restarts[[1L]]) } }, snapshot_on_cran = function(cnd) {31: snapshot_skipped <<- TRUEwithRestarts(tryCatch(withCallingHandlers({ invokeRestart("muffle_cran_snapshot") eval(code, test_env)}, skip = handle_skip, warning = handle_warning, message = handle_message, new_expectations <- the$test_expectations > starting_expectations error = handle_error, interrupt = handle_interrupt), error = handle_fatal), if (snapshot_skipped) { end_test = function() { skip("On CRAN") }) } else if (!new_expectations && skip_on_empty) {32: skip_empty()test_code(code, parent.frame()) } 33: }, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) {test_that("initializing Multipartite SBM works", { skip(paste0("{", e$package, "} is not installed.")) if (Sys.info()["sysname"] != "Windows") { } set.seed(2)}, snapshot_on_cran = function(cnd) { npc <- 30 snapshot_skipped <<- TRUE Q <- 3 invokeRestart("muffle_cran_snapshot") n <- npc * Q}, skip = handle_skip, warning = handle_warning, message = handle_message, Z <- diag(Q) %x% matrix(1, npc, 1) error = handle_error, interrupt = handle_interrupt), error = handle_fatal), P <- matrix(runif(Q * Q), Q, Q) end_test = function() { A <- 1 * (matrix(runif(n * n), n, n) < Z %*% P %*% t(Z)) }) B <- matrix(rpois(npc * Q * 20, 2), npc * Q, 20) netA <- defineSBM(A, "bernoulli", type = "simple", directed = TRUE, 32: dimLabels = c("Actor"))test_code(code, parent.frame()) netB <- defineSBM(B, "poisson", type = "bipartite", dimLabels = c("Actor", "Stuff")) myMBM <- MultipartiteSBM_fit$new(list(netA, netB))33: expect_true(inherits(myMBM, "SBM"))test_that("initializing Multipartite SBM works", { expect_true(inherits(myMBM, "MultipartiteSBM")) if (Sys.info()["sysname"] != "Windows") { expect_true(inherits(myMBM, "MultipartiteSBM_fit")) set.seed(2) expect_equal(myMBM$modelName, c("bernoulli", "poisson")) npc <- 30 expect_true(is.character(myMBM$modelName)) Q <- 3 expect_equal(unname(myMBM$nbNodes), c(Q * npc, 20)) n <- npc * Q expect_equal(myMBM$directed, c(TRUE, NA)) Z <- diag(Q) %x% matrix(1, npc, 1) expect_equal(myMBM$nbNetworks, 2) P <- matrix(runif(Q * Q), Q, Q) expect_equal(unname(myMBM$networkData[[1]]$nbNodes), A <- 1 * (matrix(runif(n * n), n, n) < Z %*% P %*% t(Z)) Q * npc) B <- matrix(rpois(npc * Q * 20, 2), npc * Q, 20) expect_equal(unname(myMBM$networkData[[2]]$nbNodes), netA <- defineSBM(A, "bernoulli", type = "simple", directed = TRUE, c(Q * npc, 20)) dimLabels = c("Actor")) netB <- defineSBM(B, "poisson", type = "bipartite", dimLabels = c("Actor", expect_equal(unname(myMBM$architecture), matrix(c(1, "Stuff")) 1, 1, 2), 2, 2)) myMBM <- MultipartiteSBM_fit$new(list(netA, netB)) if (packageVersion("purrr") >= "1.0.0") { expect_true(inherits(myMBM, "SBM")) test_list <- vector("list", 2) expect_true(inherits(myMBM, "MultipartiteSBM")) test_list[[1]] = numeric(0) expect_true(inherits(myMBM, "MultipartiteSBM_fit")) test_list[[2]] = list(Actor = numeric(0), Stuff = numeric(0)) expect_equal(myMBM$modelName, c("bernoulli", "poisson")) expect_equal(myMBM$blockProp, test_list) expect_true(is.character(myMBM$modelName)) } expect_equal(unname(myMBM$nbNodes), c(Q * npc, 20)) expect_equal(myMBM$connectParam, list(list(mean = matrix(0, expect_equal(myMBM$directed, c(TRUE, NA)) 0, 0)), list(mean = matrix(0, 0, 0)))) expect_equal(myMBM$nbNetworks, 2) expect_equal(coef(myMBM, "connectivity"), myMBM$connectParam) expect_equal(unname(myMBM$networkData[[1]]$nbNodes), expect_equal(coef(myMBM, "block"), myMBM$blockProp) Q * npc) estimOptions = list(initBM = FALSE, verbosity = 0, nbCores = 2) expect_equal(unname(myMBM$networkData[[2]]$nbNodes), myMBM$optimize(estimOptions) expect_equal(length(myMBM$networkData[[1]]$memberships), c(Q * npc, 20)) npc * Q) expect_equal(unname(myMBM$architecture), matrix(c(1, expect_equal(is.list(myMBM$networkData[[2]]$memberships), 1, 1, 2), 2, 2)) TRUE) if (packageVersion("purrr") >= "1.0.0") { expect_equal(length(myMBM$networkData[[1]]$blockProp), test_list <- vector("list", 2) length(unique(myMBM$networkData[[1]]$memberships))) test_list[[1]] = numeric(0) expect_equal(myMBM$networkData[[1]]$blockProp, myMBM$networkData[[2]]$blockProp[[1]]) test_list[[2]] = list(Actor = numeric(0), Stuff = numeric(0)) expect_equal(length(myMBM$networkData[[1]]$blockProp), expect_equal(myMBM$blockProp, test_list) nrow(myMBM$networkData[[1]]$connectParam$mean)) expect_equal(ncol(myMBM$networkData[[1]]$connectParam$mean), } expect_equal(myMBM$connectParam, list(list(mean = matrix(0, nrow(myMBM$networkData[[1]]$connectParam$mean)) 0, 0)), list(mean = matrix(0, 0, 0)))) muAS <- myMBM$networkData[[2]]$connectParam$mean expect_equal(coef(myMBM, "connectivity"), myMBM$connectParam) expect_equal(ifelse(is.matrix(muAS), nrow(muAS), length(muAS)), expect_equal(coef(myMBM, "block"), myMBM$blockProp) nrow(myMBM$networkData[[1]]$connectParam$mean)) estimOptions = list(initBM = FALSE, verbosity = 0, nbCores = 2) myMBM$optimize(estimOptions) expect_equal(lengths(myMBM$blockProp), myMBM$nbBlocks) expect_equal(length(myMBM$networkData[[1]]$memberships), expect_equal(length(myMBM$blockProp), length(myMBM$dimLabels)) npc * Q) expect_equal(length(myMBM$connectParam), myMBM$nbNetworks) expect_equal(is.list(myMBM$networkData[[2]]$memberships), expect_equal(lengths(myMBM$memberships), myMBM$nbNodes) TRUE) expect_lt(myMBM$loglik, 0) expect_equal(length(myMBM$networkData[[1]]$blockProp), expect_lt(myMBM$ICL, 0) length(unique(myMBM$networkData[[1]]$memberships))) expect_lt(myMBM$ICL, myMBM$loglik) expect_equal(myMBM$networkData[[1]]$blockProp, myMBM$networkData[[2]]$blockProp[[1]]) expect_silent(plot(myMBM, type = "data")) expect_equal(length(myMBM$networkData[[1]]$blockProp), expect_silent(plot(myMBM, type = "meso")) expect_silent(plot(myMBM, type = "expected")) nrow(myMBM$networkData[[1]]$connectParam$mean)) expect_equal(coef(myMBM, "connectivity"), myMBM$connectParam) expect_equal(ncol(myMBM$networkData[[1]]$connectParam$mean), expect_equal(coef(myMBM, "block"), myMBM$blockProp) nrow(myMBM$networkData[[1]]$connectParam$mean)) expect_lt(rmse(myMBM$connectParam[[1]]$mean, netA$connectParam$mean), muAS <- myMBM$networkData[[2]]$connectParam$mean 0.01) expect_equal(ifelse(is.matrix(muAS), nrow(muAS), length(muAS)), expect_lt(rmse(myMBM$connectParam[[2]]$mean, netB$connectParam$mean), nrow(myMBM$networkData[[1]]$connectParam$mean)) expect_equal(lengths(myMBM$blockProp), myMBM$nbBlocks) 0.01) expect_equal(length(myMBM$blockProp), length(myMBM$dimLabels)) expect_lt(1 - aricode::ARI(myMBM$memberships$Actor, netA$memberships), expect_equal(length(myMBM$connectParam), myMBM$nbNetworks) 0.05) expect_equal(lengths(myMBM$memberships), myMBM$nbNodes) } expect_lt(myMBM$loglik, 0)}) expect_lt(myMBM$ICL, 0) expect_lt(myMBM$ICL, myMBM$loglik)34: expect_silent(plot(myMBM, type = "data"))eval(code, test_env) expect_silent(plot(myMBM, type = "meso")) 35: expect_silent(plot(myMBM, type = "expected")) expect_equal(coef(myMBM, "connectivity"), myMBM$connectParam)eval(code, test_env) expect_equal(coef(myMBM, "block"), myMBM$blockProp) expect_lt(rmse(myMBM$connectParam[[1]]$mean, netA$connectParam$mean), 36: 0.01)withCallingHandlers({ expect_lt(rmse(myMBM$connectParam[[2]]$mean, netB$connectParam$mean), eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { 0.01) skip("On CRAN") expect_lt(1 - aricode::ARI(myMBM$memberships$Actor, netA$memberships), } 0.05) else if (!new_expectations && skip_on_empty) { } skip_empty()}) }34: }, expectation = handle_expectation, packageNotFoundError = function(e) {eval(code, test_env) if (on_cran()) { skip(paste0("{", e$package, "} is not installed."))35: }eval(code, test_env)}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE36: invokeRestart("muffle_cran_snapshot")withCallingHandlers({}, skip = handle_skip, warning = handle_warning, message = handle_message, eval(code, test_env) error = handle_error, interrupt = handle_interrupt) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) {37: skip("On CRAN")doTryCatch(return(expr), name, parentenv, handler) } else if (!new_expectations && skip_on_empty) {38: skip_empty()tryCatchOne(expr, names, parentenv, handlers[[1L]]) }}, expectation = handle_expectation, packageNotFoundError = function(e) { 39: if (on_cran()) {tryCatchList(expr, classes, parentenv, handlers) skip(paste0("{", e$package, "} is not installed.")) }40: }, snapshot_on_cran = function(cnd) {tryCatch(withCallingHandlers({ snapshot_skipped <<- TRUE eval(code, test_env) invokeRestart("muffle_cran_snapshot") new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) {}, skip = handle_skip, warning = handle_warning, message = handle_message, skip("On CRAN") error = handle_error, interrupt = handle_interrupt) } else if (!new_expectations && skip_on_empty) {37: skip_empty()doTryCatch(return(expr), name, parentenv, handler) } }, expectation = handle_expectation, packageNotFoundError = function(e) {38: if (on_cran()) {tryCatchOne(expr, names, parentenv, handlers[[1L]]) skip(paste0("{", e$package, "} is not installed.")) }39: }, snapshot_on_cran = function(cnd) {tryCatchList(expr, classes, parentenv, handlers) snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")40: }, skip = handle_skip, warning = handle_warning, message = handle_message, tryCatch(withCallingHandlers({ error = handle_error, interrupt = handle_interrupt), error = handle_fatal) eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations41: if (snapshot_skipped) {doWithOneRestart(return(expr), restart) skip("On CRAN") }42: else if (!new_expectations && skip_on_empty) {withOneRestart(expr, restarts[[1L]]) skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) {43: if (on_cran()) {withRestarts(tryCatch(withCallingHandlers({ skip(paste0("{", e$package, "} is not installed.")) eval(code, test_env) } new_expectations <- the$test_expectations > starting_expectations}, snapshot_on_cran = function(cnd) { if (snapshot_skipped) { snapshot_skipped <<- TRUE skip("On CRAN") invokeRestart("muffle_cran_snapshot") }}, skip = handle_skip, warning = handle_warning, message = handle_message, else if (!new_expectations && skip_on_empty) { error = handle_error, interrupt = handle_interrupt), error = handle_fatal) skip_empty() }41: }, expectation = handle_expectation, packageNotFoundError = function(e) {doWithOneRestart(return(expr), restart) if (on_cran()) {42: skip(paste0("{", e$package, "} is not installed."))withOneRestart(expr, restarts[[1L]]) }43: }, snapshot_on_cran = function(cnd) {withRestarts(tryCatch(withCallingHandlers({ snapshot_skipped <<- TRUE eval(code, test_env) invokeRestart("muffle_cran_snapshot") new_expectations <- the$test_expectations > starting_expectations}, skip = handle_skip, warning = handle_warning, message = handle_message, if (snapshot_skipped) { error = handle_error, interrupt = handle_interrupt), error = handle_fatal), skip("On CRAN") end_test = function() { } }) else if (!new_expectations && skip_on_empty) { skip_empty()44: }test_code(code = exprs, env = env, reporter = get_reporter() %||% }, expectation = handle_expectation, packageNotFoundError = function(e) { StopReporter$new()) if (on_cran()) { skip(paste0("{", e$package, "} is not installed."))45: }source_file(path, env = env(env), desc = desc, shuffle = shuffle, }, snapshot_on_cran = function(cnd) { error_call = error_call) snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")46: }, skip = handle_skip, warning = handle_warning, message = handle_message, FUN(X[[i]], ...) error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { })47: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call)44: test_code(code = exprs, env = env, reporter = get_reporter() %||% 48: StopReporter$new()) doTryCatch(return(expr), name, parentenv, handler)45: source_file(path, env = env(env), desc = desc, shuffle = shuffle, 49: error_call = error_call) tryCatchOne(expr, names, parentenv, handlers[[1L]])46: FUN(X[[i]], ...)50: tryCatchList(expr, classes, parentenv, handlers)47: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, 51: error_call = error_call)tryCatch(code, testthat_abort_reporter = function(cnd) { 48: cat(conditionMessage(cnd), "\n")doTryCatch(return(expr), name, parentenv, handler) NULL })49: tryCatchOne(expr, names, parentenv, handlers[[1L]])52: with_reporter(reporters$multi, lapply(test_paths, test_one_file, 50: env = env, desc = desc, shuffle = shuffle, error_call = error_call))tryCatchList(expr, classes, parentenv, handlers) 53: 51: test_files_serial(test_dir = test_dir, test_package = test_package, tryCatch(code, testthat_abort_reporter = function(cnd) { test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, cat(conditionMessage(cnd), "\n") env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, NULL desc = desc, load_package = load_package, shuffle = shuffle, }) error_call = error_call) 52: 54: with_reporter(reporters$multi, lapply(test_paths, test_one_file, test_files(test_dir = path, test_paths = test_paths, test_package = package, env = env, desc = desc, shuffle = shuffle, error_call = error_call)) reporter = reporter, load_helpers = load_helpers, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, 53: load_package = load_package, parallel = parallel, shuffle = shuffle)test_files_serial(test_dir = test_dir, test_package = test_package, test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, 55: env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, test_dir("testthat", package = package, reporter = reporter, desc = desc, load_package = load_package, shuffle = shuffle, ..., load_package = "installed") error_call = error_call)56: test_check("sbm")54: test_files(test_dir = path, test_paths = test_paths, test_package = package, reporter = reporter, load_helpers = load_helpers, env = env, An irrecoverable exception occurred. R is aborting now ... stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, load_package = load_package, parallel = parallel, shuffle = shuffle) 55: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed") 56: test_check("sbm") An irrecoverable exception occurred. R is aborting now ... Saving _problems/test-MultipartiteSBM-50.R *** caught segfault *** address 0x110, cause 'invalid permissions' Traceback: 1: FUN(X[[i]], ...) 2: lapply(X = X, FUN = FUN, ...) 3: sapply(1:cardE, function(e) { gr = matE[e, 1] gc = matE[e, 2] don = list_Mat[[e]] maskNA = list_MaskNA[[e]] if (v_distrib[e] == "bernoulli") { Unmdon = (1 - don) * maskNA } if (v_distrib[e] %in% c("laplace", "poisson", "gaussian", "ZIgaussian")) { Unit <- maskNA } if (v_distrib[e] == "ZIgaussian") { NonZerosdon <- (don != 0) Zerosdon <- (don == 0) * maskNA } facteur = 1 if (gc < 1) { if (gc == 0) facteur = 1/2 gc = gr } if (v_distrib[e] == "bernoulli") { prov = (tau[[gr]]) %*% log(list_theta[[e]]) %*% t(tau[[gc]]) prov1m = (tau[[gr]]) %*% log(1 - list_theta[[e]]) %*% t(tau[[gc]]) return((sum(don * prov) + sum((Unmdon) * prov1m)) * facteur) } if (v_distrib[e] == "poisson") { prov = (tau[[gr]]) %*% log(list_theta[[e]]) %*% t(tau[[gc]]) prov2 = (tau[[gr]]) %*% list_theta[[e]] %*% t(tau[[gc]]) return((sum(don * prov) - sum(Unit * prov2)) * facteur) } if (v_distrib[e] == "laplace") { prov = (tau[[gr]]) %*% log(2 * list_theta[[e]]) %*% t(tau[[gc]]) prov2 = (tau[[gr]]) %*% (1/list_theta[[e]]) %*% t(tau[[gc]]) return((-sum(Unit * prov) - sum(don * prov2)) * facteur) } if (v_distrib[e] == "gaussian") { prov = 0.5 * (tau[[gr]]) %*% (log(2 * pi * list_theta[[e]]$var) + list_theta[[e]]$mean^2/list_theta[[e]]$var) %*% t(tau[[gc]]) prov2 = 0.5 * (tau[[gr]]) %*% (1/list_theta[[e]]$var) %*% t(tau[[gc]]) prov3 = (tau[[gr]]) %*% (list_theta[[e]]$mean/list_theta[[e]]$var) %*% t(tau[[gc]]) return((-sum(Unit * prov) - sum(don^2 * prov2) + sum(don * prov3)) * facteur) } if (v_distrib[e] == "ZIgaussian") { prov = 0.5 * (tau[[gr]]) %*% (log(2 * pi * list_theta[[e]]$var) + list_theta[[e]]$mean^2/list_theta[[e]]$var) %*% t(tau[[gc]]) prov2 = 0.5 * (tau[[gr]]) %*% (1/list_theta[[e]]$var) %*% t(tau[[gc]]) prov3 = (tau[[gr]]) %*% (list_theta[[e]]$mean/list_theta[[e]]$var) %*% t(tau[[gc]]) P1 <- sum((-Unit * prov - don^2 * prov2 + don * prov3) * (1 - Zerosdon)) prov4 = (tau[[gr]]) %*% log(list_theta[[e]]$p0 + (list_theta[[e]]$p0 == 0)) %*% t(tau[[gc]]) prov4m = (tau[[gr]]) %*% log(1 - list_theta[[e]]$p0 + (list_theta[[e]]$p0 == 1)) %*% t(tau[[gc]]) P2 <- sum(Zerosdon * prov4) + sum((1 - Zerosdon) * prov4m) return((P1 + P2) * facteur) }}) 4: compLikICLInt(tau, list_theta, list_pi, matE, list_Mat, list_MaskNA, n_q, v_K, v_distrib) 5: varEMMBM(self, classif, tau = tau, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 6: dataR6$estime(list_classif_init[[l]], maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 7: FUN(X[[i]], ...) 8: lapply(X = S, FUN = FUN, ...) 9: doTryCatch(return(expr), name, parentenv, handler) 10: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 11: tryCatchList(expr, classes, parentenv, handlers) 12: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))}) 13: try(lapply(X = S, FUN = FUN, ...), silent = TRUE) 14: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) 15: FUN(X[[i]], ...) 16: lapply(seq_len(cores), inner.do) 17: mclapply(1:L, function(l) { estim.c.l <- dataR6$estime(list_classif_init[[l]], maxiterVE = maxiterVE, maxiterVEM = maxiterVEM)}, mc.cores = nbCores) 18: searchKQ(dataR6 = self, classifInit = classifInit, pastICL = pastICL, Kmin = Kmin, Kmax = Kmax, nbCores = nbCores, verbose = verbose, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 19: dataR6$searchNbClusters(classifInit, Kmin = v_Kmin, Kmax = v_Kmax, pastICL = c(), verbose = verbose, nbCores = nbCores, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 20: GREMLINS::multipartiteBM(list_Net = listNetG, v_distrib = vdistrib, namesFG = namesFG, v_Kmin = v_Kmin, v_Kmax = v_Kmax, v_Kinit = NULL, initBM = initBM, keep = TRUE, verbose = verbose, nbCores = nbCores, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 21: super$optimize(estimOptions) 22: myMultiplexFitindep$optimize(estimOptions = currentOptions) 23: eval(code, test_env) 24: eval(code, test_env) 25: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt) 26: doTryCatch(return(expr), name, parentenv, handler) 27: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 28: tryCatchList(expr, classes, parentenv, handlers) 29: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal) 30: doWithOneRestart(return(expr), restart) 31: withOneRestart(expr, restarts[[1L]]) 32: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { }) 33: test_code(code, parent.frame()) 34: test_that("Inference for Multiplex networks", { if (Sys.info()["sysname"] != "Windows") { set.seed(2) npc <- 30 Q <- 3 n <- npc * Q Z <- diag(Q) %x% matrix(1, npc, 1) P <- matrix(runif(Q * Q), Q, Q) A <- 1 * (matrix(runif(n * n), n, n) < Z %*% P %*% t(Z)) type <- "simple" netA <- defineSBM(A, "bernoulli", type = "simple", directed = TRUE, dimLabels = c("Actor")) B <- 1 * (matrix(runif(n * n), n, n) < Z %*% P %*% t(Z)) netB <- defineSBM(B, "bernoulli", type = "simple", dimLabels = c("Actor")) myMultiplex <- MultiplexSBM_fit$new(list(netA, netB)) netC <- defineSBM(B * 4, "poisson", type = "simple", dimLabels = c("Actor")) expect_equal(myMultiplex$directed, c(TRUE, TRUE)) expect_equal(myMultiplex$nbNetworks, 2) expect_equal(myMultiplex$dependentNetwork, FALSE) expect_equal(MultiplexSBM_fit$new(list(netA, netB), TRUE)$dependentNetwork, TRUE) expect_error(MultiplexSBM_fit$new(list(netA, netC), TRUE)) expect_error(MultiplexSBM_fit$new(list(netA, netB, netB), TRUE)) expect_warning(defineSBM(B, "poisson", type = "simple", dimLabels = c("Actor")), "binary") currentOptions <- list(verbosity = 0, plot = FALSE, nbBlocksRange = list(c(1, 10)), nbCores = 2, maxiterVE = 100, maxiterVEM = 100, initBM = TRUE) myMultiplexFitindep <- MultiplexSBM_fit$new(list(netA, netB, netC)) myMultiplexFitindep$optimize(estimOptions = currentOptions) expect_equal(length(myMultiplexFitindep$connectParam), 3) myMultiplexFitdep <- MultiplexSBM_fit$new(list(netA, netB), dependentNet = TRUE) currentOptions <- list(verbosity = 0, plot = FALSE, explorFactor = 1.5, nbBlocksRange = c(4, Inf), nbCores = 2, fast = TRUE) myMultiplexFitdep$optimize(estimOptions = currentOptions) myMultiplexFitdep$probMemberships expect_equal(class(myMultiplexFitdep$memberships), "list") expect_equal(length(myMultiplexFitdep$connectParam), 4) expect_equal(myMultiplexFitdep$dependentNetwork, TRUE) set.seed(2) npc1 <- 30 npc2 <- 20 Q1 <- 2 Q2 <- 3 n1 <- npc1 * Q1 n2 <- npc2 * Q2 Z1 <- diag(Q1) %x% matrix(1, npc1, 1) Z2 <- diag(Q2) %x% matrix(1, npc2, 1) P <- matrix(runif(Q1 * Q2), Q1, Q2) A <- 1 * (matrix(runif(n1 * n2), n1, n2) < Z1 %*% P %*% t(Z2)) netA <- defineSBM(A, "bernoulli", type = "bipartite", directed = TRUE, dimLabels = c("Actor", "Object")) B <- 1 * (matrix(runif(n1 * n2), n1, n2) < Z1 %*% P %*% t(Z2)) netB <- defineSBM(B, "bernoulli", type = "bipartite", dimLabels = c("Actor", "Object")) myMultiplexFitindep <- MultiplexSBM_fit$new(list(netA, netB)) currentOptions <- list(verbosity = 0, nbBlocksRange = list(c(1, 10), c(1, 10)), nbCores = 2, maxiterVE = 100, maxiterVEM = 100, initBM = FALSE) names(currentOptions$nbBlocksRange) = c("Actor", "Object") myMultiplexFitindep$optimize(currentOptions) expect_equal(length(myMultiplexFitindep$connectParam), 2) }}) 35: eval(code, test_env) 36: eval(code, test_env) 37: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt) 38: doTryCatch(return(expr), name, parentenv, handler) 39: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 40: tryCatchList(expr, classes, parentenv, handlers) 41: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal) 42: doWithOneRestart(return(expr), restart) 43: withOneRestart(expr, restarts[[1L]]) 44: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { }) 45: test_code(code = exprs, env = env, reporter = get_reporter() %||% StopReporter$new()) 46: source_file(path, env = env(env), desc = desc, shuffle = shuffle, error_call = error_call) 47: FUN(X[[i]], ...) 48: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call) 49: doTryCatch(return(expr), name, parentenv, handler) 50: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 51: tryCatchList(expr, classes, parentenv, handlers) 52: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL}) 53: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call)) 54: test_files_serial(test_dir = test_dir, test_package = test_package, test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, desc = desc, load_package = load_package, shuffle = shuffle, error_call = error_call) 55: test_files(test_dir = path, test_paths = test_paths, test_package = package, reporter = reporter, load_helpers = load_helpers, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, load_package = load_package, parallel = parallel, shuffle = shuffle) 56: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed") 57: test_check("sbm") An irrecoverable exception occurred. R is aborting now ... *** caught segfault *** address 0x110, cause 'invalid permissions' Traceback: 1: FUN(X[[i]], ...) 2: lapply(X = X, FUN = FUN, ...) 3: sapply(1:cardE, function(e) { gr = matE[e, 1] gc = matE[e, 2] don = list_Mat[[e]] maskNA = list_MaskNA[[e]] if (v_distrib[e] == "bernoulli") { Unmdon = (1 - don) * maskNA } if (v_distrib[e] %in% c("laplace", "poisson", "gaussian", "ZIgaussian")) { Unit <- maskNA } if (v_distrib[e] == "ZIgaussian") { NonZerosdon <- (don != 0) Zerosdon <- (don == 0) * maskNA } facteur = 1 if (gc < 1) { if (gc == 0) facteur = 1/2 gc = gr } if (v_distrib[e] == "bernoulli") { prov = (tau[[gr]]) %*% log(list_theta[[e]]) %*% t(tau[[gc]]) prov1m = (tau[[gr]]) %*% log(1 - list_theta[[e]]) %*% t(tau[[gc]]) return((sum(don * prov) + sum((Unmdon) * prov1m)) * facteur) } if (v_distrib[e] == "poisson") { prov = (tau[[gr]]) %*% log(list_theta[[e]]) %*% t(tau[[gc]]) prov2 = (tau[[gr]]) %*% list_theta[[e]] %*% t(tau[[gc]]) return((sum(don * prov) - sum(Unit * prov2)) * facteur) } if (v_distrib[e] == "laplace") { prov = (tau[[gr]]) %*% log(2 * list_theta[[e]]) %*% t(tau[[gc]]) prov2 = (tau[[gr]]) %*% (1/list_theta[[e]]) %*% t(tau[[gc]]) return((-sum(Unit * prov) - sum(don * prov2)) * facteur) } if (v_distrib[e] == "gaussian") { prov = 0.5 * (tau[[gr]]) %*% (log(2 * pi * list_theta[[e]]$var) + list_theta[[e]]$mean^2/list_theta[[e]]$var) %*% t(tau[[gc]]) prov2 = 0.5 * (tau[[gr]]) %*% (1/list_theta[[e]]$var) %*% t(tau[[gc]]) prov3 = (tau[[gr]]) %*% (list_theta[[e]]$mean/list_theta[[e]]$var) %*% t(tau[[gc]]) return((-sum(Unit * prov) - sum(don^2 * prov2) + sum(don * prov3)) * facteur) } if (v_distrib[e] == "ZIgaussian") { prov = 0.5 * (tau[[gr]]) %*% (log(2 * pi * list_theta[[e]]$var) + list_theta[[e]]$mean^2/list_theta[[e]]$var) %*% t(tau[[gc]]) prov2 = 0.5 * (tau[[gr]]) %*% (1/list_theta[[e]]$var) %*% t(tau[[gc]]) prov3 = (tau[[gr]]) %*% (list_theta[[e]]$mean/list_theta[[e]]$var) %*% t(tau[[gc]]) P1 <- sum((-Unit * prov - don^2 * prov2 + don * prov3) * (1 - Zerosdon)) prov4 = (tau[[gr]]) %*% log(list_theta[[e]]$p0 + (list_theta[[e]]$p0 == 0)) %*% t(tau[[gc]]) prov4m = (tau[[gr]]) %*% log(1 - list_theta[[e]]$p0 + (list_theta[[e]]$p0 == 1)) %*% t(tau[[gc]]) P2 <- sum(Zerosdon * prov4) + sum((1 - Zerosdon) * prov4m) return((P1 + P2) * facteur) }}) 4: compLikICLInt(tau, list_theta, list_pi, matE, list_Mat, list_MaskNA, n_q, v_K, v_distrib) 5: varEMMBM(self, classif, tau = tau, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 6: dataR6$estime(list_classif_init[[l]], maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 7: FUN(X[[i]], ...) 8: lapply(X = S, FUN = FUN, ...) 9: doTryCatch(return(expr), name, parentenv, handler) 10: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 11: tryCatchList(expr, classes, parentenv, handlers) 12: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))}) 13: try(lapply(X = S, FUN = FUN, ...), silent = TRUE) 14: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) 15: FUN(X[[i]], ...) 16: lapply(seq_len(cores), inner.do) 17: mclapply(1:L, function(l) { estim.c.l <- dataR6$estime(list_classif_init[[l]], maxiterVE = maxiterVE, maxiterVEM = maxiterVEM)}, mc.cores = nbCores) 18: searchKQ(dataR6 = self, classifInit = classifInit, pastICL = pastICL, Kmin = Kmin, Kmax = Kmax, nbCores = nbCores, verbose = verbose, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 19: dataR6$searchNbClusters(classifInit, Kmin = v_Kmin, Kmax = v_Kmax, pastICL = c(), verbose = verbose, nbCores = nbCores, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 20: GREMLINS::multipartiteBM(list_Net = listNetG, v_distrib = vdistrib, namesFG = namesFG, v_Kmin = v_Kmin, v_Kmax = v_Kmax, v_Kinit = NULL, initBM = initBM, keep = TRUE, verbose = verbose, nbCores = nbCores, maxiterVE = maxiterVE, maxiterVEM = maxiterVEM) 21: super$optimize(estimOptions) 22: myMultiplexFitindep$optimize(estimOptions = currentOptions) 23: eval(code, test_env) 24: eval(code, test_env) 25: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt) 26: doTryCatch(return(expr), name, parentenv, handler) 27: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 28: tryCatchList(expr, classes, parentenv, handlers) 29: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal) 30: doWithOneRestart(return(expr), restart) 31: withOneRestart(expr, restarts[[1L]]) 32: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { }) 33: test_code(code, parent.frame()) 34: test_that("Inference for Multiplex networks", { if (Sys.info()["sysname"] != "Windows") { set.seed(2) npc <- 30 Q <- 3 n <- npc * Q Z <- diag(Q) %x% matrix(1, npc, 1) P <- matrix(runif(Q * Q), Q, Q) A <- 1 * (matrix(runif(n * n), n, n) < Z %*% P %*% t(Z)) type <- "simple" netA <- defineSBM(A, "bernoulli", type = "simple", directed = TRUE, dimLabels = c("Actor")) B <- 1 * (matrix(runif(n * n), n, n) < Z %*% P %*% t(Z)) netB <- defineSBM(B, "bernoulli", type = "simple", dimLabels = c("Actor")) myMultiplex <- MultiplexSBM_fit$new(list(netA, netB)) netC <- defineSBM(B * 4, "poisson", type = "simple", dimLabels = c("Actor")) expect_equal(myMultiplex$directed, c(TRUE, TRUE)) expect_equal(myMultiplex$nbNetworks, 2) expect_equal(myMultiplex$dependentNetwork, FALSE) expect_equal(MultiplexSBM_fit$new(list(netA, netB), TRUE)$dependentNetwork, TRUE) expect_error(MultiplexSBM_fit$new(list(netA, netC), TRUE)) expect_error(MultiplexSBM_fit$new(list(netA, netB, netB), TRUE)) expect_warning(defineSBM(B, "poisson", type = "simple", dimLabels = c("Actor")), "binary") currentOptions <- list(verbosity = 0, plot = FALSE, nbBlocksRange = list(c(1, 10)), nbCores = 2, maxiterVE = 100, maxiterVEM = 100, initBM = TRUE) myMultiplexFitindep <- MultiplexSBM_fit$new(list(netA, netB, netC)) myMultiplexFitindep$optimize(estimOptions = currentOptions) expect_equal(length(myMultiplexFitindep$connectParam), 3) myMultiplexFitdep <- MultiplexSBM_fit$new(list(netA, netB), dependentNet = TRUE) currentOptions <- list(verbosity = 0, plot = FALSE, explorFactor = 1.5, nbBlocksRange = c(4, Inf), nbCores = 2, fast = TRUE) myMultiplexFitdep$optimize(estimOptions = currentOptions) myMultiplexFitdep$probMemberships expect_equal(class(myMultiplexFitdep$memberships), "list") expect_equal(length(myMultiplexFitdep$connectParam), 4) expect_equal(myMultiplexFitdep$dependentNetwork, TRUE) set.seed(2) npc1 <- 30 npc2 <- 20 Q1 <- 2 Q2 <- 3 n1 <- npc1 * Q1 n2 <- npc2 * Q2 Z1 <- diag(Q1) %x% matrix(1, npc1, 1) Z2 <- diag(Q2) %x% matrix(1, npc2, 1) P <- matrix(runif(Q1 * Q2), Q1, Q2) A <- 1 * (matrix(runif(n1 * n2), n1, n2) < Z1 %*% P %*% t(Z2)) netA <- defineSBM(A, "bernoulli", type = "bipartite", directed = TRUE, dimLabels = c("Actor", "Object")) B <- 1 * (matrix(runif(n1 * n2), n1, n2) < Z1 %*% P %*% t(Z2)) netB <- defineSBM(B, "bernoulli", type = "bipartite", dimLabels = c("Actor", "Object")) myMultiplexFitindep <- MultiplexSBM_fit$new(list(netA, netB)) currentOptions <- list(verbosity = 0, nbBlocksRange = list(c(1, 10), c(1, 10)), nbCores = 2, maxiterVE = 100, maxiterVEM = 100, initBM = FALSE) names(currentOptions$nbBlocksRange) = c("Actor", "Object") myMultiplexFitindep$optimize(currentOptions) expect_equal(length(myMultiplexFitindep$connectParam), 2) }}) 35: eval(code, test_env) 36: eval(code, test_env) 37: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt) 38: doTryCatch(return(expr), name, parentenv, handler) 39: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 40: tryCatchList(expr, classes, parentenv, handlers) 41: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal) 42: doWithOneRestart(return(expr), restart) 43: withOneRestart(expr, restarts[[1L]]) 44: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { }) 45: test_code(code = exprs, env = env, reporter = get_reporter() %||% StopReporter$new()) 46: source_file(path, env = env(env), desc = desc, shuffle = shuffle, error_call = error_call) 47: FUN(X[[i]], ...) 48: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call) 49: doTryCatch(return(expr), name, parentenv, handler) 50: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 51: tryCatchList(expr, classes, parentenv, handlers) 52: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL}) 53: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call)) 54: test_files_serial(test_dir = test_dir, test_package = test_package, test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, desc = desc, load_package = load_package, shuffle = shuffle, error_call = error_call) 55: test_files(test_dir = path, test_paths = test_paths, test_package = package, reporter = reporter, load_helpers = load_helpers, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, load_package = load_package, parallel = parallel, shuffle = shuffle) 56: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed") 57: test_check("sbm") An irrecoverable exception occurred. R is aborting now ... Saving _problems/test-MultiplexSBM_fit-39.R [1] "use of sampleMultipartite" [1] "use of sampleMultipartite" [ FAIL 2 | WARN 2 | SKIP 0 | PASS 1480 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-MultipartiteSBM.R:50:5'): initializing Multipartite SBM works ── Error in `which(sapply(R, function(u) { u$convergence }))`: argument to 'which' is not logical Backtrace: ▆ 1. └─myMBM$optimize(estimOptions) at test-MultipartiteSBM.R:50:5 2. └─GREMLINS::multipartiteBM(...) 3. └─dataR6$searchNbClusters(...) 4. └─GREMLINS:::searchKQ(...) 5. └─dataR6$cleanResults(allEstim) 6. └─GREMLINS:::cleanEstim(self, R) 7. └─base::which(...) ── Error ('test-MultiplexSBM_fit.R:39:5'): Inference for Multiplex networks ──── Error in `which(sapply(R, function(u) { u$convergence }))`: argument to 'which' is not logical Backtrace: ▆ 1. └─myMultiplexFitindep$optimize(estimOptions = currentOptions) at test-MultiplexSBM_fit.R:39:5 2. └─super$optimize(estimOptions) 3. └─GREMLINS::multipartiteBM(...) 4. └─dataR6$searchNbClusters(...) 5. └─GREMLINS:::searchKQ(...) 6. └─dataR6$cleanResults(allEstim) 7. └─GREMLINS:::cleanEstim(self, R) 8. └─base::which(...) [ FAIL 2 | WARN 2 | SKIP 0 | PASS 1480 ] Error: ! Test failures. Execution halted Flavor: r-oldrel-macos-arm64