forked from tidyverse/ggplot2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest-ggsave.R
59 lines (42 loc) · 1.67 KB
/
test-ggsave.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
context("ggsave")
test_that("ggsave creates file", {
path <- tempfile()
on.exit(unlink(path))
p <- ggplot(mpg, aes(displ, hwy)) + geom_point()
expect_false(file.exists(path))
ggsave(path, p, device = "pdf", width = 5, height = 5)
expect_true(file.exists(path))
})
# plot_dim ---------------------------------------------------------------
test_that("guesses and informs if dim not specified", {
png(width = 10, height = 10, units = "in", res = 300)
on.exit(capture.output(dev.off()))
expect_message(out <- plot_dim(), "10 x 10")
expect_equal(out, c(10, 10))
})
test_that("uses 7x7 if no graphics device open", {
expect_equal(plot_dim(), c(7, 7))
})
test_that("warned about large plot unless limitsize = FALSE", {
expect_error(plot_dim(c(50, 50)), "exceed 50 inches")
expect_equal(plot_dim(c(50, 50), limitsize = FALSE), c(50, 50))
})
test_that("scale multiplies height & width", {
expect_equal(plot_dim(c(10, 10), scale = 1), c(10, 10))
expect_equal(plot_dim(c(5, 5), scale = 2), c(10, 10))
})
# plot_dev ---------------------------------------------------------------------
test_that("function passed back unchanged", {
expect_equal(plot_dev(png), png)
})
test_that("unknown device triggers error", {
expect_error(plot_dev("xyz"), "Unknown graphics device")
expect_error(plot_dev(NULL, "test.xyz"), "Unknown graphics device")
})
test_that("text converted to function", {
expect_identical(body(plot_dev("png"))[[1]], quote(grDevices::png))
expect_identical(body(plot_dev("pdf"))[[1]], quote(grDevices::pdf))
})
test_that("if device is NULL, guess from extension", {
expect_identical(body(plot_dev(NULL, "test.png"))[[1]], quote(grDevices::png))
})