Nothing
test_that("aesthetics works", {
skip_if_no_py()
skip_if_no_ff1()
# Set testing specific parameters - this disposes after the test finishes
# Note: The test suite can't delete the old fastf1_http_cache.sqlite file
# because python's process has it locked.
if (dir.exists(file.path(tempdir(), "tst_aesthetics"))) {
unlink(file.path(tempdir(), "tst_aesthetics"), recursive = TRUE, force = TRUE)
}
withr::local_file(file.path(tempdir(), "tst_aesthetics"))
dir.create(file.path(tempdir(), "tst_aesthetics"), recursive = TRUE)
withr::local_options(f1dataR.cache = file.path(tempdir(), "tst_aesthetics"))
# Tests
# Ensure failure if old ff1, then skip
ff1_ver <- get_fastf1_version()
if (ff1_ver < "3.4") {
expect_error(
session <- get_driver_style(driver = "ALO", season = 2024, round = 1),
"requires FastF1 version 3.4.0"
)
skip("Skipping get_driver_style as FastF1 is out of date.")
}
driver1 <- get_driver_style(driver = "ALO", season = 2024, round = 1)
driver2 <- get_driver_style(driver = "ALO", season = 2024, round = "Bahrain")
expect_equal(driver1, driver2)
expect_equal(driver1$driver, "ALO")
expect_equal(names(driver1), c("linestyle", "marker", "color", "driver", "abbreviation"))
expect_true(grepl("^#[0-9A-Fa-f]{6}$", get_driver_color(driver = "HAM", season = 2024)))
expect_equal(get_driver_color("HAM", 2024), get_driver_colour("HAM", 2024))
expect_true(grepl("^#[0-9A-Fa-f]{6}$", get_team_color("Red Bull", 2024)))
expect_equal(get_team_color("Red Bull", 2024), get_team_colour("Red Bull", 2024))
colormap <- get_driver_color_map(2024, 1)
expect_true(is.data.frame(colormap))
expect_equal(names(colormap), c("abbreviation", "color"))
expect_equal(nrow(colormap), 20)
expect_error(get_driver_style(c("Lando Norris", "Max Verstappen"), 2024, 1),
"`driver` must be a character vector of length one.",
fixed = TRUE
)
expect_error(get_driver_style("q", 2024, 1), "Error running FastF1 code:")
expect_error(get_driver_color(c("Lando Norris", "Max Verstappen"), 2024, 1),
"`driver` must be a character vector of length one.",
fixed = TRUE
)
expect_error(get_driver_color("q", 2024, 1), "Error running FastF1 code:")
expect_error(get_team_color(c("Red Bull", "Mercedes"), 2024, 1),
"`team` must be a character vector of length one.",
fixed = TRUE
)
expect_error(get_team_color("q", 2024, 1), "Error running FastF1 code:")
})
test_that("lookups works", {
skip_if_no_py()
skip_if_no_ff1()
# Set testing specific parameters - this disposes after the test finishes
# Note: The test suite can't delete the old fastf1_http_cache.sqlite file
# because python's process has it locked.
if (dir.exists(file.path(tempdir(), "tst_lookups"))) {
unlink(file.path(tempdir(), "tst_lookups"), recursive = TRUE, force = TRUE)
}
withr::local_file(file.path(tempdir(), "tst_lookups"))
dir.create(file.path(tempdir(), "tst_lookups"), recursive = TRUE)
withr::local_options(f1dataR.cache = file.path(tempdir(), "tst_lookups"))
# Tests
# Ensure failure if old ff1, then skip
ff1_ver <- get_fastf1_version()
if (ff1_ver < "3.4") {
expect_error(
session <- get_driver_style(driver = "ALO", season = 2024, round = 1),
"requires FastF1 version 3.4.0"
)
skip("Skipping look-ups as FastF1 is out of date.")
}
expect_equal(get_driver_abbreviation("Lewis Hamilton", 2024), "HAM")
expect_equal(get_driver_name("Lewis", 2024), "Lewis Hamilton")
expect_equal(get_team_by_driver("HAM", 2024), "Mercedes")
expect_equal(get_team_name("Merc", 2024), "Mercedes")
expect_equal(get_team_name("Haas", 2024, short = TRUE), "Haas")
expect_equal(get_drivers_by_team("Mercedes", 2024), c("Lewis Hamilton", "George Russell"))
dt <- get_session_drivers_and_teams(2024, 1)
expect_true(is.data.frame(dt))
expect_equal(nrow(dt), 20)
expect_equal(names(dt), c("name", "abbreviation", "team"))
expect_equal(
get_tire_compounds(2024),
data.frame(
compound = c("SOFT", "MEDIUM", "HARD", "INTERMEDIATE", "WET", "UNKNOWN", "TEST-UNKNOWN"),
color = c("#da291c", "#ffd12e", "#f0f0ec", "#43b02a", "#0067ad", "#00ffff", "#434649")
)
)
expect_error(get_driver_abbreviation(c("Lewis", "George"), 2024),
"`driver_name` must be a character vector of length one.",
fixed = TRUE
)
expect_error(get_driver_name(c("Lewis", "George"), 2024),
"`driver_name` must be a character vector of length one.",
fixed = TRUE
)
expect_error(get_team_by_driver(c("Lewis", "George"), 2024),
"`driver_name` must be a character vector of length one.",
fixed = TRUE
)
expect_error(get_team_name(c("Merc", "Aston"), 2024),
"`team_name` must be a character vector of length one.",
fixed = TRUE
)
expect_error(get_team_name("Merc", 2024, short = "yes"),
"`short` must be a single logical value.",
fixed = TRUE
)
expect_error(get_drivers_by_team(c("Merc", "Aston"), 2024),
"`team_name` must be a character vector of length one.",
fixed = TRUE
)
expect_error(get_driver_abbreviation("q", 2024), "Error running FastF1 code:", fixed = TRUE)
expect_error(get_driver_name("q", 2024), "Error running FastF1 code:", fixed = TRUE)
expect_error(get_team_by_driver("q", 2024), "Error running FastF1 code:", fixed = TRUE)
expect_error(get_team_name("q", 2024), "Error running FastF1 code:", fixed = TRUE)
expect_error(get_drivers_by_team("q", 2024), "Error running FastF1 code:", fixed = TRUE)
})
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.