test_that("get_adjacencies runs for all data types", {
raster_layer <- get_adjacencies(landscape)
raster_stack <- get_adjacencies(landscape_stack)
raster_list <- get_adjacencies(landscape_list)
raster_matrix <- get_adjacencies(landscape_matrix)
expect_type(raster_layer, "list")
expect_type(raster_stack, "list")
expect_type(raster_list, "list")
expect_type(raster_matrix, "list")
})
test_that("get_adjacencies runs and returns a matrix", {
adjacencies_full <- get_adjacencies(landscape,
neighbourhood = 4, what = "full")
adjacencies_like <- get_adjacencies(landscape,
neighbourhood = 4, what = "like")
adjacencies_unlike <- get_adjacencies(landscape,
neighbourhood = 4, what = "unlike")
adjacencies_triangle <- get_adjacencies(landscape,
neighbourhood = 4, what = "triangle")
expect_true(all(!is.na(adjacencies_full[[1]])))
expect_true(all(is.na(adjacencies_like[[1]][-c(1, 5, 9)])))
expect_true(all(is.na(adjacencies_unlike[[1]][-c(2, 3, 6)])))
expect_true(all(is.na(adjacencies_triangle[[1]][-c(1, 2, 3, 5, 6, 9)])))
})
test_that("get_adjacencies runs also for the upper triangle", {
adjacencies_upperfull <- get_adjacencies(landscape,
neighbourhood = 4, what = "full", upper = TRUE)
adjacencies_upperlike <- get_adjacencies(landscape,
neighbourhood = 4, what = "like", upper = TRUE)
adjacencies_upperunlike <- get_adjacencies(landscape,
neighbourhood = 4, what = "unlike", upper = TRUE)
adjacencies_uppertriangle <- get_adjacencies(landscape,
neighbourhood = 4, what = "triangle", upper = TRUE)
expect_true(all(!is.na(adjacencies_upperfull[[1]])))
expect_true(all(is.na(adjacencies_upperlike[[1]][-c(1, 5, 9)])))
expect_true(all(is.na(adjacencies_upperunlike[[1]][-c(4, 7,8)])))
expect_true(all(is.na(adjacencies_uppertriangle[[1]][-c(1, 4, 5, 7, 8, 9)])))
})
test_that("get_adjacencies works for different values of neighborhood than 4", {
new_ras <- terra::rast(nrows = 3, ncols = 3, vals = c(rep(1, 8), 2))
adjacencies_4 <- get_adjacencies(new_ras, neighbourhood = 4)
adjacencies_8 <- get_adjacencies(new_ras, neighbourhood = 8)
diagonal_matrix <- matrix(c(1, NA, 1,
NA, 0, NA,
1, NA, 1), 3, 3, byrow = TRUE)
adjacencies_diag <- get_adjacencies(new_ras, diagonal_matrix)
expect_equal(adjacencies_4[[1]], matrix(c(20L, 2L, 2L, 0L), ncol = 2,
dimnames = list(c("1","2"), c("1", "2"))))
expect_equal(adjacencies_8[[1]], matrix(c(34L, 3L, 3L, 0L), ncol = 2,
dimnames = list(c("1","2"), c("1", "2"))))
expect_equal(adjacencies_diag[[1]], matrix(c(14L, 1L, 1L, 0L), ncol = 2,
dimnames = list(c("1","2"), c("1", "2"))))
})
test_that("get_adjacencies returns error", {
expect_error(get_adjacencies(landscape, neighbourhood = 12),
regexp = "neighbourhood must be either 4, 8 or a binary matrix where the ones define the neighbourhood.")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.