test_that("ggarrange2() works", { skip_if_not_installed("paleotree") p1 <- ggplot(ammoniteTraitsRaia) + geom_point(aes(x = Log_D, y = FD)) + labs(x = "Body size", y = "Suture complexity") + theme_classic() p2 <- ggplot(ammoniteTraitsRaia) + geom_point(aes(x = Log_D, y = log_dur)) + labs(x = "Body size", y = "Stratigraphic duration (myr)") + theme_classic() gg1 <- ggarrange2(p1, p2, widths = c(2, 1), draw = FALSE, labels = c("A", "B")) expect_true(gtable::is.gtable(gg1)) expect_doppelganger_deeptime("ggarrange2()", gg1) expect_doppelganger_deeptime("ggarrange2() layout", gtable::gtable_show_layout(gg1)) gg2 <- ggarrange2(p1, p2, layout = matrix(c(2, 0, 0, 1), nrow = 2), widths = c(2, 1), draw = FALSE, labels = c("A", "B"), debug = TRUE) expect_doppelganger_deeptime("ggarrange2() with layout", gg2) expect_doppelganger_deeptime("ggarrange2() with layout (layout)", gtable::gtable_show_layout(gg2)) skip_if_not_installed("ggtree") p3 <- ggtree(ammoniteTreeRaia, position = position_nudge(x = -ammoniteTreeRaia$root.time)) + coord_geo(xlim = c(-415, -66), ylim = c(-2, Ntip(ammoniteTreeRaia)), pos = "bottom", size = 4, abbrv = FALSE, neg = TRUE) + scale_x_continuous(breaks = seq(-425, -50, 25), labels = -seq(-425, -50, 25)) + theme_tree2() + theme(plot.margin = margin(7, 11, 7, 11)) gg3 <- ggarrange2(gg1, p3, nrow = 2, widths = unit(60, "lines"), heights = c(unit(20, "lines"), unit(40, "lines")), top = "Test1", bottom = "Test2", left = "Test3", right = "Test4", newpage = TRUE, draw = FALSE ) expect_true(gtable::is.gtable(gg3)) expect_doppelganger_deeptime("double ggarrange2()", print(gg3)) expect_doppelganger_deeptime("double ggarrange2() layout", gtable::gtable_show_layout(gg3)) gg4 <- ggarrange2(p1, .dummy_gtable, ncol = 2, heights = unit(20, "lines"), top = "Test1", bottom = "Test2", left = "Test3", right = "Test4", newpage = TRUE, draw = FALSE) expect_true(gtable::is.gtable(gg4)) expect_doppelganger_deeptime("ggarrange2() no heights", print(gg4)) expect_doppelganger_deeptime("ggarrange2() no heights layout", gtable::gtable_show_layout(gg4)) p1_grob <- ggplotGrob(p1) p1_grob$respect <- TRUE gg5 <- ggarrange2(p1_grob, .dummy_gtable, top = "Test1", bottom = "Test2", left = "Test3", right = "Test4", newpage = TRUE, draw = TRUE) expect_true(gtable::is.gtable(gg5)) expect_doppelganger_deeptime("ggarrange2() no dims", print(gg5)) expect_doppelganger_deeptime("ggarrange2() no dims layout", gtable::gtable_show_layout(gg5)) })