Nothing
test_that("cell_to_boundary returns wk_wkb by default", {
cell <- a5_lonlat_to_cell(-3.19, 55.95, resolution = 5)
boundary <- a5_cell_to_boundary(cell)
expect_s3_class(boundary, "wk_wkb")
expect_length(boundary, 1L)
})
test_that("boundary has lonlat CRS", {
cell <- a5_lonlat_to_cell(0, 0, resolution = 5)
boundary <- a5_cell_to_boundary(cell)
crs <- wk::wk_crs(boundary)
expect_identical(crs, wk::wk_crs_longlat())
})
test_that("boundary with closed = FALSE omits repeated vertex", {
cell <- a5_lonlat_to_cell(0, 0, resolution = 5)
open <- a5_cell_to_boundary(cell, format = "wkt", closed = FALSE)
closed <- a5_cell_to_boundary(cell, format = "wkt", closed = TRUE)
# closed ring repeats the first vertex, so its WKT is longer
expect_true(nchar(as.character(closed)) > nchar(as.character(open)))
})
test_that("boundary with segments param works", {
cell <- a5_lonlat_to_cell(0, 0, resolution = 5)
b_default <- a5_cell_to_boundary(cell, format = "wkt")
b_seg <- a5_cell_to_boundary(cell, format = "wkt", segments = 3L)
# more segments = more vertices = longer WKT
expect_true(nchar(as.character(b_seg)) > nchar(as.character(b_default)))
})
test_that("boundary format = wkt returns wk_wkt", {
cell <- a5_lonlat_to_cell(-3.19, 55.95, resolution = 5)
boundary <- a5_cell_to_boundary(cell, format = "wkt")
expect_s3_class(boundary, "wk_wkt")
expect_length(boundary, 1L)
expect_true(grepl("^POLYGON", as.character(boundary)))
})
test_that("boundary format rejects invalid values", {
cell <- a5_lonlat_to_cell(0, 0, resolution = 5)
expect_error(a5_cell_to_boundary(cell, format = "geojson"), "format")
})
test_that("boundary is vectorised", {
cells <- a5_lonlat_to_cell(c(0, 10, -10), c(0, 20, -20), resolution = 5)
boundaries <- a5_cell_to_boundary(cells)
expect_length(boundaries, 3L)
expect_s3_class(boundaries, "wk_wkb")
})
test_that("boundary handles NA cell", {
cells <- a5_cell(c("0800000000000006", NA))
boundaries <- a5_cell_to_boundary(cells, format = "wkt")
expect_length(boundaries, 2L)
expect_true(is.na(as.character(boundaries)[2]))
})
test_that("cell_area decreases with resolution", {
areas <- a5_cell_area(0:5)
expect_true(all(diff(areas) < units::as_units(0, "m^2")))
})
test_that("cell_area converts units", {
m2 <- a5_cell_area(5)
km2 <- a5_cell_area(5, units = "km^2")
expect_equal(as.numeric(m2) / 1e6, as.numeric(km2), tolerance = 1e-10)
})
test_that("cell_area rejects non-area units", {
expect_error(a5_cell_area(5, units = "kg"), "area unit")
expect_error(a5_cell_area(5, units = "nonsense"), "area unit")
})
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.