-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Hi, great package, thank you!
When multiple arguments are involved, it can be annoying to manually write all the values that trigger the error:
library(quickcheck)
library(testthat)
foo <- function(a, b, c, d) {
if (a > 1) stop("error")
}
test_that("foo() works", {
for_all(
a = character_(any_na = TRUE),
b = character_(any_na = TRUE),
c = character_(any_na = TRUE),
d = character_(any_na = TRUE),
property = function(a, b, c, d) {
foo(a, b, c, d)
}
)
})
#> ── Failure: foo() works ────────────────────────────────────────────────────────
#> Falsifiable after 1 tests, and 8 shrinks
#> <simpleError in foo(a, b, c, d): error>
#> Counterexample:
#> $a
#> [1] "6#)APN"
#>
#> $b
#> [1] NA
#>
#> $c
#> [1] "RvCt/a4"
#>
#> $d
#> [1] "pw{"
#>
#> Backtrace:
#> ▆
#> 1. └─quickcheck::for_all(...)
#> 2. └─hedgehog::forall(...)
#> Error:
#> ! Test failedIt would be great if the print method could use constructive::construct() or something similar to make it easier to copy-paste the failing example:
l <- list(a = 1, b = 2, c = 3)
l
#> $a
#> [1] 1
#>
#> $b
#> [1] 2
#>
#> $c
#> [1] 3
constructive::construct(l)
#> list(a = 1, b = 2, c = 3)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels