R Under development (unstable) (2026-02-03 r89375) -- "Unsuffered Consequences" Copyright (C) 2026 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > # This file is part of the standard setup for testthat. > # It is recommended that you do not modify it. > # > # Where should you do additional test configuration? > # Learn more about the roles of various files in: > # * https://r-pkgs.org/tests.html > # * https://testthat.r-lib.org/reference/test_package.html#special-files > > library(testthat) > library(bamm) > > test_check("bamm") Set A of the BAM digram it contains 8 slots @niche_model: a niche model: class : RasterLayer dimensions : 91, 159, 14469 (nrow, ncol, ncell) resolution : 0.2, 0.2 (x, y) extent : -118.4042, -86.60417, 14.51846, 32.71846 (xmin, xmax, ymin, ymax) crs : +proj=longlat +datum=WGS84 +no_defs source : memory names : layer values : 0, 1 (min, max) @suit_threshold: Threshold value used to binarize model@cellIDs: ids of the cells that have values (4281 pixels) @suit_values: Suitability values of the continuous model @sparse_model: A sparse square matrix of 4281 x 4281 entries @coordinates: Pixel centroid coordinates of the model Set M of the BAM digram it contains 7 slots @coordinates: A matrix with longitude and latitude values of each cell of the raster area x y [1,] -115.9042 32.61846 [2,] -115.7042 32.61846 [3,] -115.5042 32.61846 [4,] -115.3042 32.61846 [5,] -115.1042 32.61846 [6,] -114.9042 32.61846 @eigen_val: Eigen values of the connectivity matrix M @eigen_vec: Eigen vector of the connectivity matrix M Object of class csd it contains 3 slots: @connections: Geographic clusters data.frame x y clusterID cluster_size 1 -116.3042 32.41846 1 37 2 -116.7042 32.21846 1 37 3 -116.5042 32.21846 1 37 4 -116.3042 32.21846 1 37 @interactive_map: A leaflet map showing the geographic clusters @raster_map: A raster map of the clusters | | | 0% | |=================================== | 50% | |======================================================================| 100%/data/gannet/ripley/R/test-dev/RcppArmadillo/include/current/armadillo_bits/arrayops_meat.hpp:47:16: runtime error: null pointer passed as argument 1, which is declared to never be null #0 0x7b3549415fa6 in void arma::arrayops::fill_zeros(double*, unsigned long long) /data/gannet/ripley/R/test-dev/RcppArmadillo/include/current/armadillo_bits/arrayops_meat.hpp:47 #1 0x7b3549415fa6 in void arma::arrayops::fill_zeros(double*, unsigned long long) /data/gannet/ripley/R/test-dev/RcppArmadillo/include/current/armadillo_bits/arrayops_meat.hpp:39 #2 0x7b3549415fa6 in arma::Mat::zeros() /data/gannet/ripley/R/test-dev/RcppArmadillo/include/current/armadillo_bits/Mat_meat.hpp:7941 #3 0x7b3549415fa6 in arma::Mat& arma::Mat::fill(arma::fill::fill_class const&) /data/gannet/ripley/R/test-dev/RcppArmadillo/include/current/armadillo_bits/Mat_meat.hpp:7923 #4 0x7b3549415fa6 in arma::Col::Col(unsigned long long, arma::fill::fill_class const&) /data/gannet/ripley/R/test-dev/RcppArmadillo/include/current/armadillo_bits/Col_meat.hpp:171 #5 0x7b3549415fa6 in sdm_sim_rcpp(SEXPREC*, SEXPREC*, SEXPREC*, Rcpp::Vector<14, Rcpp::PreserveStorage> const&, Rcpp::Vector<19, Rcpp::PreserveStorage> const&, int, bool, bool, double, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/bamm/src/sdm_sim.cpp:95 #6 0x7b3549435536 in _bamm_sdm_sim_rcpp /data/gannet/ripley/R/packages/tests-gcc-SAN/bamm/src/RcppExports.cpp:92 #7 0x00000074ee36 in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:790 #8 0x000000753b8a in do_dotcall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:1437 #9 0x0000008ceba2 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8132 #10 0x0000008bbdeb in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7515 #11 0x00000085c642 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #12 0x00000087238a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389 #13 0x00000087644a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2302 #14 0x00000085cce3 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2324 #15 0x00000085cce3 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280 #16 0x00000088abfe in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3581 #17 0x00000085d106 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232 #18 0x000000870b8b in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2992 #19 0x00000085d106 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232 #20 0x0000008921a1 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3955 #21 0x0000008ceba2 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8132 #22 0x0000008bbdeb in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7515 #23 0x00000085c642 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #24 0x00000087238a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389 #25 0x00000087644a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2302 #26 0x00000085cce3 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2324 #27 0x00000085cce3 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280 #28 0x000000893293 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3973 #29 0x0000008ceba2 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8132 #30 0x0000008bbdeb in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7515 #31 0x00000085c642 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #32 0x00000087238a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389 #33 0x00000087644a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2302 #34 0x000000877d67 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2324 #35 0x000000877d67 in R_forceAndCall /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2456 #36 0x00000049a176 in do_lapply /data/gannet/ripley/R/svn/R-devel/src/main/apply.c:75 #37 0x000000a95e46 in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1411 #38 0x0000008dbdb1 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8152 #39 0x0000008bbdeb in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7515 #40 0x00000085c642 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #41 0x00000087238a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389 #42 0x00000087644a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2302 #43 0x00000085cce3 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2324 #44 0x00000085cce3 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280 #45 0x000000a02408 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:264 #46 0x000000a02408 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317 #47 0x000000a1076a in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1235 #48 0x000000a10802 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1242 #49 0x00000041317f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29 #50 0x7f35618115f4 in __libc_start_call_main (/lib64/libc.so.6+0x35f4) (BuildId: a1dda014206b55b07f58fe8db80121b752dc3d03) #51 0x7f35618116a7 in __libc_start_main@@GLIBC_2.34 (/lib64/libc.so.6+0x36a7) (BuildId: a1dda014206b55b07f58fe8db80121b752dc3d03) #52 0x000000413b64 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x413b64) (BuildId: 4e8bbea85e436130e096aa95d2d82cd9ea57716c) [gannet:2328902:0:2328902] Caught signal 11 (Segmentation fault: address not mapped to object at address (nil)) ==== backtrace (tid:2328902) ==== 0 /lib64/libucs.so.0(ucs_debug_print_backtrace+0x2c) [0x7b353fb6a2cc] 1 /lib64/libucs.so.0(ucs_handle_error+0x2e4) [0x7b353fb6bdf4] 2 /lib64/libucs.so.0(+0x17aed) [0x7b353fb6daed] 3 /lib64/libucs.so.0(+0x17cbd) [0x7b353fb6dcbd] 4 /lib64/libc.so.6(+0x8df09) [0x7f356189bf09] 5 /data/gannet/ripley/R/packages/tests-gcc-SAN/bamm.Rcheck/bamm/libs/bamm.so(_Z12sdm_sim_rcppP7SEXPRECS0_S0_RKN4Rcpp6VectorILi14ENS1_15PreserveStorageEEERKNS2_ILi19ES3_EEibbdb+0x152f) [0x7b35494f2ddf] 6 /data/gannet/ripley/R/packages/tests-gcc-SAN/bamm.Rcheck/bamm/libs/bamm.so(_bamm_sdm_sim_rcpp+0x847) [0x7b3549435537] 7 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x74ee37] 8 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x753b8b] 9 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8ceba3] 10 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8bbdec] 11 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0x353) [0x85c643] 12 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x87238b] 13 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x87644b] 14 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0x9f4) [0x85cce4] 15 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x88abff] 16 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0xe17) [0x85d107] 17 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x870b8c] 18 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0xe17) [0x85d107] 19 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8921a2] 20 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8ceba3] 21 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8bbdec] 22 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0x353) [0x85c643] 23 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x87238b] 24 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x87644b] 25 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0x9f4) [0x85cce4] 26 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x893294] 27 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8ceba3] 28 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8bbdec] 29 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0x353) [0x85c643] 30 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x87238b] 31 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x87644b] 32 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(R_forceAndCall+0x578) [0x877d68] 33 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x49a177] 34 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0xa95e47] 35 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8dbdb2] 36 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x8bbdec] 37 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0x353) [0x85c643] 38 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x87238b] 39 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x87644b] 40 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(Rf_eval+0x9f4) [0x85cce4] 41 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0xa02409] 42 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(run_Rmainloop+0x8b) [0xa1076b] 43 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0xa10803] 44 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R() [0x413180] 45 /lib64/libc.so.6(+0x35f5) [0x7f35618115f5] 46 /lib64/libc.so.6(__libc_start_main+0x88) [0x7f35618116a8] 47 /data/gannet/ripley/R/gcc-SAN3/bin/exec/R(_start+0x25) [0x413b65] ================================= *** caught segfault *** address 0x4d200238946, cause 'unknown' Traceback: 1: sdm_sim_rcpp(A = A_sparse, M_orig = M_adj, g0_input = initial_points, suit_values = suit_probs, adj_list = adj_list, nsteps = nsteps, stochastic_dispersal = stochastic_dispersal, disp_prop2_suitability = disp_prop2_suitability, disper_prop = disper_prop, progress_bar = progress_bar) 2: bamm::sdm_sim(set_A = sparse_mod, set_M = adj_mod, initial_points = occs_sparse, nsteps = 10, stochastic_dispersal = TRUE, disp_prop2_suitability = FALSE, disper_prop = 0.5, progress_bar = TRUE) 3: eval(code, test_env) 4: eval(code, test_env) 5: 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) 6: doTryCatch(return(expr), name, parentenv, handler) 7: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 8: tryCatchList(expr, classes, parentenv, handlers) 9: 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) 10: doWithOneRestart(return(expr), restart) 11: withOneRestart(expr, restarts[[1L]]) 12: 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() { }) 13: test_code(code, parent.frame()) 14: test_that("sdm_sim returns an object of class bam with results from simulation", { model_path <- system.file("extdata/Lepus_californicus_cont.tif", package = "bamm") model <- raster::raster(model_path) sparse_mod <- bamm::model2sparse(model, threshold = 0.05) adj_mod <- bamm::adj_mat(sparse_mod, ngbs = 1) occs_lep_cal <- data.frame(longitude = c(-110.0888, -98.89638), latitude = c(30.43455, 25.19919)) occs_sparse <- bamm::occs2sparse(modelsparse = sparse_mod, occs = occs_lep_cal) expect_error(bamm::sdm_sim(set_A = "a", set_M = adj_mod, initial_points = occs_sparse, nsteps = 10, stochastic_dispersal = TRUE, disp_prop2_suitability = TRUE, disper_prop = 0.5, progress_bar = TRUE)) expect_error(bamm::sdm_sim(set_A = sparse_mod, set_M = "adj_mod", initial_points = occs_sparse, nsteps = 10, stochastic_dispersal = TRUE, disp_prop2_suitability = TRUE, disper_prop = 0.5, progress_bar = TRUE)) sdm_lep_cal <- bamm::sdm_sim(set_A = sparse_mod, set_M = adj_mod, initial_points = occs_sparse, nsteps = 10, stochastic_dispersal = TRUE, disp_prop2_suitability = FALSE, disper_prop = 0.5, progress_bar = TRUE) sdm_lep_cal <- bamm::sdm_sim(set_A = sparse_mod, set_M = adj_mod, initial_points = occs_sparse, nsteps = 10, stochastic_dispersal = FALSE, disp_prop2_suitability = FALSE, disper_prop = 0.5, progress_bar = TRUE) sdm_lep_cal <- bamm::sdm_sim(set_A = sparse_mod, set_M = adj_mod, initial_points = occs_sparse, nsteps = 10, stochastic_dispersal = TRUE, disp_prop2_suitability = TRUE, disper_prop = 0.5, progress_bar = TRUE) expect_s4_class(sdm_lep_cal, "bam") }) 15: eval(code, test_env) 16: eval(code, test_env) 17: 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) 18: doTryCatch(return(expr), name, parentenv, handler) 19: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 20: tryCatchList(expr, classes, parentenv, handlers) 21: 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) 22: doWithOneRestart(return(expr), restart) 23: withOneRestart(expr, restarts[[1L]]) 24: 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() { }) 25: test_code(code = exprs, env = env, reporter = get_reporter() %||% StopReporter$new()) 26: source_file(path, env = env(env), desc = desc, shuffle = shuffle, error_call = error_call) 27: FUN(X[[i]], ...) 28: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call) 29: doTryCatch(return(expr), name, parentenv, handler) 30: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 31: tryCatchList(expr, classes, parentenv, handlers) 32: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL}) 33: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call)) 34: 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) 35: 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) 36: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed") 37: test_check("bamm") An irrecoverable exception occurred. R is aborting now ...