test_that("read-poly: simplest example work", {
toy_poly <- c(
"test_poly",
"first_area",
"0 0",
"0 1",
"1 1",
"1 0",
"0 0",
"END",
"END"
)
out <- read_poly(toy_poly)
manual_output <- sf::st_sfc(
sf::st_multipolygon(
list(list(rbind(c(0, 0), c(0, 1), c(1, 1), c(1, 0), c(0, 0))))
),
crs = "OGC:CRS84"
)
expect_identical(out, manual_output)
expect_error(read_poly(1))
})
test_that("read-poly: polygon with hole", {
toy_poly <- c(
"test_poly",
"first_area",
"0 0",
"0 1",
"1 1",
"1 0",
"0 0",
"END",
"!hole",
"0.25 0.25",
"0.75 0.25",
"0.75 0.75",
"0.25 0.75",
"0.25 0.25",
"END",
"END"
)
out <- read_poly(toy_poly)
manual_output <- sf::st_sfc(
sf::st_multipolygon(
list(list(
rbind(c(0, 0), c(0, 1), c(1, 1), c(1, 0), c(0, 0)),
rbind(c(0.25, 0.25), c(0.75, 0.25), c(0.75, 0.75), c(0.25, 0.75), c(0.25, 0.25))
))
),
crs = "OGC:CRS84"
)
expect_identical(out, manual_output)
})
test_that("read-poly:two polygons", {
toy_poly <- c(
"test_poly",
"first_area",
"0 0",
"0 1",
"1 1",
"1 0",
"0 0",
"END",
"second_area",
"1 1",
"2 1",
"2 2",
"1 2",
"1 1",
"END",
"END"
)
out <- read_poly(toy_poly)
manual_output <- sf::st_sfc(
sf::st_multipolygon(
list(
list(rbind(c(0, 0), c(0, 1), c(1, 1), c(1, 0), c(0, 0))),
list(rbind(c(1, 1), c(2, 1), c(2, 2), c(1, 2), c(1, 1)))
)
),
crs = "OGC:CRS84"
)
expect_identical(out, manual_output)
})
test_that("read-poly: read from file", {
toy_poly <- c(
"test_poly",
"first_area",
"0 0",
"0 1",
"1 1",
"1 0",
"0 0",
"END",
"END"
)
toy_poly_file <- tempfile(fileext = ".poly")
writeLines(toy_poly, toy_poly_file)
out <- read_poly(toy_poly_file, crs = 4326)
manual_output <- sf::st_sfc(
sf::st_multipolygon(
list(list(rbind(c(0, 0), c(0, 1), c(1, 1), c(1, 0), c(0, 0))))
),
crs = 4326
)
expect_identical(out, manual_output)
expect_error(
object = read_poly("nonesitingfile.poly"),
class = "read_poly-noURLorFileExists"
)
})
test_that("read-poly: read from URL", {
skip_on_cran()
skip_if_offline("github.com")
toy_poly <- read_poly("https://raw.githubusercontent.com/ropensci/osmextract/master/inst/toy-example.poly")
milan_duomo <- sf::st_sfc(sf::st_point(c(9.1895, 45.4646)), crs = 4326)
expect_true(
object = sf::st_contains(toy_poly, milan_duomo, sparse = FALSE)
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.