Nothing
test_that("rbind sf objects", {
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"))
x <- list(nc, nc, NULL, nc)
res <- rbind_results(x)
# should be an sf object
expect_true(inherits(res, "sf"))
# should have 1 missing element
expect_identical(attr(res, "null_elements"), 3L)
})
test_that("rbind mixed results", {
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"))
items <- list(as.data.frame(nc), nc)
res <- rbind_results(items)
expect_true(rlang::inherits_only(res, "data.frame"))
})
test_that("rbind data.frames", {
res <- rbind_results(list(iris, NULL, iris))
expect_true(rlang::inherits_only(res, "data.frame"))
})
test_that("rbind NULL & list(NULL)", {
# should return empty df
res <- rbind_results(NULL)
expect_identical(res, structure(data.frame(), null_elements = integer()))
# one null
res <- rbind_results(list(NULL))
expect_identical(res, structure(data.frame(), null_elements = 1L))
# multiple
res <- rbind_results(list(NULL, NULL))
expect_identical(res, structure(data.frame(), null_elements = 1:2))
})
test_that("rbind errors on non-df objects", {
expect_error(rbind_results(list(iris, NULL, "a")))
})
test_that("rbind works with list columns and collapse", {
# this object caused pain
x <- list(
loc_name = "World",
extents = list(
c(
xmin = -51.129958180141,
ymin = 0.023178982724,
xmax = -51.127958180141,
ymax = 0.025178982724
)
),
geometry = list(
c(-51.128958180141, 0.024178982724) |>
structure(class = c("XY", "POINT", "sfg"))
) |>
structure(
class = c("sfc_POINT", "sfc"),
precision = 0,
bbox = c(
xmin = -51.128958180141,
ymin = 0.024178982724,
xmax = -51.128958180141,
ymax = 0.024178982724
) |>
structure(class = "bbox"),
crs = list(input = NA_character_, wkt = NA_character_) |>
structure(class = "crs"),
n_empty = 0L
)
) |>
structure(
row.names = 1L,
sf_column = "geometry",
agr = factor(
c(loc_name = NA_character_, extents = NA_character_),
levels = c("constant", "aggregate", "identity")
),
class = c("sf", "data.frame")
)
to_bind <- list(NULL, x, NULL, x)
res <- rbind_results(to_bind)
expect_equal(rbind(x, x), res, ignore_attr = TRUE)
})
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.