test_that("warning for duplicated primary key", {
g1 = read_gtfs(system.file("extdata", "routing.zip", package = "tidytransit"))
g1$stops$stop_id[1] <- "stop1a"
g1$routes$route_id[1] <- "lineB"
# function
g1a = g1[3:6]
g1a$fare_rules <- data.frame(fare_id = c("1", "2", "2", "2"), route_id = c("B", "B", "A", "A"))
g1b = convert_list_tables_to_data.tables(g1a)
d1a = duplicated_primary_keys(g1a)
d1b = duplicated_primary_keys(g1b)
expect_identical(unname(d1a), c(FALSE, TRUE, FALSE, TRUE, TRUE))
expect_identical(d1a, d1b)
# within as_tidygtfs
g2 = expect_warning(as_tidygtfs(g1), "Duplicated ids found in: routes, stops")
expect_type(g2, "list")
g3 = g2
g3$stops$stop_id[1] <- "stop1"
g3$routes$route_id[1] <- "lineA"
g4 = as_tidygtfs(g3)
expect_s3_class(g4, "tidygtfs")
})
test_that("validate non gtfs object", {
expect_error(validate_gtfs(data.frame(stop_id = "1")), "gtfs_obj must be a gtfs or list object")
})
test_that("validation", {
g_invalid_path = system.file("extdata","sample-feed-invalid.zip", package = "tidytransit")
expect_warning(read_gtfs(g_invalid_path), "Invalid feed. Missing required file(s): stop_times.txt", fixed = TRUE)
expect_warning(read_gtfs(g_invalid_path), "Invalid feed. Missing required field(s) in stops: stop_id", fixed = TRUE)
# extra table
g = read_gtfs(system.file("extdata", "sample-feed-fixed.zip", package = "tidytransit"))
g$extra <- "not_a_dataframe"
vd = validate_gtfs(g)
expect_true(is.na(vd[vd$file == "extra","field"]))
expect_error(validate_gtfs(g, files = c("unknown", "other")), "File names not found in gtfs_obj: unknown, other")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.