# some testing of nesting, this could conflict with prior exp.a
# if not done properly

# Duplicate expressions should get collapsed in error message

- `1:3` should be type "character" (is "integer")

[1] "At least one of these should pass:"                     
[2] "  - `1:3` should be type \"character\" (is \"integer\")"
[3] "  - `length(1:3)` should be 1 (is 3)"

vet(INT.1 || NULL || LGL, "hello", format = "text")

`"hello"` should be `NULL`, type "integer-like", or type "logical" (is "character")

[1] "`\"hello\"` should be `NULL`, type \"integer-like\", or type \"logical\" (is \"character\")"

vet(INT.1 || NULL || LGL, "hello", format = "raw")

vet(INT.1 || NULL || LGL, "hello", format = "full")

For argument `current`, `"hello"` should be `NULL`, type "integer-like", or type "logical" (is "character")

[1] "For argument `current`, `\"hello\"` should be `NULL`, type \"integer-like\", or type \"logical\" (is \"character\")"

vet(INT.1 || NULL || LGL, "hello", format = "halloween")

`vet` usage error: argument `format` must be one of "text", "raw", "full"

Error in vet(INT.1 || NULL || LGL, "hello", format = "halloween") : 
  `vet` usage error: argument `format` must be one of "text", "raw", "full"

vet(INT.1 || NULL || LGL, "hello", format = 1:10)

`vet` usage error: argument `format` must be character(1L).

Error in vet(INT.1 || NULL || LGL, "hello", format = 1:10) : 
  `vet` usage error: argument `format` must be character(1L).

vet(INT.1 || NULL || LGL, "hello", format = "text", stop = TRUE)

Error in vet(INT.1 || NULL || LGL, "hello", format = "text", stop = TRUE) : 
  `"hello"` should be `NULL`, type "integer-like", or type "logical" (is "character")

vet(INT.1 || NULL || LGL, "hello", format = "text", stop = 1:3)

`vet` usage error: argument `stop` must be TRUE or FALSE.

Error in vet(INT.1 || NULL || LGL, "hello", format = "text", stop = 1:3) : 
  `vet` usage error: argument `stop` must be TRUE or FALSE.

# with a validator with message attached

`all_bw(0:5, 0, 1)` is not TRUE (is chr: "`2` at index 3 not in `[0,1]`")