R/compare.R, R/compare-character.R, R/compare-numeric.R, and 1 more
compare.Rdcompare is similar to base::all.equal(), but shows
you examples of where the failures occured.
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(x) # S3 method for POSIXt compare(x, y, tolerance = 0.001, ..., max_diffs = 9)
| x, y | Objects to compare |
|---|---|
| ... | Additional arguments used to control specifics of comparison |
| max_diffs | Maximum number of differences to show |
| check.attributes | If |
| max_lines | Maximum number of lines to show from each difference |
| width | Width of output device |
| tolerance | Numerical tolerance: any differences smaller than this value will be ignored. The default tolerance is |
# Character ----------------------------------------------------------------- x <- c("abc", "def", "jih") compare(x, x)#> Equal#> 3/3 mismatches #> x[1]: "abc" #> y[1]: "abcy" #> #> x[2]: "def" #> y[2]: "defy" #> #> x[3]: "jih" #> y[3]: "jihy"#> 26/26 mismatches #> x[1]: "a" #> y[1]: "a-" #> #> x[2]: "b" #> y[2]: "b-" #> #> x[3]: "c" #> y[3]: "c-" #> #> x[4]: "d" #> y[4]: "d-" #> #> x[5]: "e" #> y[5]: "e-"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)#> 1/1 mismatches #> x[1]: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus\n tincidunt auctor. Vestibulum ac metus bibendum, facilisis nisi non, pulvinar\n dol #> x[1]: or. Donec pretium iaculis nulla, ut interdum sapien ultricies a. " #> y[1]: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus\n tincidunt auctor. Vestibulum ac metus1 bibendum, facilisis nisi non, pulvinar\n do #> y[1]: lor. Donec pretium iaculis nulla, ut interdum sapien ultricies a. "#> 2/2 mismatches #> x[1]: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus\n tincidunt auctor. Vestibulum ac metus bibendum, facilisis nisi non, pulvinar\n dol #> x[1]: or. Donec pretium iaculis nulla, ut interdum sapien ultricies a. " #> y[1]: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus\n tincidunt auctor. Vestibulum ac metus1 bibendum, facilisis nisi non, pulvinar\n do #> y[1]: lor. Donec pretium iaculis nulla, ut interdum sapien ultricies a. " #> #> x[2]: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus\n tincidunt auctor. Vestibulum ac metus bibendum, facilisis nisi non, pulvinar\n dol #> x[2]: or. Donec pretium iaculis nulla, ut interdum sapien ultricies a. " #> y[2]: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus\n tincidunt auctor. Vestibulum ac metus1 bibendum, facilisis nisi non, pulvinar\n do #> y[2]: lor. Donec pretium iaculis nulla, ut interdum sapien ultricies a. "# Numeric ------------------------------------------------------------------- x <- y <- runif(100) y[sample(100, 10)] <- 5 compare(x, y)#> 10/100 mismatches (average diff: 4.43) #> [5] 0.7725 - 5 == -4.23 #> [13] 0.0637 - 5 == -4.94 #> [14] 0.3887 - 5 == -4.61 #> [17] 0.6784 - 5 == -4.32 #> [32] 0.7064 - 5 == -4.29 #> [33] 0.9486 - 5 == -4.05 #> [60] 0.5963 - 5 == -4.40 #> [76] 0.5279 - 5 == -4.47 #> [77] 0.6006 - 5 == -4.40 #> ...x <- y <- 1:10 x[5] <- NA x[6] <- 6.5 compare(x, y)#> 2/10 mismatches (average diff: 0.5) #> [5] NA - 5 == NA #> [6] 6.5 - 6 == 0.5# Compare ignores minor numeric differences in the same way # as all.equal. compare(x, x + 1e-9)#> Equal