This expectation can be used with tinytest to check if the new plot matches
a target plot.
When the expectation is checked for the first time, the expectation fails and
a reference plot is saved to the inst/tinytest/_tinysnapshot folder.
When the expectation fails, the reference plot, the new plot, and a diff are
saved to the inst/tinytest/label folder. Call the review() function to compare.
To update a snapshot, delete the reference file from the _tinysnapshot
folder and run the test suite again.
See the package README file or website for detailed examples.
expect_snapshot_plot(
current,
label,
width = getOption("tinysnapshot_width", default = NULL),
height = getOption("tinysnapshot_height", default = NULL),
tol = getOption("tinysnapshot_tol", default = 0),
metric = getOption("tinysnapshot_metric", default = "AE"),
fuzz = getOption("tinysnapshot_fuzz", default = 0),
device = getOption("tinysnapshot_device", default = "svg"),
device_args = getOption("tinysnapshot_device_args", default = list()),
par_args = getOption("tinysnapshot_par_args", default = NULL),
style = getOption("tinysnapshot_plot_diff_style", default = c("old", "new", "diff")),
review = getOption("tinysnapshot_plot_review", default = TRUE),
os = getOption("tinysnapshot_os", default = Sys.info()["sysname"]),
skip = getOption("tinysnapshot_plot_skip", default = !interactive() &&
!identical(Sys.getenv("NOT_CRAN"), "true"))
)A tinytest object. A tinytest object is a logical with attributes holding information about the test that was run
an object of class ggplot or a function which returns a base R plot.
a string to identify the snapshot (alpha-numeric, hyphens, or underscores). Each plot in the test suite must have a unique label.
of the snapshot. PNG default: 480 pixels. SVG default: 7 inches.
of the snapshot. PNG default: 480 pixels. SVG default: 7 inches.
distance estimates larger than this threshold will trigger a test failure. Scale depends on the metric argument. With the default metric="AE" (absolute error), the tolerance corresponds roughly to the number of pixels of difference between the plot and the reference image.
string with a metric from magick::metric_types() such as "AE" or "phash".
relative color distance between 0 and 100 to be considered similar.
"svg", "png", "ragg" or "svglite"
list of arguments to pass to the device call (e.g., user_fonts for svglite device).
named list of arguments to pass to graphics::par() for setting graphical parameters. Only used when device is "png" or "ragg". Default is NULL.
A character vector to control the panels of the diff image saved to file. The order and number of entries controls the side-by-side panels. Allowable values are: "old", "new", "diff".
logical. TRUE if a a diff plot should be saved to file for review when the expectation fails.
character vector of operating systems on which the test should be run (e.g., "Windows", "Linux", "Darwin"). Tests are skipped when no element of the vector matches the output of: Sys.info()["sysname"]
logical. If TRUE, the test is skipped. Default: TRUE when not interactive and NOT_CRAN environment variable is not "true".