test_that("fetch_lineup_afl works for various inputs", {
testthat::skip_if_offline()
testthat::skip_on_cran()
expect_s3_class(fetch_lineup_afl(2020, round_number = 1), "tbl")
# change year
expect_s3_class(fetch_lineup_afl(2018, round_number = 1), "tbl")
fetch_lineup_afl(2000, round_number = 1) %>%
expect_warning() %>%
suppressWarnings()
# change round number
expect_s3_class(fetch_lineup_afl(2020, round_number = 1), "tbl")
expect_s3_class(fetch_lineup_afl(2020, round_number = 2), "tbl")
fetch_lineup_afl(2020, round_number = 50) %>%
expect_warning() %>%
suppressWarnings()
# change comp
expect_s3_class(fetch_lineup_afl(2020, round_number = 1, comp = "AFLW"), "tbl")
expect_error(fetch_lineup_afl(2020, round_number = 1, comp = "test"))
# Check future year and round
# current_year <- as.numeric(substr(Sys.Date(),1,4))
# fetch_lineup_afl(current_year + 1, round_number = 1, comp = "AFLM") %>%
# expect_warning() %>%
# suppressWarnings()
# expect_null(fetch_lineup_afl(current_year, round_number = 23, comp = "AFLM"))
})
test_that("fetch_lineup works", {
testthat::skip_if_offline()
testthat::skip_on_cran()
# Test each source works
expect_s3_class(fetch_lineup(2020, round_number = 1, source = "AFL", comp = "AFLM"), "tbl")
# non working sources
expect_warning(fetch_lineup(2020, round_number = 1, source = "footywire", comp = "AFLM"))
expect_warning(fetch_lineup(2020, round_number = 1, source = "squiggle", comp = "AFLM"))
expect_warning(fetch_lineup(2020, round_number = 1, source = "fryzigg", comp = "AFLM"))
expect_warning(fetch_lineup(2020, round_number = 1, source = "afltables", comp = "AFLM"))
# Test that AFLW works
expect_s3_class(fetch_lineup(2020, round_number = 1, source = "AFL", comp = "AFLW"), "tbl")
expect_error(fetch_lineup(2020, round_number = 1, source = "squiggle", comp = "AFLW"))
expect_error(fetch_lineup(2020, round_number = 1, source = "footywire", comp = "AFLW"))
expect_error(fetch_lineup(2020, round_number = 1, source = "fryizgg", comp = "AFLW"))
expect_error(fetch_lineup(2020, round_number = 1, source = "afltables", comp = "AFLW"))
})
## Legacy tests - should remove eventually -------------------------------------
test_that("get_fixture works", {
testthat::skip_if_offline()
testthat::skip_on_cran()
expect_warning(fix <- get_fixture(2012))
expect_s3_class(fix, "tbl")
expect_equal(fix$Round[1], 1)
expect_equal(fix$Round[2], 1)
# expect_equal(fix$Round[nrow(fix)], 27)
expect_error(supressWarnings(get_fixture(2012:2013)))
expect_error(supressWarnings(get_fixture("a")))
})
test_that("get_fixture works with different inputs ", {
testthat::skip_if_offline()
testthat::skip_on_cran()
expect_warning(fixture_df <- get_fixture(2019))
expect_s3_class(fixture_df, "data.frame")
expect_s3_class(fixture_df$Date[1], "POSIXt")
expect_s3_class(suppressWarnings(get_fixture(2019, TRUE))$Date[1], "Date")
expect_s3_class(suppressWarnings(get_fixture(2017)), "data.frame")
expect_error(suppressWarnings(get_fixture(18)))
expect_error(suppressWarnings(get_fixture("2018-01-01")))
})
test_that("get_fixture filters out unplayed matches ", {
testthat::skip_if_offline()
testthat::skip_on_cran()
# On footywire.com.au/afl/footy/ft_match_list, the 2015 season has two
# matches marked MATCH CANCELLED along with multiple byes that result in
# NA dates if not filtered out
expect_warning(fixture_df <- get_fixture(2015))
expect_equal(sum(is.na(fixture_df$Date)), 0)
})
test_that("2020 season round numbers are correct through round 13", {
testthat::skip_if_offline()
testthat::skip_on_cran()
# We filter for matches through round 12, because we don't want
# unknown, future data changes to break tests
expect_warning(fixture <- get_fixture(2020) %>%
dplyr::filter(.data$Round <= 13))
n_duplicate_home_teams <- fixture %>%
dplyr::group_by(Season, Round, Home.Team) %>%
dplyr::filter(dplyr::n() > 1) %>%
nrow()
n_duplicate_away_teams <- fixture %>%
dplyr::group_by(Season, Round, Home.Team) %>%
dplyr::filter(dplyr::n() > 1) %>%
nrow()
expect_equal(n_duplicate_home_teams, n_duplicate_away_teams)
})
test_that("round numbers don't increment across bye weeks without matches", {
testthat::skip_if_offline()
testthat::skip_on_cran()
calculate_max_round_lag <- function(rounds) {
rounds %>%
unique() %>%
(function(round) {
round - dplyr::lag(round, default = 0)
}) %>%
max()
}
expect_warning(fixture_rounds <- get_fixture(2019)$Round)
expect_equal(calculate_max_round_lag(fixture_rounds), 1)
})
test_that("fetch_lineup works for non-AFL leagues", {
testthat::skip_if_offline()
testthat::skip_on_cran()
# Test each source works
expect_s3_class(fetch_lineup(2022, round_number = 1, source = "AFL", comp = "WAFL"), "tbl")
expect_s3_class(fetch_lineup(2022, round_number = 1, source = "AFL", comp = "VFL"), "tbl")
expect_s3_class(fetch_lineup(2022, round_number = 1, source = "AFL", comp = "VFLW"), "tbl")
expect_s3_class(fetch_lineup(2022, round_number = 1, source = "AFL", comp = "U18B"), "tbl")
expect_s3_class(fetch_lineup(2019, round_number = 1, source = "AFL", comp = "U18G"), "tbl")
# Check for warnings thrown
fetch_lineup(2022, round_number = 1, source = "AFL", comp = "U18G") %>%
expect_warning() %>%
suppressWarnings()
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.