tests/testthat/test-webp-anim.R

debugging <- FALSE

test_that("agg_webp_anim produces animated WebP output", {
  tmp <- tempfile(fileext = ".webp")
  nframes <- 8
  agg_webp_anim(tmp, width = 400, height = 300, delay = 500, loop = 0)

  colors <- rainbow(nframes)
  for (i in seq_len(nframes)) {
    plot.new()

    # Background with frame-specific pattern
    rect(0, 0, 1, 1, col = paste0(colors[i], "20"), border = NA)
    # Large frame number
    text(0.5, 0.7, paste("FRAME", i), cex = 3, col = colors[i], font = 2)
    # Moving circle to show progression
    x <- i / (nframes + 1)  # Position from left to right
    points(x, 0.3, pch = 19, cex = 4, col = colors[i])
    # Progress bar
    rect(0.1, 0.1, 0.1 + 0.8 * (i / nframes), 0.15, col = colors[i], border = "black")
    text(0.5, 0.05, paste(i, "of", nframes), cex = 1.5)

    dev.flush()
  }
  dev.off()

  expect_true(file.exists(tmp))
  expect_gt(file.info(tmp)$size, 1000)
  if (debugging) cat("Animated WebP created at:", tmp, "\n") else unlink(tmp)
})

Try the ragg package in your browser

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

ragg documentation built on Sept. 2, 2025, 9:09 a.m.