#### TESTS FOR strr_raffle #####################################################
### Setup ######################################################################
context("strr_raffle tests")
load("strr_raffle_data.Rdata")
### Tests ######################################################################
result <- strr_raffle(points, polys, GeoUID, dwellings)
result_diagnostic <-
  strr_raffle(points, polys, GeoUID, dwellings, diagnostic = TRUE)
test_that("The function successfully completes", {
  expect_equal(nrow(result), 31)
})
test_that("The geometry column is last", {
  expect_equal(dplyr::last(names(result)), "geometry")
})
test_that("The quiet flag suppresses all messages", {
  expect_message(strr_raffle(points, polys, GeoUID, dwellings, quiet = TRUE),
                 regexp = NA)
})
test_that("The function completes with diagnostic = TRUE", {
  expect_equal(nrow(result_diagnostic), 31)
})
test_that("Points outside the polygons return NA", {
  expect_equal(result[31,]$GeoUID, NA_character_)
})
test_that("Raffle candidates are correct", {
  expect_equal(nrow(result_diagnostic[9,]$candidates[[1]]), 4)
  expect_equal(nrow(result_diagnostic[1,]$candidates[[1]]), 1)
})
test_that("Odd field names are handled properly", {
  # points with field named {{ poly_ID }}
  expect_equal(nrow(strr_raffle(
    dplyr::rename(points, GeoUID = property_ID), polys, GeoUID, dwellings)), 31)
  # points with field name "poly_ID"
  expect_equal(nrow(strr_raffle(
    dplyr::rename(points, poly_ID = property_ID), polys, GeoUID, dwellings)),
    31)
  # points and polys with field name "poly_ID"
  expect_equal(nrow(strr_raffle(
    dplyr::rename(points, poly_ID = property_ID),
    dplyr::rename(sf::st_set_agr(polys, "constant"), poly_ID = GeoUID), poly_ID,
    dwellings)), 31)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.