tests/testthat/test-calculate_pop.R

test_that("Total outputs", {
  expect_error(calculate_pop(mraster = "A"), "'mraster' must be type SpatRaster.")
  expect_error(calculate_pop(mraster = mraster, PCA = 2), "'PCA' must be type logical.")
  expect_error(calculate_pop(mraster = mraster, matQ = 2), "'matQ' must be type logical.")
  expect_error(calculate_pop(mraster = mraster, matCov = 2), "'matCov' must be type logical.")

  expect_error(calculate_pop(mraster = mraster, nQuant = "A"), "'nQuant' must be type numeric.")
  expect_error(calculate_pop(mraster = mraster, matCov = TRUE, matQ = FALSE), "Covariance matrix creation requires quantile matrix. Set 'matQ = TRUE'.")
})

test_that("messages", {
  skip_on_cran()
  expect_equal(length(calculate_pop(mraster = mraster, matCov = FALSE)), 2L)
})

test_that("Total outputs", {
  skip_on_cran()
  set.seed(2022)
  #--- supply quantile and covariance matrices ---#
  mats <- calculate_pop(mraster = mraster, PCA = TRUE)

  expect_equal(nrow(mats$values), 91195L)
  expect_equal(nrow(mats$matQ), 11L)
  expect_equal(nrow(mats$matCov), 10L)
  expect_equal(ncol(mats$values), 3L)
  expect_equal(length(mats), 4L)
  expect_equal(names(mats), c("values", "pcaLoad", "matQ", "matCov"))

  expect_named(mats$values, c("zq90", "pzabove2", "zsd"))
  expect_equal(sum(mats$matQ[, 1]), 169.399996)
  expect_equal(sum(mats$matQ[, 2]), 550)
})


test_that("small raster", {
  skip_on_cran()

  mr1 <- mr <- rast(nrow = 50, ncol = 50)
  values(mr) <- runif(50 * 50)

  expect_equal(nrow(calculate_pop(mraster = mr)$values), 2500L)
})
tgoodbody/sgsR documentation built on March 7, 2024, 2:20 a.m.