1context("geom-raster")
2
3
4# Visual tests ------------------------------------------------------------
5
6test_that("geom_raster draws correctly", {
7  set.seed(1)
8
9  # 3 x 2 ----------------------------------------------------------------------
10  df <- data_frame(x = rep(c(-1, 1), each = 3), y = rep(-1:1, 2), z = 1:6)
11
12  expect_doppelganger("3 x 2",
13    ggplot(df, aes(x, y, fill = z)) + geom_raster() + geom_point(colour = "red")
14  )
15  expect_doppelganger("3 x 2, set limits",
16    ggplot(df, aes(x, y, fill = z)) + geom_raster() + geom_point(colour = "red") +
17      xlim(-2, 2) + ylim(-2, 2)
18  )
19  expect_doppelganger("3 x 2, just = (0, 0)",
20    ggplot(df, aes(x, y, fill = z)) + geom_raster(hjust = 0, vjust = 0) +
21      geom_point(colour = "red")
22  )
23
24  # 1 x 3 ----------------------------------------------------------------------
25  df <- data_frame(x = -1:1, y = 0, z = 1:3)
26
27  expect_doppelganger("1 x 3",
28    ggplot(df, aes(x, y, fill = z)) + geom_raster() + geom_point(colour = "red")
29  )
30  expect_doppelganger("1 x 3, set limits",
31    ggplot(df, aes(x, y, fill = z)) + geom_raster() + geom_point(colour = "red") +
32      xlim(-2, 2) + ylim(-2, 2)
33  )
34  expect_doppelganger("1 x 3, just = (0, 0)",
35    ggplot(df, aes(x, y, fill = z)) + geom_raster(hjust = 0, vjust = 0) +
36      geom_point(colour = "red")
37  )
38
39  # 3 x 1 ----------------------------------------------------------------------
40
41  df <- data_frame(x = 0, y = -1:1, z = 1:3)
42  expect_doppelganger("3 x 1",
43    ggplot(df, aes(x, y, fill = z)) + geom_raster() + geom_point(colour = "red")
44  )
45  expect_doppelganger("3 x 1, set limits",
46    ggplot(df, aes(x, y, fill = z)) + geom_raster() + geom_point(colour = "red") +
47      xlim(-2, 2) + ylim(-2, 2)
48  )
49  expect_doppelganger("3 x 1, just = (0, 0)",
50    ggplot(df, aes(x, y, fill = z)) + geom_raster(hjust = 0, vjust = 0) +
51      geom_point(colour = "red")
52  )
53
54  # Categorical fill, irregular swatches ---------------------------------------
55
56  df <- expand.grid(x = 1:10, y = 1:10)
57  df$col <- (df$x + df$y) %% 2
58  df$col[df$x == 5 & df$col == 1] <- NA
59  df$col[df$y == 5 & df$col == 0] <- NA
60  expect_doppelganger("irregular categorical",
61    qplot(x, y, data = df, fill = factor(col), geom = "raster")
62  )
63})
64