test_that("all argument works for list_lsm()", { result_level <- list_lsm(level = "landscape") result_metric <- list_lsm(metric = "iji") result_name <- list_lsm(name = "patch area") result_type <- list_lsm(type = "aggregation metric") expect_true(all(result_level$level == "landscape")) expect_true(all(result_metric$metric == "iji")) expect_true(all(result_name$name == "patch area")) expect_true(all(result_type$type == "aggregation metric")) expect_s3_class(result_level, "data.frame") expect_s3_class(result_metric, "data.frame") expect_s3_class(result_name, "data.frame") expect_s3_class(result_type, "data.frame") }) test_that("what argument still works for list_lsm()", { result <- list_lsm(what = c("patch", "lsm_l_ta")) expect_true(all(result$level %in% c("patch", "landscape"))) expect_true(result$metric[result$level == "landscape"] == "ta") expect_s3_class(result, "data.frame") }) test_that("simplify returns vector", { result <- list_lsm(simplify = TRUE) expect_type(result, "character") }) test_that("returns warning if what and other argument is specified", { expect_warning(list_lsm(level = "landscape", what = "class"), regexp = "Only using 'what' argument.", fixed = TRUE) result <- list_lsm(level = "landscape", what = "class", verbose = FALSE) expect_true(all(result$level == "class")) }) test_that("Negative subset works for list_lsm()", { result_level <- list_lsm(level = "-landscape") result_metric <- list_lsm(metric = "-iji") result_name <- list_lsm(name = "-patch area") result_type <- list_lsm(type = "-aggregation metric") result_mixed <- list_lsm(level = "class", type = "-aggregation metric", metric = "-cai") expect_false(any(result_level$level == "landscape")) expect_false(any(result_metric$metric == "iji")) expect_false(any(result_name$name == "patch area")) expect_false(any(result_type$type == "aggregation metric")) expect_false(all(any(result_mixed$level != "class"), any(result_mixed$type == "aggregation metric"), any(result_mixed$metric == "cai"))) expect_s3_class(result_level, "data.frame") expect_s3_class(result_metric, "data.frame") expect_s3_class(result_name, "data.frame") expect_s3_class(result_type, "data.frame") expect_s3_class(result_mixed, "data.frame") }) test_that("list_lsm returns error", { expect_error(list_lsm(what = "-patch"), regexp = "Negative strings not allowed for 'what' argument. Please use other arguments for negative subsets.", fixed = TRUE) expect_error(list_lsm(level = c("-patch", "landscape")), regexp = "Mixing of positive and negative strings as subset not allowed for the same argument.", fixed = TRUE) expect_error(list_lsm(what = "lsm_p_made_up"), regexp = "Selected metrics do not exist. Please use 'list_lsm()' to see all available metrics.", fixed = TRUE) })