test_that("oe_get_network: simplest examples work", {
withr::local_envvar(
.new = list(
"OSMEXT_DOWNLOAD_DIRECTORY" = tempdir(),
"TESTTHAT" = "true"
)
)
its_pbf = setup_pbf()
expect_error(oe_get_network("ITS Leeds", quiet = TRUE), NA)
})
test_that("oe_get_network: -where clause has the same behaviour as the corresponding R code", {
# See the discussion in #298 for more details about this test. The basic idea
# is to test that the output of SQL code is the same as analogous R
# expressions run on the same .osm.pbf file.
withr::local_envvar(
.new = list(
"OSMEXT_DOWNLOAD_DIRECTORY" = tempdir(),
"TESTTHAT" = "true"
)
)
its_pbf <- setup_pbf()
its <- oe_read(its_pbf,
layer = "lines",
extra_tags = c("access", "service", "oneway"), quiet = TRUE
)
# Replicate the SQL conditions for driving mode using regular R code
idx_R <- with(
its,
!is.na(highway) &
# NB: %in% automatically sets NA %in% ('bar') as FALSE
(is.na(highway) | highway %!in% c(
'abandoned', 'bus_guideway', 'byway', 'construction', 'corridor', 'elevator',
'fixme', 'escalator', 'gallop', 'historic', 'no', 'planned', 'platform',
'proposed', 'cycleway', 'pedestrian', 'bridleway', 'path', 'footway',
'steps'
)) &
(is.na(access) | access %!in% c('private', 'no')) &
(is.na(service) | !grepl('^private', service, ignore.case = TRUE))
)
its_driving <- oe_get_network("ITS Leeds", mode = "driving", quiet = TRUE)
expect_true(nrow(its_driving) == sum(idx_R))
})
test_that("oe_get_network: options in ... work correctly", {
withr::local_envvar(
.new = list(
"OSMEXT_DOWNLOAD_DIRECTORY" = tempdir(),
"TESTTHAT" = "true"
)
)
its_pbf = setup_pbf()
expect_warning(oe_get_network("ITS Leeds", layer = "points", quiet = TRUE))
expect_message(oe_get_network("ITS Leeds", quiet = TRUE), NA)
driving_network_with_area_tag = oe_get_network(
"ITS Leeds",
mode = "driving",
extra_tags = "area",
quiet = TRUE
)
expect_true("area" %in% colnames(driving_network_with_area_tag))
# Cannot use -where arg
expect_error(
object = oe_get_network(
place = "ITS Leeds",
quiet = TRUE,
vectortranslate_options = c("-where", "ABC")
),
class = "oe_get_network-cannotUseWhere"
)
walking_network_27700 = oe_get_network(
"ITS Leeds",
mode = "walking",
vectortranslate_options = c("-t_srs", "EPSG:27700"),
quiet = TRUE
)
expect_true(sf::st_crs(walking_network_27700) == sf::st_crs("EPSG:27700"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.