tests/testthat/test-utm-conversions.R

test_that("UTM conversion works", {
  skip_on_cran()
  skip_if_not_installed("sf")

  d <- data.frame(lat = c(52.1, 53.4), lon = c(-130.0, -131.4))
  x <- add_utm_columns(d, c("lon", "lat"))
  expect_equal(class(x), "data.frame")
  expect_true("X" %in% names(x))
  expect_true("Y" %in% names(x))

  expect_error(add_utm_columns(d, c("xx", "lat"))) # column missing
  d$X <- 1
  expect_error(add_utm_columns(d, c("lon", "lat"))) # X already there
  d$X <- NULL

  dd <- d
  names(dd) <- c("lon", "lat")
  expect_warning(add_utm_columns(dd, c("lat", "lon"))) # reversed
  expect_error(add_utm_columns(dd, c("lat", "lon", "x"))) # too many

  # CRS:
  expect_identical(get_crs(d, c("lon", "lat")), 32609)

  # multiple utm zones:
  d <- data.frame(lat = c(52.1, 53.4, 53), lon = c(-130.0, -131.4, -120))
  expect_warning(get_crs(d, c("lon", "lat")), regexp = "zones")

  # N and S
  d <- data.frame(lat = c(52.1, 53.4, -53), lon = c(-130.0, -131.4, -130))
  expect_warning(get_crs(d, c("lon", "lat")), regexp = "North")
})

Try the sdmTMB package in your browser

Any scripts or data that you put into this service are public.

sdmTMB documentation built on June 22, 2024, 10:48 a.m.