Nothing
# if running manually, please run the following line first:
# source("tests/testthat/setup.R")
testthat::skip_on_cran()
departure_datetime <- as.POSIXct(
"13-05-2019 14:00:00",
format = "%d-%m-%Y %H:%M:%S"
)
tester <- function(r5r_core = get("r5r_core", envir = parent.frame()),
origins = pois,
cutoffs = c(0, 15, 30),
sample_size = 0.8,
mode = "WALK",
mode_egress = "WALK",
departure_datetime = Sys.time(),
max_walk_time = Inf,
max_bike_time = Inf,
max_trip_duration = 120L,
walk_speed = 3.6,
bike_speed = 12,
max_rides = 3,
max_lts = 2,
n_threads = Inf,
verbose = FALSE,
progress = FALSE
) {
isochrone(
r5r_core,
origins = origins,
cutoffs = cutoffs,
sample_size = sample_size,
mode = mode,
mode_egress = mode_egress,
departure_datetime = departure_datetime,
max_walk_time = max_walk_time,
max_bike_time = max_bike_time,
max_trip_duration = max_trip_duration,
walk_speed = walk_speed,
bike_speed = bike_speed,
max_rides = max_rides,
max_lts = max_lts,
n_threads = n_threads,
verbose = verbose,
progress = progress
)
}
# tests -------------------------------------------------------------------
test_that("errors due to incorrect input types - origins and destinations", {
multipoint_origins <- sf::st_cast(
sf::st_as_sf(pois, coords = c("lon", "lat")),
"MULTIPOINT"
)
list_destinations <- list_origins <- unclass(pois)
expect_error(tester(origins = multipoint_origins))
expect_error(tester(origins = list_origins))
expect_error(tester(origins = "origins"))
# wrong columns types
pois_char_lat <- pois
pois_char_lat$lat <- as.character(pois$lat)
pois_char_lon <- pois
pois_char_lon$lon <- as.character(pois$lon)
expect_error(tester(origins = pois_char_lat))
expect_error(tester(origins = pois_char_lon))
})
test_that("errors due to incorrect input types - other inputs", {
# mode and mode_egress are tested in assign_mode() tests
expect_error(tester(unclass(r5r_core)))
expect_error(tester(departure_datetime = unclass(departure_datetime)))
expect_error(tester(departure_datetime = rep(departure_datetime, 2)))
expect_error(tester(cutoffs = "50"))
expect_error(tester(cutoffs = -5))
expect_error(tester(sample_size = "50"))
expect_error(tester(sample_size = 2))
expect_error(tester(sample_size = .1))
expect_error(tester(sample_size = c(.3, .6)))
})
test_that("output is an sf with correct columns", {
iso <- tester()
expect_s3_class(iso, "sf")
expect_identical(names(iso), c("id", "isochrone", "polygons"))
expect_type(iso$id, "character")
expect_type(iso$isochrone, "double")
expect_type(iso$polygons, "list")
# more cutoffs means more rows
iso2 <- tester(cutoffs = c(15, 30, 50))
expect_true(
nrow(iso2) > nrow(iso)
)
})
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.