Nothing
test_that("sf CRS objects can be compared", {
skip_if_not_installed("sf")
expect_true(wk_crs_equal(sf::st_crs(4326), 4326))
expect_true(wk_crs_equal(sf::st_crs(4326), 4326L))
expect_true(wk_crs_equal(sf::st_crs(NA), NULL))
expect_true(wk_crs_equal(NULL, sf::st_crs(NA)))
})
test_that("wk_crs_proj_definition() works for sf crs objects", {
skip_if_not_installed("sf")
expect_identical(wk_crs_proj_definition(sf::NA_crs_), NA_character_)
epsg4326 <- 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]'
expect_identical(wk_crs_proj_definition(sf::st_crs(epsg4326)), "EPSG:4326")
expect_identical(wk_crs_proj_definition(sf::st_crs(4326)), "EPSG:4326")
expect_match(wk_crs_proj_definition(sf::st_crs(4326), verbose = TRUE), "^GEOGCS")
expect_identical(wk_crs_proj_definition("OGC:CRS84"), "OGC:CRS84")
expect_identical(
wk_crs_proj_definition(sf::st_crs("+proj=merc +lat_ts=56.5 +type=crs")),
"+proj=merc +lat_ts=56.5 +type=crs"
)
})
test_that("wk_crs_projjson() works for sf crs objects", {
skip_if_not_installed("sf")
expect_match(wk_crs_projjson(sf::st_crs(4326)), "GeographicCRS")
expect_identical(wk_crs_projjson(sf::NA_crs_), NA_character_)
})
test_that("wk_crs/set_crs works on sf/sfc", {
skip_if_not_installed("sf")
sf <- sf::st_as_sf(data.frame(geometry = sf::st_as_sfc("POINT (1 2)")))
expect_identical(wk_crs(sf), sf::st_crs(sf))
expect_identical(sf::st_crs(wk_set_crs(sf, 4326)), sf::st_crs(4326))
sfc <- sf::st_as_sfc("POINT (1 2)")
expect_identical(wk_crs(sfc), sf::st_crs(sfc))
expect_identical(sf::st_crs(wk_set_crs(sfc, 4326)), sf::st_crs(4326))
})
test_that("conversion from sf to wkt works", {
skip_if_not_installed("sf")
sfc <- sf::st_sfc(sf::st_point(), sf::st_point(c(0, 1)), crs = 4326)
expect_s3_class(as_wkt(sfc), "wk_wkt")
expect_identical(
as.character(as_wkt(sfc)),
c("POINT EMPTY", "POINT (0 1)")
)
expect_identical(wk_crs(as_wkt(sfc)), sf::st_crs(sfc))
sf <- sf::st_as_sf(new_data_frame(list(geometry = sfc)))
expect_identical(
as.character(as_wkt(sf)),
c("POINT EMPTY", "POINT (0 1)")
)
expect_identical(wk_crs(as_wkt(sf)), sf::st_crs(sf))
})
test_that("conversion from sf to wkb works", {
skip_if_not_installed("sf")
sfc <- sf::st_sfc(sf::st_point(), sf::st_point(c(0, 1)), crs = 4326)
expect_s3_class(as_wkb(sfc), "wk_wkb")
expect_identical(
as.character(as_wkt(as_wkb(sfc))),
c("POINT EMPTY", "POINT (0 1)")
)
expect_identical(wk_crs(as_wkb(sfc)), sf::st_crs(sfc))
sfg <- sf::st_point(c(0, 1))
expect_s3_class(as_wkb(sfg), "wk_wkb")
expect_identical(
as.character(as_wkt(as_wkb(sfg))),
"POINT (0 1)"
)
sf <- sf::st_as_sf(new_data_frame(list(geometry = sfc)))
expect_identical(
as.character(as_wkt(as_wkb(sf))),
c("POINT EMPTY", "POINT (0 1)")
)
expect_identical(wk_crs(as_wkb(sf)), sf::st_crs(sf))
})
test_that("conversion from sf to xy works", {
skip_if_not_installed("sf")
sfc <- sf::st_sfc(sf::st_point(), sf::st_point(c(0, 1)))
expect_s3_class(as_xy(sfc), "wk_xy")
expect_identical(as_xy(sfc), xy(c(NaN, 0), c(NaN, 1)))
sf <- sf::st_as_sf(new_data_frame(list(geometry = sfc)))
expect_identical(as_xy(sf), xy(c(NaN, 0), c(NaN, 1)))
expect_identical(as_xy(sf::st_sfc()), xy(crs = NULL))
expect_identical(
as_xy(sf::st_sfc(sf::st_linestring())),
xy(NaN, NaN, crs = sf::NA_crs_)
)
# check all dimensions
expect_identical(as_xy(sf::st_sfc(sf::st_point(c(1, 2, 3, 4), dim = "XYZM"))), xyzm(1, 2, 3, 4))
expect_identical(as_xy(sf::st_sfc(sf::st_point(c(1, 2, 3), dim = "XYZ"))), xyz(1, 2, 3))
expect_identical(as_xy(sf::st_sfc(sf::st_point(c(1, 2, 3), dim = "XYM"))), xym(1, 2, 3))
expect_identical(as_xy(sf::st_sfc(sf::st_point(c(1, 2)))), xy(1, 2))
})
test_that("conversion from bbox to rct works", {
skip_if_not_installed("sf")
sfc <- sf::st_sfc(sf::st_point(c(2, 3)), sf::st_point(c(0, 1)))
expect_identical(as_rct(sf::st_bbox(sfc)), rct(0, 1, 2, 3))
})
test_that("conversion to sf works", {
skip_if_not_installed("sf")
sfc <- sf::st_sfc(sf::st_point(), sf::st_point(c(0, 1)), NULL, crs = 4326)
sf <- sf::st_as_sf(new_data_frame(list(geometry = sfc)))
wkb <- as_wkb(c("POINT EMPTY", "POINT (0 1)", NA), crs = 4326)
wkt <- as_wkt(c("POINT EMPTY", "POINT (0 1)", NA), crs = 4326)
expect_equal(sf::st_as_sf(wkb), sf)
expect_equal(sf::st_as_sfc(wkb), sfc)
expect_equal(sf::st_as_sf(wkt), sf)
expect_equal(sf::st_as_sfc(wkt), sfc)
# xy
expect_equal(
sf::st_as_sf(xy(c(NA, 0, NA), c(NA, 1, NA), crs = 4326)),
sf
)
expect_equal(
sf::st_as_sfc(xy(c(NA, 0, NA), c(NA, 1, NA), crs = 4326)),
sfc
)
expect_equal(
sf::st_as_sfc(xy(c(NaN, 0, NA), c(NaN, 1, NA), crs = 4326)),
sfc
)
# xy with all !is.na() uses faster sf conversion with coords
expect_equal(sf::st_as_sf(xy(0, 1, crs = 4326)), sf[2,, , drop = FALSE])
expect_equal(sf::st_as_sfc(xy(0, 1, crs = 4326)), sfc[2])
# rct can only generate rectangles
expect_equal(
sf::st_as_sfc(rct(1, 2, 3, 4, crs = 4326)),
sf::st_as_sfc(sf::st_bbox(c(xmin = 1, ymin = 2, xmax = 3, ymax = 4), crs = 4326))
)
expect_equal(
sf::st_as_sf(rct(1, 2, 3, 4, crs = 4326)),
sf::st_as_sf(
data.frame(
geometry = sf::st_as_sfc(
sf::st_bbox(c(xmin = 1, ymin = 2, xmax = 3, ymax = 4), crs = 4326)
)
)
)
)
# crc only generates circles
expect_equal(
as_rct(sf::st_bbox(sf::st_as_sfc(crc(1, 2, 3)))),
rct(-2, -1, 4, 5)
)
expect_equal(
as_rct(sf::st_bbox(sf::st_as_sf(crc(1, 2, 3)))),
rct(-2, -1, 4, 5)
)
# grid objects
grid <- grd(nx = 1, ny = 1, type = "centers")
wk_crs(grid) <- sf::st_crs("OGC:CRS84")
expect_identical(
sf::st_as_sfc(grid),
sf::st_sfc(sf::st_point(c(0.5, 0.5)), crs = sf::st_crs("OGC:CRS84"))
)
expect_identical(
sf::st_as_sf(grid),
sf::st_as_sf(
data.frame(
geometry = sf::st_sfc(sf::st_point(c(0.5, 0.5)), crs = sf::st_crs("OGC:CRS84"))
)
)
)
})
test_that("wk_handle.sfg works", {
skip_if_not_installed("sf")
expect_identical(
wk_handle(wkt("POINT (1 2)"), wkb_writer()),
wk_handle(sf::st_point(c(1, 2)), wkb_writer())
)
})
test_that("wk_handle.bbox works", {
skip_if_not_installed("sf")
expect_identical(
wk_handle(sf::st_bbox(sf::st_linestring(rbind(c(0, 1), c(2, 3)))), wkb_writer()),
wk_handle(rct(0, 1, 2, 3), wkb_writer())
)
})
test_that("wk_translate.sfc() works", {
skip_if_not_installed("sf")
expect_identical(
wk_translate(wkt("POINT (1 2)", crs = 4326), sf::st_sfc(crs = 4326)),
sf::st_sfc(sf::st_point(c(1, 2)), crs = 4326)
)
})
test_that("wk_translate() works for sf", {
skip_if_not_installed("sf")
expect_identical(
wk_translate(
sf::st_as_sf(data.frame(geometry = sf::st_as_sfc("POINT (1 2)"))),
sf::st_as_sf(data.frame(a = sf::st_sfc()))
),
sf::st_as_sf(data.frame(geometry = sf::st_as_sfc("POINT (1 2)")))
)
expect_identical(
wk_translate(
data.frame(a = 1, geometry = wkt("POINT (1 2)")),
sf::st_as_sf(data.frame(a = sf::st_sfc()))
),
sf::st_as_sf(data.frame(a = 1, geometery = sf::st_as_sfc("POINT (1 2)")))
)
expect_identical(
wk_translate(as_wkb("POINT (1 2)"), sf::st_as_sf(data.frame(a = sf::st_sfc()))),
sf::st_as_sf(data.frame(a = sf::st_as_sfc("POINT (1 2)")))
)
expect_identical(
wk_translate(
as_wkb("POINT (1 2)", crs = 4326),
sf::st_as_sf(data.frame(a = sf::st_sfc(crs = 4326)))
),
sf::st_as_sf(data.frame(a = sf::st_as_sfc("POINT (1 2)", crs = 4326)))
)
})
test_that("wk_restore() works for sf", {
skip_if_not_installed("sf")
expect_identical(
wk_identity(sf::st_as_sf(data.frame(a = sf::st_as_sfc("POINT (1 2)")))),
sf::st_as_sf(data.frame(a = sf::st_as_sfc("POINT (1 2)")))
)
expect_identical(
wk_identity(sf::st_as_sf(data.frame(a = sf::st_as_sfc("POINT (1 2)", crs = 4326)))),
sf::st_as_sf(data.frame(a = sf::st_as_sfc("POINT (1 2)", crs = 4326)))
)
expect_identical(
wk_restore(
sf::st_as_sf(data.frame(geometry = sf::st_as_sfc("POINT (1 2)"))),
sf::st_as_sfc(c("POINT (3 4)", "POINT (5 6)"))
),
sf::st_as_sf(data.frame(geometry = sf::st_as_sfc(c("POINT (3 4)", "POINT (5 6)"))))
)
expect_error(
wk_restore(
sf::st_as_sf(data.frame(geometry = sf::st_as_sfc(rep("POINT (1 2)", 3)))),
sf::st_as_sfc(c("POINT (3 4)", "POINT (5 6)"))
),
"Can't assign"
)
})
test_that("st_geometry() methods are defined for wk objects", {
skip_if_not_installed("sf")
expect_identical(sf::st_geometry(wkb()), sf::st_as_sfc(wkb()))
expect_identical(sf::st_geometry(wkt()), sf::st_as_sfc(wkt()))
expect_identical(sf::st_geometry(xy()), sf::st_as_sfc(xy()))
expect_identical(sf::st_geometry(rct()), sf::st_as_sfc(rct()))
expect_identical(sf::st_geometry(crc()), sf::st_as_sfc(crc()))
grid <- grd(nx = 1, ny = 1, type = "centers")
expect_identical(sf::st_geometry(grid), sf::st_as_sfc(grid))
})
test_that("st_bbox() methods are defined for wk objects", {
skip_if_not_installed("sf")
sf_obj <- sf::st_as_sfc("LINESTRING (0 1, 2 3)", crs = 32620)
bbox_obj <- sf::st_bbox(sf_obj)
expect_identical(sf::st_bbox(as_wkb(sf_obj)), bbox_obj)
expect_identical(sf::st_bbox(as_wkt(sf_obj)), bbox_obj)
expect_identical(sf::st_bbox(as_xy(wk_vertices(sf_obj))), bbox_obj)
expect_identical(sf::st_bbox(rct(0, 1, 2, 3, crs = 32620)), bbox_obj)
expect_identical(sf::st_bbox(crc(1, 2, 1, crs = 32620)), bbox_obj)
grid <- grd(nx = 1, ny = 1, type = "centers")
wk_crs(grid) <- sf::st_crs("OGC:CRS84")
expect_identical(
sf::st_bbox(grid),
sf::st_bbox(
sf::st_as_sfc(rct(0.5, 0.5, 0.5, 0.5, crs = sf::st_crs("OGC:CRS84")))
)
)
})
test_that("st_crs() methods are defined for wk objects", {
skip_if_not_installed("sf")
sf_obj <- sf::st_as_sfc("LINESTRING (0 1, 2 3)", crs = 32620)
crs_obj <- sf::st_crs(sf_obj)
expect_identical(sf::st_crs(as_wkb(sf_obj)), crs_obj)
expect_identical(sf::st_crs(as_wkt(sf_obj)), crs_obj)
expect_identical(sf::st_crs(as_xy(wk_vertices(sf_obj))), crs_obj)
expect_identical(sf::st_crs(rct(0, 1, 2, 3, crs = 32620)), crs_obj)
expect_identical(sf::st_crs(crc(1, 2, 1, crs = 32620)), crs_obj)
grid <- grd(nx = 1, ny = 1, type = "centers")
wk_crs(grid) <- sf::st_crs("OGC:CRS84")
expect_identical(
sf::st_crs(grid),
sf::st_crs("OGC:CRS84")
)
})
test_that("st_crs<-() methods are defined for wk objects", {
skip_if_not_installed("sf")
sf_obj <- sf::st_as_sfc("LINESTRING (0 1, 2 3)")
crs_obj <- sf::st_crs(32620)
expect_identical(wk_crs(sf::st_set_crs(as_wkb(sf_obj), 32620)), crs_obj)
expect_identical(wk_crs(sf::st_set_crs(as_wkt(sf_obj), 32620)), crs_obj)
expect_identical(wk_crs(sf::st_set_crs(as_xy(wk_vertices(sf_obj)), 32620)), crs_obj)
expect_identical(wk_crs(sf::st_set_crs(rct(0, 1, 2, 3), 32620)), crs_obj)
expect_identical(wk_crs(sf::st_set_crs(crc(1, 2, 1), 32620)), crs_obj)
grid <- grd(nx = 1, ny = 1, type = "centers")
sf::st_crs(grid) <- sf::st_crs("OGC:CRS84")
expect_identical(
sf::st_crs(grid),
sf::st_crs("OGC:CRS84")
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.