test_that("extract_lsm returns correct metrics", {
patch_area <- extract_lsm(landscape, y = sample_points,
what = "lsm_p_area", verbose = FALSE)
expect_true(all(patch_area$metric == "area"))
patch_core <- extract_lsm(landscape, y = sample_points,
type = "core area metric", full_name = TRUE,
verbose = FALSE)
expect_true(all(patch_core$type == "core area metric"))
patch_shape <- extract_lsm(landscape, y = sample_points, name = "shape index",
verbose = FALSE)
expect_true(all(patch_shape$metric == "shape"))
patch_all <- extract_lsm(landscape, y = sample_points,
verbose = FALSE)
expect_true(all(unique(patch_all$metric) == list_lsm(level = "patch")[,1]))
})
# test_that("extract_lsm works for lines", {
#
# result <- extract_lsm(landscape,
# y = sample_lines,
# what = "lsm_p_area",
# verbose = FALSE)
#
# expect_s3_class(result, "tbl_df")
# expect_true(all(result$metric %in% "area"))
# })
test_that("extract_lsm forwards arguments to calculate_lsm", {
result <- extract_lsm(landscape, y = sample_points,
what = "lsm_p_core", edge_depth = 100,
verbose = FALSE)
expect_true(all(result$value == 0))
})
test_that("extract_lsm uses extract_ids", {
result <- extract_lsm(landscape, y = sample_points,
extract_id = c(5, 25, 15), what = "lsm_p_area",
verbose = FALSE)
expect_equal(result$extract_id, expected = c(5, 15, 25))
result_wrong_id <- extract_lsm(landscape, y = sample_points,
extract_id = c(1, 5, 25, 15),
what = "lsm_p_area", verbose = FALSE)
expect_equal(result_wrong_id$extract_id, expected = 1:3)
})
test_that("extract_lsm works for all data types", {
result_stack <- extract_lsm(landscape = landscape_stack, y = sample_points,
what = "lsm_p_area", verbose = FALSE)
result_list <- extract_lsm(landscape = landscape_list, y = sample_points,
what = "lsm_p_area", verbose = FALSE)
expect_s3_class(result_stack, "tbl_df")
expect_s3_class(result_list, "tbl_df")
expect_equal(object = result_stack$layer,
expected = c(1, 1, 1, 2, 2, 2))
expect_equal(object = result_list$layer,
expected = c(1, 1, 1, 2, 2, 2))
expect_true("area" %in% result_stack$metric)
expect_true("area" %in% result_list$metric)
})
test_that("extract_lsm returns warnings", {
expect_warning(extract_lsm(augusta_nlcd, y = sample_points,
extract_id = c(15, 25, 5, 1), what = "lsm_p_area"),
regexp = "Length of extract_id is not identical to length of y. Using 1...n as extract_id.")
})
test_that("extract_lsm throws errors", {
expect_error(extract_lsm(landscape, y = sample_points,
what = "lsm_l_ta", verbose = FALSE),
regexp = "'extract_lsm()' only takes patch level metrics.",
fixed = TRUE)
expect_error(extract_lsm(landscape, y = 1:3),
regexp = "'y' must be a matrix, SpatVector, or sf object.",
fixed = TRUE)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.