/
create_chunks.R
74 lines (57 loc) · 2.01 KB
/
create_chunks.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#' @title Summary outputs for testthat object
#' @description Summary outputs for testthat object that is used in rmd
#' @param x list, testthat object output
#' @param type character, format of the object output, Default: c("short", "long")
#' @return data.frame
#' @rdname testthat_summary
#' @family utility
#' @export
testthat_summary <- function(x, type = c("short", "long")) {
switch(type,
"short" = testthat_sum_short(x),
"long" = testthat_sum_long(x)
)
}
#' @importFrom covr percent_coverage tally_coverage
covr_print_to_df <- function(x, package, group = c("filename", "functions"), by = "line") {
if (length(x) == 0) {
ret <- data.frame(name = package, value = 0, stringsAsFactors = FALSE, row.names = NULL)
return(ret)
}
group <- match.arg(group)
type <- attr(x, "type")
if (is.null(type) || type == "none") {
type <- NULL
}
df <- covr::tally_coverage(x, by = by)
if (!NROW(df)) {
return(invisible())
}
percents <- tapply(df$value, df[[group]], FUN = function(x) (sum(x > 0) / length(x)) * 100)
overall_percentage <- covr::percent_coverage(df, by = by)
names(overall_percentage) <- attr(x, "package")$package
by_coverage <- percents[order(percents, names(percents))]
ret <- c(overall_percentage, by_coverage)
ret <- data.frame(name = names(ret), value = ret, stringsAsFactors = FALSE, row.names = NULL)
return(ret)
}
#' @title Summary outputs for covr object
#' @description Creates a summary data.frame for covr object output that
#' mimics the console print method of \code{\link[covr]{package_coverage}}
#' @param x covr object
#' @param package character, package name
#' @param failed flag for failed test, Default: FALSE
#' @return data.frame
#' @seealso
#' \code{\link[covr]{package_coverage}}
#' @rdname covr_summary
#' @family utility
#' @export
covr_summary <- function(x, package, failed = FALSE) {
ret <- covr_print_to_df(x, package)
ret$name <- ifelse(grepl("^R/", ret$name),
sprintf("[%s](../%s)", ret$name, ret$name),
ret$name
)
return(ret)
}