img_folder <- system.file("example/imgs", package = "shinytest2")
bookmark_new <- fs::path(img_folder, "bookmark-new.png")
bookmark_old <- fs::path(img_folder, "bookmark-old.png")
slider_new <- fs::path(img_folder, "slider-new.png")
slider_old <- fs::path(img_folder, "slider-old.png")
test_that("screenshot options are used", {
skip_if_not_installed("png")
expect_false(
compare_screenshot_threshold(
bookmark_old,
bookmark_new,
)
)
withr::with_options(
list("shinytest2.compare_screenshot.threshold" = 1),
{
# Slightly different images
expect_true(
compare_screenshot_threshold(
bookmark_old,
bookmark_new,
)
)
}
)
small_max_diff <-
screenshot_max_difference(
slider_old,
slider_new,
kernel_size = 5
)
withr::with_options(
list("shinytest2.compare_screenshot.kernel_size" = 10),
{
big_max_diff <-
screenshot_max_difference(
slider_old,
slider_new,
)
}
)
print(list(small_max_diff, big_max_diff))
expect_lt(small_max_diff, big_max_diff)
})
test_that("convolution can be performed", {
skip_if_not_installed("png")
# Using `brew install graphicsmagick`
# `gm compare 151-original-linux-3_6-79bf3a4.png 151-new-linux-3_6-446865a.png -highlight-style assign -file 151-diff.png`
# `gm compare bers3-1.png bers3-2.png -highlight-style assign -file bers3-diff.png`
# Same image
expect_true(
compare_screenshot_threshold(
bookmark_old,
bookmark_old,
threshold = NULL
)
)
# Same image
expect_true(
compare_screenshot_threshold(
bookmark_old,
bookmark_old,
threshold = 0
)
)
# Slightly different images
expect_true(
compare_screenshot_threshold(
bookmark_old,
bookmark_new,
threshold = 1
)
)
# Slightly different images
expect_false(
compare_screenshot_threshold(
slider_old,
slider_new,
threshold = 28.1,
quiet = TRUE
)
)
expect_silent({
ans <-
compare_screenshot_threshold(
slider_old,
slider_new,
threshold = 28.2
)
})
expect_true(ans, label = "compare_screenshot_threshold(slider_old, slider_new, threshold = 28.2)")
})
test_that("kernel size makes a difference", {
skip_if_not_installed("png")
small_max_diff <-
screenshot_max_difference(
slider_old,
slider_new,
kernel_size = 5
)
big_max_diff <-
screenshot_max_difference(
slider_old,
slider_new,
kernel_size = 10
)
expect_lt(small_max_diff, big_max_diff)
expect_gt(small_max_diff, 0)
expect_gt(big_max_diff, 44)
expect_lt(big_max_diff, 50)
})
test_that("Errors in screenshot_max_difference do not cause errors in compare_screenshot_threshold", {
expect_silent({
comp_val <-
compare_screenshot_threshold(
slider_old,
bookmark_old,
threshold = 5
)
})
expect_false(comp_val)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.