tests/testthat/test-lsm-l-contag.R

landscapemetrics_landscape_landscape_value <- lsm_l_contag(landscape)

test_that("lsm_l_contag is typestable", {

    expect_s3_class(lsm_l_contag(landscape), "tbl_df")
    expect_s3_class(lsm_l_contag(landscape_stack), "tbl_df")
    expect_s3_class(lsm_l_contag(landscape_list), "tbl_df")
})

test_that("lsm_l_contag returns the desired number of columns", {

    expect_equal(ncol(landscapemetrics_landscape_landscape_value), 6)
})

test_that("lsm_l_contag returns in every column the correct type", {

    expect_type(landscapemetrics_landscape_landscape_value$layer, "integer")
    expect_type(landscapemetrics_landscape_landscape_value$level, "character")
    expect_type(landscapemetrics_landscape_landscape_value$class, "integer")
    expect_type(landscapemetrics_landscape_landscape_value$id, "integer")
    expect_type(landscapemetrics_landscape_landscape_value$metric, "character")
    expect_type(landscapemetrics_landscape_landscape_value$value, "double")
})

test_that("lsm_l_contag returns warning for less than 2 classes", {

    expect_warning(lsm_l_contag(landscape_uniform),
                   regexp = "Number of classes must be >= 2: CONTAG = NA.",
                   fixed = TRUE)
    })

test_that("lsm_l_contag equals FRAGSTATS", {
    lsm_landscape <- lsm_l_contag(landscape) |> dplyr::pull(value)
    lsm_augusta <- lsm_l_contag(augusta_nlcd) |> dplyr::pull(value)

    fs_landscape <- dplyr::filter(fragstats_landscape, LID == "landscape", metric == "contag") |> dplyr::pull(value)
    fs_augusta <- dplyr::filter(fragstats_landscape, LID == "augusta_nlcd", metric == "contag") |> dplyr::pull(value)

    expect_true(test_relative(obs = lsm_landscape, exp = fs_landscape, tolerance = tol_rel))
    expect_true(test_relative(obs = lsm_augusta, exp = fs_augusta, tolerance = tol_rel))
})
landscapeecology/landscapemetrics documentation built on April 7, 2024, 11:11 p.m.