-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Thanks @alexpghayes for volunteering to submit your fastadi package for trial "soft submission" to rOpenSci's new system for peer review of statistical software. This issue includes output from our automated assement and reporting tools developed as part of this new system. These currently function as the following two distinct components (which will be integrated later):
packgraph
library (packgraph)
packageVersion ("packgraph")
#> [1] '0.0.0.8'
package <- "/<local>/<path>/<to>/fastadi"
g <- pg_graph (package, plot = FALSE)
pg_report (g)
#> ══ fastadi ═════════════════════════════════════════════════════════════════════
#>
#> The package has 4 exported functions, and 35 non-exported funtions. The
#> exported functions are structured into the following 1 primary cluster
#> containing 2 functions
#>
#>
#> | cluster| n|name | num_params| num_doc_words| num_doc_lines| num_example_lines| centrality|
#> |-------:|--:|:-------------------|----------:|-------------:|-------------:|-----------------:|----------:|
#> | 1| 1|adaptive_imputation | 5| 140| 18| 0| 5|
#> | 1| 2|adaptive_initialize | 4| 232| 0| 7| NA|
#>
#> There are also 2 isolated functions:
#>
#>
#> | n|name | loc|
#> |--:|:---------------|---:|
#> | 1|adaptive_impute | 19|
#> | 2|citation_impute | 19|
#>
#> ── Documentation of non-exported functions ─────────────────────────────────────
#>
#>
#> |value | doclines| cmtlines|
#> |:------|--------:|--------:|
#> |mean | 4.9| 1.5|
#> |median | 0.0| 0.0|
autotest
library (autotest)
packageVersion ("autotest")
#> [1] '0.0.1.250'
x <- autotest_package (package)
#> Loading fastadi
#> Loading required package: Matrix
#> Loading required package: LRMF3
#> ✔ [1 / 4]: adaptive_impute
#> ✔ [2 / 4]: adaptive_impute
#> ✔ [3 / 4]: adaptive_initialize
#> ✔ [4 / 4]: citation_impute
x$yaml_hash <- substring (x$yaml_hash, 1, 6)
knitr::kable (x, row.names = TRUE)
| type | fn_name | parameter | operation | content | yaml_hash | |
|---|---|---|---|---|---|---|
| 1 | diagnostic | adaptive_impute | rank | ascertain integer range | Parameter [rank] responds to integer values in [0, 22] | c23cbd |
| 2 | diagnostic | adaptive_impute | rank | match integer range to documentation | Parameter range for rank is NOT documented | c23cbd |
| 3 | diagnostic | adaptive_impute | max_iter | ascertain integer range | Parameter [max_iter] permits unrestricted integer inputs | c23cbd |
| 4 | diagnostic | adaptive_impute | max_iter | length 2 vector for single-length parameter | parameter [max_iter] is assumed to be a single value of integer type, yet admits vectors of length > 1 | c23cbd |
| 5 | diagnostic | adaptive_impute | check_interval | ascertain integer range | Parameter [check_interval] permits unrestricted integer inputs | c23cbd |
| 6 | diagnostic | adaptive_impute | check_interval | length 2 vector for single-length parameter | parameter [check_interval] is assumed to be a single value of integer type, yet admits vectors of length > 1 | c23cbd |
| 7 | diagnostic | adaptive_impute | rank | ascertain integer range | Parameter [rank] responds to integer values in [0, 22] | 747b85 |
| 8 | diagnostic | adaptive_impute | rank | match integer range to documentation | Parameter range for rank is NOT documented | 747b85 |
| 9 | diagnostic | adaptive_impute | max_iter | ascertain integer range | Parameter [max_iter] permits unrestricted integer inputs | 747b85 |
| 10 | diagnostic | adaptive_impute | max_iter | length 2 vector for single-length parameter | parameter [max_iter] is assumed to be a single value of integer type, yet admits vectors of length > 1 | 747b85 |
| 11 | diagnostic | adaptive_impute | initialization | upper case character parameter | Parameter initialization of function [adaptive_impute] is assumed to a single character, but is case dependent | 747b85 |
| 12 | diagnostic | adaptive_impute | initialization | length 2 vector for single-length parameter | parameter [initialization] is assumed to be a single value of character type, yet admits vectors of length > 1 | 747b85 |
| 13 | diagnostic | adaptive_impute | check_interval | ascertain integer range | Parameter [check_interval] permits unrestricted integer inputs | 747b85 |
| 14 | diagnostic | adaptive_impute | check_interval | length 2 vector for single-length parameter | parameter [check_interval] is assumed to be a single value of integer type, yet admits vectors of length > 1 | 747b85 |
| 15 | diagnostic | adaptive_initialize | rank | ascertain integer range | Parameter [rank] responds to integer values in [0, 215] | ee7464 |
| 16 | diagnostic | adaptive_initialize | rank | match integer range to documentation | Parameter range for rank is NOT documented | ee7464 |
| 17 | diagnostic | citation_impute | rank | ascertain integer range | Parameter [rank] responds to integer values in [0, 28] | 2cd207 |
| 18 | diagnostic | citation_impute | rank | match integer range to documentation | Parameter range for rank is NOT documented | 2cd207 |
| 19 | diagnostic | citation_impute | max_iter | ascertain integer range | Parameter [max_iter] permits unrestricted integer inputs | 2cd207 |
| 20 | diagnostic | citation_impute | max_iter | length 2 vector for single-length parameter | parameter [max_iter] is assumed to be a single value of integer type, yet admits vectors of length > 1 | 2cd207 |
| 21 | diagnostic | citation_impute | check_interval | ascertain integer range | Parameter [check_interval] permits unrestricted integer inputs | 2cd207 |
| 22 | diagnostic | citation_impute | check_interval | length 2 vector for single-length parameter | parameter [check_interval] is assumed to be a single value of integer type, yet admits vectors of length > 1 | 2cd207 |
| 23 | diagnostic | citation_impute | initialization | upper case character parameter | Parameter initialization of function [citation_impute] is assumed to a single character, but is case dependent | 2cd207 |
| 24 | diagnostic | citation_impute | initialization | length 2 vector for single-length parameter | parameter [initialization] is assumed to be a single value of character type, yet admits vectors of length > 1 | 2cd207 |
| 25 | error | adaptive_imputation | NA | This function has no documented example | NA |
summary (x)
#> autotesting package [fastadi, v0.0.0.9007] generated 25 rows of output of the following types:
#> 1 error
#> 0 warnings
#> 0 messages
#> 24 other diagnosticss
#> That corresponds to 8 messages per documented function (which has examples)
#>
#> fn_name num_errors num_warnings num_messages num_diagnostics
#> 1 adaptive_imputation 1 NA NA NA
#> 2 adaptive_impute NA NA NA 14
#> 3 adaptive_initialize NA NA NA 2
#> 4 citation_impute NA NA NA 8
#>
#> In addition to the values in that table, the output includes 1 functions which have no documented examples:
#> 1. adaptive_imputation
#>
#> git hash for package as analysed here:
#> [26f7c132a4068a3a105f5518aad2692b87e4ddb1]
Created on 2020-10-06 by the reprex package (v0.3.0)
Most of these diagnostic messages are about the admissable ranges of single-value parameters, and can probably be safely ignored, or maybe taken to indicate a minor need to tweak documentation of the parameters to indicate expected or admitted ranges. The parsing of description entries by autotest to estimate stated ranges is currently fairly crude, so updates of documentation on your side to address these could provide useful test cases for refinement of those procedures.
Those aside, the only issues are generally lack of control for lengths of parameters presumed to be single-valued, and matching character arguments regardless of case. If you could please ping here once you've addressed those, we'll post an updated autotest output and proceed to subsequent stages of the review process. Thanks!
Further information on autotest output
The output of autotest includes a column yaml_hash. This in turn refers to the yaml specification used to generate the autotests, which can be generated locally by running examples_to_yaml (<path>/<to>/<package>). Those contain the yaml_hash values, and finding the matching value will show you the base code used to trigger the diagnostic messages. The operation column should then provide a sufficient description of what has been mutated with regard to the structure defined in the yaml.