checkPkgDepFunctions <- function(pkg, availPkgs = cranJuly2014, repos = p3m(), type = "source", suggests = TRUE, enhances = FALSE, includeBasePkgs = FALSE) { p1 <- pkgDep(pkg, availPkgs = availPkgs, repos = repos, type = type, suggests = suggests, enhances = enhances, includeBasePkgs = includeBasePkgs) p2 <- makeDepGraph(pkg, availPkgs = availPkgs, repos = repos, type = type, suggests = suggests, enhances = enhances, includeBasePkgs = includeBasePkgs) vnames <- igraph::V(p2)$name diff1 <- setdiff(vnames, p1) diff2 <- setdiff(p1, vnames) result <- length(diff1) == 0 & length(diff2) == 0 if (!result) { msg <- paste0("\nmakeDepGraph() results not in pkgDep(): \n - ", paste(diff1, collapse = ", "), "\npkgDep() results not in makeDepGraph(): \n - ", paste(diff2, collapse = ", ")) warning(msg) } result } mock_require <- function(pkg, ...) { packages.to.exclude <- c("igraph") inSearchPath <- any( grepl(sprintf("package:%s$", paste(packages.to.exclude, collapse = "|")), search()) ) if (inSearchPath) stop("Required package already in search path") package <- as.character(substitute(pkg)) if (package %in% packages.to.exclude) FALSE else base::requireNamespace(package, character.only = TRUE, ...) } test_that("plots depGraph", { tag <- "MASS" g <- makeDepGraph(tag, availPkgs = cranJuly2014) pdf(tempfile(fileext = ".pdf")) expect_null( plot.pkgDepGraph(g, legendPosition = NULL) ) dev.off() }) test_that("makeDepGraph and pgkDep gives similar results for MASS", { skip_if_offline() tag <- "MASS" expect_true( checkPkgDepFunctions(tag) ) skip_on_cran() expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, suggests = FALSE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, enhances = TRUE) ) }) test_that("makeDepGraph and pgkDep gives similar results for chron", { skip_on_cran() tag <- "chron" expect_true( checkPkgDepFunctions(tag) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, suggests = FALSE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, enhances = TRUE) ) }) test_that("makeDepGraph and pgkDep gives similar results for data.table", { skip_on_cran() tag <- "data.table" expect_true( checkPkgDepFunctions(tag) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, suggests = FALSE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, enhances = TRUE) ) }) test_that("makeDepGraph and pgkDep gives similar results for ggplot2", { skip_on_cran() tag <- "ggplot2" expect_true( checkPkgDepFunctions(tag) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, suggests = FALSE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, enhances = TRUE) ) }) test_that("makeDepGraph and pgkDep gives similar results for complex query", { skip_on_cran() tag <- c("ggplot2", "data.table", "plyr", "knitr", "shiny", "xts", "lattice") expect_true( checkPkgDepFunctions(tag) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, suggests = FALSE) ) expect_true( checkPkgDepFunctions(tag, includeBasePkgs = TRUE, enhances = TRUE) ) })