AMR/inst/tinytest/test-zzz.R

130 lines
4.7 KiB
R
Raw Normal View History

2021-05-15 21:36:22 +02:00
# ==================================================================== #
# TITLE #
2022-10-05 09:12:22 +02:00
# AMR: An R Package for Working with Antimicrobial Resistance Data #
2021-05-15 21:36:22 +02:00
# #
# SOURCE #
# https://github.com/msberends/AMR #
# #
2022-10-05 09:12:22 +02:00
# CITE AS #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
2023-05-27 10:39:22 +02:00
# https://doi.org/10.18637/jss.v104.i03 #
2022-10-05 09:12:22 +02:00
# #
2022-12-27 15:16:15 +01:00
# Developed at the University of Groningen and the University Medical #
# Center Groningen in The Netherlands, in collaboration with many #
# colleagues from around the world, see our website. #
2021-05-15 21:36:22 +02:00
# #
# This R package is free software; you can freely use and distribute #
# it for both personal and commercial purposes under the terms of the #
# GNU General Public License version 2.0 (GNU GPL-2), as published by #
# the Free Software Foundation. #
# We created this package for both routine data analysis and academic #
# research and it was publicly released in the hope that it will be #
# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. #
# #
# Visit our website for the full manual and a complete tutorial about #
# how to conduct AMR data analysis: https://msberends.github.io/AMR/ #
# ==================================================================== #
2021-12-13 10:18:28 +01:00
# Check if these functions still exist in their package (all are in Suggests field)
# Since GitHub Actions runs every night, we will get emailed when a dependency fails based on this unit test
2021-12-13 10:18:28 +01:00
2021-05-15 21:36:22 +02:00
# functions used by import_fn()
import_functions <- c(
2022-10-05 09:12:22 +02:00
"%chin%" = "data.table",
2021-05-15 21:36:22 +02:00
"anti_join" = "dplyr",
2022-10-05 09:12:22 +02:00
"chmatch" = "data.table",
2021-05-15 21:36:22 +02:00
"cur_column" = "dplyr",
"full_join" = "dplyr",
"has_internet" = "curl",
"html_attr" = "rvest",
"html_children" = "rvest",
"html_node" = "rvest",
"html_nodes" = "rvest",
"html_table" = "rvest",
"html_text" = "rvest",
"inner_join" = "dplyr",
"insertText" = "rstudioapi",
"left_join" = "dplyr",
"new_pillar_shaft_simple" = "pillar",
2021-12-13 10:18:28 +01:00
"progress_bar" = "progress",
2021-05-15 21:36:22 +02:00
"read_html" = "xml2",
"right_join" = "dplyr",
"semi_join" = "dplyr",
2023-02-09 13:07:39 +01:00
"showQuestion" = "rstudioapi"
2022-08-28 10:31:50 +02:00
)
2021-05-15 21:36:22 +02:00
2022-10-18 22:53:38 +02:00
# functions that are called directly with ::
2021-05-15 21:36:22 +02:00
call_functions <- c(
# cleaner
"freq.default" = "cleaner",
# readxl
2021-05-15 21:36:22 +02:00
"read_excel" = "readxl",
# ggplot2
2021-05-15 21:36:22 +02:00
"aes" = "ggplot2",
"aes_string" = "ggplot2",
2021-05-15 21:36:22 +02:00
"arrow" = "ggplot2",
"autoplot" = "ggplot2",
2021-05-15 21:36:22 +02:00
"element_blank" = "ggplot2",
"element_line" = "ggplot2",
"element_text" = "ggplot2",
"expand_limits" = "ggplot2",
"facet_wrap" = "ggplot2",
"geom_errorbar" = "ggplot2",
2021-05-15 21:36:22 +02:00
"geom_path" = "ggplot2",
"geom_point" = "ggplot2",
"geom_ribbon" = "ggplot2",
2021-05-15 21:36:22 +02:00
"geom_segment" = "ggplot2",
"geom_text" = "ggplot2",
"ggplot" = "ggplot2",
"labs" = "ggplot2",
"layer" = "ggplot2",
"position_fill" = "ggplot2",
"position_dodge2" = "ggplot2",
"scale_fill_manual" = "ggplot2",
"scale_y_continuous" = "ggplot2",
2021-05-15 21:36:22 +02:00
"theme" = "ggplot2",
"theme_minimal" = "ggplot2",
"unit" = "ggplot2",
"xlab" = "ggplot2",
"ylab" = "ggplot2"
2021-05-15 21:36:22 +02:00
)
2023-02-18 14:56:06 +01:00
if (AMR:::pkg_is_available("skimr", min_version = "2.0.0")) {
call_functions <- c(call_functions,
2022-08-28 10:31:50 +02:00
# skimr
"inline_hist" = "skimr",
"sfl" = "skimr"
)
}
2021-05-15 21:36:22 +02:00
extended_functions <- c(
"freq" = "cleaner",
"autoplot" = "ggplot2",
"pillar_shaft" = "pillar",
"get_skimmers" = "skimr",
2022-11-24 20:29:00 +01:00
"type_sum" = "pillar",
"vec_cast" = "vctrs",
2022-10-18 22:53:38 +02:00
"vec_math" = "vctrs",
"vec_ptype2" = "vctrs"
)
import_functions <- c(import_functions, call_functions, extended_functions)
2021-05-15 21:36:22 +02:00
for (i in seq_len(length(import_functions))) {
fn <- names(import_functions)[i]
pkg <- unname(import_functions[i])
# function should exist in foreign pkg namespace
if (AMR:::pkg_is_available(pkg,
2022-08-28 10:31:50 +02:00
also_load = FALSE,
2023-02-09 13:07:39 +01:00
min_version = if (pkg == "dplyr") "1.0.0" else NULL
2022-08-28 10:31:50 +02:00
)) {
2021-05-16 10:50:00 +02:00
tst <- !is.null(AMR:::import_fn(name = fn, pkg = pkg, error_on_fail = FALSE))
2021-05-15 21:36:22 +02:00
expect_true(tst,
2022-08-28 10:31:50 +02:00
info = ifelse(tst,
"All external function references exist.",
paste0("Function ", pkg, "::", fn, "() does not exist anymore")
)
)
2021-05-15 21:36:22 +02:00
}
}