1context("geom-hline-vline-abline")
2
3
4# Visual tests ------------------------------------------------------------
5
6test_that("check h/v/abline transformed on basic projections", {
7  dat <- data_frame(x = LETTERS[1:5], y = 1:5)
8  plot <- ggplot(dat, aes(x, y)) +
9    geom_col(width = 1) +
10    geom_point() +
11    geom_vline(xintercept = 3, colour = "red") +
12    geom_hline(yintercept = 3, colour = "blue") +
13    geom_abline(intercept = 0, slope = 1, colour = "purple") +
14    labs(x = NULL, y = NULL) +
15    coord_cartesian(expand = FALSE)
16
17  expect_doppelganger(
18    "cartesian lines intersect mid-bars",
19    plot
20  )
21  expect_doppelganger(
22    "flipped lines intersect mid-bars",
23    plot + coord_flip()
24  )
25  expect_doppelganger(
26    "polar lines intersect mid-bars",
27    plot + coord_polar()
28  )
29})
30
31test_that("curved lines in map projections", {
32  nz <- subset(map_data("nz"), region == "North.Island ")
33  nzmap <- ggplot(nz, aes(long, lat, group = group)) +
34    geom_path() +
35    geom_hline(yintercept = -38.6) + # roughly Taupo
36    geom_vline(xintercept = 176) +
37    coord_map()
38
39  expect_doppelganger("straight lines in mercator",
40    nzmap
41  )
42  expect_doppelganger("lines curved in azequalarea",
43    nzmap + coord_map(projection = 'azequalarea', orientation = c(-36.92, 174.6, 0))
44  )
45})
46
47# Warning tests ------------------------------------------------------------
48
49test_that("warn_overwritten_args() produces gramatically correct error messages", {
50  expect_warning(
51    warn_overwritten_args("fun_test", "is_overwritten", "provided"),
52    "fun_test: Ignoring `is_overwritten` because `provided` was provided."
53  )
54  expect_warning(
55    warn_overwritten_args("fun_test", "is_overwritten", c("provided1", "provided2")),
56    "fun_test: Ignoring `is_overwritten` because `provided1` and/or `provided2` were provided."
57  )
58  expect_warning(
59    warn_overwritten_args("fun_test", "is_overwritten", c("provided1", "provided2", "provided3")),
60    "fun_test: Ignoring `is_overwritten` because `provided1`, `provided2`, and/or `provided3` were provided."
61  )
62})
63
64test_that("Warning if a supplied mapping is going to be overwritten", {
65
66  expect_warning(
67    geom_vline(xintercept = 3, aes(colour = colour)),
68    "Ignoring `mapping`"
69  )
70
71  expect_warning(
72    geom_hline(yintercept = 3, aes(colour = colour)),
73    "Ignoring `mapping`"
74  )
75
76  expect_warning(
77    geom_abline(intercept = 3, aes(colour = colour)),
78    "Ignoring `mapping`"
79  )
80
81  expect_warning(
82    geom_abline(intercept = 3, slope = 0.5, aes(colour = colour)),
83    "Ignoring `mapping`"
84  )
85
86  expect_warning(
87    geom_abline(slope = 0.5, aes(colour = colour)),
88    "Ignoring `mapping`"
89  )
90})
91
92
93test_that("Warning if supplied data is going to be overwritten", {
94
95  sample_data <- data_frame(x = 1)
96
97  expect_warning(
98    geom_vline(xintercept = 3, data = sample_data),
99    "Ignoring `data`"
100  )
101
102  expect_warning(
103    geom_hline(yintercept = 3, data = sample_data),
104    "Ignoring `data`"
105  )
106
107  expect_warning(
108    geom_abline(intercept = 3, data = sample_data),
109    "Ignoring `data`"
110  )
111
112  expect_warning(
113    geom_abline(intercept = 3, slope = 0.5, data = sample_data),
114    "Ignoring `data`"
115  )
116
117  expect_warning(
118    geom_abline(slope = 0.5, data = sample_data),
119    "Ignoring `data`"
120  )
121})
122