Nothing
context("test-clockwise.R")
library(sf)
polys <- st_sf(cw = c(FALSE, TRUE),
st_as_sfc(c('POLYGON ((0 0, 1 0, 1 1, 0 0))',
'POLYGON ((1 1, 2 2, 2 1, 1 1))')))
test_that("st_is_polygon_cw works on all classes", {
expect_equal(c(FALSE, TRUE), st_is_polygon_cw(polys))
expect_equal(c(FALSE, TRUE), st_is_polygon_cw(st_geometry(polys)))
expect_false(st_is_polygon_cw(st_geometry(polys)[[1]]))
})
test_that("st_force_polygon_cw works on all classes", {
out_sf <- st_force_polygon_cw(polys)
out_sfc <- st_force_polygon_cw(st_geometry(polys))
out_sfg <- st_force_polygon_cw(st_geometry(polys)[[1]])
expect_true(all(st_is_polygon_cw(out_sf)))
expect_true(all(st_is_polygon_cw(out_sfc)))
expect_true(all(st_is_polygon_cw(out_sfg)))
})
test_that("st_force_polygon_cw preserves crs", {
st_crs(polys) <- 4326
expect_equal(st_crs(st_force_polygon_cw(polys)),
st_crs(polys))
expect_equal(st_crs(st_force_polygon_cw(st_geometry(polys))),
st_crs(polys))
})
test_that("st_force_polyfon_cw works with Single polygon, ccw exterior ring only", {
obj <- st_as_sfc('POLYGON ((0 0, 1 0, 1 1, 0 0))')
expect_false(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
test_that("st_force_polyfon_cw works with Single polygon, cw exterior ring only", {
obj <- st_as_sfc('POLYGON ((0 0, 1 1, 1 0, 0 0))')
expect_true(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
test_that("st_force_polyfon_cw works with Single polygon, ccw exterior ring, cw interior rings", {
obj <- st_as_sfc('POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (1 1, 1 2, 2 2, 1 1), (5 5, 5 7, 7 7, 5 5))')
expect_false(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
test_that("st_force_polyfon_cw works with Single polygon, cw exterior ring, ccw interior rings", {
obj <- st_as_sfc('POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0), (1 1, 2 2, 1 2, 1 1), (5 5, 7 7, 5 7, 5 5))')
expect_true(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
test_that("st_force_polyfon_cw works with Single polygon, ccw exterior ring, mixed interior rings", {
obj <- st_as_sfc('POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (1 1, 1 2, 2 2, 1 1), (5 5, 7 7, 5 7, 5 5))')
expect_false(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
test_that("st_force_polyfon_cw works with Single polygon, cw exterior ring, mixed interior rings", {
obj <- st_as_sfc('POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0), (1 1, 2 2, 1 2, 1 1), (5 5, 5 7, 7 7, 5 5))')
expect_false(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
test_that("st_force_polyfon_cw works with MultiPolygon, ccw exterior rings only", {
obj <- st_as_sfc('MULTIPOLYGON (((0 0, 1 0, 1 1, 0 0)), ((100 0, 101 0, 101 1, 100 0)))')
expect_false(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
test_that("st_force_polyfon_cw works with MultiPolygon, cw exterior rings only", {
obj <- st_as_sfc('MULTIPOLYGON (((0 0, 1 1, 1 0, 0 0)), ((100 0, 101 1, 101 0, 100 0)))')
expect_true(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
test_that("st_force_polyfon_cw works with MultiPolygon, mixed exterior rings", {
obj <- st_as_sfc('MULTIPOLYGON (((0 0, 1 0, 1 1, 0 0)), ((100 0, 101 1, 101 0, 100 0)))')
expect_false(st_is_polygon_cw(obj))
ret <- st_force_polygon_cw(obj)
expect_true(all(st_is_polygon_cw(ret)))
})
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.