test_that("Check crs", {
expect_snapshot(res <- pull_crs(list(1)))
expect_true(is.na(res))
expect_true(is.na(pull_crs(NA)))
expect_silent(is.na(pull_crs(NA)))
expect_true(is.na(pull_crs(NULL)))
expect_silent(is.na(pull_crs(NULL)))
expect_true(is.na(pull_crs("")))
expect_silent(is.na(pull_crs("")))
expect_error(pull_crs("Some string"))
# Base for comparison
base <- pull_crs(4326)
sfobj <- sf::st_as_sfc("MULTIPOINT ((0 0), (1 1))", crs = 4326)
expect_s3_class(sfobj, "sfc")
sfc <- pull_crs(sfobj)
sfobj2 <- sf::st_sf(sfobj)
expect_s3_class(sfobj2, "sf")
sf2 <- pull_crs(sfobj2)
# On sf with columns with NA also works
sf_na <- sfobj2
sf_na$no_na <- "A"
sf_na$no_na <- NA
expect_true(any(is.na(sf_na)))
expect_s3_class(sf_na, "sf")
sf_na_check <- pull_crs(sf_na)
crs <- sf::st_crs(sfobj)
expect_s3_class(crs, "crs")
crs2 <- pull_crs(crs)
# terra
v <- terra::vect(sfobj2)
expect_s4_class(v, "SpatVector")
v2 <- pull_crs(v)
r <- terra::rast(v)
expect_s4_class(r, "SpatRaster")
r2 <- pull_crs(r)
# Characters
fromchar <- pull_crs("epsg:4326")
expect_true(all.equal(
base,
sfc,
sf2,
sf_na_check,
crs2,
r2,
v2,
fromchar
))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.