Nothing
test_that("basical principles of equality hold", {
local_edition(2)
expect_success(expect_equal(1, 1))
expect_failure(expect_equal(1, 2))
expect_success(expect_identical(1, 1))
expect_failure(expect_identical(1, 2))
local_edition(3)
expect_success(expect_equal(1, 1))
expect_failure(expect_equal(1, 2))
expect_success(expect_identical(1, 1))
expect_failure(expect_identical(1, 2))
})
test_that("expect_equal() ignores numeric type; expect_identical() does not", {
local_edition(2)
expect_success(expect_equal(1, 1L))
expect_failure(expect_identical(1, 1L))
local_edition(3)
expect_success(expect_equal(1, 1L))
expect_failure(expect_identical(1, 1L))
})
test_that("returns value", {
one <- 1
local_edition(3)
expect_equal(expect_equal(one, one), 1)
expect_equal(expect_identical(one, one), 1)
local_edition(2)
expect_equal(expect_equal(one, one), 1)
expect_equal(expect_identical(one, one), 1)
})
test_that("can control numeric tolerance", {
x1 <- 1
x2 <- x1 + 1e-6
local_edition(2)
expect_failure(expect_equal(x1, x2))
expect_success(expect_equal(x1, x2, tolerance = 1e-5))
expect_success(expect_equivalent(x1, x2, tolerance = 1e-5))
# with partial matching
withr::local_options(warnPartialMatchArgs = FALSE)
expect_success(expect_equal(x1, x2, tol = 1e-5))
local_edition(3)
expect_failure(expect_equal(x1, x2))
expect_success(expect_equal(x1, x2, tolerance = 1e-5))
})
test_that("second edition only optionally sets tolerance", {
local_edition(2)
# all.equal.POSIXct sets default tolerance to 0.001
x <- .POSIXct(1)
y <- .POSIXct(1 + 1e-4)
expect_success(expect_equal(x, y))
})
test_that("provide useful feedback on failure (3e)", {
x <- 1
expect_snapshot_failure(expect_identical(x, "a"))
expect_snapshot_failure(expect_equal(x, "a"))
local_edition(2)
withr::local_options(testthat.edition_ignore = TRUE)
expect_snapshot_failure(expect_identical(x, "a"))
expect_snapshot_failure(expect_equal(x, "a"))
})
test_that("correctly spaces lines", {
expect_snapshot_failure(expect_equal(list(a = 1), list(a = "b", b = 10)))
})
test_that("provide useful feedback on failure (2e)", {
local_edition(2)
withr::local_options(testthat.edition_ignore = TRUE)
x <- 1
expect_snapshot_failure(expect_identical(x, "a"))
expect_snapshot_failure(expect_equal(x, "a"))
})
test_that("default labels use unquoting", {
x <- 1
y <- 2
expect_snapshot_failure(expect_equal(x, !!y))
})
test_that("% is not treated as sprintf format specifier (#445)", {
expect_failure(expect_equal("+", "%"))
expect_failure(expect_equal("%", "+"))
expect_success(expect_equal("%", "%"))
})
# 2nd edition ---------------------------------------------------
test_that("useful message if objects equal but not identical", {
local_edition(2)
f <- function() x
environment(f) <- new_environment()
g <- function() x
environment(g) <- new_environment()
expect_snapshot_failure(expect_identical(f, g))
})
test_that("attributes for object (#452)", {
local_edition(2)
oops <- structure(0, oops = "oops")
expect_equal(oops, oops)
expect_snapshot_failure(expect_equal(oops, 0))
expect_equal(as.numeric(oops), 0)
})
test_that("expect_equivalent ignores attributes and numeric differences", {
local_edition(2)
x <- y <- 1
attr(y, "y") <- y
expect_success(expect_equivalent(x, y))
expect_success(expect_equivalent(x, 1L))
})
test_that("expect_equivalent returns value", {
local_edition(2)
one <- 1
expect_equal(expect_equivalent(one, one), 1)
})
test_that("expect_equal validates its inputs", {
expect_snapshot(error = TRUE, {
expect_equal(1, 2, tolerance = "high")
expect_equal(1, 2, tolerance = -1)
})
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.