# context("test-translate_raster")
# n_random <- (terra::nrow(terra::rast(landscape)) + 1) *
# terra::ncol(terra::rast(landscape)) + 1) - 4
# create landscape
landscape_classified <- classify_habitats(raster = terra::rast(landscape), n = 5, style = "fisher")
# normal translation
landscape_random <- translate_raster(raster = landscape_classified, verbose = FALSE)
# torus translation with provided steps
landscape_random_steps <- translate_raster(raster = landscape_classified,
steps_x = 1:3, steps_y = 1:3,
verbose = FALSE, return_input = FALSE)
# simplified raster
landscape_random_simple <- translate_raster(raster = landscape_classified,
steps_x = 1, steps_y = 5,
simplify = TRUE, verbose = FALSE,
return_input = FALSE)
# create landscape wrong extent
landscape_wrong <- landscape_classified
# classify landscape wrong extent
landscape_wrong[1:50] <- NA
################################################################################
test_that("Output is a long as n_random for translate_raster", {
expect_length(landscape_random$randomized, n = 2597)
})
test_that("Output includes randomizations and original pattern for translate_raster", {
expect_named(landscape_random$randomized, expected = paste0("randomized_", 1:2597))
expect_equal(landscape_random$observed, expected = landscape_classified)
})
test_that("Input raster can not be returned for translate_raster", {
check <- vapply(X = landscape_random_steps$randomized, FUN = function(x) {
landscape_diff <- landscape_classified - x
all(terra::values(landscape_diff) == 0)
}, FUN.VALUE = logical(1))
expect_false(all(check))
})
test_that("Providing steps is working for translate_raster", {
expect_length(landscape_random_steps$randomized, n = 9)
})
test_that("simplify is working for translate_raster", {
expect_s4_class(landscape_random_simple, class = "SpatRaster")
})
test_that("Warning if more than 10 classes are present for translate_raster", {
expect_warning(translate_raster(raster = terra::rast(landscape), steps_x = 5, steps_y = 5,
verbose = FALSE),
regexp = "The raster has more than 10 classes. Please make sure discrete classes are provided.")
})
test_that("Stop if NA are present", {
expect_error(translate_raster(raster = landscape_wrong, steps_x = 5, steps_y = 5),
regexp = "NA values are not allowed for 'translate_raster\\()'.")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.