test_that("`oblicubesGrob()`", { skip_if_not_installed("grid") skip_if_not_installed("vdiffr") library("grid") library("vdiffr") expect_doppelganger("basic_op_angles", function() { angles <- c(135, 90, 45, 180, 45, 0, -135, -90, -45) scales <- c(0.5, 0.5, 0.5, 0.5, 0.0, 0.5, 0.5, 0.5, 0.5) mat <- matrix(c(1, 2, 1, 2, 3, 2, 1, 2, 1), nrow = 3, ncol = 3, byrow = TRUE) coords <- xyz_heightmap(mat, col = c("red", "yellow", "green")) vp_x <- rep(1:3/3 - 1/6, 3) vp_y <- rep(3:1/3 - 1/6, each = 3) for (i in 1:9) { pushViewport(viewport(x=vp_x[i], y=vp_y[i], width=1/3, height=1/3)) grid.rect(gp = gpar(lty = "dashed")) grid.oblicubes(coords, width = 0.15, xo = 0.25, yo = 0.15, angle = angles[i], scale = scales[i], light = FALSE, gp = gpar(lwd=4)) if (i != 5) grid.text(paste("angle =", angles[i]), y=0.92, gp = gpar(cex = 1.2)) else grid.text(paste("scale = 0"), y=0.92, gp = gpar(cex = 1.2)) popViewport() } }) expect_doppelganger("ground_yz", function() { mat <- matrix(c(1, 2, 1, 2, 3, 2, 1, 2, 1), nrow = 3, ncol = 3, byrow = TRUE) coords <- xyz_heightmap(mat, ground="xz") grid.oblicubes(coords, gp = gpar(lwd=4, fill = "lightgreen")) }) expect_doppelganger("ground_zy", function() { mat <- matrix(c(1, 2, 1, 2, 3, 2, 1, 2, 1), nrow = 3, ncol = 3, byrow = TRUE) coords <- xyz_heightmap(mat, ground="zy") grid.oblicubes(coords, lwd = 4) }) expect_doppelganger("null", function() { grid.oblicubes(data.frame(x = integer(0), y = integer(0), z = integer(0))) }) expect_doppelganger("null2", function() { grid.oblicubes(x = integer(0), y = integer(0), z = integer(0)) }) })