Skip to content

Commit e9da511

Browse files
committed
add test
1 parent 1b2c30c commit e9da511

File tree

2 files changed

+119
-0
lines changed

2 files changed

+119
-0
lines changed
Lines changed: 63 additions & 0 deletions
Loading

tests/testthat/test-legend-draw.R

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
test_that("all keys can be drawn without 'params'", {
3+
4+
params <- list()
5+
size <- convertUnit(calc_element("legend.key.size", theme_gray()), "cm", valueOnly = TRUE)
6+
size <- size * 10 # cm to mm
7+
8+
# Render every key
9+
keys <- list(
10+
point = draw_key_point(GeomPoint$use_defaults(NULL), params, size),
11+
abline = draw_key_abline(GeomAbline$use_defaults(NULL), params, size),
12+
rect = draw_key_rect(GeomRect$use_defaults(NULL), params, size),
13+
polygon = draw_key_polygon(GeomPolygon$use_defaults(NULL), params, size),
14+
blank = draw_key_blank(GeomBlank$use_defaults(NULL), params, size),
15+
boxplot = draw_key_boxplot(GeomBoxplot$use_defaults(NULL), params, size),
16+
crosssbar = draw_key_crossbar(GeomCrossbar$use_defaults(NULL), params, size),
17+
path = draw_key_path(GeomPath$use_defaults(NULL), params, size),
18+
vpath = draw_key_vpath(GeomPath$use_defaults(NULL), params, size),
19+
dotplot = draw_key_dotplot(GeomDotplot$use_defaults(NULL), params, size),
20+
linerange = draw_key_linerange(GeomLinerange$use_defaults(NULL), params, size),
21+
pointrange = draw_key_pointrange(GeomPointrange$use_defaults(NULL), params, size),
22+
smooth = draw_key_smooth(GeomSmooth$use_defaults(NULL), params, size),
23+
text = draw_key_text(GeomText$use_defaults(NULL), params, size),
24+
label = draw_key_label(GeomLabel$use_defaults(NULL), params, size),
25+
vline = draw_key_vline(GeomVline$use_defaults(NULL), params, size),
26+
timeseries = draw_key_timeseries(GeomPath$use_defaults(NULL), params, size)
27+
)
28+
29+
template <- gtable(width = unit(size, "mm"), heights = unit(c(1, size), c("lines", "mm")))
30+
# Add names
31+
keys <- Map(
32+
function(key, name) {
33+
text <- textGrob(name, gp = gpar(fontsize = 8))
34+
gtable_add_grob(template, list(text, key), t = 1:2, l = 1, clip = "off")
35+
},
36+
key = keys, name = names(keys)
37+
)
38+
39+
n <- length(keys)
40+
nrow <- ceiling(n / 5)
41+
ncol <- ceiling(n / nrow)
42+
mtx <- matrix(list(zeroGrob()), nrow = nrow, ncol = ncol)
43+
mtx[seq_along(keys)] <- keys
44+
45+
gt <- gtable_matrix(
46+
name = "layout", grobs = mtx,
47+
widths = unit(rep(size, ncol(mtx)), "mm"),
48+
heights = unit(rep(size, nrow(mtx)), "mm") + unit(1, "lines"),
49+
clip = "off"
50+
)
51+
gt <- gtable_add_col_space(gt, unit(1, "cm"))
52+
gt <- gtable_add_row_space(gt, unit(1, "cm"))
53+
54+
expect_doppelganger("all legend keys", gt)
55+
56+
})

0 commit comments

Comments
 (0)