test_that("pseudoabsences - normal", { skip_on_cran() sa <- sdm_area(parana, 100000, crs=6933) |> add_predictors(bioc) |> select_predictors(c("bio1", "bio12")) |> add_scenarios() oc <- occurrences_sdm(occ, crs=6933) suppressWarnings(oc <- join_area(oc, sa)) i <- input_sdm(oc, sa) suppressWarnings(i2 <- pseudoabsences(i, method = "random", n_set = 1)) expect_equal(n_pseudoabsences(i2), n_records(i2)) expect_equal(n_pseudoabsences(i2$occurrences), n_records(i2$occurrences)) expect_equal("random", pseudoabsence_method(i2)) expect_equal("random", pseudoabsence_method(i2$occurrences)) i2 <- pseudoabsences(i2, method = "random", n_set = 1, variables_selected = c("bio1", "bio12")) expect_equal("random", pseudoabsence_method(i2)) expect_equal("random", pseudoabsence_method(i2$occurrences)) expect_equal(n_pseudoabsences(i2), n_records(i2)) expect_equal(n_pseudoabsences(i2$occurrences), n_records(i2$occurrences)) suppressWarnings(i3 <- vif_predictors(i, th = 0.9)) i3 <- pseudoabsences(i3, method = "random", variables_selected = "vif", n_set = 1) expect_equal("random", pseudoabsence_method(i3)) expect_equal("random", pseudoabsence_method(i3$occurrences)) i4 <- pca_predictors(i) i4 <- pseudoabsences(i4, method = "random", variables_selected = "pca", n_set = 1) expect_equal("random", pseudoabsence_method(i4)) expect_equal("random", pseudoabsence_method(i4$occurrences)) n_set=3 i5 <- pseudoabsences(i, method = "random", n_set=n_set) expect_equal(n_set, pseudoabsence_data(i5)[[1]] |> length()) expect_equal(n_set, pseudoabsence_data(i5$occurrences)[[1]] |> length()) n_pa <- 100 expect_warning(i6 <- pseudoabsences(i, method = "random", n_pa=n_pa, n_set=1)) expect_true(n_pa == n_pseudoabsences(i6)) expect_true(n_pa == n_pseudoabsences(i6$occurrences)) suppressWarnings(oc <- occurrences_sdm(rbind(occ, salm), crs=6933) |> join_area(sa)) i6 <- input_sdm(oc, sa) test <- capture_warnings(i6 <- pseudoabsences(i6, method = "random", n_pa=n_pa)) expect_equal(length(test), 2) test <- n_pseudoabsences(i6) expect_equal(names(test), species_names(i6)) expect_equal(length(as.numeric(test)), length(species_names(i6))) expect_equal(as.numeric(test), rep(n_pa, length(species_names(i6)))) expect_error(pseudoabsences(i, method = "random", n_pa=c(1,2,3))) i7 <- pseudoabsences(i, method = "mahal.dist", n_set = 1) expect_equal(n_pseudoabsences(i7), n_records(i7)) expect_equal("mahal.dist", pseudoabsence_method(i7)) expect_equal("mahal.dist", pseudoabsence_method(i7$occurrences)) env_distance_pa <- function(env_sf, occ_sf, n_pa=n_pa) { df <- as.data.frame(env_sf)[, -which(names(env_sf) %in% c("cell_id", "geometry"))] center <- colMeans(df) d <- sqrt(rowSums((df - center)^2)) p <- d / sum(d) sample(env_sf$cell_id, size = n_pa, prob = p) } expect_warning(i8 <- pseudoabsences(i, method = env_distance_pa, n_set = 2, n_pa=n_pa)) expect_equal(as.numeric(n_pseudoabsences(i8)), n_pa) expect_equal("env_distance_pa", pseudoabsence_method(i8)) expect_equal("env_distance_pa", pseudoabsence_method(i8$occurrences)) expect_equal(names(i8$occurrences$pseudoabsences), c("data", "method", "n_set", "n_pa")) expect_equal(class(i8$occurrences$pseudoabsences$n_pa), c("table")) expect_equal(class(i8$occurrences$pseudoabsences$n_set), c("numeric")) expect_equal(class(i8$occurrences$pseudoabsences$method), c("character")) expect_equal(class(i8$occurrences$pseudoabsences$data), c("list")) expect_equal(names(i8$occurrences$pseudoabsences$data), species_names(i8)) expect_equal(class(i8$occurrences$pseudoabsences$data[[1]]), c("list")) expect_equal(names(i8$occurrences$pseudoabsences$data[[1]]), NULL) expect_equal(length(i8$occurrences$pseudoabsences$data[[1]]), 2) expect_equal(names(i8$occurrences$pseudoabsences$data[[1]][[1]]), c("cell_id", "bio1", "bio12", "geometry")) expect_equal(class(i8$occurrences$pseudoabsences$data[[1]][[1]]), c("sf", "data.frame")) # erros i <- background(i) expect_error(train_sdm(i, algo = c("kknn"))) })