tests/testthat/test-compose-sandwich.R

test_that("compose_sandwich can compose a legend", {

  sandwich <- compose_sandwich(
    middle = guide_colourbar(theme = theme(text = element_text(colour = "limegreen"))),
    text   = guide_axis_base(theme = theme(text = element_text(colour = "tomato"))),
    opposite = primitive_bracket(key = key_range_manual(
      c(10, 20), c(25, 30), c("A", "B")
    ), theme = theme(text = element_text(colour = "dodgerblue")))
  )


  p <- ggplot(mpg, aes(displ, hwy)) +
    geom_point(aes(colour = cty)) +
    scale_colour_viridis_c(
      guide = sandwich
    )

  vdiffr::expect_doppelganger(
    "vertical sandwich", p + theme(
      legend.text.position = "right",
      legend.position = "right"
    )
  )

  vdiffr::expect_doppelganger(
    "vertical sandwich flipped", p + theme(
      legend.text.position = "left",
      legend.position = "right"
    )
  )

  vdiffr::expect_doppelganger(
    "horizontal sandwich", p + theme(
      legend.text.position = "bottom",
      legend.position = "bottom"
    )
  )

  vdiffr::expect_doppelganger(
    "horizontal sandwich flipped", p + theme(
      legend.text.position = "top",
      legend.position = "bottom"
    )
  )
})

Try the legendry package in your browser

Any scripts or data that you put into this service are public.

legendry documentation built on April 4, 2025, 2:12 a.m.