From 4bfcb1e27c1c4efe9b2f988aaa414f14639bf59d Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 09:59:34 -0500 Subject: [PATCH 1/9] Tidy up test packages * Rename R/a.R to match the generic it defines (e.g. multi_method.R, self_link.R). Split testS7Docs/R/a.R into s7_method.R, s7_multi.R, and zzz.R. * Trim DESCRIPTION files to minimal required fields (Package, Version, Encoding, and Imports where needed). * Add missing @export tags in testMultiPackage and testSameRd. * Convert testSelfLink NAMESPACE to roxygen2-managed. * Add `document_test_packages()` helper to R/utils.R. * Re-document all test packages with current roxygen2. Co-Authored-By: Claude Opus 4.6 (1M context) --- R/utils.R | 8 ++++++++ tests/testthat/testMultiMethod/DESCRIPTION | 9 ++------- .../testMultiMethod/R/{a.R => multi_method.R} | 0 .../testMultiMethod/man/multi-method-2.Rd | 2 +- .../testMultiMethod/man/multi-method-3.Rd | 2 +- .../testMultiMethod/man/multi-method.Rd | 2 +- tests/testthat/testMultiPackage/DESCRIPTION | 10 ++-------- tests/testthat/testMultiPackage/NAMESPACE | 1 + .../testMultiPackage/R/{a.R => multi_method.R} | 1 + .../testMultiPackage/man/multi-method-4.Rd | 4 ++-- tests/testthat/testS4Docs/DESCRIPTION | 9 ++------- .../testS4Docs/R/{a.R => multi_method.R} | 0 tests/testthat/testS4Docs/man/multi_method.Rd | 3 +-- tests/testthat/testS7Docs/DESCRIPTION | 7 +------ tests/testthat/testS7Docs/R/s7_method.R | 13 +++++++++++++ .../testthat/testS7Docs/R/{a.R => s7_multi.R} | 18 ------------------ tests/testthat/testS7Docs/R/zzz.R | 3 +++ tests/testthat/testS7Docs/man/s7-method-2.Rd | 2 +- tests/testthat/testS7Docs/man/s7-multi-2.Rd | 2 +- tests/testthat/testS7Docs/man/s7_method.Rd | 2 +- tests/testthat/testS7Docs/man/s7_multi.Rd | 2 +- tests/testthat/testSameRd/DESCRIPTION | 10 ++-------- tests/testthat/testSameRd/NAMESPACE | 2 ++ .../testSameRd/R/{a.R => same_rd_name.R} | 2 ++ .../testthat/testSameRd/man/same_rd_name-2.Rd | 4 +--- tests/testthat/testSameRd/man/same_rd_name.Rd | 2 +- tests/testthat/testSelfLink/DESCRIPTION | 7 ++----- tests/testthat/testSelfLink/NAMESPACE | 6 ++++-- .../testSelfLink/R/{a.R => self_link.R} | 0 .../testSelfLink/man/self_link-data.frame.Rd | 2 +- tests/testthat/testSelfLink/man/self_link.Rd | 2 +- 31 files changed, 59 insertions(+), 78 deletions(-) rename tests/testthat/testMultiMethod/R/{a.R => multi_method.R} (100%) rename tests/testthat/testMultiPackage/R/{a.R => multi_method.R} (91%) rename tests/testthat/testS4Docs/R/{a.R => multi_method.R} (100%) create mode 100644 tests/testthat/testS7Docs/R/s7_method.R rename tests/testthat/testS7Docs/R/{a.R => s7_multi.R} (53%) create mode 100644 tests/testthat/testS7Docs/R/zzz.R rename tests/testthat/testSameRd/R/{a.R => same_rd_name.R} (95%) rename tests/testthat/testSelfLink/R/{a.R => self_link.R} (100%) diff --git a/R/utils.R b/R/utils.R index 67906b2..a9e7859 100644 --- a/R/utils.R +++ b/R/utils.R @@ -1,3 +1,11 @@ +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) { + 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/testMultiMethod/DESCRIPTION b/tests/testthat/testMultiMethod/DESCRIPTION index 63af4c0..d2c33c8 100644 --- a/tests/testthat/testMultiMethod/DESCRIPTION +++ b/tests/testthat/testMultiMethod/DESCRIPTION @@ -1,9 +1,4 @@ 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 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testMultiMethod/R/a.R b/tests/testthat/testMultiMethod/R/multi_method.R similarity index 100% rename from tests/testthat/testMultiMethod/R/a.R rename to tests/testthat/testMultiMethod/R/multi_method.R diff --git a/tests/testthat/testMultiMethod/man/multi-method-2.Rd b/tests/testthat/testMultiMethod/man/multi-method-2.Rd index 0a4d887..c929e26 100644 --- a/tests/testthat/testMultiMethod/man/multi-method-2.Rd +++ b/tests/testthat/testMultiMethod/man/multi-method-2.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/multi_method.R \name{multi_method.default} \alias{multi_method.default} \title{Test default} diff --git a/tests/testthat/testMultiMethod/man/multi-method-3.Rd b/tests/testthat/testMultiMethod/man/multi-method-3.Rd index 6b2acbc..0cdb2db 100644 --- a/tests/testthat/testMultiMethod/man/multi-method-3.Rd +++ b/tests/testthat/testMultiMethod/man/multi-method-3.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/multi_method.R \name{multi_method.data.frame} \alias{multi_method.data.frame} \title{Test data frame} diff --git a/tests/testthat/testMultiMethod/man/multi-method.Rd b/tests/testthat/testMultiMethod/man/multi-method.Rd index 52bf3d1..588904b 100644 --- a/tests/testthat/testMultiMethod/man/multi-method.Rd +++ b/tests/testthat/testMultiMethod/man/multi-method.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/multi_method.R \name{multi_method} \alias{multi_method} \title{Generic test for multiple methods} diff --git a/tests/testthat/testMultiPackage/DESCRIPTION b/tests/testthat/testMultiPackage/DESCRIPTION index a62e4ec..f8907de 100644 --- a/tests/testthat/testMultiPackage/DESCRIPTION +++ b/tests/testthat/testMultiPackage/DESCRIPTION @@ -1,10 +1,4 @@ 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 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testMultiPackage/NAMESPACE b/tests/testthat/testMultiPackage/NAMESPACE index 6ae9268..78266a2 100644 --- a/tests/testthat/testMultiPackage/NAMESPACE +++ b/tests/testthat/testMultiPackage/NAMESPACE @@ -1,2 +1,3 @@ # Generated by roxygen2: do not edit by hand +S3method(multi_method,matrix) diff --git a/tests/testthat/testMultiPackage/R/a.R b/tests/testthat/testMultiPackage/R/multi_method.R similarity index 91% rename from tests/testthat/testMultiPackage/R/a.R rename to tests/testthat/testMultiPackage/R/multi_method.R index 614e9ce..e743263 100644 --- a/tests/testthat/testMultiPackage/R/a.R +++ b/tests/testthat/testMultiPackage/R/multi_method.R @@ -3,6 +3,7 @@ #' @param x,y A parameter #' #' @rdname multi-method-4 +#' @export multi_method.matrix <- function(x, y) { x } diff --git a/tests/testthat/testMultiPackage/man/multi-method-4.Rd b/tests/testthat/testMultiPackage/man/multi-method-4.Rd index 0ac5e68..00b4e9d 100644 --- a/tests/testthat/testMultiPackage/man/multi-method-4.Rd +++ b/tests/testthat/testMultiPackage/man/multi-method-4.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r +% Please edit documentation in R/multi_method.R \name{multi_method.matrix} \alias{multi_method.matrix} \title{Test data frame} \usage{ -multi_method.matrix(x, y) +\method{multi_method}{matrix}(x, y) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testS4Docs/DESCRIPTION b/tests/testthat/testS4Docs/DESCRIPTION index fa2598b..1ec5a18 100644 --- a/tests/testthat/testS4Docs/DESCRIPTION +++ b/tests/testthat/testS4Docs/DESCRIPTION @@ -1,9 +1,4 @@ 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 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testS4Docs/R/a.R b/tests/testthat/testS4Docs/R/multi_method.R similarity index 100% rename from tests/testthat/testS4Docs/R/a.R rename to tests/testthat/testS4Docs/R/multi_method.R diff --git a/tests/testthat/testS4Docs/man/multi_method.Rd b/tests/testthat/testS4Docs/man/multi_method.Rd index 739aa46..20ec331 100644 --- a/tests/testthat/testS4Docs/man/multi_method.Rd +++ b/tests/testthat/testS4Docs/man/multi_method.Rd @@ -1,6 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/a.r -\docType{methods} +% Please edit documentation in R/multi_method.R \name{multi_method} \alias{multi_method} \alias{multi_method,ANY,ANY-method} diff --git a/tests/testthat/testS7Docs/DESCRIPTION b/tests/testthat/testS7Docs/DESCRIPTION index 7065a39..df6994a 100644 --- a/tests/testthat/testS7Docs/DESCRIPTION +++ b/tests/testthat/testS7Docs/DESCRIPTION @@ -1,10 +1,5 @@ Package: testS7Docs -Title: Test package for S7 generics -License: GPL-2 -Description: Test package for S7 generics. -Author: Hadley -Maintainer: Hadley Version: 0.1 +Encoding: UTF-8 Imports: S7 Config/roxygen2/version: 7.3.3.9000 -Encoding: UTF-8 diff --git a/tests/testthat/testS7Docs/R/s7_method.R b/tests/testthat/testS7Docs/R/s7_method.R new file mode 100644 index 0000000..6b714a9 --- /dev/null +++ b/tests/testthat/testS7Docs/R/s7_method.R @@ -0,0 +1,13 @@ +#' 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 diff --git a/tests/testthat/testS7Docs/R/a.R b/tests/testthat/testS7Docs/R/s7_multi.R similarity index 53% rename from tests/testthat/testS7Docs/R/a.R rename to tests/testthat/testS7Docs/R/s7_multi.R index 5978c90..7ebdcf7 100644 --- a/tests/testthat/testS7Docs/R/a.R +++ b/tests/testthat/testS7Docs/R/s7_multi.R @@ -1,17 +1,3 @@ -#' 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 @@ -37,7 +23,3 @@ S7::method(s7_multi, list(S7::class_character, S7::class_integer)) <- function( ) { y } - -.onLoad <- function(...) { - S7::methods_register() -} diff --git a/tests/testthat/testS7Docs/R/zzz.R b/tests/testthat/testS7Docs/R/zzz.R new file mode 100644 index 0000000..0afd67c --- /dev/null +++ b/tests/testthat/testS7Docs/R/zzz.R @@ -0,0 +1,3 @@ +.onLoad <- function(...) { + S7::methods_register() +} diff --git a/tests/testthat/testS7Docs/man/s7-method-2.Rd b/tests/testthat/testS7Docs/man/s7-method-2.Rd index b67b5da..f603b40 100644 --- a/tests/testthat/testS7Docs/man/s7-method-2.Rd +++ b/tests/testthat/testS7Docs/man/s7-method-2.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/s7_method.R \name{s7_method,character-method} \alias{s7_method,character-method} \title{S7 character method} diff --git a/tests/testthat/testS7Docs/man/s7-multi-2.Rd b/tests/testthat/testS7Docs/man/s7-multi-2.Rd index 7d2aa30..f4556c6 100644 --- a/tests/testthat/testS7Docs/man/s7-multi-2.Rd +++ b/tests/testthat/testS7Docs/man/s7-multi-2.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/s7_multi.R \name{s7_multi,character,integer-method} \alias{s7_multi,character,integer-method} \title{S7 multi-dispatch method} diff --git a/tests/testthat/testS7Docs/man/s7_method.Rd b/tests/testthat/testS7Docs/man/s7_method.Rd index cfaa99f..2d6e9ac 100644 --- a/tests/testthat/testS7Docs/man/s7_method.Rd +++ b/tests/testthat/testS7Docs/man/s7_method.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/s7_method.R \name{s7_method} \alias{s7_method} \alias{s7_method,integer-method} diff --git a/tests/testthat/testS7Docs/man/s7_multi.Rd b/tests/testthat/testS7Docs/man/s7_multi.Rd index 8ae35d7..ad50f0a 100644 --- a/tests/testthat/testS7Docs/man/s7_multi.Rd +++ b/tests/testthat/testS7Docs/man/s7_multi.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/s7_multi.R \name{s7_multi} \alias{s7_multi} \alias{s7_multi,integer,character-method} diff --git a/tests/testthat/testSameRd/DESCRIPTION b/tests/testthat/testSameRd/DESCRIPTION index 0f4af0b..2307036 100644 --- a/tests/testthat/testSameRd/DESCRIPTION +++ b/tests/testthat/testSameRd/DESCRIPTION @@ -1,10 +1,4 @@ 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 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testSameRd/NAMESPACE b/tests/testthat/testSameRd/NAMESPACE index 6ae9268..a4f7846 100644 --- a/tests/testthat/testSameRd/NAMESPACE +++ b/tests/testthat/testSameRd/NAMESPACE @@ -1,2 +1,4 @@ # Generated by roxygen2: do not edit by hand +S3method(same_rd_name,data.frame) +S3method(same_rd_name,default) diff --git a/tests/testthat/testSameRd/R/a.R b/tests/testthat/testSameRd/R/same_rd_name.R similarity index 95% rename from tests/testthat/testSameRd/R/a.R rename to tests/testthat/testSameRd/R/same_rd_name.R index 30f475a..11d41eb 100644 --- a/tests/testthat/testSameRd/R/a.R +++ b/tests/testthat/testSameRd/R/same_rd_name.R @@ -15,6 +15,7 @@ same_rd_name <- function(x) { #' @param x A parameter #' #' @rdname same_rd_name-2 +#' @export same_rd_name.default <- function(x) { x } @@ -24,6 +25,7 @@ same_rd_name.default <- function(x) { #' @param x A parameter #' #' @rdname same_rd_name-2 +#' @export same_rd_name.data.frame <- function(x) { x } diff --git a/tests/testthat/testSameRd/man/same_rd_name-2.Rd b/tests/testthat/testSameRd/man/same_rd_name-2.Rd index 412c7aa..fe06718 100644 --- a/tests/testthat/testSameRd/man/same_rd_name-2.Rd +++ b/tests/testthat/testSameRd/man/same_rd_name-2.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,8 +10,6 @@ \method{same_rd_name}{data.frame}(x) } \arguments{ -\item{x}{A parameter} - \item{x}{A parameter} } \description{ diff --git a/tests/testthat/testSameRd/man/same_rd_name.Rd b/tests/testthat/testSameRd/man/same_rd_name.Rd index b72f314..a50df04 100644 --- a/tests/testthat/testSameRd/man/same_rd_name.Rd +++ b/tests/testthat/testSameRd/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} diff --git a/tests/testthat/testSelfLink/DESCRIPTION b/tests/testthat/testSelfLink/DESCRIPTION index 1b9cf47..bf3fdf6 100644 --- a/tests/testthat/testSelfLink/DESCRIPTION +++ b/tests/testthat/testSelfLink/DESCRIPTION @@ -1,7 +1,4 @@ Package: testSelfLink -Title: Test self-link suppression -License: GPL-2 -Description: Test package. -Author: Hadley -Maintainer: Hadley Version: 0.1 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testSelfLink/NAMESPACE b/tests/testthat/testSelfLink/NAMESPACE index 4cf832e..664e0b7 100644 --- a/tests/testthat/testSelfLink/NAMESPACE +++ b/tests/testthat/testSelfLink/NAMESPACE @@ -1,3 +1,5 @@ +# Generated by roxygen2: do not edit by hand + +S3method(self_link,data.frame) +S3method(self_link,default) export(self_link) -S3method(self_link, default) -S3method(self_link, data.frame) diff --git a/tests/testthat/testSelfLink/R/a.R b/tests/testthat/testSelfLink/R/self_link.R similarity index 100% rename from tests/testthat/testSelfLink/R/a.R rename to tests/testthat/testSelfLink/R/self_link.R diff --git a/tests/testthat/testSelfLink/man/self_link-data.frame.Rd b/tests/testthat/testSelfLink/man/self_link-data.frame.Rd index 2e4678d..5333d38 100644 --- a/tests/testthat/testSelfLink/man/self_link-data.frame.Rd +++ b/tests/testthat/testSelfLink/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/testSelfLink/man/self_link.Rd b/tests/testthat/testSelfLink/man/self_link.Rd index 40e97e3..6afaba1 100644 --- a/tests/testthat/testSelfLink/man/self_link.Rd +++ b/tests/testthat/testSelfLink/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} From 31f246a234023b3d6e82eed0b9c5a197a853a20f Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 10:06:26 -0500 Subject: [PATCH 2/9] Standarise generic names --- tests/testthat/_snaps/docs.md | 31 +++++++-------- tests/testthat/_snaps/find-s7.md | 8 ++-- tests/testthat/test-docs.R | 12 +++--- tests/testthat/test-find-s7.R | 12 +++--- tests/testthat/test-find.R | 18 ++++----- tests/testthat/testMultiMethod/NAMESPACE | 8 ++-- .../testthat/testMultiMethod/R/multi_method.R | 38 ------------------- tests/testthat/testMultiMethod/R/uni.R | 38 +++++++++++++++++++ .../testMultiMethod/man/multi-method-3.Rd | 14 ------- .../man/{multi-method-2.Rd => uni-2.Rd} | 8 ++-- .../man/uni-3.Rd} | 8 ++-- .../man/{multi-method.Rd => uni.Rd} | 8 ++-- tests/testthat/testMultiPackage/NAMESPACE | 2 +- .../R/{multi_method.R => uni.R} | 4 +- tests/testthat/testMultiPackage/man/uni-4.Rd | 14 +++++++ tests/testthat/testS4Docs/NAMESPACE | 4 +- tests/testthat/testS4Docs/R/multi.R | 28 ++++++++++++++ tests/testthat/testS4Docs/R/multi_method.R | 28 -------------- tests/testthat/testS4Docs/man/multi.Rd | 18 +++++++++ tests/testthat/testS4Docs/man/multi_method.Rd | 18 --------- tests/testthat/testS7Docs/NAMESPACE | 4 +- tests/testthat/testS7Docs/R/multi.R | 25 ++++++++++++ tests/testthat/testS7Docs/R/s7_method.R | 13 ------- tests/testthat/testS7Docs/R/s7_multi.R | 25 ------------ tests/testthat/testS7Docs/R/uni.R | 13 +++++++ .../man/{s7-multi-2.Rd => multi-2.Rd} | 8 ++-- .../testS7Docs/man/{s7_multi.Rd => multi.Rd} | 12 +++--- .../man/{s7-method-2.Rd => uni-2.Rd} | 8 ++-- .../testS7Docs/man/{s7_method.Rd => uni.Rd} | 12 +++--- 29 files changed, 217 insertions(+), 222 deletions(-) delete mode 100644 tests/testthat/testMultiMethod/R/multi_method.R create mode 100644 tests/testthat/testMultiMethod/R/uni.R delete mode 100644 tests/testthat/testMultiMethod/man/multi-method-3.Rd rename tests/testthat/testMultiMethod/man/{multi-method-2.Rd => uni-2.Rd} (50%) rename tests/testthat/{testMultiPackage/man/multi-method-4.Rd => testMultiMethod/man/uni-3.Rd} (51%) rename tests/testthat/testMultiMethod/man/{multi-method.Rd => uni.Rd} (63%) rename tests/testthat/testMultiPackage/R/{multi_method.R => uni.R} (50%) create mode 100644 tests/testthat/testMultiPackage/man/uni-4.Rd create mode 100644 tests/testthat/testS4Docs/R/multi.R delete mode 100644 tests/testthat/testS4Docs/R/multi_method.R create mode 100644 tests/testthat/testS4Docs/man/multi.Rd delete mode 100644 tests/testthat/testS4Docs/man/multi_method.Rd create mode 100644 tests/testthat/testS7Docs/R/multi.R delete mode 100644 tests/testthat/testS7Docs/R/s7_method.R delete mode 100644 tests/testthat/testS7Docs/R/s7_multi.R create mode 100644 tests/testthat/testS7Docs/R/uni.R rename tests/testthat/testS7Docs/man/{s7-multi-2.Rd => multi-2.Rd} (54%) rename tests/testthat/testS7Docs/man/{s7_multi.Rd => multi.Rd} (58%) rename tests/testthat/testS7Docs/man/{s7-method-2.Rd => uni-2.Rd} (53%) rename tests/testthat/testS7Docs/man/{s7_method.Rd => uni.Rd} (54%) diff --git a/tests/testthat/_snaps/docs.md b/tests/testthat/_snaps/docs.md index e115bb5..f90d56c 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-3]{data.frame}} + \item \code{\link[=uni-2]{default}} + \item \code{\link[testMultiPackage:uni-4]{matrix}} (\pkg{testMultiPackage}) } # S4 bullets print with no issues Code - cat(methods_list("multi_method")) + cat(methods_list("multi")) Output \itemize{ \item \code{ANY,ANY} @@ -22,19 +22,14 @@ \item \code{numeric,integer} } -# S4 and S3 packages can intermingle +# S4 and S7 packages can intermingle Code - cat(methods_list("multi_method")) + cat(methods_list("multi")) 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{character} - \item \code{\link[=multi-method-3]{data.frame}} - \item \code{\link[=multi-method-2]{default}} + \item \code{\link[=multi-2]{character,integer}} + \item \code{integer,character} } # multiple methods with same rdname @@ -60,9 +55,9 @@ # 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-3]{data.frame}}, + \code{\link[=uni-2]{default}}, \code{\link[testMultiPackage:uni-4]{matrix}} + (\pkg{testMultiPackage}) diff --git a/tests/testthat/_snaps/find-s7.md b/tests/testthat/_snaps/find-s7.md index 2cd4b90..e7732d2 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-2]{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-2]{character,integer}} \item \code{integer,character} } diff --git a/tests/testthat/test-docs.R b/tests/testthat/test-docs.R index 6648744..84a2853 100644 --- a/tests/testthat/test-docs.R +++ b/tests/testthat/test-docs.R @@ -1,20 +1,20 @@ test_that("methods from multiple packages", { local_load_all("testMultiMethod") local_load_all("testMultiPackage") - expect_snapshot(cat(methods_list("multi_method"))) + expect_snapshot(cat(methods_list("uni"))) }) test_that("S4 bullets print with no issues", { local_load_all("testS4Docs") - expect_snapshot(cat(methods_list("multi_method"))) + expect_snapshot(cat(methods_list("multi"))) }) -test_that("S4 and S3 packages can intermingle", { +test_that("S4 and S7 packages can intermingle", { local_load_all("testS4Docs") - local_load_all("testMultiMethod") + local_load_all("testS7Docs") - expect_snapshot(cat(methods_list("multi_method"))) + expect_snapshot(cat(methods_list("multi"))) }) test_that("multiple methods with same rdname", { @@ -30,7 +30,7 @@ test_that("self-links are suppressed", { test_that("methods_inline() produces comma-separated output", { local_load_all("testMultiMethod") local_load_all("testMultiPackage") - expect_snapshot(cat(methods_inline("multi_method"))) + 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..f6f0a00 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") + 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$topic, c("uni-2", "uni")) }) test_that("methods_find finds S7 multi-dispatch methods", { local_load_all("testS7Docs") - result <- methods_find("s7_multi") + 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$topic, c("multi-2", "multi")) }) test_that("S7 methods_list output", { local_load_all("testS7Docs") - expect_snapshot(cat(methods_list("s7_method"))) + 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"))) + expect_snapshot(cat(methods_list("multi"))) }) diff --git a/tests/testthat/test-find.R b/tests/testthat/test-find.R index 859d2b4..bc5a7d7 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") + result <- methods_find("uni") expect_named( result, c("method", "class", "package", "topic", "visible", "source") @@ -9,15 +9,15 @@ test_that("methods_find returns expected columns", { test_that("methods_find finds S3 methods", { local_load_all("testMultiMethod") - result <- methods_find("multi_method") + 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$topic, c(NA, "uni-3", "uni-2")) }) test_that("methods_find finds S4 methods", { local_load_all("testS4Docs") - result <- methods_find("multi_method") + result <- methods_find("multi") expect_equal( result$class, c("ANY,ANY", "character,ANY", "numeric,ANY", "numeric,integer") @@ -28,7 +28,7 @@ test_that("methods_find finds S4 methods", { test_that("methods_find finds methods across packages", { local_load_all("testMultiMethod") local_load_all("testMultiPackage") - result <- methods_find("multi_method") + result <- methods_find("uni") expect_contains(result$package, c("testMultiMethod", "testMultiPackage")) }) @@ -47,11 +47,11 @@ test_that("methods_find groups same rdname methods under same topic", { test_that("lookup_package finds S3 method package", { local_load_all("testMultiMethod") expect_equal( - lookup_package("multi_method", "default", FALSE), + lookup_package("uni", "default", FALSE), "testMultiMethod" ) expect_equal( - lookup_package("multi_method", "data.frame", FALSE), + lookup_package("uni", "data.frame", FALSE), "testMultiMethod" ) }) @@ -59,14 +59,14 @@ test_that("lookup_package finds S3 method package", { test_that("lookup_package finds S4 method package", { local_load_all("testS4Docs") expect_equal( - lookup_package("multi_method", "numeric,ANY", TRUE), + lookup_package("multi", "numeric,ANY", TRUE), "testS4Docs" ) }) 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/testMultiMethod/NAMESPACE b/tests/testthat/testMultiMethod/NAMESPACE index ef11112..7bb5833 100644 --- a/tests/testthat/testMultiMethod/NAMESPACE +++ b/tests/testthat/testMultiMethod/NAMESPACE @@ -1,6 +1,6 @@ # Generated by roxygen2: do not edit by hand -S3method(multi_method,character) -S3method(multi_method,data.frame) -S3method(multi_method,default) -export(multi_method) +S3method(uni,character) +S3method(uni,data.frame) +S3method(uni,default) +export(uni) diff --git a/tests/testthat/testMultiMethod/R/multi_method.R b/tests/testthat/testMultiMethod/R/multi_method.R deleted file mode 100644 index 0b7c396..0000000 --- a/tests/testthat/testMultiMethod/R/multi_method.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/testMultiMethod/R/uni.R b/tests/testthat/testMultiMethod/R/uni.R new file mode 100644 index 0000000..c423b8b --- /dev/null +++ b/tests/testthat/testMultiMethod/R/uni.R @@ -0,0 +1,38 @@ +#' Generic test for multiple methods +#' +#' +#' @param x,y A parameter +#' +#' @rdname uni +#' +#' @export +uni <- function(x, y) { + UseMethod("uni") +} + +#' Test default +#' +#' @param x,y A parameter +#' +#' @rdname uni-2 +#' +#' @export +uni.default <- function(x, y) { + x +} + +#' Test data frame +#' +#' @param x,y A parameter +#' +#' @rdname uni-3 +#' +#' @export +uni.data.frame <- function(x, y) { + x +} + +#' @export +uni.character <- function(x, y) { + x +} diff --git a/tests/testthat/testMultiMethod/man/multi-method-3.Rd b/tests/testthat/testMultiMethod/man/multi-method-3.Rd deleted file mode 100644 index 0cdb2db..0000000 --- a/tests/testthat/testMultiMethod/man/multi-method-3.Rd +++ /dev/null @@ -1,14 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/multi_method.R -\name{multi_method.data.frame} -\alias{multi_method.data.frame} -\title{Test data frame} -\usage{ -\method{multi_method}{data.frame}(x, y) -} -\arguments{ -\item{x, y}{A parameter} -} -\description{ -Test data frame -} diff --git a/tests/testthat/testMultiMethod/man/multi-method-2.Rd b/tests/testthat/testMultiMethod/man/uni-2.Rd similarity index 50% rename from tests/testthat/testMultiMethod/man/multi-method-2.Rd rename to tests/testthat/testMultiMethod/man/uni-2.Rd index c929e26..12b9b76 100644 --- a/tests/testthat/testMultiMethod/man/multi-method-2.Rd +++ b/tests/testthat/testMultiMethod/man/uni-2.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/multi_method.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/testMultiPackage/man/multi-method-4.Rd b/tests/testthat/testMultiMethod/man/uni-3.Rd similarity index 51% rename from tests/testthat/testMultiPackage/man/multi-method-4.Rd rename to tests/testthat/testMultiMethod/man/uni-3.Rd index 00b4e9d..17739c2 100644 --- a/tests/testthat/testMultiPackage/man/multi-method-4.Rd +++ b/tests/testthat/testMultiMethod/man/uni-3.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/multi_method.R -\name{multi_method.matrix} -\alias{multi_method.matrix} +% Please edit documentation in R/uni.R +\name{uni.data.frame} +\alias{uni.data.frame} \title{Test data frame} \usage{ -\method{multi_method}{matrix}(x, y) +\method{uni}{data.frame}(x, y) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testMultiMethod/man/multi-method.Rd b/tests/testthat/testMultiMethod/man/uni.Rd similarity index 63% rename from tests/testthat/testMultiMethod/man/multi-method.Rd rename to tests/testthat/testMultiMethod/man/uni.Rd index 588904b..142fc49 100644 --- a/tests/testthat/testMultiMethod/man/multi-method.Rd +++ b/tests/testthat/testMultiMethod/man/uni.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/multi_method.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/testMultiPackage/NAMESPACE b/tests/testthat/testMultiPackage/NAMESPACE index 78266a2..b89df16 100644 --- a/tests/testthat/testMultiPackage/NAMESPACE +++ b/tests/testthat/testMultiPackage/NAMESPACE @@ -1,3 +1,3 @@ # Generated by roxygen2: do not edit by hand -S3method(multi_method,matrix) +S3method(uni,matrix) diff --git a/tests/testthat/testMultiPackage/R/multi_method.R b/tests/testthat/testMultiPackage/R/uni.R similarity index 50% rename from tests/testthat/testMultiPackage/R/multi_method.R rename to tests/testthat/testMultiPackage/R/uni.R index e743263..ea84202 100644 --- a/tests/testthat/testMultiPackage/R/multi_method.R +++ b/tests/testthat/testMultiPackage/R/uni.R @@ -2,8 +2,8 @@ #' #' @param x,y A parameter #' -#' @rdname multi-method-4 +#' @rdname uni-4 #' @export -multi_method.matrix <- function(x, y) { +uni.matrix <- function(x, y) { x } diff --git a/tests/testthat/testMultiPackage/man/uni-4.Rd b/tests/testthat/testMultiPackage/man/uni-4.Rd new file mode 100644 index 0000000..b389242 --- /dev/null +++ b/tests/testthat/testMultiPackage/man/uni-4.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/uni.R +\name{uni.matrix} +\alias{uni.matrix} +\title{Test data frame} +\usage{ +\method{uni}{matrix}(x, y) +} +\arguments{ +\item{x, y}{A parameter} +} +\description{ +Test data frame +} diff --git a/tests/testthat/testS4Docs/NAMESPACE b/tests/testthat/testS4Docs/NAMESPACE index b250cab..b0b91c2 100644 --- a/tests/testthat/testS4Docs/NAMESPACE +++ b/tests/testthat/testS4Docs/NAMESPACE @@ -1,4 +1,4 @@ # Generated by roxygen2: do not edit by hand -export(multi_method) -exportMethods(multi_method) +export(multi) +exportMethods(multi) diff --git a/tests/testthat/testS4Docs/R/multi.R b/tests/testthat/testS4Docs/R/multi.R new file mode 100644 index 0000000..5ceb0e7 --- /dev/null +++ b/tests/testthat/testS4Docs/R/multi.R @@ -0,0 +1,28 @@ +#' An s4 generic +#' +#' @export +#' @aliases multi,ANY,ANY-method +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/testS4Docs/R/multi_method.R b/tests/testthat/testS4Docs/R/multi_method.R deleted file mode 100644 index fa9e7b5..0000000 --- a/tests/testthat/testS4Docs/R/multi_method.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.Rd b/tests/testthat/testS4Docs/man/multi.Rd new file mode 100644 index 0000000..0f69960 --- /dev/null +++ b/tests/testthat/testS4Docs/man/multi.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/multi.R +\name{multi} +\alias{multi} +\alias{multi,ANY,ANY-method} +\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/testS4Docs/man/multi_method.Rd b/tests/testthat/testS4Docs/man/multi_method.Rd deleted file mode 100644 index 20ec331..0000000 --- a/tests/testthat/testS4Docs/man/multi_method.Rd +++ /dev/null @@ -1,18 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/multi_method.R -\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/testS7Docs/NAMESPACE b/tests/testthat/testS7Docs/NAMESPACE index 720b262..5fea7b1 100644 --- a/tests/testthat/testS7Docs/NAMESPACE +++ b/tests/testthat/testS7Docs/NAMESPACE @@ -1,4 +1,4 @@ # Generated by roxygen2: do not edit by hand -export(s7_method) -export(s7_multi) +export(multi) +export(uni) diff --git a/tests/testthat/testS7Docs/R/multi.R b/tests/testthat/testS7Docs/R/multi.R new file mode 100644 index 0000000..dd8aeba --- /dev/null +++ b/tests/testthat/testS7Docs/R/multi.R @@ -0,0 +1,25 @@ +#' 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 +#' +#' @rdname multi-2 +S7::method(multi, list(S7::class_character, S7::class_integer)) <- function( + x, + y, + ... +) { + y +} diff --git a/tests/testthat/testS7Docs/R/s7_method.R b/tests/testthat/testS7Docs/R/s7_method.R deleted file mode 100644 index 6b714a9..0000000 --- a/tests/testthat/testS7Docs/R/s7_method.R +++ /dev/null @@ -1,13 +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 diff --git a/tests/testthat/testS7Docs/R/s7_multi.R b/tests/testthat/testS7Docs/R/s7_multi.R deleted file mode 100644 index 7ebdcf7..0000000 --- a/tests/testthat/testS7Docs/R/s7_multi.R +++ /dev/null @@ -1,25 +0,0 @@ -#' 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 -} diff --git a/tests/testthat/testS7Docs/R/uni.R b/tests/testthat/testS7Docs/R/uni.R new file mode 100644 index 0000000..7602064 --- /dev/null +++ b/tests/testthat/testS7Docs/R/uni.R @@ -0,0 +1,13 @@ +#' 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 +#' +#' @rdname uni-2 +S7::method(uni, S7::class_character) <- function(x, ...) x diff --git a/tests/testthat/testS7Docs/man/s7-multi-2.Rd b/tests/testthat/testS7Docs/man/multi-2.Rd similarity index 54% rename from tests/testthat/testS7Docs/man/s7-multi-2.Rd rename to tests/testthat/testS7Docs/man/multi-2.Rd index f4556c6..8d9741b 100644 --- a/tests/testthat/testS7Docs/man/s7-multi-2.Rd +++ b/tests/testthat/testS7Docs/man/multi-2.Rd @@ -1,11 +1,11 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/s7_multi.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/testS7Docs/man/multi.Rd similarity index 58% rename from tests/testthat/testS7Docs/man/s7_multi.Rd rename to tests/testthat/testS7Docs/man/multi.Rd index ad50f0a..8c19472 100644 --- a/tests/testthat/testS7Docs/man/s7_multi.Rd +++ b/tests/testthat/testS7Docs/man/multi.Rd @@ -1,14 +1,14 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/s7_multi.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/testS7Docs/man/uni-2.Rd similarity index 53% rename from tests/testthat/testS7Docs/man/s7-method-2.Rd rename to tests/testthat/testS7Docs/man/uni-2.Rd index f603b40..28edadc 100644 --- a/tests/testthat/testS7Docs/man/s7-method-2.Rd +++ b/tests/testthat/testS7Docs/man/uni-2.Rd @@ -1,11 +1,11 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/s7_method.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/testS7Docs/man/uni.Rd similarity index 54% rename from tests/testthat/testS7Docs/man/s7_method.Rd rename to tests/testthat/testS7Docs/man/uni.Rd index 2d6e9ac..7c20ae3 100644 --- a/tests/testthat/testS7Docs/man/s7_method.Rd +++ b/tests/testthat/testS7Docs/man/uni.Rd @@ -1,14 +1,14 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/s7_method.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} From 9f8d7ce167556d652c52e1be35be08490e6c2593 Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 10:08:27 -0500 Subject: [PATCH 3/9] Make unified S3 package --- tests/testthat/test-docs.R | 8 ++-- tests/testthat/test-find.R | 18 ++++----- tests/testthat/testS3Docs/DESCRIPTION | 4 ++ tests/testthat/testS3Docs/NAMESPACE | 11 ++++++ tests/testthat/testS3Docs/R/same_rd_name.R | 31 +++++++++++++++ tests/testthat/testS3Docs/R/self_link.R | 25 ++++++++++++ tests/testthat/testS3Docs/R/uni.R | 38 +++++++++++++++++++ .../testthat/testS3Docs/man/same_rd_name-2.Rd | 19 ++++++++++ tests/testthat/testS3Docs/man/same_rd_name.Rd | 14 +++++++ .../testS3Docs/man/self_link-data.frame.Rd | 14 +++++++ tests/testthat/testS3Docs/man/self_link.Rd | 17 +++++++++ tests/testthat/testS3Docs/man/uni-2.Rd | 14 +++++++ tests/testthat/testS3Docs/man/uni-3.Rd | 14 +++++++ tests/testthat/testS3Docs/man/uni.Rd | 14 +++++++ 14 files changed, 228 insertions(+), 13 deletions(-) create mode 100644 tests/testthat/testS3Docs/DESCRIPTION create mode 100644 tests/testthat/testS3Docs/NAMESPACE create mode 100644 tests/testthat/testS3Docs/R/same_rd_name.R create mode 100644 tests/testthat/testS3Docs/R/self_link.R create mode 100644 tests/testthat/testS3Docs/R/uni.R create mode 100644 tests/testthat/testS3Docs/man/same_rd_name-2.Rd create mode 100644 tests/testthat/testS3Docs/man/same_rd_name.Rd create mode 100644 tests/testthat/testS3Docs/man/self_link-data.frame.Rd create mode 100644 tests/testthat/testS3Docs/man/self_link.Rd create mode 100644 tests/testthat/testS3Docs/man/uni-2.Rd create mode 100644 tests/testthat/testS3Docs/man/uni-3.Rd create mode 100644 tests/testthat/testS3Docs/man/uni.Rd diff --git a/tests/testthat/test-docs.R b/tests/testthat/test-docs.R index 84a2853..2962d0a 100644 --- a/tests/testthat/test-docs.R +++ b/tests/testthat/test-docs.R @@ -1,5 +1,5 @@ test_that("methods from multiple packages", { - local_load_all("testMultiMethod") + local_load_all("testS3Docs") local_load_all("testMultiPackage") expect_snapshot(cat(methods_list("uni"))) }) @@ -18,17 +18,17 @@ test_that("S4 and S7 packages can intermingle", { }) test_that("multiple methods with same rdname", { - local_load_all("testSameRd") + local_load_all("testS3Docs") expect_snapshot(cat(methods_list("same_rd_name"))) }) test_that("self-links are suppressed", { - local_load_all("testSelfLink") + local_load_all("testS3Docs") expect_snapshot(cat(methods_list("self_link"))) }) test_that("methods_inline() produces comma-separated output", { - local_load_all("testMultiMethod") + local_load_all("testS3Docs") local_load_all("testMultiPackage") expect_snapshot(cat(methods_inline("uni"))) }) diff --git a/tests/testthat/test-find.R b/tests/testthat/test-find.R index bc5a7d7..6bf6832 100644 --- a/tests/testthat/test-find.R +++ b/tests/testthat/test-find.R @@ -1,5 +1,5 @@ test_that("methods_find returns expected columns", { - local_load_all("testMultiMethod") + local_load_all("testS3Docs") result <- methods_find("uni") expect_named( result, @@ -8,10 +8,10 @@ test_that("methods_find returns expected columns", { }) test_that("methods_find finds S3 methods", { - local_load_all("testMultiMethod") + local_load_all("testS3Docs") result <- methods_find("uni") expect_equal(result$class, c("character", "data.frame", "default")) - expect_equal(result$package, rep("testMultiMethod", 3)) + expect_equal(result$package, rep("testS3Docs", 3)) expect_equal(result$topic, c(NA, "uni-3", "uni-2")) }) @@ -26,10 +26,10 @@ test_that("methods_find finds S4 methods", { }) test_that("methods_find finds methods across packages", { - local_load_all("testMultiMethod") + local_load_all("testS3Docs") local_load_all("testMultiPackage") result <- methods_find("uni") - expect_contains(result$package, c("testMultiMethod", "testMultiPackage")) + expect_contains(result$package, c("testS3Docs", "testMultiPackage")) }) test_that("methods_find returns empty result for generic with no methods", { @@ -38,21 +38,21 @@ 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("testS3Docs") result <- methods_find("same_rd_name") expect_equal(result$topic, c("same_rd_name-2", "same_rd_name-2")) expect_equal(result$class, c("data.frame", "default")) }) test_that("lookup_package finds S3 method package", { - local_load_all("testMultiMethod") + local_load_all("testS3Docs") expect_equal( lookup_package("uni", "default", FALSE), - "testMultiMethod" + "testS3Docs" ) expect_equal( lookup_package("uni", "data.frame", FALSE), - "testMultiMethod" + "testS3Docs" ) }) diff --git a/tests/testthat/testS3Docs/DESCRIPTION b/tests/testthat/testS3Docs/DESCRIPTION new file mode 100644 index 0000000..91ec60b --- /dev/null +++ b/tests/testthat/testS3Docs/DESCRIPTION @@ -0,0 +1,4 @@ +Package: testS3Docs +Version: 0.1 +Encoding: UTF-8 +Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testS3Docs/NAMESPACE b/tests/testthat/testS3Docs/NAMESPACE new file mode 100644 index 0000000..bcc528a --- /dev/null +++ b/tests/testthat/testS3Docs/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/testS3Docs/R/same_rd_name.R b/tests/testthat/testS3Docs/R/same_rd_name.R new file mode 100644 index 0000000..11d41eb --- /dev/null +++ b/tests/testthat/testS3Docs/R/same_rd_name.R @@ -0,0 +1,31 @@ +#' 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") +} + +#' 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 +#' @export +same_rd_name.data.frame <- function(x) { + x +} diff --git a/tests/testthat/testS3Docs/R/self_link.R b/tests/testthat/testS3Docs/R/self_link.R new file mode 100644 index 0000000..ca818fe --- /dev/null +++ b/tests/testthat/testS3Docs/R/self_link.R @@ -0,0 +1,25 @@ +#' A generic with a self-linked method +#' +#' @param x A parameter +#' +#' @rdname self_link +#' @export +self_link <- function(x) { + UseMethod("self_link") +} + +#' @rdname self_link +#' @export +self_link.default <- function(x) { + 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/testS3Docs/R/uni.R b/tests/testthat/testS3Docs/R/uni.R new file mode 100644 index 0000000..c423b8b --- /dev/null +++ b/tests/testthat/testS3Docs/R/uni.R @@ -0,0 +1,38 @@ +#' Generic test for multiple methods +#' +#' +#' @param x,y A parameter +#' +#' @rdname uni +#' +#' @export +uni <- function(x, y) { + UseMethod("uni") +} + +#' Test default +#' +#' @param x,y A parameter +#' +#' @rdname uni-2 +#' +#' @export +uni.default <- function(x, y) { + x +} + +#' Test data frame +#' +#' @param x,y A parameter +#' +#' @rdname uni-3 +#' +#' @export +uni.data.frame <- function(x, y) { + x +} + +#' @export +uni.character <- function(x, y) { + x +} diff --git a/tests/testthat/testS3Docs/man/same_rd_name-2.Rd b/tests/testthat/testS3Docs/man/same_rd_name-2.Rd new file mode 100644 index 0000000..fe06718 --- /dev/null +++ b/tests/testthat/testS3Docs/man/same_rd_name-2.Rd @@ -0,0 +1,19 @@ +% Generated by roxygen2: do not edit by hand +% 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} +\title{Test default} +\usage{ +\method{same_rd_name}{default}(x) + +\method{same_rd_name}{data.frame}(x) +} +\arguments{ +\item{x}{A parameter} +} +\description{ +Test default + +Test data frame +} diff --git a/tests/testthat/testS3Docs/man/same_rd_name.Rd b/tests/testthat/testS3Docs/man/same_rd_name.Rd new file mode 100644 index 0000000..a50df04 --- /dev/null +++ b/tests/testthat/testS3Docs/man/same_rd_name.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% 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} +\usage{ +same_rd_name(x) +} +\arguments{ +\item{x}{A parameter} +} +\description{ +Should be comma separated +} diff --git a/tests/testthat/testS3Docs/man/self_link-data.frame.Rd b/tests/testthat/testS3Docs/man/self_link-data.frame.Rd new file mode 100644 index 0000000..5333d38 --- /dev/null +++ b/tests/testthat/testS3Docs/man/self_link-data.frame.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/self_link.R +\name{self_link.data.frame} +\alias{self_link.data.frame} +\title{Test data frame} +\usage{ +\method{self_link}{data.frame}(x) +} +\arguments{ +\item{x}{A parameter} +} +\description{ +Test data frame +} diff --git a/tests/testthat/testS3Docs/man/self_link.Rd b/tests/testthat/testS3Docs/man/self_link.Rd new file mode 100644 index 0000000..6afaba1 --- /dev/null +++ b/tests/testthat/testS3Docs/man/self_link.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/self_link.R +\name{self_link} +\alias{self_link} +\alias{self_link.default} +\title{A generic with a self-linked method} +\usage{ +self_link(x) + +\method{self_link}{default}(x) +} +\arguments{ +\item{x}{A parameter} +} +\description{ +A generic with a self-linked method +} diff --git a/tests/testthat/testS3Docs/man/uni-2.Rd b/tests/testthat/testS3Docs/man/uni-2.Rd new file mode 100644 index 0000000..12b9b76 --- /dev/null +++ b/tests/testthat/testS3Docs/man/uni-2.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/uni.R +\name{uni.default} +\alias{uni.default} +\title{Test default} +\usage{ +\method{uni}{default}(x, y) +} +\arguments{ +\item{x, y}{A parameter} +} +\description{ +Test default +} diff --git a/tests/testthat/testS3Docs/man/uni-3.Rd b/tests/testthat/testS3Docs/man/uni-3.Rd new file mode 100644 index 0000000..17739c2 --- /dev/null +++ b/tests/testthat/testS3Docs/man/uni-3.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/uni.R +\name{uni.data.frame} +\alias{uni.data.frame} +\title{Test data frame} +\usage{ +\method{uni}{data.frame}(x, y) +} +\arguments{ +\item{x, y}{A parameter} +} +\description{ +Test data frame +} diff --git a/tests/testthat/testS3Docs/man/uni.Rd b/tests/testthat/testS3Docs/man/uni.Rd new file mode 100644 index 0000000..142fc49 --- /dev/null +++ b/tests/testthat/testS3Docs/man/uni.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/uni.R +\name{uni} +\alias{uni} +\title{Generic test for multiple methods} +\usage{ +uni(x, y) +} +\arguments{ +\item{x, y}{A parameter} +} +\description{ +Generic test for multiple methods +} From d09633332982687a27543afedf2c18a34eea93ff Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 10:10:18 -0500 Subject: [PATCH 4/9] And drop suffix --- tests/testthat/test-docs.R | 14 +++---- tests/testthat/test-find-s7.R | 12 +++--- tests/testthat/test-find.R | 26 ++++++------- tests/testthat/testMultiMethod/DESCRIPTION | 4 -- tests/testthat/testMultiMethod/NAMESPACE | 6 --- tests/testthat/testMultiPackage/NAMESPACE | 2 +- tests/testthat/testMultiPackage/man/uni-4.Rd | 2 +- .../{testS4Docs => testS3}/DESCRIPTION | 2 +- .../testthat/{testS3Docs => testS3}/NAMESPACE | 0 .../{testS3Docs => testS3}/R/same_rd_name.R | 0 .../{testS3Docs => testS3}/R/self_link.R | 0 .../{testMultiMethod => testS3}/R/uni.R | 0 .../man/same_rd_name-2.Rd | 0 .../man/same_rd_name.Rd | 0 .../man/self_link-data.frame.Rd | 0 .../{testS3Docs => testS3}/man/self_link.Rd | 0 .../{testMultiMethod => testS3}/man/uni-2.Rd | 0 .../{testMultiMethod => testS3}/man/uni-3.Rd | 0 .../{testMultiMethod => testS3}/man/uni.Rd | 0 tests/testthat/testS3Docs/R/uni.R | 38 ------------------- tests/testthat/testS3Docs/man/uni-2.Rd | 14 ------- tests/testthat/testS3Docs/man/uni-3.Rd | 14 ------- tests/testthat/testS3Docs/man/uni.Rd | 14 ------- .../{testS3Docs => testS4}/DESCRIPTION | 2 +- .../testthat/{testS4Docs => testS4}/NAMESPACE | 0 .../testthat/{testS4Docs => testS4}/R/multi.R | 0 .../{testS4Docs => testS4}/man/multi.Rd | 0 .../{testS7Docs => testS7}/DESCRIPTION | 2 +- .../testthat/{testS7Docs => testS7}/NAMESPACE | 0 .../testthat/{testS7Docs => testS7}/R/multi.R | 0 tests/testthat/{testS7Docs => testS7}/R/uni.R | 0 tests/testthat/{testS7Docs => testS7}/R/zzz.R | 0 .../{testS7Docs => testS7}/man/multi-2.Rd | 0 .../{testS7Docs => testS7}/man/multi.Rd | 0 .../{testS7Docs => testS7}/man/uni-2.Rd | 0 .../{testS7Docs => testS7}/man/uni.Rd | 0 tests/testthat/testSameRd/DESCRIPTION | 4 -- tests/testthat/testSameRd/NAMESPACE | 4 -- tests/testthat/testSameRd/R/same_rd_name.R | 31 --------------- .../testthat/testSameRd/man/same_rd_name-2.Rd | 19 ---------- tests/testthat/testSameRd/man/same_rd_name.Rd | 14 ------- tests/testthat/testSelfLink/DESCRIPTION | 4 -- tests/testthat/testSelfLink/NAMESPACE | 5 --- tests/testthat/testSelfLink/R/self_link.R | 25 ------------ .../testSelfLink/man/self_link-data.frame.Rd | 14 ------- tests/testthat/testSelfLink/man/self_link.Rd | 17 --------- 46 files changed, 31 insertions(+), 258 deletions(-) delete mode 100644 tests/testthat/testMultiMethod/DESCRIPTION delete mode 100644 tests/testthat/testMultiMethod/NAMESPACE rename tests/testthat/{testS4Docs => testS3}/DESCRIPTION (76%) rename tests/testthat/{testS3Docs => testS3}/NAMESPACE (100%) rename tests/testthat/{testS3Docs => testS3}/R/same_rd_name.R (100%) rename tests/testthat/{testS3Docs => testS3}/R/self_link.R (100%) rename tests/testthat/{testMultiMethod => testS3}/R/uni.R (100%) rename tests/testthat/{testS3Docs => testS3}/man/same_rd_name-2.Rd (100%) rename tests/testthat/{testS3Docs => testS3}/man/same_rd_name.Rd (100%) rename tests/testthat/{testS3Docs => testS3}/man/self_link-data.frame.Rd (100%) rename tests/testthat/{testS3Docs => testS3}/man/self_link.Rd (100%) rename tests/testthat/{testMultiMethod => testS3}/man/uni-2.Rd (100%) rename tests/testthat/{testMultiMethod => testS3}/man/uni-3.Rd (100%) rename tests/testthat/{testMultiMethod => testS3}/man/uni.Rd (100%) delete mode 100644 tests/testthat/testS3Docs/R/uni.R delete mode 100644 tests/testthat/testS3Docs/man/uni-2.Rd delete mode 100644 tests/testthat/testS3Docs/man/uni-3.Rd delete mode 100644 tests/testthat/testS3Docs/man/uni.Rd rename tests/testthat/{testS3Docs => testS4}/DESCRIPTION (76%) rename tests/testthat/{testS4Docs => testS4}/NAMESPACE (100%) rename tests/testthat/{testS4Docs => testS4}/R/multi.R (100%) rename tests/testthat/{testS4Docs => testS4}/man/multi.Rd (100%) rename tests/testthat/{testS7Docs => testS7}/DESCRIPTION (79%) rename tests/testthat/{testS7Docs => testS7}/NAMESPACE (100%) rename tests/testthat/{testS7Docs => testS7}/R/multi.R (100%) rename tests/testthat/{testS7Docs => testS7}/R/uni.R (100%) rename tests/testthat/{testS7Docs => testS7}/R/zzz.R (100%) rename tests/testthat/{testS7Docs => testS7}/man/multi-2.Rd (100%) rename tests/testthat/{testS7Docs => testS7}/man/multi.Rd (100%) rename tests/testthat/{testS7Docs => testS7}/man/uni-2.Rd (100%) rename tests/testthat/{testS7Docs => testS7}/man/uni.Rd (100%) delete mode 100644 tests/testthat/testSameRd/DESCRIPTION delete mode 100644 tests/testthat/testSameRd/NAMESPACE delete mode 100644 tests/testthat/testSameRd/R/same_rd_name.R delete mode 100644 tests/testthat/testSameRd/man/same_rd_name-2.Rd delete mode 100644 tests/testthat/testSameRd/man/same_rd_name.Rd delete mode 100644 tests/testthat/testSelfLink/DESCRIPTION delete mode 100644 tests/testthat/testSelfLink/NAMESPACE delete mode 100644 tests/testthat/testSelfLink/R/self_link.R delete mode 100644 tests/testthat/testSelfLink/man/self_link-data.frame.Rd delete mode 100644 tests/testthat/testSelfLink/man/self_link.Rd diff --git a/tests/testthat/test-docs.R b/tests/testthat/test-docs.R index 2962d0a..66413b9 100644 --- a/tests/testthat/test-docs.R +++ b/tests/testthat/test-docs.R @@ -1,34 +1,34 @@ test_that("methods from multiple packages", { - local_load_all("testS3Docs") + local_load_all("testS3") local_load_all("testMultiPackage") 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"))) }) test_that("S4 and S7 packages can intermingle", { - local_load_all("testS4Docs") - local_load_all("testS7Docs") + local_load_all("testS4") + local_load_all("testS7") expect_snapshot(cat(methods_list("multi"))) }) test_that("multiple methods with same rdname", { - local_load_all("testS3Docs") + local_load_all("testS3") expect_snapshot(cat(methods_list("same_rd_name"))) }) test_that("self-links are suppressed", { - local_load_all("testS3Docs") + local_load_all("testS3") expect_snapshot(cat(methods_list("self_link"))) }) test_that("methods_inline() produces comma-separated output", { - local_load_all("testS3Docs") + local_load_all("testS3") local_load_all("testMultiPackage") expect_snapshot(cat(methods_inline("uni"))) }) diff --git a/tests/testthat/test-find-s7.R b/tests/testthat/test-find-s7.R index f6f0a00..3cf1e1d 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") + 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$package, rep("testS7", 2)) expect_equal(result$topic, c("uni-2", "uni")) }) test_that("methods_find finds S7 multi-dispatch methods", { - local_load_all("testS7Docs") + 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$package, rep("testS7", 2)) expect_equal(result$topic, c("multi-2", "multi")) }) test_that("S7 methods_list output", { - local_load_all("testS7Docs") + local_load_all("testS7") expect_snapshot(cat(methods_list("uni"))) }) test_that("S7 multi-dispatch methods_list output", { - local_load_all("testS7Docs") + 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 6bf6832..2d7146f 100644 --- a/tests/testthat/test-find.R +++ b/tests/testthat/test-find.R @@ -1,5 +1,5 @@ test_that("methods_find returns expected columns", { - local_load_all("testS3Docs") + local_load_all("testS3") result <- methods_find("uni") expect_named( result, @@ -8,28 +8,28 @@ test_that("methods_find returns expected columns", { }) test_that("methods_find finds S3 methods", { - local_load_all("testS3Docs") + local_load_all("testS3") result <- methods_find("uni") expect_equal(result$class, c("character", "data.frame", "default")) - expect_equal(result$package, rep("testS3Docs", 3)) + expect_equal(result$package, rep("testS3", 3)) expect_equal(result$topic, c(NA, "uni-3", "uni-2")) }) test_that("methods_find finds S4 methods", { - local_load_all("testS4Docs") + 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("testS3Docs") + local_load_all("testS3") local_load_all("testMultiPackage") result <- methods_find("uni") - expect_contains(result$package, c("testS3Docs", "testMultiPackage")) + expect_contains(result$package, c("testS3", "testMultiPackage")) }) test_that("methods_find returns empty result for generic with no methods", { @@ -38,29 +38,29 @@ 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("testS3Docs") + 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$class, c("data.frame", "default")) }) test_that("lookup_package finds S3 method package", { - local_load_all("testS3Docs") + local_load_all("testS3") expect_equal( lookup_package("uni", "default", FALSE), - "testS3Docs" + "testS3" ) expect_equal( lookup_package("uni", "data.frame", FALSE), - "testS3Docs" + "testS3" ) }) test_that("lookup_package finds S4 method package", { - local_load_all("testS4Docs") + local_load_all("testS4") expect_equal( lookup_package("multi", "numeric,ANY", TRUE), - "testS4Docs" + "testS4" ) }) diff --git a/tests/testthat/testMultiMethod/DESCRIPTION b/tests/testthat/testMultiMethod/DESCRIPTION deleted file mode 100644 index d2c33c8..0000000 --- a/tests/testthat/testMultiMethod/DESCRIPTION +++ /dev/null @@ -1,4 +0,0 @@ -Package: testMultiMethod -Version: 0.1 -Encoding: UTF-8 -Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testMultiMethod/NAMESPACE b/tests/testthat/testMultiMethod/NAMESPACE deleted file mode 100644 index 7bb5833..0000000 --- a/tests/testthat/testMultiMethod/NAMESPACE +++ /dev/null @@ -1,6 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -S3method(uni,character) -S3method(uni,data.frame) -S3method(uni,default) -export(uni) diff --git a/tests/testthat/testMultiPackage/NAMESPACE b/tests/testthat/testMultiPackage/NAMESPACE index b89df16..1158e68 100644 --- a/tests/testthat/testMultiPackage/NAMESPACE +++ b/tests/testthat/testMultiPackage/NAMESPACE @@ -1,3 +1,3 @@ # Generated by roxygen2: do not edit by hand -S3method(uni,matrix) +export(uni.matrix) diff --git a/tests/testthat/testMultiPackage/man/uni-4.Rd b/tests/testthat/testMultiPackage/man/uni-4.Rd index b389242..65b0dcc 100644 --- a/tests/testthat/testMultiPackage/man/uni-4.Rd +++ b/tests/testthat/testMultiPackage/man/uni-4.Rd @@ -4,7 +4,7 @@ \alias{uni.matrix} \title{Test data frame} \usage{ -\method{uni}{matrix}(x, y) +uni.matrix(x, y) } \arguments{ \item{x, y}{A parameter} diff --git a/tests/testthat/testS4Docs/DESCRIPTION b/tests/testthat/testS3/DESCRIPTION similarity index 76% rename from tests/testthat/testS4Docs/DESCRIPTION rename to tests/testthat/testS3/DESCRIPTION index 1ec5a18..f0bd9e2 100644 --- a/tests/testthat/testS4Docs/DESCRIPTION +++ b/tests/testthat/testS3/DESCRIPTION @@ -1,4 +1,4 @@ -Package: testS4Docs +Package: testS3 Version: 0.1 Encoding: UTF-8 Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testS3Docs/NAMESPACE b/tests/testthat/testS3/NAMESPACE similarity index 100% rename from tests/testthat/testS3Docs/NAMESPACE rename to tests/testthat/testS3/NAMESPACE diff --git a/tests/testthat/testS3Docs/R/same_rd_name.R b/tests/testthat/testS3/R/same_rd_name.R similarity index 100% rename from tests/testthat/testS3Docs/R/same_rd_name.R rename to tests/testthat/testS3/R/same_rd_name.R diff --git a/tests/testthat/testS3Docs/R/self_link.R b/tests/testthat/testS3/R/self_link.R similarity index 100% rename from tests/testthat/testS3Docs/R/self_link.R rename to tests/testthat/testS3/R/self_link.R diff --git a/tests/testthat/testMultiMethod/R/uni.R b/tests/testthat/testS3/R/uni.R similarity index 100% rename from tests/testthat/testMultiMethod/R/uni.R rename to tests/testthat/testS3/R/uni.R diff --git a/tests/testthat/testS3Docs/man/same_rd_name-2.Rd b/tests/testthat/testS3/man/same_rd_name-2.Rd similarity index 100% rename from tests/testthat/testS3Docs/man/same_rd_name-2.Rd rename to tests/testthat/testS3/man/same_rd_name-2.Rd diff --git a/tests/testthat/testS3Docs/man/same_rd_name.Rd b/tests/testthat/testS3/man/same_rd_name.Rd similarity index 100% rename from tests/testthat/testS3Docs/man/same_rd_name.Rd rename to tests/testthat/testS3/man/same_rd_name.Rd diff --git a/tests/testthat/testS3Docs/man/self_link-data.frame.Rd b/tests/testthat/testS3/man/self_link-data.frame.Rd similarity index 100% rename from tests/testthat/testS3Docs/man/self_link-data.frame.Rd rename to tests/testthat/testS3/man/self_link-data.frame.Rd diff --git a/tests/testthat/testS3Docs/man/self_link.Rd b/tests/testthat/testS3/man/self_link.Rd similarity index 100% rename from tests/testthat/testS3Docs/man/self_link.Rd rename to tests/testthat/testS3/man/self_link.Rd diff --git a/tests/testthat/testMultiMethod/man/uni-2.Rd b/tests/testthat/testS3/man/uni-2.Rd similarity index 100% rename from tests/testthat/testMultiMethod/man/uni-2.Rd rename to tests/testthat/testS3/man/uni-2.Rd diff --git a/tests/testthat/testMultiMethod/man/uni-3.Rd b/tests/testthat/testS3/man/uni-3.Rd similarity index 100% rename from tests/testthat/testMultiMethod/man/uni-3.Rd rename to tests/testthat/testS3/man/uni-3.Rd diff --git a/tests/testthat/testMultiMethod/man/uni.Rd b/tests/testthat/testS3/man/uni.Rd similarity index 100% rename from tests/testthat/testMultiMethod/man/uni.Rd rename to tests/testthat/testS3/man/uni.Rd diff --git a/tests/testthat/testS3Docs/R/uni.R b/tests/testthat/testS3Docs/R/uni.R deleted file mode 100644 index c423b8b..0000000 --- a/tests/testthat/testS3Docs/R/uni.R +++ /dev/null @@ -1,38 +0,0 @@ -#' Generic test for multiple methods -#' -#' -#' @param x,y A parameter -#' -#' @rdname uni -#' -#' @export -uni <- function(x, y) { - UseMethod("uni") -} - -#' Test default -#' -#' @param x,y A parameter -#' -#' @rdname uni-2 -#' -#' @export -uni.default <- function(x, y) { - x -} - -#' Test data frame -#' -#' @param x,y A parameter -#' -#' @rdname uni-3 -#' -#' @export -uni.data.frame <- function(x, y) { - x -} - -#' @export -uni.character <- function(x, y) { - x -} diff --git a/tests/testthat/testS3Docs/man/uni-2.Rd b/tests/testthat/testS3Docs/man/uni-2.Rd deleted file mode 100644 index 12b9b76..0000000 --- a/tests/testthat/testS3Docs/man/uni-2.Rd +++ /dev/null @@ -1,14 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/uni.R -\name{uni.default} -\alias{uni.default} -\title{Test default} -\usage{ -\method{uni}{default}(x, y) -} -\arguments{ -\item{x, y}{A parameter} -} -\description{ -Test default -} diff --git a/tests/testthat/testS3Docs/man/uni-3.Rd b/tests/testthat/testS3Docs/man/uni-3.Rd deleted file mode 100644 index 17739c2..0000000 --- a/tests/testthat/testS3Docs/man/uni-3.Rd +++ /dev/null @@ -1,14 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/uni.R -\name{uni.data.frame} -\alias{uni.data.frame} -\title{Test data frame} -\usage{ -\method{uni}{data.frame}(x, y) -} -\arguments{ -\item{x, y}{A parameter} -} -\description{ -Test data frame -} diff --git a/tests/testthat/testS3Docs/man/uni.Rd b/tests/testthat/testS3Docs/man/uni.Rd deleted file mode 100644 index 142fc49..0000000 --- a/tests/testthat/testS3Docs/man/uni.Rd +++ /dev/null @@ -1,14 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/uni.R -\name{uni} -\alias{uni} -\title{Generic test for multiple methods} -\usage{ -uni(x, y) -} -\arguments{ -\item{x, y}{A parameter} -} -\description{ -Generic test for multiple methods -} diff --git a/tests/testthat/testS3Docs/DESCRIPTION b/tests/testthat/testS4/DESCRIPTION similarity index 76% rename from tests/testthat/testS3Docs/DESCRIPTION rename to tests/testthat/testS4/DESCRIPTION index 91ec60b..646defb 100644 --- a/tests/testthat/testS3Docs/DESCRIPTION +++ b/tests/testthat/testS4/DESCRIPTION @@ -1,4 +1,4 @@ -Package: testS3Docs +Package: testS4 Version: 0.1 Encoding: UTF-8 Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testS4Docs/NAMESPACE b/tests/testthat/testS4/NAMESPACE similarity index 100% rename from tests/testthat/testS4Docs/NAMESPACE rename to tests/testthat/testS4/NAMESPACE diff --git a/tests/testthat/testS4Docs/R/multi.R b/tests/testthat/testS4/R/multi.R similarity index 100% rename from tests/testthat/testS4Docs/R/multi.R rename to tests/testthat/testS4/R/multi.R diff --git a/tests/testthat/testS4Docs/man/multi.Rd b/tests/testthat/testS4/man/multi.Rd similarity index 100% rename from tests/testthat/testS4Docs/man/multi.Rd rename to tests/testthat/testS4/man/multi.Rd diff --git a/tests/testthat/testS7Docs/DESCRIPTION b/tests/testthat/testS7/DESCRIPTION similarity index 79% rename from tests/testthat/testS7Docs/DESCRIPTION rename to tests/testthat/testS7/DESCRIPTION index df6994a..f3b188e 100644 --- a/tests/testthat/testS7Docs/DESCRIPTION +++ b/tests/testthat/testS7/DESCRIPTION @@ -1,4 +1,4 @@ -Package: testS7Docs +Package: testS7 Version: 0.1 Encoding: UTF-8 Imports: S7 diff --git a/tests/testthat/testS7Docs/NAMESPACE b/tests/testthat/testS7/NAMESPACE similarity index 100% rename from tests/testthat/testS7Docs/NAMESPACE rename to tests/testthat/testS7/NAMESPACE diff --git a/tests/testthat/testS7Docs/R/multi.R b/tests/testthat/testS7/R/multi.R similarity index 100% rename from tests/testthat/testS7Docs/R/multi.R rename to tests/testthat/testS7/R/multi.R diff --git a/tests/testthat/testS7Docs/R/uni.R b/tests/testthat/testS7/R/uni.R similarity index 100% rename from tests/testthat/testS7Docs/R/uni.R rename to tests/testthat/testS7/R/uni.R diff --git a/tests/testthat/testS7Docs/R/zzz.R b/tests/testthat/testS7/R/zzz.R similarity index 100% rename from tests/testthat/testS7Docs/R/zzz.R rename to tests/testthat/testS7/R/zzz.R diff --git a/tests/testthat/testS7Docs/man/multi-2.Rd b/tests/testthat/testS7/man/multi-2.Rd similarity index 100% rename from tests/testthat/testS7Docs/man/multi-2.Rd rename to tests/testthat/testS7/man/multi-2.Rd diff --git a/tests/testthat/testS7Docs/man/multi.Rd b/tests/testthat/testS7/man/multi.Rd similarity index 100% rename from tests/testthat/testS7Docs/man/multi.Rd rename to tests/testthat/testS7/man/multi.Rd diff --git a/tests/testthat/testS7Docs/man/uni-2.Rd b/tests/testthat/testS7/man/uni-2.Rd similarity index 100% rename from tests/testthat/testS7Docs/man/uni-2.Rd rename to tests/testthat/testS7/man/uni-2.Rd diff --git a/tests/testthat/testS7Docs/man/uni.Rd b/tests/testthat/testS7/man/uni.Rd similarity index 100% rename from tests/testthat/testS7Docs/man/uni.Rd rename to tests/testthat/testS7/man/uni.Rd diff --git a/tests/testthat/testSameRd/DESCRIPTION b/tests/testthat/testSameRd/DESCRIPTION deleted file mode 100644 index 2307036..0000000 --- a/tests/testthat/testSameRd/DESCRIPTION +++ /dev/null @@ -1,4 +0,0 @@ -Package: testSameRd -Version: 0.1 -Encoding: UTF-8 -Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testSameRd/NAMESPACE b/tests/testthat/testSameRd/NAMESPACE deleted file mode 100644 index a4f7846..0000000 --- a/tests/testthat/testSameRd/NAMESPACE +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -S3method(same_rd_name,data.frame) -S3method(same_rd_name,default) diff --git a/tests/testthat/testSameRd/R/same_rd_name.R b/tests/testthat/testSameRd/R/same_rd_name.R deleted file mode 100644 index 11d41eb..0000000 --- a/tests/testthat/testSameRd/R/same_rd_name.R +++ /dev/null @@ -1,31 +0,0 @@ -#' 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") -} - -#' 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 -#' @export -same_rd_name.data.frame <- function(x) { - x -} diff --git a/tests/testthat/testSameRd/man/same_rd_name-2.Rd b/tests/testthat/testSameRd/man/same_rd_name-2.Rd deleted file mode 100644 index fe06718..0000000 --- a/tests/testthat/testSameRd/man/same_rd_name-2.Rd +++ /dev/null @@ -1,19 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% 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} -\title{Test default} -\usage{ -\method{same_rd_name}{default}(x) - -\method{same_rd_name}{data.frame}(x) -} -\arguments{ -\item{x}{A parameter} -} -\description{ -Test default - -Test data frame -} diff --git a/tests/testthat/testSameRd/man/same_rd_name.Rd b/tests/testthat/testSameRd/man/same_rd_name.Rd deleted file mode 100644 index a50df04..0000000 --- a/tests/testthat/testSameRd/man/same_rd_name.Rd +++ /dev/null @@ -1,14 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% 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} -\usage{ -same_rd_name(x) -} -\arguments{ -\item{x}{A parameter} -} -\description{ -Should be comma separated -} diff --git a/tests/testthat/testSelfLink/DESCRIPTION b/tests/testthat/testSelfLink/DESCRIPTION deleted file mode 100644 index bf3fdf6..0000000 --- a/tests/testthat/testSelfLink/DESCRIPTION +++ /dev/null @@ -1,4 +0,0 @@ -Package: testSelfLink -Version: 0.1 -Encoding: UTF-8 -Config/roxygen2/version: 7.3.3.9000 diff --git a/tests/testthat/testSelfLink/NAMESPACE b/tests/testthat/testSelfLink/NAMESPACE deleted file mode 100644 index 664e0b7..0000000 --- a/tests/testthat/testSelfLink/NAMESPACE +++ /dev/null @@ -1,5 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -S3method(self_link,data.frame) -S3method(self_link,default) -export(self_link) diff --git a/tests/testthat/testSelfLink/R/self_link.R b/tests/testthat/testSelfLink/R/self_link.R deleted file mode 100644 index ca818fe..0000000 --- a/tests/testthat/testSelfLink/R/self_link.R +++ /dev/null @@ -1,25 +0,0 @@ -#' A generic with a self-linked method -#' -#' @param x A parameter -#' -#' @rdname self_link -#' @export -self_link <- function(x) { - UseMethod("self_link") -} - -#' @rdname self_link -#' @export -self_link.default <- function(x) { - 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/testSelfLink/man/self_link-data.frame.Rd b/tests/testthat/testSelfLink/man/self_link-data.frame.Rd deleted file mode 100644 index 5333d38..0000000 --- a/tests/testthat/testSelfLink/man/self_link-data.frame.Rd +++ /dev/null @@ -1,14 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/self_link.R -\name{self_link.data.frame} -\alias{self_link.data.frame} -\title{Test data frame} -\usage{ -\method{self_link}{data.frame}(x) -} -\arguments{ -\item{x}{A parameter} -} -\description{ -Test data frame -} diff --git a/tests/testthat/testSelfLink/man/self_link.Rd b/tests/testthat/testSelfLink/man/self_link.Rd deleted file mode 100644 index 6afaba1..0000000 --- a/tests/testthat/testSelfLink/man/self_link.Rd +++ /dev/null @@ -1,17 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/self_link.R -\name{self_link} -\alias{self_link} -\alias{self_link.default} -\title{A generic with a self-linked method} -\usage{ -self_link(x) - -\method{self_link}{default}(x) -} -\arguments{ -\item{x}{A parameter} -} -\description{ -A generic with a self-linked method -} From f44953d635bd0f66e6af7e90bbf9432965c2492a Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 10:13:30 -0500 Subject: [PATCH 5/9] Rely on default rd names --- tests/testthat/_snaps/docs.md | 20 +++++++++---------- tests/testthat/_snaps/find-s7.md | 2 +- tests/testthat/test-find-s7.R | 2 +- tests/testthat/test-find.R | 4 ++-- tests/testthat/testMultiPackage/R/uni.R | 2 -- .../man/{uni-4.Rd => uni.matrix.Rd} | 0 tests/testthat/testS3/R/same_rd_name.R | 13 +----------- tests/testthat/testS3/R/self_link.R | 4 ---- tests/testthat/testS3/R/uni.R | 10 ---------- tests/testthat/testS3/man/same_rd_name.Rd | 2 +- ...e_rd_name-2.Rd => same_rd_name.default.Rd} | 2 -- ...-data.frame.Rd => self_link.data.frame.Rd} | 0 .../man/{uni-3.Rd => uni.data.frame.Rd} | 0 .../testS3/man/{uni-2.Rd => uni.default.Rd} | 0 tests/testthat/testS4/R/multi.R | 1 - tests/testthat/testS4/man/multi.Rd | 1 - tests/testthat/testS7/R/multi.R | 2 -- tests/testthat/testS7/R/uni.R | 2 -- ...2.Rd => multi-character-integer-method.Rd} | 0 19 files changed, 16 insertions(+), 51 deletions(-) rename tests/testthat/testMultiPackage/man/{uni-4.Rd => uni.matrix.Rd} (100%) rename tests/testthat/testS3/man/{same_rd_name-2.Rd => same_rd_name.default.Rd} (95%) rename tests/testthat/testS3/man/{self_link-data.frame.Rd => self_link.data.frame.Rd} (100%) rename tests/testthat/testS3/man/{uni-3.Rd => uni.data.frame.Rd} (100%) rename tests/testthat/testS3/man/{uni-2.Rd => uni.default.Rd} (100%) rename tests/testthat/testS7/man/{multi-2.Rd => multi-character-integer-method.Rd} (100%) diff --git a/tests/testthat/_snaps/docs.md b/tests/testthat/_snaps/docs.md index f90d56c..d86f9ee 100644 --- a/tests/testthat/_snaps/docs.md +++ b/tests/testthat/_snaps/docs.md @@ -5,9 +5,9 @@ Output \itemize{ \item \code{character} - \item \code{\link[=uni-3]{data.frame}} - \item \code{\link[=uni-2]{default}} - \item \code{\link[testMultiPackage:uni-4]{matrix}} (\pkg{testMultiPackage}) + \item \code{\link[=uni.data.frame]{data.frame}} + \item \code{\link[=uni.default]{default}} + \item \code{\link[testMultiPackage:uni.matrix]{matrix}} (\pkg{testMultiPackage}) } # S4 bullets print with no issues @@ -28,7 +28,7 @@ cat(methods_list("multi")) Output \itemize{ - \item \code{\link[=multi-2]{character,integer}} + \item \code{\link[=multi-character-integer-method]{character,integer}} \item \code{integer,character} } @@ -38,8 +38,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 @@ -48,7 +48,7 @@ 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} } @@ -57,7 +57,7 @@ Code cat(methods_inline("uni")) Output - \code{character}, \code{\link[=uni-3]{data.frame}}, - \code{\link[=uni-2]{default}}, \code{\link[testMultiPackage:uni-4]{matrix}} - (\pkg{testMultiPackage}) + \code{character}, \code{\link[=uni.data.frame]{data.frame}}, + \code{\link[=uni.default]{default}}, + \code{\link[testMultiPackage:uni.matrix]{matrix}} (\pkg{testMultiPackage}) diff --git a/tests/testthat/_snaps/find-s7.md b/tests/testthat/_snaps/find-s7.md index e7732d2..21827a1 100644 --- a/tests/testthat/_snaps/find-s7.md +++ b/tests/testthat/_snaps/find-s7.md @@ -14,7 +14,7 @@ cat(methods_list("multi")) Output \itemize{ - \item \code{\link[=multi-2]{character,integer}} + \item \code{\link[=multi-character-integer-method]{character,integer}} \item \code{integer,character} } diff --git a/tests/testthat/test-find-s7.R b/tests/testthat/test-find-s7.R index 3cf1e1d..9368e0c 100644 --- a/tests/testthat/test-find-s7.R +++ b/tests/testthat/test-find-s7.R @@ -11,7 +11,7 @@ test_that("methods_find finds S7 multi-dispatch methods", { result <- methods_find("multi") expect_equal(result$class, c("character,integer", "integer,character")) expect_equal(result$package, rep("testS7", 2)) - expect_equal(result$topic, c("multi-2", "multi")) + expect_equal(result$topic, c("multi-character-integer-method", "multi")) }) test_that("S7 methods_list output", { diff --git a/tests/testthat/test-find.R b/tests/testthat/test-find.R index 2d7146f..d569804 100644 --- a/tests/testthat/test-find.R +++ b/tests/testthat/test-find.R @@ -12,7 +12,7 @@ test_that("methods_find finds S3 methods", { result <- methods_find("uni") expect_equal(result$class, c("character", "data.frame", "default")) expect_equal(result$package, rep("testS3", 3)) - expect_equal(result$topic, c(NA, "uni-3", "uni-2")) + expect_equal(result$topic, c(NA, "uni.data.frame", "uni.default")) }) test_that("methods_find finds S4 methods", { @@ -40,7 +40,7 @@ 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("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")) }) diff --git a/tests/testthat/testMultiPackage/R/uni.R b/tests/testthat/testMultiPackage/R/uni.R index ea84202..d03d5bf 100644 --- a/tests/testthat/testMultiPackage/R/uni.R +++ b/tests/testthat/testMultiPackage/R/uni.R @@ -1,8 +1,6 @@ #' Test data frame #' #' @param x,y A parameter -#' -#' @rdname uni-4 #' @export uni.matrix <- function(x, y) { x diff --git a/tests/testthat/testMultiPackage/man/uni-4.Rd b/tests/testthat/testMultiPackage/man/uni.matrix.Rd similarity index 100% rename from tests/testthat/testMultiPackage/man/uni-4.Rd rename to tests/testthat/testMultiPackage/man/uni.matrix.Rd diff --git a/tests/testthat/testS3/R/same_rd_name.R b/tests/testthat/testS3/R/same_rd_name.R index 11d41eb..9ee7c66 100644 --- a/tests/testthat/testS3/R/same_rd_name.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,18 +8,12 @@ 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/testS3/R/self_link.R b/tests/testthat/testS3/R/self_link.R index ca818fe..59286ac 100644 --- a/tests/testthat/testS3/R/self_link.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 index c423b8b..34ee5e4 100644 --- a/tests/testthat/testS3/R/uni.R +++ b/tests/testthat/testS3/R/uni.R @@ -1,10 +1,6 @@ #' Generic test for multiple methods #' -#' #' @param x,y A parameter -#' -#' @rdname uni -#' #' @export uni <- function(x, y) { UseMethod("uni") @@ -13,9 +9,6 @@ uni <- function(x, y) { #' Test default #' #' @param x,y A parameter -#' -#' @rdname uni-2 -#' #' @export uni.default <- function(x, y) { x @@ -24,9 +17,6 @@ uni.default <- function(x, y) { #' Test data frame #' #' @param x,y A parameter -#' -#' @rdname uni-3 -#' #' @export uni.data.frame <- function(x, y) { x diff --git a/tests/testthat/testS3/man/same_rd_name.Rd b/tests/testthat/testS3/man/same_rd_name.Rd index a50df04..19df3c0 100644 --- a/tests/testthat/testS3/man/same_rd_name.Rd +++ b/tests/testthat/testS3/man/same_rd_name.Rd @@ -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/testS3/man/same_rd_name-2.Rd b/tests/testthat/testS3/man/same_rd_name.default.Rd similarity index 95% rename from tests/testthat/testS3/man/same_rd_name-2.Rd rename to tests/testthat/testS3/man/same_rd_name.default.Rd index fe06718..2c59146 100644 --- a/tests/testthat/testS3/man/same_rd_name-2.Rd +++ b/tests/testthat/testS3/man/same_rd_name.default.Rd @@ -14,6 +14,4 @@ } \description{ Test default - -Test data frame } diff --git a/tests/testthat/testS3/man/self_link-data.frame.Rd b/tests/testthat/testS3/man/self_link.data.frame.Rd similarity index 100% rename from tests/testthat/testS3/man/self_link-data.frame.Rd rename to tests/testthat/testS3/man/self_link.data.frame.Rd diff --git a/tests/testthat/testS3/man/uni-3.Rd b/tests/testthat/testS3/man/uni.data.frame.Rd similarity index 100% rename from tests/testthat/testS3/man/uni-3.Rd rename to tests/testthat/testS3/man/uni.data.frame.Rd diff --git a/tests/testthat/testS3/man/uni-2.Rd b/tests/testthat/testS3/man/uni.default.Rd similarity index 100% rename from tests/testthat/testS3/man/uni-2.Rd rename to tests/testthat/testS3/man/uni.default.Rd diff --git a/tests/testthat/testS4/R/multi.R b/tests/testthat/testS4/R/multi.R index 5ceb0e7..bbb764e 100644 --- a/tests/testthat/testS4/R/multi.R +++ b/tests/testthat/testS4/R/multi.R @@ -1,7 +1,6 @@ #' An s4 generic #' #' @export -#' @aliases multi,ANY,ANY-method setGeneric("multi", function(x, y) { x }) diff --git a/tests/testthat/testS4/man/multi.Rd b/tests/testthat/testS4/man/multi.Rd index 0f69960..a70c5f6 100644 --- a/tests/testthat/testS4/man/multi.Rd +++ b/tests/testthat/testS4/man/multi.Rd @@ -2,7 +2,6 @@ % Please edit documentation in R/multi.R \name{multi} \alias{multi} -\alias{multi,ANY,ANY-method} \alias{multi,numeric,ANY-method} \alias{multi,numeric,integer-method} \title{An s4 generic} diff --git a/tests/testthat/testS7/R/multi.R b/tests/testthat/testS7/R/multi.R index dd8aeba..b12075b 100644 --- a/tests/testthat/testS7/R/multi.R +++ b/tests/testthat/testS7/R/multi.R @@ -14,8 +14,6 @@ S7::method(multi, list(S7::class_integer, S7::class_character)) <- function( } #' S7 multi-dispatch method -#' -#' @rdname multi-2 S7::method(multi, list(S7::class_character, S7::class_integer)) <- function( x, y, diff --git a/tests/testthat/testS7/R/uni.R b/tests/testthat/testS7/R/uni.R index 7602064..c5f19f9 100644 --- a/tests/testthat/testS7/R/uni.R +++ b/tests/testthat/testS7/R/uni.R @@ -8,6 +8,4 @@ uni <- S7::new_generic("uni", "x") S7::method(uni, S7::class_integer) <- function(x, ...) x #' S7 character method -#' -#' @rdname uni-2 S7::method(uni, S7::class_character) <- function(x, ...) x diff --git a/tests/testthat/testS7/man/multi-2.Rd b/tests/testthat/testS7/man/multi-character-integer-method.Rd similarity index 100% rename from tests/testthat/testS7/man/multi-2.Rd rename to tests/testthat/testS7/man/multi-character-integer-method.Rd From 1c42da1ca4e178f4bb3130d981ee851198b7363b Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 10:14:40 -0500 Subject: [PATCH 6/9] Hide roxygen2 call --- R/utils.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/utils.R b/R/utils.R index a9e7859..aea41c8 100644 --- a/R/utils.R +++ b/R/utils.R @@ -1,8 +1,9 @@ +# 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) { - roxygen2::roxygenise(pkg) + getNamespace("roxygen2")$roxygenise(pkg) } } From 04b952aee6e148750456cb518b29acd938c68dd6 Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 10:15:09 -0500 Subject: [PATCH 7/9] Re-document & update tests --- tests/testthat/_snaps/find-s7.md | 2 +- tests/testthat/test-find-s7.R | 2 +- tests/testthat/testS7/man/{uni-2.Rd => uni-character-method.Rd} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename tests/testthat/testS7/man/{uni-2.Rd => uni-character-method.Rd} (100%) diff --git a/tests/testthat/_snaps/find-s7.md b/tests/testthat/_snaps/find-s7.md index 21827a1..d205b23 100644 --- a/tests/testthat/_snaps/find-s7.md +++ b/tests/testthat/_snaps/find-s7.md @@ -4,7 +4,7 @@ cat(methods_list("uni")) Output \itemize{ - \item \code{\link[=uni-2]{character}} + \item \code{\link[=uni-character-method]{character}} \item \code{integer} } diff --git a/tests/testthat/test-find-s7.R b/tests/testthat/test-find-s7.R index 9368e0c..382f202 100644 --- a/tests/testthat/test-find-s7.R +++ b/tests/testthat/test-find-s7.R @@ -3,7 +3,7 @@ test_that("methods_find finds S7 methods", { result <- methods_find("uni") expect_equal(result$class, c("character", "integer")) expect_equal(result$package, rep("testS7", 2)) - expect_equal(result$topic, c("uni-2", "uni")) + expect_equal(result$topic, c("uni-character-method", "uni")) }) test_that("methods_find finds S7 multi-dispatch methods", { diff --git a/tests/testthat/testS7/man/uni-2.Rd b/tests/testthat/testS7/man/uni-character-method.Rd similarity index 100% rename from tests/testthat/testS7/man/uni-2.Rd rename to tests/testthat/testS7/man/uni-character-method.Rd From 72282b28a9a30767a5bcde82f24dae7f326704d3 Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 10:24:25 -0500 Subject: [PATCH 8/9] Improve intermingling tests and fix bug thus revealed --- R/docs.R | 4 +++- tests/testthat/_snaps/docs.md | 26 ++++++++++++++++++++++---- tests/testthat/test-docs.R | 7 ++++--- tests/testthat/testS4/NAMESPACE | 2 ++ tests/testthat/testS4/R/uni.R | 18 ++++++++++++++++++ tests/testthat/testS4/man/uni.Rd | 15 +++++++++++++++ 6 files changed, 64 insertions(+), 8 deletions(-) create mode 100644 tests/testthat/testS4/R/uni.R create mode 100644 tests/testthat/testS4/man/uni.Rd 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/tests/testthat/_snaps/docs.md b/tests/testthat/_snaps/docs.md index d86f9ee..d898044 100644 --- a/tests/testthat/_snaps/docs.md +++ b/tests/testthat/_snaps/docs.md @@ -22,14 +22,32 @@ \item \code{numeric,integer} } -# S4 and S7 packages can intermingle +# S4 and S3 packages can intermingle Code - cat(methods_list("multi")) + cat(methods_list("uni", "testS4")) Output \itemize{ - \item \code{\link[=multi-character-integer-method]{character,integer}} - \item \code{integer,character} + \item \code{ANY} + \item \code{character} + \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 diff --git a/tests/testthat/test-docs.R b/tests/testthat/test-docs.R index 66413b9..79c694f 100644 --- a/tests/testthat/test-docs.R +++ b/tests/testthat/test-docs.R @@ -10,11 +10,12 @@ test_that("S4 bullets print with no issues", { expect_snapshot(cat(methods_list("multi"))) }) -test_that("S4 and S7 packages can intermingle", { +test_that("S4 and S3 packages can intermingle", { local_load_all("testS4") - local_load_all("testS7") + local_load_all("testS3") - expect_snapshot(cat(methods_list("multi"))) + expect_snapshot(cat(methods_list("uni", "testS4"))) + expect_snapshot(cat(methods_list("uni", "testS3"))) }) test_that("multiple methods with same rdname", { diff --git a/tests/testthat/testS4/NAMESPACE b/tests/testthat/testS4/NAMESPACE index b0b91c2..63762bf 100644 --- a/tests/testthat/testS4/NAMESPACE +++ b/tests/testthat/testS4/NAMESPACE @@ -1,4 +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/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/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 +} From ae1ab410a34c405989480122d253efa78c8b2d39 Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Tue, 7 Apr 2026 10:30:49 -0500 Subject: [PATCH 9/9] Clarify another package name --- tests/testthat/_snaps/docs.md | 4 ++-- tests/testthat/test-docs.R | 4 ++-- tests/testthat/test-find.R | 4 ++-- .../testthat/{testMultiPackage => testExtendsS3}/DESCRIPTION | 2 +- tests/testthat/{testMultiPackage => testExtendsS3}/NAMESPACE | 0 tests/testthat/{testMultiPackage => testExtendsS3}/R/uni.R | 0 .../{testMultiPackage => testExtendsS3}/man/uni.matrix.Rd | 0 7 files changed, 7 insertions(+), 7 deletions(-) rename tests/testthat/{testMultiPackage => testExtendsS3}/DESCRIPTION (71%) rename tests/testthat/{testMultiPackage => testExtendsS3}/NAMESPACE (100%) rename tests/testthat/{testMultiPackage => testExtendsS3}/R/uni.R (100%) rename tests/testthat/{testMultiPackage => testExtendsS3}/man/uni.matrix.Rd (100%) diff --git a/tests/testthat/_snaps/docs.md b/tests/testthat/_snaps/docs.md index d898044..9b10198 100644 --- a/tests/testthat/_snaps/docs.md +++ b/tests/testthat/_snaps/docs.md @@ -7,7 +7,7 @@ \item \code{character} \item \code{\link[=uni.data.frame]{data.frame}} \item \code{\link[=uni.default]{default}} - \item \code{\link[testMultiPackage:uni.matrix]{matrix}} (\pkg{testMultiPackage}) + \item \code{\link[testExtendsS3:uni.matrix]{matrix}} (\pkg{testExtendsS3}) } # S4 bullets print with no issues @@ -77,5 +77,5 @@ Output \code{character}, \code{\link[=uni.data.frame]{data.frame}}, \code{\link[=uni.default]{default}}, - \code{\link[testMultiPackage:uni.matrix]{matrix}} (\pkg{testMultiPackage}) + \code{\link[testExtendsS3:uni.matrix]{matrix}} (\pkg{testExtendsS3}) diff --git a/tests/testthat/test-docs.R b/tests/testthat/test-docs.R index 79c694f..eaafbc6 100644 --- a/tests/testthat/test-docs.R +++ b/tests/testthat/test-docs.R @@ -1,6 +1,6 @@ test_that("methods from multiple packages", { local_load_all("testS3") - local_load_all("testMultiPackage") + local_load_all("testExtendsS3") expect_snapshot(cat(methods_list("uni"))) }) @@ -30,7 +30,7 @@ test_that("self-links are suppressed", { test_that("methods_inline() produces comma-separated output", { local_load_all("testS3") - local_load_all("testMultiPackage") + local_load_all("testExtendsS3") expect_snapshot(cat(methods_inline("uni"))) }) diff --git a/tests/testthat/test-find.R b/tests/testthat/test-find.R index d569804..a0b3a79 100644 --- a/tests/testthat/test-find.R +++ b/tests/testthat/test-find.R @@ -27,9 +27,9 @@ test_that("methods_find finds S4 methods", { test_that("methods_find finds methods across packages", { local_load_all("testS3") - local_load_all("testMultiPackage") + local_load_all("testExtendsS3") result <- methods_find("uni") - expect_contains(result$package, c("testS3", "testMultiPackage")) + expect_contains(result$package, c("testS3", "testExtendsS3")) }) test_that("methods_find returns empty result for generic with no methods", { diff --git a/tests/testthat/testMultiPackage/DESCRIPTION b/tests/testthat/testExtendsS3/DESCRIPTION similarity index 71% rename from tests/testthat/testMultiPackage/DESCRIPTION rename to tests/testthat/testExtendsS3/DESCRIPTION index f8907de..9659755 100644 --- a/tests/testthat/testMultiPackage/DESCRIPTION +++ b/tests/testthat/testExtendsS3/DESCRIPTION @@ -1,4 +1,4 @@ -Package: testMultiPackage +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 100% rename from tests/testthat/testMultiPackage/NAMESPACE rename to tests/testthat/testExtendsS3/NAMESPACE diff --git a/tests/testthat/testMultiPackage/R/uni.R b/tests/testthat/testExtendsS3/R/uni.R similarity index 100% rename from tests/testthat/testMultiPackage/R/uni.R rename to tests/testthat/testExtendsS3/R/uni.R diff --git a/tests/testthat/testMultiPackage/man/uni.matrix.Rd b/tests/testthat/testExtendsS3/man/uni.matrix.Rd similarity index 100% rename from tests/testthat/testMultiPackage/man/uni.matrix.Rd rename to tests/testthat/testExtendsS3/man/uni.matrix.Rd