source("utils.R") test_model = function(occ = NULL, env, spatial=NULL, biotic = bioticStruct(), iter = 1L, step_size = 10L, se=FALSE, family = stats::binomial(), context = "") { sjSDM:::check_module() device = is_gpu_available() testthat::expect_error({model = sjSDM(!!occ, env=!!env, spatial = !!spatial, biotic = !!biotic, iter = !!iter, step_size = !!step_size, se = !!se, family = !!family, device=device, sampling=10L, verbose = FALSE)}, NA) testthat::expect_error({imp = importance(model)}, NA) testthat::expect_error({plot(imp)}, NA) } # # testthat::test_that("sjSDM functionality", { # skip_if_no_torch() library(sjSDM) sim = simulate_SDM(sites = 50L, species = 12, env = 3) X1 = sim$env_weights Y1 = sim$response # iter, batch_size, se, link # iter, batch_size, se, link Funcs = list( list(5, 2, FALSE, binomial("logit")), list(5, 23, FALSE, poisson()), list(5, 40, FALSE, gaussian()), list(5, 40, FALSE, "nbinom") ) testthat::test_that("sjSDM importance Func", { testthat::skip_on_cran() testthat::skip_on_ci() skip_if_no_torch() for(i in 1:length(Funcs)) { test_model(Y1, env = linear(X1), iter = Funcs[[i]][[1]], step_size = Funcs[[i]][[2]], se = Funcs[[i]][[3]], family = Funcs[[i]][[4]]) } }) biotic = list( bioticStruct(4L), bioticStruct(4L, lambda = 0.1, alpha = 1.0) ) testthat::test_that("sjSDM importance Biotic", { testthat::skip_on_cran() testthat::skip_on_ci() skip_if_no_torch() for(i in 1:length(biotic)) { test_model(Y1, env=linear(X1), biotic = biotic[[i]]) } }) envs = list( linear(X1, ~0+X1:X2), linear(X1, lambda = 0.1) ) testthat::test_that("sjSDM importance env", { testthat::skip_on_cran() testthat::skip_on_ci() skip_if_no_torch() for(i in 1:length(envs)) { test_model(Y1, env = envs[[i]]) } }) SP = matrix(rnorm(100), 50, 2) Spatial = list( linear(SP, ~0+X1:X2), linear(SP, lambda = 0.1, alpha=0.0) ) testthat::test_that("sjSDM importance Spatial", { testthat::skip_on_cran() testthat::skip_on_ci() skip_if_no_torch() for(i in 1:length(Spatial)) { test_model(Y1, env = linear(X1), spatial = Spatial[[i]]) } }) Spatial = list( linear(SP, ~0+.) ) Env = list( linear(X1, lambda = 0.1, alpha=0.5) ) testthat::test_that("sjSDM importance Mix", { testthat::skip_on_cran() testthat::skip_on_ci() skip_if_no_torch() for(i in 1:length(Spatial)) { test_model(Y1, env = Env[[i]], spatial = Spatial[[i]]) } })