From d07e676e5200049963c1c503f5f4d42260b8d7c2 Mon Sep 17 00:00:00 2001 From: rafapereirabr Date: Fri, 8 Sep 2023 20:43:59 -0300 Subject: [PATCH] Closes #348 --- r-package/R/accessibility.R | 12 ++++++++++++ r-package/tests/testthat/test-accessibility.R | 6 ++++++ r-package/vignettes/fare_structure.Rmd | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/r-package/R/accessibility.R b/r-package/R/accessibility.R index 56b97fd4..71842f95 100644 --- a/r-package/R/accessibility.R +++ b/r-package/R/accessibility.R @@ -177,6 +177,14 @@ accessibility <- function(r5r_core, opportunities <- assign_opportunities(destinations, opportunities_colnames) mode_list <- assign_mode(mode, mode_egress) departure <- assign_departure(departure_datetime) + + # cap trip duration with cutoffs + if(!is.null(cutoffs)){ + max_trip_duration <- ifelse(max_trip_duration > max(cutoffs), max(cutoffs), max_trip_duration) + + if(max_trip_duration < max(cutoffs)){stop("'max_trip_duration' cannot be shorter than 'max(cutoffs)'")} + } + max_walk_time <- assign_max_street_time( max_walk_time, walk_speed, @@ -201,6 +209,10 @@ accessibility <- function(r5r_core, max_walk_time, max_bike_time ) + + + + decay_list <- assign_decay_function(decay_function, decay_value) set_time_window(r5r_core, time_window) diff --git a/r-package/tests/testthat/test-accessibility.R b/r-package/tests/testthat/test-accessibility.R index 53073984..9e3175a2 100644 --- a/r-package/tests/testthat/test-accessibility.R +++ b/r-package/tests/testthat/test-accessibility.R @@ -108,6 +108,12 @@ test_that("adequately raises errors", { expect_error(tester(r5r_core, departure_datetime = "13-05-2019 14:00:00")) expect_error(tester(r5r_core, numeric_datetime)) + + # errors related to max_trip_duration + expect_error(tester(r5r_core, cutoffs = 10, max_trip_duration = 5)) + expect_error(tester(r5r_core, max_trip_duration = "1000")) + expect_error(tester(r5r_core, max_trip_duration = NULL)) + # errors related to max_walk_time expect_error(tester(r5r_core, max_walk_time = "1000")) expect_error(tester(r5r_core, max_walk_time = NULL)) diff --git a/r-package/vignettes/fare_structure.Rmd b/r-package/vignettes/fare_structure.Rmd index bbd266c3..f0439790 100644 --- a/r-package/vignettes/fare_structure.Rmd +++ b/r-package/vignettes/fare_structure.Rmd @@ -434,7 +434,7 @@ calculate_accessibility <- function(fare, fare_string) { format = "%d-%m-%Y %H:%M:%S"), opportunities_colname = "healthcare", mode = c("WALK", "TRANSIT"), - cutoffs = c(60), + cutoffs = 45, fare_structure = fare_structure, max_fare = fare, max_trip_duration = 45,