compare
is similar to base::all.equal()
, but somewhat buggy in its
use of tolerance
. Please use waldo instead.
compare(x, y, ...)# S3 method for default
compare(x, y, ..., max_diffs = 9)
# S3 method for character
compare(
x,
y,
check.attributes = TRUE,
...,
max_diffs = 5,
max_lines = 5,
width = cli::console_width()
)
# S3 method for numeric
compare(
x,
y,
tolerance = testthat_tolerance(),
check.attributes = TRUE,
...,
max_diffs = 9
)
testthat_tolerance()
# S3 method for POSIXt
compare(x, y, tolerance = 0.001, ..., max_diffs = 9)
Objects to compare
Additional arguments used to control specifics of comparison
Maximum number of differences to show
If TRUE
, also checks values of attributes.
Maximum number of lines to show from each difference
Width of output device
Numerical tolerance: any differences (in the sense of
base::all.equal()
) smaller than this value will be ignored.
The default tolerance is sqrt(.Machine$double.eps)
, unless long doubles
are not available, in which case the test is skipped.
# NOT RUN { # Character ----------------------------------------------------------------- x <- c("abc", "def", "jih") compare(x, x) y <- paste0(x, "y") compare(x, y) compare(letters, paste0(letters, "-")) x <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus tincidunt auctor. Vestibulum ac metus bibendum, facilisis nisi non, pulvinar dolor. Donec pretium iaculis nulla, ut interdum sapien ultricies a. " y <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus tincidunt auctor. Vestibulum ac metus1 bibendum, facilisis nisi non, pulvinar dolor. Donec pretium iaculis nulla, ut interdum sapien ultricies a. " compare(x, y) compare(c(x, x), c(y, y)) # Numeric ------------------------------------------------------------------- x <- y <- runif(100) y[sample(100, 10)] <- 5 compare(x, y) x <- y <- 1:10 x[5] <- NA x[6] <- 6.5 compare(x, y) # Compare ignores minor numeric differences in the same way # as all.equal. compare(x, x + 1e-9) # }
Run the code above in your browser using DataCamp Workspace