tests/testthat/test-c.R

context ("c")

test_that ("c-method", {

    # osmdata_sf:
    q <- opq (bbox = c (1, 1, 5, 5))
    x1 <- osmdata_sf (q, test_path ("fixtures", "osm-multi.osm"))
    x2 <- osmdata_sf (q, test_path ("fixtures", "osm-ways.osm"))
    x <- c (x1, x2)
    osm_indx <- which (grepl ("osm_", names (x)))
    for (i in osm_indx) {
        expect_true (nrow (x [[i]]) >= nrow (x1 [[i]]))
        if (!is.null (x2 [[i]])) {
            expect_true (nrow (x [[i]]) >= nrow (x2 [[i]]))
        }
    }

    # osmdata_sc:
    q0 <- opq (bbox = c (1, 1, 5, 5))
    x1 <- osmdata_sc (q0, test_path ("fixtures", "osm-multi.osm"))
    x2 <- osmdata_sc (q0, test_path ("fixtures", "osm-ways.osm"))
    x12 <- c (x1, x2)
    n1 <- vapply (x1, nrow, integer (1L))
    n2 <- vapply (x2, nrow, integer (1L))
    n12 <- vapply (x12, nrow, integer (1L))
    # There is some redundancy in the data, so some n12 == n1 | n2:
    expect_true (all (n12 >= n1 & n12 >= n2))
    expect_true (any (n12 > n1 & n12 > n2))
})


test_that ("poly2line", {
    q <- opq (bbox = c (1, 1, 5, 5))
    x <- osmdata_sf (q, test_path ("fixtures", "osm-multi.osm"))
    nold <- nrow (x$osm_lines)
    x <- osm_poly2line (x)
    nnew <- nrow (x$osm_lines)
    expect_identical (nrow (x$osm_polygons), nnew - nold)
})
osmdatar/osmdata documentation built on April 14, 2024, 5:28 p.m.