test_that("`bm_pixmap()` works as expected", {
pm <- as_bm_pixmap(matrix(character(0L), 0L, 0L))
expect_true(is_bm_pixmap(pm))
expect_true(is_bm_matrix(pm))
})
test_that("`as.array.bm_pixmap()`", {
skip_if_not_installed("png")
skip_if_not_installed("withr")
withr::local_options(bm_options(default = TRUE))
tulip <- farming_crops_16x16()$tulip$portrait
bm <- as_bm_bitmap(tulip)
bm2 <- tulip != col2hex("transparent")
expect_equal(bm, bm2)
pm1 <- as_bm_pixmap(bm)
a1 <- as.array(bm)
f <- tempfile(fileext = ".png")
png::writePNG(a1, f)
a2 <- png::readPNG(f)
unlink(f)
pm2 <- as_bm_pixmap(a2)
expect_equal(pm1, pm2)
})
test_that("`as_bm_pixmap()`", {
skip_if_not_installed("farver")
skip_if_not_installed("magick")
skip_if_not(capabilities("png"))
m0 <- matrix(character(0L), nrow = 0L, ncol = 4L)
expect_equal(nrow(flip_matrix_vertically(m0)), 0L)
expect_equal(ncol(flip_matrix_horizontally(t(m0))), 0L)
r0 <- as.raster(m0)
pm0 <- as_bm_pixmap(r0)
pm1 <- as_bm_pixmap(as.matrix(pm0))
nr0 <- as.raster(pm0, native = TRUE)
pm2 <- as_bm_pixmap(nr0)
pm3 <- as_bm_pixmap(as.matrix(as_bm_bitmap(pm0)))
expect_equal(dim(pm0), c(0L, 4L))
expect_equal(dim(pm1), c(0L, 4L))
expect_equal(dim(pm2), c(0L, 4L))
expect_equal(dim(pm3), c(0L, 4L))
grob <- grid::circleGrob(r = 0.4, gp = grid::gpar(fill = "red", lwd = 2, col = "black"))
pm <- as_bm_pixmap(grob)
expect_equal(dim(pm), c(16L, 16L))
})
test_that("`cbind()` and `rbind()`", {
skip_if_not_installed("withr")
withr::local_options(bm_options(default = TRUE))
skip_if_not(cli::is_utf8_output())
fc <- farming_crops_16x16()
avocado <- fc$avocado$portrait
tulip <- fc$tulip$portrait
verify_output("txt/bind_bm_pixmap.txt", {
print(cbind(avocado, tulip), compress = "v")
print( rbind(avocado, tulip), compress = "v")
}, crayon = FALSE, unicode = TRUE)
})
test_that("`c()`", {
tulip <- farming_crops_16x16()$tulip$portrait
bml1 <- c(tulip, tulip)
bml2 <- c(tulip, tulip, tulip)
bml3 <- c(tulip, bml2)
bml4 <- c(bml2, bml3)
bml5 <- c(tulip)
expect_equal(length(bml1), 2L)
expect_equal(length(bml2), 3L)
expect_equal(length(bml3), 4L)
expect_equal(length(bml4), 7L)
expect_equal(length(bml5), 1L)
expect_true(all(vapply(bml4, is_bm_pixmap, logical(1L))))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.