diff --git a/R/docs.R b/R/docs.R index e67c4f6..235bdd8 100644 --- a/R/docs.R +++ b/R/docs.R @@ -64,7 +64,9 @@ methods_prep <- function(x, package = NULL) { # Suppress self-links (methods documented on the same page as the generic) generic_topic <- help_topic(x, package) - meth$topic[meth$topic == generic_topic] <- NA + same_topic <- meth$topic == generic_topic + same_package <- meth$package == package + meth$topic[same_topic & same_package] <- NA documented <- !is.na(meth$topic) external <- meth$package != package diff --git a/R/utils.R b/R/utils.R index 67906b2..aea41c8 100644 --- a/R/utils.R +++ b/R/utils.R @@ -1,3 +1,12 @@ +# for internal use only +document_test_packages <- function() { + pkgs <- list.dirs("tests/testthat", recursive = FALSE, full.names = TRUE) + pkgs <- pkgs[file.exists(file.path(pkgs, "DESCRIPTION"))] + for (pkg in pkgs) { + getNamespace("roxygen2")$roxygenise(pkg) + } +} + local_load_all <- function(path, env = parent.frame()) { pkgload::load_all(path, quiet = TRUE) defer(pkgload::unload(path), env = env) diff --git a/tests/testthat/_snaps/docs.md b/tests/testthat/_snaps/docs.md index e115bb5..9b10198 100644 --- a/tests/testthat/_snaps/docs.md +++ b/tests/testthat/_snaps/docs.md @@ -1,19 +1,19 @@ # methods from multiple packages Code - cat(methods_list("multi_method")) + cat(methods_list("uni")) Output \itemize{ \item \code{character} - \item \code{\link[=multi-method-3]{data.frame}} - \item \code{\link[=multi-method-2]{default}} - \item \code{\link[testMultiPackage:multi-method-4]{matrix}} (\pkg{testMultiPackage}) + \item \code{\link[=uni.data.frame]{data.frame}} + \item \code{\link[=uni.default]{default}} + \item \code{\link[testExtendsS3:uni.matrix]{matrix}} (\pkg{testExtendsS3}) } # S4 bullets print with no issues Code - cat(methods_list("multi_method")) + cat(methods_list("multi")) Output \itemize{ \item \code{ANY,ANY} @@ -25,16 +25,29 @@ # S4 and S3 packages can intermingle Code - cat(methods_list("multi_method")) + cat(methods_list("uni", "testS4")) Output \itemize{ - \item \code{\link[testS4Docs:multi_method]{ANY,ANY}} (\pkg{testS4Docs}) - \item \code{character,ANY} (\pkg{testS4Docs}) - \item \code{\link[testS4Docs:multi_method]{numeric,ANY}} (\pkg{testS4Docs}) - \item \code{\link[testS4Docs:multi_method]{numeric,integer}} (\pkg{testS4Docs}) + \item \code{ANY} \item \code{character} - \item \code{\link[=multi-method-3]{data.frame}} - \item \code{\link[=multi-method-2]{default}} + \item \code{numeric} + \item \code{character} (\pkg{testS3}) + \item \code{\link[testS3:uni.data.frame]{data.frame}} (\pkg{testS3}) + \item \code{\link[testS3:uni.default]{default}} (\pkg{testS3}) + } + +--- + + Code + cat(methods_list("uni", "testS3")) + Output + \itemize{ + \item \code{\link[testS4:uni]{ANY}} (\pkg{testS4}) + \item \code{character} (\pkg{testS4}) + \item \code{\link[testS4:uni]{numeric}} (\pkg{testS4}) + \item \code{character} + \item \code{\link[=uni.data.frame]{data.frame}} + \item \code{\link[=uni.default]{default}} } # multiple methods with same rdname @@ -43,8 +56,8 @@ cat(methods_list("same_rd_name")) Output \itemize{ - \item \code{\link[=same_rd_name-2]{data.frame}} - \item \code{\link[=same_rd_name-2]{default}} + \item \code{\link[=same_rd_name.default]{data.frame}} + \item \code{\link[=same_rd_name.default]{default}} } # self-links are suppressed @@ -53,16 +66,16 @@ cat(methods_list("self_link")) Output \itemize{ - \item \code{\link[=self_link-data.frame]{data.frame}} + \item \code{\link[=self_link.data.frame]{data.frame}} \item \code{default} } # methods_inline() produces comma-separated output Code - cat(methods_inline("multi_method")) + cat(methods_inline("uni")) Output - \code{character}, \code{\link[=multi-method-3]{data.frame}}, - \code{\link[=multi-method-2]{default}}, - \code{\link[testMultiPackage:multi-method-4]{matrix}} (\pkg{testMultiPackage}) + \code{character}, \code{\link[=uni.data.frame]{data.frame}}, + \code{\link[=uni.default]{default}}, + \code{\link[testExtendsS3:uni.matrix]{matrix}} (\pkg{testExtendsS3}) diff --git a/tests/testthat/_snaps/find-s7.md b/tests/testthat/_snaps/find-s7.md index 2cd4b90..d205b23 100644 --- a/tests/testthat/_snaps/find-s7.md +++ b/tests/testthat/_snaps/find-s7.md @@ -1,20 +1,20 @@ # S7 methods_list output Code - cat(methods_list("s7_method")) + cat(methods_list("uni")) Output \itemize{ - \item \code{\link[=s7-method-2]{character}} + \item \code{\link[=uni-character-method]{character}} \item \code{integer} } # S7 multi-dispatch methods_list output Code - cat(methods_list("s7_multi")) + cat(methods_list("multi")) Output \itemize{ - \item \code{\link[=s7-multi-2]{character,integer}} + \item \code{\link[=multi-character-integer-method]{character,integer}} \item \code{integer,character} } diff --git a/tests/testthat/test-docs.R b/tests/testthat/test-docs.R index 6648744..eaafbc6 100644 --- a/tests/testthat/test-docs.R +++ b/tests/testthat/test-docs.R @@ -1,36 +1,37 @@ test_that("methods from multiple packages", { - local_load_all("testMultiMethod") - local_load_all("testMultiPackage") - expect_snapshot(cat(methods_list("multi_method"))) + local_load_all("testS3") + local_load_all("testExtendsS3") + expect_snapshot(cat(methods_list("uni"))) }) test_that("S4 bullets print with no issues", { - local_load_all("testS4Docs") + local_load_all("testS4") - expect_snapshot(cat(methods_list("multi_method"))) + expect_snapshot(cat(methods_list("multi"))) }) test_that("S4 and S3 packages can intermingle", { - local_load_all("testS4Docs") - local_load_all("testMultiMethod") + local_load_all("testS4") + local_load_all("testS3") - expect_snapshot(cat(methods_list("multi_method"))) + expect_snapshot(cat(methods_list("uni", "testS4"))) + expect_snapshot(cat(methods_list("uni", "testS3"))) }) test_that("multiple methods with same rdname", { - local_load_all("testSameRd") + local_load_all("testS3") expect_snapshot(cat(methods_list("same_rd_name"))) }) test_that("self-links are suppressed", { - local_load_all("testSelfLink") + local_load_all("testS3") expect_snapshot(cat(methods_list("self_link"))) }) test_that("methods_inline() produces comma-separated output", { - local_load_all("testMultiMethod") - local_load_all("testMultiPackage") - expect_snapshot(cat(methods_inline("multi_method"))) + local_load_all("testS3") + local_load_all("testExtendsS3") + expect_snapshot(cat(methods_inline("uni"))) }) test_that("no methods returns empty string", { diff --git a/tests/testthat/test-find-s7.R b/tests/testthat/test-find-s7.R index 6a31fa4..382f202 100644 --- a/tests/testthat/test-find-s7.R +++ b/tests/testthat/test-find-s7.R @@ -1,25 +1,25 @@ test_that("methods_find finds S7 methods", { - local_load_all("testS7Docs") - result <- methods_find("s7_method") + local_load_all("testS7") + result <- methods_find("uni") expect_equal(result$class, c("character", "integer")) - expect_equal(result$package, rep("testS7Docs", 2)) - expect_equal(result$topic, c("s7-method-2", "s7_method")) + expect_equal(result$package, rep("testS7", 2)) + expect_equal(result$topic, c("uni-character-method", "uni")) }) test_that("methods_find finds S7 multi-dispatch methods", { - local_load_all("testS7Docs") - result <- methods_find("s7_multi") + local_load_all("testS7") + result <- methods_find("multi") expect_equal(result$class, c("character,integer", "integer,character")) - expect_equal(result$package, rep("testS7Docs", 2)) - expect_equal(result$topic, c("s7-multi-2", "s7_multi")) + expect_equal(result$package, rep("testS7", 2)) + expect_equal(result$topic, c("multi-character-integer-method", "multi")) }) test_that("S7 methods_list output", { - local_load_all("testS7Docs") - expect_snapshot(cat(methods_list("s7_method"))) + local_load_all("testS7") + expect_snapshot(cat(methods_list("uni"))) }) test_that("S7 multi-dispatch methods_list output", { - local_load_all("testS7Docs") - expect_snapshot(cat(methods_list("s7_multi"))) + local_load_all("testS7") + expect_snapshot(cat(methods_list("multi"))) }) diff --git a/tests/testthat/test-find.R b/tests/testthat/test-find.R index 859d2b4..a0b3a79 100644 --- a/tests/testthat/test-find.R +++ b/tests/testthat/test-find.R @@ -1,6 +1,6 @@ test_that("methods_find returns expected columns", { - local_load_all("testMultiMethod") - result <- methods_find("multi_method") + local_load_all("testS3") + result <- methods_find("uni") expect_named( result, c("method", "class", "package", "topic", "visible", "source") @@ -8,28 +8,28 @@ test_that("methods_find returns expected columns", { }) test_that("methods_find finds S3 methods", { - local_load_all("testMultiMethod") - result <- methods_find("multi_method") + local_load_all("testS3") + result <- methods_find("uni") expect_equal(result$class, c("character", "data.frame", "default")) - expect_equal(result$package, rep("testMultiMethod", 3)) - expect_equal(result$topic, c(NA, "multi-method-3", "multi-method-2")) + expect_equal(result$package, rep("testS3", 3)) + expect_equal(result$topic, c(NA, "uni.data.frame", "uni.default")) }) test_that("methods_find finds S4 methods", { - local_load_all("testS4Docs") - result <- methods_find("multi_method") + local_load_all("testS4") + result <- methods_find("multi") expect_equal( result$class, c("ANY,ANY", "character,ANY", "numeric,ANY", "numeric,integer") ) - expect_equal(result$package, rep("testS4Docs", 4)) + expect_equal(result$package, rep("testS4", 4)) }) test_that("methods_find finds methods across packages", { - local_load_all("testMultiMethod") - local_load_all("testMultiPackage") - result <- methods_find("multi_method") - expect_contains(result$package, c("testMultiMethod", "testMultiPackage")) + local_load_all("testS3") + local_load_all("testExtendsS3") + result <- methods_find("uni") + expect_contains(result$package, c("testS3", "testExtendsS3")) }) test_that("methods_find returns empty result for generic with no methods", { @@ -38,35 +38,35 @@ test_that("methods_find returns empty result for generic with no methods", { }) test_that("methods_find groups same rdname methods under same topic", { - local_load_all("testSameRd") + local_load_all("testS3") result <- methods_find("same_rd_name") - expect_equal(result$topic, c("same_rd_name-2", "same_rd_name-2")) + expect_equal(result$topic, c("same_rd_name.default", "same_rd_name.default")) expect_equal(result$class, c("data.frame", "default")) }) test_that("lookup_package finds S3 method package", { - local_load_all("testMultiMethod") + local_load_all("testS3") expect_equal( - lookup_package("multi_method", "default", FALSE), - "testMultiMethod" + lookup_package("uni", "default", FALSE), + "testS3" ) expect_equal( - lookup_package("multi_method", "data.frame", FALSE), - "testMultiMethod" + lookup_package("uni", "data.frame", FALSE), + "testS3" ) }) test_that("lookup_package finds S4 method package", { - local_load_all("testS4Docs") + local_load_all("testS4") expect_equal( - lookup_package("multi_method", "numeric,ANY", TRUE), - "testS4Docs" + lookup_package("multi", "numeric,ANY", TRUE), + "testS4" ) }) test_that("lookup_package returns NA for nonexistent method", { expect_equal( - lookup_package("multi_method", "nonexistent_class", FALSE), + lookup_package("uni", "nonexistent_class", FALSE), NA_character_ ) }) diff --git a/tests/testthat/testExtendsS3/DESCRIPTION b/tests/testthat/testExtendsS3/DESCRIPTION new file mode 100644 index 0000000..9659755 --- /dev/null +++ b/tests/testthat/testExtendsS3/DESCRIPTION @@ -0,0 +1,4 @@ +Package: testExtendsS3 +Version: 0.1 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testMultiPackage/NAMESPACE b/tests/testthat/testExtendsS3/NAMESPACE similarity index 70% rename from tests/testthat/testMultiPackage/NAMESPACE rename to tests/testthat/testExtendsS3/NAMESPACE index 6ae9268..1158e68 100644 --- a/tests/testthat/testMultiPackage/NAMESPACE +++ b/tests/testthat/testExtendsS3/NAMESPACE @@ -1,2 +1,3 @@ # Generated by roxygen2: do not edit by hand +export(uni.matrix) diff --git a/tests/testthat/testExtendsS3/R/uni.R b/tests/testthat/testExtendsS3/R/uni.R new file mode 100644 index 0000000..d03d5bf --- /dev/null +++ b/tests/testthat/testExtendsS3/R/uni.R @@ -0,0 +1,7 @@ +#' Test data frame +#' +#' @param x,y A parameter +#' @export +uni.matrix <- function(x, y) { + x +} diff --git a/tests/testthat/testMultiPackage/man/multi-method-4.Rd b/tests/testthat/testExtendsS3/man/uni.matrix.Rd similarity index 55% rename from tests/testthat/testMultiPackage/man/multi-method-4.Rd rename to tests/testthat/testExtendsS3/man/uni.matrix.Rd index 0ac5e68..65b0dcc 100644 --- a/tests/testthat/testMultiPackage/man/multi-method-4.Rd +++ b/tests/testthat/testExtendsS3/man/uni.matrix.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r -\name{multi_method.matrix} -\alias{multi_method.matrix} +% Please edit documentation in R/uni.R +\name{uni.matrix} +\alias{uni.matrix} \title{Test data frame} \usage{ -multi_method.matrix(x, y) +uni.matrix(x, y) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testMultiMethod/DESCRIPTION b/tests/testthat/testMultiMethod/DESCRIPTION deleted file mode 100644 index 63af4c0..0000000 --- a/tests/testthat/testMultiMethod/DESCRIPTION +++ /dev/null @@ -1,9 +0,0 @@ -Package: testMultiMethod -Title: Tools to make developing R code easier -License: GPL-2 -Description: -Author: Hadley -Maintainer: Hadley -Version: 0.1 -Collate: a.r -RoxygenNote: 6.1.0 diff --git a/tests/testthat/testMultiMethod/NAMESPACE b/tests/testthat/testMultiMethod/NAMESPACE deleted file mode 100644 index ef11112..0000000 --- a/tests/testthat/testMultiMethod/NAMESPACE +++ /dev/null @@ -1,6 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -S3method(multi_method,character) -S3method(multi_method,data.frame) -S3method(multi_method,default) -export(multi_method) diff --git a/tests/testthat/testMultiMethod/R/a.R b/tests/testthat/testMultiMethod/R/a.R deleted file mode 100644 index 0b7c396..0000000 --- a/tests/testthat/testMultiMethod/R/a.R +++ /dev/null @@ -1,38 +0,0 @@ -#' Generic test for multiple methods -#' -#' -#' @param x,y A parameter -#' -#' @rdname multi-method -#' -#' @export -multi_method <- function(x, y) { - UseMethod("multi_method") -} - -#' Test default -#' -#' @param x,y A parameter -#' -#' @rdname multi-method-2 -#' -#' @export -multi_method.default <- function(x, y) { - x -} - -#' Test data frame -#' -#' @param x,y A parameter -#' -#' @rdname multi-method-3 -#' -#' @export -multi_method.data.frame <- function(x, y) { - x -} - -#' @export -multi_method.character <- function(x, y) { - x -} diff --git a/tests/testthat/testMultiPackage/DESCRIPTION b/tests/testthat/testMultiPackage/DESCRIPTION deleted file mode 100644 index a62e4ec..0000000 --- a/tests/testthat/testMultiPackage/DESCRIPTION +++ /dev/null @@ -1,10 +0,0 @@ -Package: testMultiPackage -Title: Tools to make developing R code easier -License: GPL-2 -Description: -Author: Hadley -Maintainer: Hadley -Version: 0.1 -Collate: - a.r -RoxygenNote: 6.1.0 diff --git a/tests/testthat/testMultiPackage/R/a.R b/tests/testthat/testMultiPackage/R/a.R deleted file mode 100644 index 614e9ce..0000000 --- a/tests/testthat/testMultiPackage/R/a.R +++ /dev/null @@ -1,8 +0,0 @@ -#' Test data frame -#' -#' @param x,y A parameter -#' -#' @rdname multi-method-4 -multi_method.matrix <- function(x, y) { - x -} diff --git a/tests/testthat/testS3/DESCRIPTION b/tests/testthat/testS3/DESCRIPTION new file mode 100644 index 0000000..f0bd9e2 --- /dev/null +++ b/tests/testthat/testS3/DESCRIPTION @@ -0,0 +1,4 @@ +Package: testS3 +Version: 0.1 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testS3/NAMESPACE b/tests/testthat/testS3/NAMESPACE new file mode 100644 index 0000000..bcc528a --- /dev/null +++ b/tests/testthat/testS3/NAMESPACE @@ -0,0 +1,11 @@ +# Generated by roxygen2: do not edit by hand + +S3method(same_rd_name,data.frame) +S3method(same_rd_name,default) +S3method(self_link,data.frame) +S3method(self_link,default) +S3method(uni,character) +S3method(uni,data.frame) +S3method(uni,default) +export(self_link) +export(uni) diff --git a/tests/testthat/testSameRd/R/a.R b/tests/testthat/testS3/R/same_rd_name.R similarity index 62% rename from tests/testthat/testSameRd/R/a.R rename to tests/testthat/testS3/R/same_rd_name.R index 30f475a..9ee7c66 100644 --- a/tests/testthat/testSameRd/R/a.R +++ b/tests/testthat/testS3/R/same_rd_name.R @@ -1,11 +1,6 @@ #' Generic test for multiple methods on the same rd file #' -#' Should be comma separated -#' #' @param x A parameter -#' -#' @rdname same_rd_name -#' same_rd_name <- function(x) { UseMethod("same_rd_name") } @@ -13,17 +8,13 @@ same_rd_name <- function(x) { #' Test default #' #' @param x A parameter -#' -#' @rdname same_rd_name-2 +#' @export same_rd_name.default <- function(x) { x } -#' Test data frame -#' -#' @param x A parameter -#' -#' @rdname same_rd_name-2 +#' @rdname same_rd_name.default +#' @export same_rd_name.data.frame <- function(x) { x } diff --git a/tests/testthat/testSelfLink/R/a.R b/tests/testthat/testS3/R/self_link.R similarity index 83% rename from tests/testthat/testSelfLink/R/a.R rename to tests/testthat/testS3/R/self_link.R index ca818fe..59286ac 100644 --- a/tests/testthat/testSelfLink/R/a.R +++ b/tests/testthat/testS3/R/self_link.R @@ -1,8 +1,6 @@ #' A generic with a self-linked method #' #' @param x A parameter -#' -#' @rdname self_link #' @export self_link <- function(x) { UseMethod("self_link") @@ -17,8 +15,6 @@ self_link.default <- function(x) { #' Test data frame #' #' @param x A parameter -#' -#' @rdname self_link-data.frame #' @export self_link.data.frame <- function(x) { x diff --git a/tests/testthat/testS3/R/uni.R b/tests/testthat/testS3/R/uni.R new file mode 100644 index 0000000..34ee5e4 --- /dev/null +++ b/tests/testthat/testS3/R/uni.R @@ -0,0 +1,28 @@ +#' Generic test for multiple methods +#' +#' @param x,y A parameter +#' @export +uni <- function(x, y) { + UseMethod("uni") +} + +#' Test default +#' +#' @param x,y A parameter +#' @export +uni.default <- function(x, y) { + x +} + +#' Test data frame +#' +#' @param x,y A parameter +#' @export +uni.data.frame <- function(x, y) { + x +} + +#' @export +uni.character <- function(x, y) { + x +} diff --git a/tests/testthat/testSameRd/man/same_rd_name.Rd b/tests/testthat/testS3/man/same_rd_name.Rd similarity index 68% rename from tests/testthat/testSameRd/man/same_rd_name.Rd rename to tests/testthat/testS3/man/same_rd_name.Rd index b72f314..19df3c0 100644 --- a/tests/testthat/testSameRd/man/same_rd_name.Rd +++ b/tests/testthat/testS3/man/same_rd_name.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r +% Please edit documentation in R/same_rd_name.R \name{same_rd_name} \alias{same_rd_name} \title{Generic test for multiple methods on the same rd file} @@ -10,5 +10,5 @@ same_rd_name(x) \item{x}{A parameter} } \description{ -Should be comma separated +Generic test for multiple methods on the same rd file } diff --git a/tests/testthat/testSameRd/man/same_rd_name-2.Rd b/tests/testthat/testS3/man/same_rd_name.default.Rd similarity index 79% rename from tests/testthat/testSameRd/man/same_rd_name-2.Rd rename to tests/testthat/testS3/man/same_rd_name.default.Rd index 412c7aa..2c59146 100644 --- a/tests/testthat/testSameRd/man/same_rd_name-2.Rd +++ b/tests/testthat/testS3/man/same_rd_name.default.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r +% Please edit documentation in R/same_rd_name.R \name{same_rd_name.default} \alias{same_rd_name.default} \alias{same_rd_name.data.frame} @@ -10,12 +10,8 @@ \method{same_rd_name}{data.frame}(x) } \arguments{ -\item{x}{A parameter} - \item{x}{A parameter} } \description{ Test default - -Test data frame } diff --git a/tests/testthat/testSelfLink/man/self_link.Rd b/tests/testthat/testS3/man/self_link.Rd similarity index 86% rename from tests/testthat/testSelfLink/man/self_link.Rd rename to tests/testthat/testS3/man/self_link.Rd index 40e97e3..6afaba1 100644 --- a/tests/testthat/testSelfLink/man/self_link.Rd +++ b/tests/testthat/testS3/man/self_link.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.R +% Please edit documentation in R/self_link.R \name{self_link} \alias{self_link} \alias{self_link.default} diff --git a/tests/testthat/testSelfLink/man/self_link-data.frame.Rd b/tests/testthat/testS3/man/self_link.data.frame.Rd similarity index 84% rename from tests/testthat/testSelfLink/man/self_link-data.frame.Rd rename to tests/testthat/testS3/man/self_link.data.frame.Rd index 2e4678d..5333d38 100644 --- a/tests/testthat/testSelfLink/man/self_link-data.frame.Rd +++ b/tests/testthat/testS3/man/self_link.data.frame.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.R +% Please edit documentation in R/self_link.R \name{self_link.data.frame} \alias{self_link.data.frame} \title{Test data frame} diff --git a/tests/testthat/testMultiMethod/man/multi-method.Rd b/tests/testthat/testS3/man/uni.Rd similarity index 65% rename from tests/testthat/testMultiMethod/man/multi-method.Rd rename to tests/testthat/testS3/man/uni.Rd index 52bf3d1..142fc49 100644 --- a/tests/testthat/testMultiMethod/man/multi-method.Rd +++ b/tests/testthat/testS3/man/uni.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r -\name{multi_method} -\alias{multi_method} +% Please edit documentation in R/uni.R +\name{uni} +\alias{uni} \title{Generic test for multiple methods} \usage{ -multi_method(x, y) +uni(x, y) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testMultiMethod/man/multi-method-3.Rd b/tests/testthat/testS3/man/uni.data.frame.Rd similarity index 51% rename from tests/testthat/testMultiMethod/man/multi-method-3.Rd rename to tests/testthat/testS3/man/uni.data.frame.Rd index 6b2acbc..17739c2 100644 --- a/tests/testthat/testMultiMethod/man/multi-method-3.Rd +++ b/tests/testthat/testS3/man/uni.data.frame.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r -\name{multi_method.data.frame} -\alias{multi_method.data.frame} +% Please edit documentation in R/uni.R +\name{uni.data.frame} +\alias{uni.data.frame} \title{Test data frame} \usage{ -\method{multi_method}{data.frame}(x, y) +\method{uni}{data.frame}(x, y) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testMultiMethod/man/multi-method-2.Rd b/tests/testthat/testS3/man/uni.default.Rd similarity index 52% rename from tests/testthat/testMultiMethod/man/multi-method-2.Rd rename to tests/testthat/testS3/man/uni.default.Rd index 0a4d887..12b9b76 100644 --- a/tests/testthat/testMultiMethod/man/multi-method-2.Rd +++ b/tests/testthat/testS3/man/uni.default.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r -\name{multi_method.default} -\alias{multi_method.default} +% Please edit documentation in R/uni.R +\name{uni.default} +\alias{uni.default} \title{Test default} \usage{ -\method{multi_method}{default}(x, y) +\method{uni}{default}(x, y) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testS4/DESCRIPTION b/tests/testthat/testS4/DESCRIPTION new file mode 100644 index 0000000..646defb --- /dev/null +++ b/tests/testthat/testS4/DESCRIPTION @@ -0,0 +1,4 @@ +Package: testS4 +Version: 0.1 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testS4/NAMESPACE b/tests/testthat/testS4/NAMESPACE new file mode 100644 index 0000000..63762bf --- /dev/null +++ b/tests/testthat/testS4/NAMESPACE @@ -0,0 +1,6 @@ +# Generated by roxygen2: do not edit by hand + +export(multi) +export(uni) +exportMethods(multi) +exportMethods(uni) diff --git a/tests/testthat/testS4/R/multi.R b/tests/testthat/testS4/R/multi.R new file mode 100644 index 0000000..bbb764e --- /dev/null +++ b/tests/testthat/testS4/R/multi.R @@ -0,0 +1,27 @@ +#' An s4 generic +#' +#' @export +setGeneric("multi", function(x, y) { + x +}) + +#' @rdname multi +#' @export +setMethod("multi", signature(x = "numeric"), function(x, y) { + x +}) + +#' @rdname multi +#' @export +setMethod( + "multi", + signature(x = "numeric", y = "integer"), + function(x, y) { + x + } +) + +#' @export +setMethod("multi", signature(x = "character"), function(x, y) { + x +}) diff --git a/tests/testthat/testS4/R/uni.R b/tests/testthat/testS4/R/uni.R new file mode 100644 index 0000000..a2e4a79 --- /dev/null +++ b/tests/testthat/testS4/R/uni.R @@ -0,0 +1,18 @@ +#' An S4 uni generic +#' +#' @export +#' @aliases uni,ANY-method +setGeneric("uni", function(x, y) { + x +}) + +#' @rdname uni +#' @export +setMethod("uni", signature(x = "numeric"), function(x, y) { + x +}) + +#' @export +setMethod("uni", signature(x = "character"), function(x, y) { + x +}) diff --git a/tests/testthat/testS4/man/multi.Rd b/tests/testthat/testS4/man/multi.Rd new file mode 100644 index 0000000..a70c5f6 --- /dev/null +++ b/tests/testthat/testS4/man/multi.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/multi.R +\name{multi} +\alias{multi} +\alias{multi,numeric,ANY-method} +\alias{multi,numeric,integer-method} +\title{An s4 generic} +\usage{ +multi(x, y) + +\S4method{multi}{numeric,ANY}(x, y) + +\S4method{multi}{numeric,integer}(x, y) +} +\description{ +An s4 generic +} diff --git a/tests/testthat/testS4/man/uni.Rd b/tests/testthat/testS4/man/uni.Rd new file mode 100644 index 0000000..8f438df --- /dev/null +++ b/tests/testthat/testS4/man/uni.Rd @@ -0,0 +1,15 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/uni.R +\name{uni} +\alias{uni} +\alias{uni,ANY-method} +\alias{uni,numeric-method} +\title{An S4 uni generic} +\usage{ +uni(x, y) + +\S4method{uni}{numeric}(x, y) +} +\description{ +An S4 uni generic +} diff --git a/tests/testthat/testS4Docs/DESCRIPTION b/tests/testthat/testS4Docs/DESCRIPTION deleted file mode 100644 index fa2598b..0000000 --- a/tests/testthat/testS4Docs/DESCRIPTION +++ /dev/null @@ -1,9 +0,0 @@ -Package: testS4Docs -Title: Tools to make developing R code easier -License: GPL-2 -Description: -Author: Hadley -Maintainer: Hadley -Version: 0.1 -Collate: a.r -RoxygenNote: 6.1.0 diff --git a/tests/testthat/testS4Docs/NAMESPACE b/tests/testthat/testS4Docs/NAMESPACE deleted file mode 100644 index b250cab..0000000 --- a/tests/testthat/testS4Docs/NAMESPACE +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -export(multi_method) -exportMethods(multi_method) diff --git a/tests/testthat/testS4Docs/R/a.R b/tests/testthat/testS4Docs/R/a.R deleted file mode 100644 index fa9e7b5..0000000 --- a/tests/testthat/testS4Docs/R/a.R +++ /dev/null @@ -1,28 +0,0 @@ -#' An s4 generic -#' -#' @export -#' @aliases multi_method,ANY,ANY-method -setGeneric("multi_method", function(x, y) { - x -}) - -#' @rdname multi_method -#' @export -setMethod("multi_method", signature(x = "numeric"), function(x, y) { - x -}) - -#' @rdname multi_method -#' @export -setMethod( - "multi_method", - signature(x = "numeric", y = "integer"), - function(x, y) { - x - } -) - -#' @export -setMethod("multi_method", signature(x = "character"), function(x, y) { - x -}) diff --git a/tests/testthat/testS4Docs/man/multi_method.Rd b/tests/testthat/testS4Docs/man/multi_method.Rd deleted file mode 100644 index 739aa46..0000000 --- a/tests/testthat/testS4Docs/man/multi_method.Rd +++ /dev/null @@ -1,19 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r -\docType{methods} -\name{multi_method} -\alias{multi_method} -\alias{multi_method,ANY,ANY-method} -\alias{multi_method,numeric,ANY-method} -\alias{multi_method,numeric,integer-method} -\title{An s4 generic} -\usage{ -multi_method(x, y) - -\S4method{multi_method}{numeric,ANY}(x, y) - -\S4method{multi_method}{numeric,integer}(x, y) -} -\description{ -An s4 generic -} diff --git a/tests/testthat/testS7/DESCRIPTION b/tests/testthat/testS7/DESCRIPTION new file mode 100644 index 0000000..f3b188e --- /dev/null +++ b/tests/testthat/testS7/DESCRIPTION @@ -0,0 +1,5 @@ +Package: testS7 +Version: 0.1 +Encoding: UTF-8 +Imports: S7 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testSameRd/NAMESPACE b/tests/testthat/testS7/NAMESPACE similarity index 63% rename from tests/testthat/testSameRd/NAMESPACE rename to tests/testthat/testS7/NAMESPACE index 6ae9268..5fea7b1 100644 --- a/tests/testthat/testSameRd/NAMESPACE +++ b/tests/testthat/testS7/NAMESPACE @@ -1,2 +1,4 @@ # Generated by roxygen2: do not edit by hand +export(multi) +export(uni) diff --git a/tests/testthat/testS7/R/multi.R b/tests/testthat/testS7/R/multi.R new file mode 100644 index 0000000..b12075b --- /dev/null +++ b/tests/testthat/testS7/R/multi.R @@ -0,0 +1,23 @@ +#' An S7 multi-dispatch generic +#' +#' @param x,y A parameter +#' @export +multi <- S7::new_generic("multi", c("x", "y")) + +#' @rdname multi +S7::method(multi, list(S7::class_integer, S7::class_character)) <- function( + x, + y, + ... +) { + x +} + +#' S7 multi-dispatch method +S7::method(multi, list(S7::class_character, S7::class_integer)) <- function( + x, + y, + ... +) { + y +} diff --git a/tests/testthat/testS7/R/uni.R b/tests/testthat/testS7/R/uni.R new file mode 100644 index 0000000..c5f19f9 --- /dev/null +++ b/tests/testthat/testS7/R/uni.R @@ -0,0 +1,11 @@ +#' An S7 generic +#' +#' @param x,y A parameter +#' @export +uni <- S7::new_generic("uni", "x") + +#' @rdname uni +S7::method(uni, S7::class_integer) <- function(x, ...) x + +#' S7 character method +S7::method(uni, S7::class_character) <- function(x, ...) x diff --git a/tests/testthat/testS7/R/zzz.R b/tests/testthat/testS7/R/zzz.R new file mode 100644 index 0000000..0afd67c --- /dev/null +++ b/tests/testthat/testS7/R/zzz.R @@ -0,0 +1,3 @@ +.onLoad <- function(...) { + S7::methods_register() +} diff --git a/tests/testthat/testS7Docs/man/s7-multi-2.Rd b/tests/testthat/testS7/man/multi-character-integer-method.Rd similarity index 55% rename from tests/testthat/testS7Docs/man/s7-multi-2.Rd rename to tests/testthat/testS7/man/multi-character-integer-method.Rd index 7d2aa30..8d9741b 100644 --- a/tests/testthat/testS7Docs/man/s7-multi-2.Rd +++ b/tests/testthat/testS7/man/multi-character-integer-method.Rd @@ -1,11 +1,11 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.R -\name{s7_multi,character,integer-method} -\alias{s7_multi,character,integer-method} +% Please edit documentation in R/multi.R +\name{multi,character,integer-method} +\alias{multi,character,integer-method} \title{S7 multi-dispatch method} \usage{ ## S7 method for classes , -s7_multi(x, y, ...) +multi(x, y, ...) } \description{ S7 multi-dispatch method diff --git a/tests/testthat/testS7Docs/man/s7_multi.Rd b/tests/testthat/testS7/man/multi.Rd similarity index 59% rename from tests/testthat/testS7Docs/man/s7_multi.Rd rename to tests/testthat/testS7/man/multi.Rd index 8ae35d7..8c19472 100644 --- a/tests/testthat/testS7Docs/man/s7_multi.Rd +++ b/tests/testthat/testS7/man/multi.Rd @@ -1,14 +1,14 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.R -\name{s7_multi} -\alias{s7_multi} -\alias{s7_multi,integer,character-method} +% Please edit documentation in R/multi.R +\name{multi} +\alias{multi} +\alias{multi,integer,character-method} \title{An S7 multi-dispatch generic} \usage{ -s7_multi(x, y, ...) +multi(x, y, ...) ## S7 method for classes , -s7_multi(x, y, ...) +multi(x, y, ...) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testS7Docs/man/s7-method-2.Rd b/tests/testthat/testS7/man/uni-character-method.Rd similarity index 55% rename from tests/testthat/testS7Docs/man/s7-method-2.Rd rename to tests/testthat/testS7/man/uni-character-method.Rd index b67b5da..28edadc 100644 --- a/tests/testthat/testS7Docs/man/s7-method-2.Rd +++ b/tests/testthat/testS7/man/uni-character-method.Rd @@ -1,11 +1,11 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.R -\name{s7_method,character-method} -\alias{s7_method,character-method} +% Please edit documentation in R/uni.R +\name{uni,character-method} +\alias{uni,character-method} \title{S7 character method} \usage{ ## S7 method for class -s7_method(x, ...) +uni(x, ...) } \description{ S7 character method diff --git a/tests/testthat/testS7Docs/man/s7_method.Rd b/tests/testthat/testS7/man/uni.Rd similarity index 56% rename from tests/testthat/testS7Docs/man/s7_method.Rd rename to tests/testthat/testS7/man/uni.Rd index cfaa99f..7c20ae3 100644 --- a/tests/testthat/testS7Docs/man/s7_method.Rd +++ b/tests/testthat/testS7/man/uni.Rd @@ -1,14 +1,14 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.R -\name{s7_method} -\alias{s7_method} -\alias{s7_method,integer-method} +% Please edit documentation in R/uni.R +\name{uni} +\alias{uni} +\alias{uni,integer-method} \title{An S7 generic} \usage{ -s7_method(x, ...) +uni(x, ...) ## S7 method for class -s7_method(x, ...) +uni(x, ...) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testS7Docs/DESCRIPTION b/tests/testthat/testS7Docs/DESCRIPTION deleted file mode 100644 index 7065a39..0000000 --- a/tests/testthat/testS7Docs/DESCRIPTION +++ /dev/null @@ -1,10 +0,0 @@ -Package: testS7Docs -Title: Test package for S7 generics -License: GPL-2 -Description: Test package for S7 generics. -Author: Hadley -Maintainer: Hadley -Version: 0.1 -Imports: S7 -Config/roxygen2/version: 7.3.3.9000 -Encoding: UTF-8 diff --git a/tests/testthat/testS7Docs/NAMESPACE b/tests/testthat/testS7Docs/NAMESPACE deleted file mode 100644 index 720b262..0000000 --- a/tests/testthat/testS7Docs/NAMESPACE +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -export(s7_method) -export(s7_multi) diff --git a/tests/testthat/testS7Docs/R/a.R b/tests/testthat/testS7Docs/R/a.R deleted file mode 100644 index 5978c90..0000000 --- a/tests/testthat/testS7Docs/R/a.R +++ /dev/null @@ -1,43 +0,0 @@ -#' An S7 generic -#' -#' @param x,y A parameter -#' @export -s7_method <- S7::new_generic("s7_method", "x") - -#' @rdname s7_method -S7::method(s7_method, S7::class_integer) <- function(x, ...) x - -#' S7 character method -#' -#' @rdname s7-method-2 -S7::method(s7_method, S7::class_character) <- function(x, ...) x - -#' An S7 multi-dispatch generic -#' -#' @param x,y A parameter -#' @export -s7_multi <- S7::new_generic("s7_multi", c("x", "y")) - -#' @rdname s7_multi -S7::method(s7_multi, list(S7::class_integer, S7::class_character)) <- function( - x, - y, - ... -) { - x -} - -#' S7 multi-dispatch method -#' -#' @rdname s7-multi-2 -S7::method(s7_multi, list(S7::class_character, S7::class_integer)) <- function( - x, - y, - ... -) { - y -} - -.onLoad <- function(...) { - S7::methods_register() -} diff --git a/tests/testthat/testSameRd/DESCRIPTION b/tests/testthat/testSameRd/DESCRIPTION deleted file mode 100644 index 0f4af0b..0000000 --- a/tests/testthat/testSameRd/DESCRIPTION +++ /dev/null @@ -1,10 +0,0 @@ -Package: testSameRd -Title: Tools to make developing R code easier -License: GPL-2 -Description: -Author: Hadley -Maintainer: Hadley -Version: 0.1 -Collate: - a.r -RoxygenNote: 6.1.0 diff --git a/tests/testthat/testSelfLink/DESCRIPTION b/tests/testthat/testSelfLink/DESCRIPTION deleted file mode 100644 index 1b9cf47..0000000 --- a/tests/testthat/testSelfLink/DESCRIPTION +++ /dev/null @@ -1,7 +0,0 @@ -Package: testSelfLink -Title: Test self-link suppression -License: GPL-2 -Description: Test package. -Author: Hadley -Maintainer: Hadley -Version: 0.1 diff --git a/tests/testthat/testSelfLink/NAMESPACE b/tests/testthat/testSelfLink/NAMESPACE deleted file mode 100644 index 4cf832e..0000000 --- a/tests/testthat/testSelfLink/NAMESPACE +++ /dev/null @@ -1,3 +0,0 @@ -export(self_link) -S3method(self_link, default) -S3method(self_link, data.frame)